C++ Object Databases
Addison Wesley (Verlag)
978-0-201-63488-4 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
In 1991, the Object Database Management Group (ODMG) was formed to define standard interfaces for object databases. This standardization has since been achieved, and the popularity of object databases is on the rise. Similar to using SQL to access a relational database, the ODMG provides a corresponding standard for object databases. This book, technically reviewed by ODMG members, provides a comprehensive description of C++ object databases, including the C++ and Object Query Language (OQL) interfaces of the ODMG standard. C++ Object Databases is the indispensable guide and reference to programming with C++ object databases. With this book, you will gain a thorough knowledge of the underlying modeling concepts, interfaces, and architectures. To ease the transition to object database programming, comparisons with relational databases and SQL are provided, including contrasts with the object facilities planned for SQL3. Object databases uniquely support an object-oriented data model that is shared by the database and the application, and their tight integration with an object programming language allows developers to realize increased productivity.
OQL provides excellent declarative query access to objects, supporting the same object model used by the application. C++ is currently the dominant language supported by object databases and therefore is the basis for this book. As most object database vendors now support ODMG interfaces in their products, a working knowledge of the topics herein is essential to object database programmers. The author is uniquely qualified to present this material. He serves as the ODMG C++ Editor and has been co-editor of three ODMG books, covering releases 1.1, 1.2, and 2.0. 0201634880B04062001
David Jordan was appointed a Distinguished Member of Technical Staff at Bell Laboratories for his pioneering work in applying C++ with network, relational and object databases. He holds five patents in composite object concurrency control. He is a columnist with 101 Communications, covering database technologies for objects in C++ Report and Java Report. David Jordan is currently Director of Java Technologies at Trifolium, Inc. where he provides consulting services and custom application development in the areas of transparent object persistence. Details on his work and contact information can be found at http://www.trifolium.com/consulting/jordan 0201634880AB04062001
I. OBJECT DATABASE MODELING.
1. An Introduction.
An Example Application.
ODMG: Object Database Standardization.
2. Databases, Transactions, and Exception Handling.
Database Access.
Transactions.
The d_Transaction Class. Two-Phase Commit. Thread Operations.
Exceptions: Handling Failures.
A Complete Application Transaction.
3. An Overview of Object Database Modeling.
The Entity-Relationship Data Model.
ER Modeling Primitives. Similarities among Database Models.
Type Categories.
Entities. Domains. Collections. Composite Entities.
Aggregation, Abstraction, and Atomicity.
4. Domains.
Domains in Other Database Technologies.
Domain Categories.
Primitive Literal Types. Composite Types. Abstract Data Types.
ODMG Domain Types.
The d_String Class. The d_Interval Class. The d_Date Class. The d_Time Class. The d_Timestamp Class.
Restrictions on Using Some Types.
Unions. Bit Fields. C++ Pointers and References.
Closing Comments about Domains.
5. Persistent Entities.
The Entity Abstraction.
Making a Class Persistent.
The d_Object Base Class. Instances.
Properties.
Data Attributes. Operations.
Creation.
Creating Transient Instances. Creating Persistent Instances. Clustering Instances.
Initialization at Creation.
Deletion.
Activation and Deactivation.
The d_activate and d_deactivate Functions. Activation Implementation Issues.
Instance Modification.
Concurrency Control.
Other Operations.
Assignment. Equality. Comparison.
Some Comparisons with Relational Databases.
6. Object Identification.
Object Identifier.
Initialization and Assignment. Null References. Dereference Operations. Copying a Reference. Equality. Transparent Access. Representation and Implementation.
Object Naming.
Identification Based on Attribute Values.
Keys. Indexes.
Summary and Comparison with Other Databases.
7. Collections.
ODMG Collections and Iterators.
Sets. Bags. Lists. Arrays. Dictionaries. ODMG Collection Element Types.
Common Collection Operations.
Maintaining the Elements of a Collection. Collection Copy and Assignment. Collection Equality.
Iteration.
Operations Specific to the Collection Type.
Subsets and Supersets. Set Operations. d_List and d_Varray Operations.
Named Collections and Extents.
Named Collections. Extents.
Other Collection Operations and Considerations.
Access of Referenced Objects. Closure Access. The Cardinality Magnitude. Stand-alone versus Embedded Collections. Collection Modifications. Collection Optimizations. Collection Indexes. Cursors.
Implementing Collections in Relational Databases.
Schema Representation. Indexes. Application Representation.
Collection Summary.
8. Relationships.
Definition and Purpose of Relationships.
The Sides of a Relationship. The Degree of a Relationship. Cardinality. Unidirectional and Bidirectional Relationships. Recursive Relationships.
Relationship Interfaces. ODMG Unidirectional Relationship Declarations. ODMG Relationship Objects.
Referential Integrity Maintenance.
One-to-One Relationship Scenario. One-to-Many Relationship Scenario. Many-to-Many Relationship Scenario.
Relationship Traversal and Path Expressions.
9. Composite Objects.
Composite Object Examples.
Subobjects. References to Objects That Are Not Subobjects. Composite Base Object.
Physical Organization.
Operations.
In Closing.
II. THE OBJECT QUERY LANGUAGE.
10. An Introduction to the Object Query Language.
The Goals of OQL.
OQL Is a Functional Query Language.
11. OQL Expressions and Operators.
Object Access.
Named Objects. Attribute Access and Relationship Traversal. Dereferencing. Null Object References. Invoking Operations on Objects. Typing an Object Expression. Construction of Objects and Structures.
Atomic Literal Expressions.
Primitive Domain Types. Arithmetic Expressions. Comparison Operators. Boolean Operators. String Expressions.
Collections.
Construction of Collection Literals. Operations on All Collections. Operations Specific to Sets and Bags. Operations Specific to Indexed Collections (list and array). Dictionary Operations. Collection Conversions.
Equality.
Functions.
Operator Precedence.
12. Predicates and Collection Queries.
Iterator Variables.
Predicates.
Universal Quantification. Existential Quantification. Composite Predicates.
select ... from ... where ...
The from Clause. The where Clause. The select Clause.
The group by and having Clauses.
The order by Clause.
Joins.
Named Query Definition.
Subqueries.
Scope Rules for Names.
Iterator Variable Names. Partition Names. Name Lookup.
Summary.
13. OQL Execution Environments.
Collection Queries in C++.
Queries on d_Extent.
Database Queries in C++.
Query Engine Architectural Decisions.
Query Processing Location. Execution of Operations.
III. ARCHITECTURE.
14. Object Database Architectures.
Components.
Database Organization.
Logical Organization and Access. Physical Storage. Mapping of Logical to Physical Organization.
Client-Server Architecture.
Database Cache and Server Process. Client Application Cache and Process. Cache Coherency.
Closing Comments on Architecture.
15. Performance.
Database Architecture.
Effective Cache Use. Disk Transfer Costs. Client-Server Transfers. Concurrency.
Performance Measurement and Benchmarks.
Generic Benchmarks. Application-specific Benchmarks. Categories of Access. Factors Affecting Performance. Application Access. Query Access.
Application Object Model and Access Patterns.
16. Database Schemas.
Schema Acquisition.
Schema Access.
Name Scopes. Modules. Operations. Domains. References. Collections. Properties. Attributes. Structures. Classes. Relationships. Inheritance. Enumerations. Type Aliases.
Schema Modifications.
Class-level Modifications. Inheritance Changes. Collections. Operations. Multistep Changes.
Instance Migration.
Conversions.
Database Migration.
Immediate Conversion. Deferred Conversion. Indexes and Clustering.
IV. RETROSPECTIVE.
17. Some Comparisons between Object and Relational Database Technology.
Models, Type Systems, and Languages.
The Relational Model and Environment. An Application in a Relational Environment. Object Support. The Object Implementation Language. In Contrast: C++ Object Databases. Normalization.
Data Access.
Execution.
SQL3 Support for Objects.
Abstract Data Types for Column Domains. SQL Persistent Stored Modules. Named Row Types and Reference Types. Assessment of SQL3.
18. In Closing.
Type Categories.
Dual Interfaces.
Paradigm Shifts.
Standardization.
Object and Relational Databases.
Future Directions.
Java.
Appendix A. Example Schema.
Appendix B. ODMG C++ Classes.
Preprocessor Symbols.
All Classes.
d_Bag.
d_Collection.
d_Database.
d_Date.
d_Dictionary.
d_Error.
d_Extent.
d_Interval.
d_Iterator.
d_List.
d_Object.
d_OQL_Query.
d_Ref.
d_Ref_Any.
d_Rel_List.
d_Rel_Ref.
d_Rel_Set.
d_Set.
d_String.
d_Time.
d_Timestamp.
d_Transaction.
d_Varray.
STL.
Appendix C. ODMG Metaclasses.
Iterators.
d_Access_Kind.
d_Alias_Type.
d_Attribute.
d_Class.
d_Collection_Type.
d_Constant.
d_Enumeration_Type.
d_Exception.
d_Inheritance.
d_Keyed_Collection_Type.
d_Meta_Object.
d_Module.
d_Operation.
d_Parameter.
d_Primitive_Type.
d_Property.
d_Ref_Type.
d_Relationship.
d_Scope.
d_Structure_Type.
d_Type.
References.
Index. 0201634880T04062001
Erscheint lt. Verlag | 12.1.1998 |
---|---|
Verlagsort | Boston |
Sprache | englisch |
Maße | 192 x 241 mm |
Gewicht | 998 g |
Themenwelt | Mathematik / Informatik ► Informatik ► Datenbanken |
Informatik ► Programmiersprachen / -werkzeuge ► C / C++ | |
Informatik ► Software Entwicklung ► Objektorientierung | |
ISBN-10 | 0-201-63488-0 / 0201634880 |
ISBN-13 | 978-0-201-63488-4 / 9780201634884 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich