Foundation for Object / Relational Databases: The Third Manifesto / Edition 1

Foundation for Object / Relational Databases: The Third Manifesto / Edition 1

Pub. Date:

Paperback - Rent for

Select a Purchase Option (New Edition)
  • purchase options

Temporarily Out of Stock Online


Foundation for Object / Relational Databases: The Third Manifesto / Edition 1

Second Edition
now available!

A detailed study of the impact of objects and type theory on the relational model of data, including a comprehensive proposal for type inheritance

"This is the first attempt to describe what object/relational means. If you're interested in object/relational technology, this is the book to read." --Rick van der Lans Independent consultant, author of Introduction to SQL, and past member of the Dutch committee responsible for developing the International SQL Standard

"This book is an excellent piece of work. It is very rare in computer science to come across a book that provides such a complete and precise theory that is systematically presented and compared to all of the other work in the area. Even those who find the conclusions controversial will admire this thoroughness." --Rick Cattell ODMG Chair, author of Object Data Management and JDBC Database Access with Java, and co-editor of the Object Database Standard: ODMG 2.0

Foundation for Object/Relational Databases: The Third Manifesto is a proposal for the future direction of data and database management systems (DBMSs). It consists of a precise, formal definition of an abstract model of data, to be considered as a blueprint for the design of a DBMS and a database language. In particular, it provides a rock-solid foundation for integrating relational and object technologies, a foundation conspicuously lacking in current approaches to such integration.

The proposed foundation represents an evolutionary step, not a revolutionary one. It builds on Codd's relational model of data and on the research that resulted from that work. Most notably, it incorporates a precise and comprehensive specification for a method of defining data types, including a comprehensive model of type inheritance, to address a lack that has been observed by many authorities; thus, it also builds on research in the field of object orientation. With a sound footing in both camps of the object/relational divide, the Manifesto is offered as a firm foundation for true object/relational DBMSs.

The authors combine precision and thoroughness of exposition with the approachability that readers familiar with their previous publications will recognize and welcome. This book is essential reading for database students and professionals alike.

Hugh Darwen has been involved in software development since 1967 as an employee of IBM United Kingdom Ltd. He has been active in the relational database arena since 1978, and was one of the chief architects and developers of an IBM relational product called Business System 12--a product that faithfully embraced the principles of the relational model. His writings include notable contributions to Date's Relational Database Writings series (Addison-Wesley, 1990, 1992) and A Guide to the SQL Standard (4th edition, Addison-Wesley, 1997). He has been an active participant in the development of SQL international standards since 1988.

C.J. Date is an independent consultant, author, lecturer, and researcher specializing in relational database systems. He was one of the first persons to recognize and support Codd's pioneering work on the relational model. Mr. Date was also involved in technical planning for the IBM products SQL/DS and DB2. He is best known for his books, in particular An Introduction to Database Systems (6th edition, Addison-Wesley, 1996), which has sold well over half a million copies worldwide.


Product Details

ISBN-13: 9780201309782
Publisher: Addison-Wesley
Publication date: 06/19/1998
Edition description: New Edition
Pages: 528
Product dimensions: 7.50(w) x 9.10(h) x 1.10(d)

Table of Contents



1. Background and Overview.

What is The Third Manifesto?

Why did we write it?

Back to the relational future.

Some guiding principles.

Some crucial logical differences.

Topics deliberately omitted.

The Third Manifesto: A summary.

2. Objects and Relations.


What problem are we trying to solve?

Relations vs. relvars.

Domains vs. object classes.

Relvars vs. object classes.

A note on inheritance.

Concluding remarks.


3. The Third Manifesto.

RM Prescriptions.

RM Proscriptions.

OO Prescriptions.

OO Proscriptions.

RM Very Strong Suggestions.

OO Very Strong Suggestions.

4. A New Relational Algebra.


Motivation and justification.


Treating operators as relations.

Formal definitions.

Transitive closure.

5. Tutorial D.


Types and expressions.

Scalar definitions.

Tuple definitions.

Relational definitions.

Scalar operations.

Tuple operations.

Relational operations.

Relations and arrays.


Syntax summary.

Mapping the relational operations.


6. RM Prescriptions.

RM Prescription 1: Scalar types.

RM Prescription 2: Scalar values are typed.

RM Prescription 3: Scalar operators.

RM Prescription 4: Actual vs. possible representations.

RM Prescription 5: Expose possible representations.

RM Prescription 6: Type generator TUPLE.

RM Prescription 7: Type generator RELATION.

RM Prescription 8: Equality.

RM Prescription 9: Tuples.

RM Prescription 10: Relations.

RM Prescription 11: Scalar variables.

RM Prescription 12: Tuple variables.

RM Prescription 13: Relation variables (relvars).

RM Prescription 14: Real vs. virtual relvars.

RM Prescription 15: Candidate keys.

RM Prescription 16: Databases.

RM Prescription 17: Transactions.

RM Prescription 18: Relational algebra.

RM Prescription 19: Relvar names, relation selectors, and recursion.

RM Prescription 20: Relation-valued operators.

RM Prescription 21: Assignments.

RM Prescription 22: Comparisons.

RM Prescription 23: Integrity constraints.

RM Prescription 24: Relvar and database predicates.

RM Prescription 25: Catalog.

RM Prescription 26: Language design.

7. RM Proscriptions.

RM Proscription 1: No attribute ordering.

RM Proscription 2: No tuple ordering.

RM Proscription 3: No duplicate tuples.

