Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000004739540 | QA76.9.D3 C3848 2001 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Take a tour with leading researchers and developers for a practical look at object databases. Whether you currently work with or are thinking of moving to object databases, Chaudhri and Zicari provide a collection of real-world case studies and examples that demonstrate how some of the world's leading companies and research institutions are leveraging Java, XML, and Object Relational Systems to build robust databases.
Starting with a comprehensive introduction to object and object-relational databases, the book then offers detailed discussions on some of the latest topics in the field such as JDBC and SQLJ support in relational databases and database modeling using UML.
You'll also learn about object-to-relational mapping tools, architectural issues that influence performance, and the issues of complexity and scale.How popular tools from Computer Associates, eXcelon, GemStone, Objectivity, Oracle, Versant, and Poet were used in the case studies is also discussed.The companion Web site atwww.wiley.com/compbooks/chaudhri includes links to object-oriented database software applications and additional resources. Visit our Web site at www.wiley.com/compbooks/Visit the companion Web site at www.wiley.com/compbooks/chaudhri
Author Notes
AKMAL B. CHAUDHRI is a Senior Architect with Informix Software. He is also the coeditor of Object Databases in Practice and a frequent speaker at a number of international conferences, including OOPSLA and Object World. ROBERTO ZICARI is full professor of Computer Science at the Johann Wolfgang Goethe University in Frankfurt, Germany. He is Editor-in-Chief of the Theory and Practice of Object Systems journal (Wiley ) and has consulted and lectured in Europe, North America, and Japan.
Table of Contents
Acknowledgments | p. xiii |
Introduction | p. xv |
Part 1 Introduction | p. 1 |
Chapter 1 OODBMS History and Concepts | p. 3 |
Historical Perspective | p. 4 |
The Beginning | p. 4 |
Standardization | p. 5 |
Object-Relational DBMSs | p. 6 |
Java | p. 8 |
OODBMS Products and Their Evolution | p. 9 |
ORION/Itasca | p. 9 |
O2 | p. 10 |
GemStone | p. 11 |
IRIS/OpenODB | p. 11 |
Vbase/Ontos | p. 12 |
ObjectStore | p. 12 |
POET | p. 13 |
Data Model Concepts | p. 13 |
Objects | p. 13 |
Classes | p. 16 |
Inheritance | p. 19 |
An Example | p. 21 |
Query Language | p. 23 |
Conclusion | p. 25 |
Part 2 Object-Relational Systems | p. 27 |
Chapter 2 Mapping UML Diagrams to Object-Relational Schemas in Oracle 8 | p. 29 |
Overview of UML | p. 31 |
Overview of Oracle 8 | p. 35 |
Mapping Issues | p. 37 |
Objects and Relationships between Objects | p. 38 |
Object Hierarchies | p. 39 |
VARRAYS and Nested Tables | p. 42 |
Triggers for Maintaining Inverses | p. 44 |
Derived Attributes | p. 45 |
Embedded Objects | p. 46 |
Queries over Objects | p. 48 |
Comparison to Other Systems | p. 48 |
Conclusion | p. 50 |
Chapter 3 SQLJ and JDBC: Database Access in Java | p. 53 |
A Bit of Background | p. 53 |
SQLJ Basics | p. 54 |
Embedded SQL Syntax | p. 55 |
SQLJ Translator | p. 55 |
Execution Model | p. 56 |
The SQLJ Standard | p. 56 |
JDBC Basics | p. 57 |
Statements | p. 57 |
A Note on Deployment | p. 58 |
Connecting to the Database | p. 58 |
Connecting at Run Time in SQLJ | p. 59 |
Connecting to the Database for SQLJ Translation | p. 60 |
Connecting in JDBC | p. 60 |
Mix and Match SQLJ and JDBC | p. 60 |
Interfacing SQL and Java | p. 61 |
Retrieving Data through an SQL Query | p. 61 |
Datatype Mapping | p. 66 |
Performance, Performance | p. 69 |
JDBC Prepared Statements | p. 69 |
Batching of Updates | p. 70 |
Connection Pooling | p. 70 |
SQLJ and JDBC in Oracle 8i | p. 71 |
SQLJ versus JDBC | p. 72 |
Conclusion | p. 72 |
Chapter 4 Penguin: Objects for Programs, Relations for Persistence | p. 75 |
Mapping from the Object Model to the Relational Model | p. 76 |
Relational Database Storage and Semantic Modeling | p. 79 |
Defining Object Views of Relational Databases | p. 79 |
Updating Base Relations from Objects | p. 81 |
Heterogeneous Data Sources | p. 81 |
Methods | p. 82 |
Concurrency Control | p. 83 |
Performance Issues | p. 83 |
Caching Structure | p. 83 |
Cache Management | p. 84 |
Data Transfer | p. 86 |
Future Directions | p. 87 |
Conclusion | p. 87 |
Part 3 XML | p. 89 |
Chapter 5 A New Stage in ODBMS Normalization: Myth or Reality? | p. 91 |
State of the ODBMS Market | p. 91 |
Why a Standard Like ODMG? | p. 93 |
ODMG: A Reconciliation between Programming Languages and DBMSs | p. 95 |
An RDBMS Evolution toward Object Paradigm | p. 96 |
XML Application Founded on OQL | p. 97 |
System Motivations | p. 98 |
Why XML? | p. 98 |
The Database Model | p. 100 |
Database Management Using O2 versus Versant | p. 101 |
The Information Retrieval Technique | p. 103 |
Conclusion | p. 106 |
Chapter 6 PDOM: Lightweight Persistency Support | p. 107 |
Introduction to DOM | p. 108 |
Architecture | p. 108 |
Binary File Organization | p. 109 |
Persistent Object Manager | p. 111 |
Object Serialization and Deserialization | p. 111 |
Cache Strategy | p. 112 |
Safe File Updates | p. 113 |
Performance Evaluation | p. 116 |
Related Work | p. 116 |
Conclusion | p. 118 |
Chapter 7 The Model of Object Primitives (MOP) | p. 119 |
Model of Object Primitives | p. 121 |
MOP Semantics | p. 121 |
MOPClass | p. 121 |
Constraint | p. 123 |
State Class | p. 123 |
Behavior Class | p. 124 |
Policy | p. 125 |
Collection Class | p. 127 |
Relationship | p. 127 |
Mapping Data Models to MOP | p. 129 |
XML in MOP | p. 129 |
ODMG in MOP | p. 133 |
Relational Model in MOP | p. 137 |
Case Studies | p. 139 |
Conclusion | p. 142 |
Part 4 Benchmarks and Performance | p. 145 |
Chapter 8 A Performance Comparison of Object and Relational Databases for Complex Objects | p. 147 |
The Application | p. 148 |
The OO Model | p. 148 |
The EER Model | p. 149 |
One Complex Object | p. 149 |
Database Operations | p. 150 |
Open and Close the Database | p. 152 |
Pick Top Objects | p. 152 |
Traverse Complex Objects | p. 153 |
Copy Complex Objects | p. 153 |
Inserts of Complex Objects | p. 153 |
Deletes of Complex Objects | p. 154 |
Updates of Complex Objects | p. 155 |
Benchmark Considerations | p. 155 |
The DBMSs Used | p. 155 |
Test Environment | p. 155 |
Warm and Cold Runs | p. 156 |
Database Considerations | p. 157 |
Benchmarks Results | p. 157 |
Database Sizes | p. 157 |
Open and Close the Databases | p. 157 |
Pick Top Objects | p. 159 |
Traverse Complex Objects | p. 159 |
Copy Complex Objects | p. 160 |
Inserts of Complex Objects | p. 162 |
Deletes of Complex Objects | p. 163 |
Updates of Complex Objects | p. 165 |
Conclusion | p. 166 |
Chapter 9 Object Databases and Java Architectural Issues | p. 167 |
ODBMS Architecture | p. 167 |
Object, Page, and File Servers | p. 168 |
Performance Issues | p. 168 |
Java Language Binding | p. 176 |
Implementing Persistence | p. 177 |
Evaluating Performance and Benchmarking | p. 183 |
Conclusion | p. 183 |
Chapter 10 Addressing Complexity and Scale in a High-Performance Object Server | p. 185 |
The ABS Business Register | p. 187 |
Key Issues Raised by the ABS-BR | p. 188 |
Approaching a Solution | p. 191 |
Abstraction as a Tool | p. 191 |
Java as a Development Platform | p. 194 |
Engineering a Solution | p. 195 |
Orthogonal Persistence and Versioning through Semantic Extensions to Java | p. 196 |
SEF: The Semantic Extension Framework | p. 201 |
PSI: Abstracting over Storage | p. 204 |
Implmenting the ABS-BR Demonstrator | p. 206 |
Analysis | p. 208 |
Evaluation of the ABS-BR Demonstrator, OPJ, and OVJ | p. 208 |
Commercial Alternatives and Related Work | p. 213 |
Directions for Future Work | p. 215 |
Conclusion | p. 216 |
Part 5 Database Development | p. 217 |
Chapter 11 The Unified Modeling Process in Web-Deployed, Object-Oriented Database Systems | p. 219 |
Objectivity/DB Architecture | p. 220 |
The Unified Modeling Process (UMP) | p. 221 |
Unified Modeling Language (UML) | p. 221 |
UML Programming Environment | p. 222 |
Using UML for Data Service Design | p. 225 |
OO Database Development with UML Example | p. 228 |
Generating DDL Classes | p. 230 |
The Web Deployment Challenge | p. 235 |
Process-Driven versus Project-Driven Deployment | p. 235 |
Web-Based Deployment of OO Databases | p. 239 |
Conclusion | p. 247 |
Chapter 12 Teaching Object-Oriented Database Concepts | p. 249 |
Background | p. 249 |
Teaching OODBMS Concepts--A Summary | p. 251 |
The OODBMS Subject Details | p. 251 |
Teaching OODBMS Concepts | p. 252 |
The Legacy of the Relational Area | p. 253 |
Modeling and OO Schemata | p. 254 |
Algebra for Objects | p. 255 |
Object-Oriented SQL | p. 257 |
Teaching OODBMS Programming | p. 259 |
Dealing with the ObjectStore API | p. 259 |
What the More (and Less) Successful Students Produced | p. 263 |
Assignments | p. 263 |
Evaluating Assignments | p. 264 |
The Second Assignment | p. 265 |
The Third Assignment | p. 266 |
Technical Problems in Practical Work | p. 268 |
Conclusion | p. 268 |
Chapter 13 Building a Jasmine Database | p. 271 |
Design Goals | p. 271 |
Physical Storage | p. 275 |
Stores and Extents | p. 276 |
Class Families | p. 278 |
Class Definitions | p. 279 |
The Database Administrator and ODQL Interpreter | p. 279 |
Class Definitions | p. 282 |
Loading Data | p. 286 |
Experimenting with ODQL Code for Methods | p. 290 |
Method Definitions | p. 293 |
Compiling and Testing | p. 297 |
More Methods | p. 298 |
The Importance of Being Scripted | p. 302 |
Backing Up a Database | p. 303 |
Creating Duplicates of jadelibCF and mediaCF | p. 304 |
Conclusion | p. 307 |
Appendix 13.1 Complete ODQL for Defining and Building Classes in This Database (Classes.odql) | p. 308 |
Appendix 13.2 Code for Creating a Few Instances of Each Class (DataEntry01.odql) | p. 311 |
Chapter 14 Seamlessness and Transparency in Object-Oriented Databases | p. 315 |
General Experience Using OpenOODB | p. 316 |
Detailed Experience Extending OpenOODB | p. 318 |
Name Management | p. 319 |
Interoperability | p. 321 |
Persistence | p. 322 |
Summary | p. 324 |
Conclusion | p. 325 |
Part 6 Case Studies | p. 327 |
Chapter 15 Experiences Using the ODMG Standard in Bioinformatics Applications | p. 329 |
Object Databases in Bioinformatics | p. 330 |
Modeling Genomic Information | p. 332 |
Application Development | p. 334 |
Implementing the Object Model | p. 335 |
Populating the Database | p. 337 |
Developing User Interfaces | p. 338 |
Conclusion | p. 341 |
Chapter 16 An Object-Oriented Database for Managing Genetic Sequences | p. 343 |
The Learning Environment | p. 344 |
Related Work | p. 346 |
Relational versus Object-Oriented Databases | p. 347 |
Relational Data Model | p. 348 |
Impedance Mismatch | p. 348 |
Object-Oriented Database Management Systems | p. 349 |
Prototype | p. 349 |
Application Requirements | p. 349 |
Modeling Genetic Sequences | p. 350 |
Modeling the Behavior of Sequences | p. 352 |
Conclusion | p. 356 |
Chapter 17 The Geospatial Information Distribution System (GIDS) | p. 357 |
Use of Object-Oriented Technology and ODBMS | p. 358 |
2D GIDS Design | p. 359 |
Server | p. 360 |
Interface | p. 361 |
Client | p. 364 |
2D GIDS Application | p. 369 |
Urban Warrior | p. 369 |
3D GIDS | p. 371 |
VPF+ | p. 372 |
3D GIDS System Overview | p. 374 |
Experience Report | p. 375 |
Conclusion | p. 378 |
Chapter 18 Architecture of the Distributed, Multitier Railway Application DaRT | p. 379 |
Introduction and Motivation | p. 379 |
The Application Domain | p. 380 |
Three-Tier Architecture | p. 381 |
Clustering in the Database | p. 384 |
Designing the Application Servers | p. 386 |
Alternative 1 Uniform Servers | p. 386 |
Alternative 2 Multithreaded Servers | p. 387 |
Alternative 3 Data-Specific Servers | p. 389 |
Alternative 4 Dialog-Oriented Servers | p. 390 |
Comparison and Evaluation | p. 391 |
Designing the End-User Client | p. 393 |
Alternative 1 Class-Based Caching | p. 394 |
Alternative 2 Implicit Caching | p. 396 |
Comparison and Evaluation | p. 397 |
Conclusion | p. 397 |
Part 7 Conclusions | p. 399 |
Chapter 19 Conclusion | p. 401 |
References | p. 403 |
Appendix About the Contributors | p. 421 |
Index | p. 431 |