search for books and compare prices
Tables of Contents for Foundation for Future Database Systems
Chapter/Section Title
Page #
Page Count
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