Foundation for Future Database Systems: The Third Manifesto / Edition 2

Foundation for Future Database Systems: The Third Manifesto / Edition 2

by C. J. Date, Hugh Darwen
     
 

ISBN-10: 0201709287

ISBN-13: 9780201709285

Pub. Date: 05/12/2000

Publisher: Pearson Education

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

"This book should be recommended reading for software engineers, database designers, graduate students, undergraduate students, data modelers--for just about anybody with a serious

Overview

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

"This book should be recommended reading for software engineers, database designers, graduate students, undergraduate students, data modelers--for just about anybody with a serious interest in database technology."
--Declan Brady, MBCS, Lead Systems Architect, ICL

"As a database application designer/architect, I'm interested in ideals as well as in currently available tools . . . This book is a rich source of worthy ideals. In particular, it provides good coverage of areas where SQL, and much commercial Object Orientation training material, are found lacking."
--Tom Pledger, Peace International Software

Foundation for Future Database Systems: 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. Among other things, it provides a rock-solid foundation for integrating relational and object technologies.

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 sprang from that work. It also 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 alsobuilds on research in the field of object orientation. With a sound footing in both camps of the object/relational divide, therefore, the Manifesto is offered as a firm foundation for the DBMSs of the future.

Significant features of this new edition include:

  • Major extensions to the inheritance model
  • Significantly improved language proposals
  • Improved discussions of read-only vs. update operators, selectors, THE_ operators, tuple types vs. possible representations, grouping and ungrouping, first normal form, assignment, constraints, predicates, and many other topics
  • All SQL discussions upgraded to the level of the new SQL:1999 standard
  • Several new appendixes



0201709287B04062001

Product Details

ISBN-13:
9780201709285
Publisher:
Pearson Education
Publication date:
05/12/2000
Pages:
576
Product dimensions:
7.38(w) x 9.22(h) x 1.01(d)

Table of Contents

Preface xiii
PART I PRELIMINARIES
Background and Overview
3(11)
What is The Third Manifesto?
3(1)
Why did we write it?
4(1)
Back to the relational future
5(2)
Some guiding principles
7(1)
Some crucial logical differences
8(3)
Topics deliberately omitted
11(1)
The Third Manifesto: A summary
12(2)
Objects and Relations
14(19)
Introduction
14(1)
What problem are we trying to solve?
15(1)
Relations vs. relvars
16(3)
Domains vs. object classes
19(3)
Relvars vs. object classes
22(7)
A note on inheritance
29(1)
Concluding remarks
29(4)
PART II FORMAL SPECIFICATIONS
The Third Manifesto
33(11)
RM Prescriptions
33(7)
RM Proscriptions
40(1)
OO Prescriptions
40(1)
OO Proscriptions
41(1)
RM Very Strong Suggestions
42(1)
OO Very Strong Suggestions
43(1)
A New Relational Algebra
44(15)
Introduction
44(1)
Motivation and justification
45(4)
REMOVE, RENAME, and COMPOSE
49(2)
Treating operators as relations
51(3)
Formal definitions
54(2)
Transitive closure
56(3)
Tutorial D
59(42)
Introduction
59(3)
Types and expressions
62(1)
Scalar definitions
63(4)
Tuple definitions
67(1)
Relational definitions
67(2)
Scalar operations
69(2)
Tuple operations
71(3)
Relational operations
74(6)
Relations and arrays
80(2)
Statements
82(2)
Syntax summary
84(8)
Mapping the relational operations
92(9)
PART III INFORMAL DISCUSSIONS AND EXPLANATIONS
RM Prescriptions
101(82)
Scalar types
101(6)
Scalar values are typed
107(1)
Scalar operators
107(8)
Actual vs. possible representations
115(8)
Expose possible representations
123(7)
Type generator TUPLE
130(5)
Type generator RELATION
135(4)
Equality
139(3)
Tuples
142(1)
Relations
143(3)
Scalar variables
146(1)
Tuple variables
147(1)
Relation variables (relvars)
148(2)
Real vs. virtual relvars
150(2)
Candidate keys
152(2)
Databases
154(1)
Transactions
155(1)
Relational algebra
156(6)
Relvar names, relation selectors, and recursion
162(1)
Relation-valued operators
163(2)
Assignments
165(4)
Comparisons
169(2)
Integrity constraints
171(8)
Relvar and database predicates
179(2)
Catalog
181(1)
Language design
181(2)
RM Proscriptions
183(8)
No attribute ordering
183(2)
No tuple ordering
185(1)
No duplicate tuples
185(1)
No nulls
185(1)
No nullological mistakes
186(1)
No internal-level constructs
187(1)
No tuple-level operations
188(1)
No composite attributes
189(1)
No domain check override
189(1)
Not SQL
190(1)
OO Prescriptions
191(7)
Compile-time type checking
191(1)
Type inheritance (conditional)
192(1)
Computational completeness
193(1)
Explicit transaction boundaries
194(1)
Nested transactions
195(1)
Aggregate operators and empty sets
196(2)
OO Prescriptions
198(4)
Relvars are not domains
198(1)
No object IDs
198(4)
RM Very Strong Suggestions
202(32)
System keys
202(4)
Foreign keys
206(1)
Candidate key inference
207(2)
Transition constraints
209(1)
Quota queries
210(3)
Generalized transitive closure
213(4)
User-defined generic operators
217(1)
Special ("default") values
218(2)
SQL migration
220(14)
OO Very Strong Suggestion
234(9)
Type inheritance
234(2)
Types and operators unbundled
236(1)
Collection type generators
237(1)
Conversion to/from relations
238(1)
Single-level store
239(4)
PART IV SUBTYPING AND INHERITANCE
Preliminaries
243(7)
Introduction
243(2)
Toward a type inheritance model
245(1)
Single vs. multiple inheritance
246(1)
Scalars, tuples, and relations
247(1)
Summary
248(2)
The Inheritance Model
250(7)
Introduction
250(1)
IM Prescriptions
250(7)
Single Inheritance with Scalar Types
257(60)
Introduction
257(7)
Types are sets
264(1)
Subtypes are subsets
265(2)
"Subtype of" is reflexive
267(1)
Proper subtypes
268(1)
"Subtype of" is transitive
268(1)
Immediate subtypes
269(2)
Types disjoint unless one a subtype of the other
271(1)
Scalar values with inheritance
271(1)
Scalar variables with inheritance
272(6)
Specialization by constraint
278(3)
Assignment with inheritance
281(3)
Equality etc. with inheritance
284(3)
Join etc. with inheritance
287(1)
TREAT DOWN
288(4)
Type testing
292(2)
Read-only operator inheritance and value substitutability
294(5)
Operator signatures
299(6)
Read-only parameters to update operators
305(1)
Update operator inheritance and variable substitutability
306(4)
Union, dummy, and maximal and minimal types
310(7)
Multiple Inheritance with Scalar Types
317(19)
Introduction
317(1)
The running example
318(4)
IM Prescriptions 1-20 revisited
322(2)
Least specific types unique
324(2)
Most specific types unique
326(7)
Type testing with multiple inheritance
333(1)
Remarks on operator inheritance
334(2)
Inheritance with Tuple and Relation Types
336(197)
Introduction
336(1)
Tuple/relation subtypes and supertypes
337(4)
Tuple/relation values with inheritance
341(3)
Maximal and minimal tuple/relation types
344(2)
Tuple/relation most specific types
346(6)
Tuple/relation variables with inheritance
352(2)
Specialization by constraint
354(1)
Tuple/relation assignment with inheritance
355(1)
Tuple/relation equality etc. with inheritance
356(1)
Tuple/relation TREAT DOWN
356(2)
Tuple/relation type testing
358(1)
The additional prescriptions summarized
359(4)
APPENDIXES
Appendix A A Relational Calculus Version of Tutorial D
363(8)
Introduction
363(2)
Boolean expressions
365(1)
Builtin relation operator invocations
365(1)
Free and bound range variable references
366(1)
Relation UPDATE and DELETE operators
367(1)
Examples
367(4)
Appendix B The Two Great Blunders
371(7)
Introduction
371(1)
The First Great Blunder
371(4)
The Second Great Blunder
375(3)
Appendix C A Design Dilemma?
378(6)
Introduction
378(1)
Encapsulation
378(1)
Discussion
379(2)
Further considerations
381(3)
Appendix D Types and Units
384(8)
Introduction
384(1)
Type definition
384(1)
Selectors
385(1)
THE_ operators
386(1)
Computational operators
387(2)
Display operators
389(1)
Type constraints
390(1)
A more complex example
390(2)
Appendix E Subtables and Supertables
392(6)
Introduction
392(2)
Some general observations
394(1)
The terminology is extremely bad
395(1)
The concept is not type inheritance
396(1)
Why?
397(1)
Appendix F More on Changing Semantics and Related Matters
398(7)
Introduction
398(1)
Analysis
399(1)
A solution
399(3)
Another example
402(3)
Appendix G Specialization by Constraint and Related Matters
405(18)
Introduction
405(1)
The 3 out of 4 "rule"
405(6)
What does inheritance really mean?
411(1)
Benefits of S by C
412(4)
Is a colored circle a circle?
416(1)
Object IDs undermine inheritance
417(4)
Why the problem does not arise with foreign keys
421(2)
Appendix H A Comparison with SQL
423(25)
Introduction
423(2)
RM Prescriptions
425(11)
RM Proscription
436(1)
OO Prescriptions
437(1)
OO Proscription
438(1)
RM Very Strong Suggestions
438(1)
OO Very Strong Suggestions
439(1)
IM Prescriptions
440(4)
History of the wrong equation in SQL
444(4)
Appendix I A Comparison with ODMG
448(24)
Introduction
448(3)
Overview
451(11)
RM Prescriptions
462(4)
RM Proscriptions
466(1)
OO Prescriptions
467(1)
OO Proscriptions
467(1)
RM Very Strong Suggestions
468(1)
OO Very Strong Suggestions
469(1)
IM Prescriptions
469(3)
Appendix J The Next 25 Years of the Relational Model?
472(19)
Remarks on republication
472(1)
Introduction
473(1)
Background
474(5)
The Third Manifesto and SQL
479(1)
Technical content
479(6)
More on SQL
485(2)
Miscellaneous questions
487(4)
Appendix K References and Bibliography
491(42)
Index 533

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >