Object-oriented database management systems (OODBMSs) have generated significant excitement in the database community in the last decade. This interest stems from a real need for data management support for what are called "advanced application areas" that are not well-served by relational technology. The case for object-oriented technology has been made on three fronts. First is the data modeling requirements of the new applications. Some of the more important shortcomings of the relational systems in meeting the requirements of these applications include: 1. Relational systems deal with a single object type: a relation. A relation is used to model different real-world objects, but the semantics of this association is not part of the database. Furthermore, the attributes of a relation may come only from simple and fixed data type domains (numeric, character, and, sometimes, date types). Advanced applications require explicit storage and manipulation of more abstract types (e.g., images, design documents) and the ability for the users to define their own application-specific types. Therefore, a rich type system supporting user defined abstract types is required. 2. The relational model structures data in a relatively simple and flat manner. Non traditional applications require more complex object structures with nested objects (e.g., a vehicle object containing an engine object).