RM Proscription 4: No nulls.

RM Proscription 5: No nullological mistakes.

RM Proscription 6: No internal-level constructs.

RM Proscription 7: No tuple-level operations.

RM Proscription 8: No composite attributes.

RM Proscription 9: No domain check override.

RM Proscription 10: Not SQL.

8. OO Prescriptions.

OO Prescription 1: Compile-time type checking.

OO Prescription 2: Single inheritance (conditional).

OO Prescription 3: Multiple inheritance (conditional).

OO Prescription 4: Computational completeness.

OO Prescription 5: Explicit transaction boundaries.

OO Prescription 6: Nested transactions.

OO Prescription 7: Aggregates and empty sets.

9. OO Proscriptions.

OO Proscription 1: Relvars are not domains.

OO Proscription 2: No object IDs.

10. RM Very Strong Suggestions.

RM Very Strong Suggestion 1: System keys.

RM Very Strong Suggestion 2: Foreign keys.

RM Very Strong Suggestion 3: Candidate key inference.

RM Very Strong Suggestion 4: Transition constraints.

RM Very Strong Suggestion 5: Quota queries.

RM Very Strong Suggestion 6: Generalized transitive closure.

RM Very Strong Suggestion 7: Tuple and relation parameters.

RM Very Strong Suggestion 8: Special (“default”) values.

RM Very Strong Suggestion 9: SQL migration.

11. OO Very Strong Suggestions.

OO Very Strong Suggestion 1: Type inheritance.

OO Very Strong Suggestion 2: Types and operators unbundled.

OO Very Strong Suggestion 3: Collection type generators

OO Very Strong Suggestion 4: Conversions to/from relations

OO Very Strong Suggestion 5: Single-level store


12. Preliminaries


Toward a type inheritance model.

Single vs. multiple inheritance.

Scalars, tuples, and relations.


13. Formal Specifications.


IM Proposals.

14. Informal Discussions and Explanations.


IM Proposal 1: Types are sets.

IM Proposal 2: Subtypes are subsets.

IM Proposal 3: “Subtype of” is reflexive.

IM Proposal 4: Proper subtypes.

IM Proposal 5: “Subtype of” is transitive.

IM Proposal 6: Immediate subtypes.

IM Proposal 7: Single inheritance only.

IM Proposal 8: Global root types.

IM Proposal 9: Type hierarchies.

IM Proposal 10: Subtypes can be proper subsets.

IM Proposal 11: Types disjoint unless one a subtype of the other.

IM Proposal 12: Scalar values (extended definition).

IM Proposal 13: Scalar variables (extended definition).

IM Proposal 14: Assignment with inheritance.

IM Proposal 15: Comparison with inheritance.

IM Proposal 16: Join etc. with inheritance.

IM Proposal 17: TREAT DOWN.

IM Proposal 18: TREAT UP.

IM Proposal 19: Logical operator IS_T(SX).

IM Proposal 20: Relational operator RX:IS_T(A).

IM Proposal 21: Logical operator IS_MS_T(SX).

IM Proposal 22: Relational operator RX:IS_MS_T(A).

IM Proposal 23: THE_ pseudovariables.

IM Proposal 24: Read-only operator inheritance and value substitutability.

IM Proposal 25: Read-only parameters to update operators.

IM Proposal 26: Update operator inheritance and variable substitutability.

What about specialization by constraint?

15. Multiple Inheritance.


The running example.

IM Proposals 1-26 revisited.

Many supertypes per subtype.

Type graphs.

Least specific types unique.

Most specific types unique.

Comparison with multiple inheritance.

Operator inheritance.

16. Tuple and Relation Types.


Tuple and relation subtypes and supertypes.

IM Proposals 1-11 still apply.

Tuple and relation values (extended definitions).

Tuple and relation most specific types.

Tuple and relation variables (extended definitions).

Tuple and relation assignment.

Tuple and relation comparison.

Tuple and relation TREAT DOWN.

IM Proposals 18-26 revisited.


Appendix A. A Relational Calculus Version of Tutorial D.


Boolean expressions.

Builtin relation operator invocations.

Free and bound range variable references.

Relation UPDATE and DELETE operators.


Appendix B. The Database Design Dilemma.




Further considerations.

Appendix C. Specialization by Constraint.


A closer look.

The “3 out of 4” rule.

Can the idea be rescued?

Appendix D. Subtables and Supertables.


Some general observations.

The terminology is extremely bad.

The concept is not type inheritance.


Appendix E. A Comparison with SQL3.


RM Prescriptions.

RM Proscriptions.

OO Prescriptions.

OO Proscriptions.

RM Very Strong Suggestions.

OO Very Strong Suggestions.

IM Proposals (scalar types, single inheritance).

IM Proposals (scalar types, multiple inheritance).

IM Proposals (tuple and relation types).

History of the wrong equation in SQL3.

Appendix F. A Comparison with ODMG.



RM Prescriptions.

RM Proscriptions.

OO Prescriptions.

OO Proscriptions.

RM Very Strong Suggestions.

OO Very Strong Suggestions.

IM Proposals (scalar types, single inheritance).

IM Proposals (scalar types, multiple inheritance).

IM Proposals (tuple and relation types).

Appendix G. The Next 25 Years of the Relational Model?

Remarks on republication.



The Third Manifesto and SQL.

Technical content.

More on SQL.

Miscellaneous questions.

Appendix H. References and Bibliography.

Index. 0201309785T04062001

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews