D a t a b a s e   E x p l o r a t i o n s

C o n t e n t s

Preface     xv

PART I                        FOUNDATIONS     1

Chapter 1                    The Third Manifesto     3

Chapter 2                    What's a Predicate?     17

Chapter 3                    The Naming of Types     31

Chapter 4                   Setting the Record Straight
(Part 1 of 6): The Two Great Blunders      39

Chapter 5                   Setting the Record Straight
(Part 2 of 6): Treating Operators as Relations      43

Chapter 6                    Setting the Record Straight
(Part 3 of 6): “Semantic Compositionality”      53

Chapter 7                    Setting the Record Straight
(Part 4 of 6): Integrity and Assignment      59

Chapter 8                   Setting the Record Straight
(Part 5 of 6): Relation Valued Attributes      63

Chapter 9                   Setting the Record Straight
(Part 6 of 6): Nulls and Three-Valued Logic      77

Chapter 10                 How to Update Views      85

PART II                      LANGUAGE DESIGN     125

Chapter 11                 Tutorial D     127

Chapter 12                 A Brief History of the Relational Divide Operator    169

Chapter 13                 Inclusion Dependencies and Foreign Keys      199

Chapter 14                 Image Relations     237

Chapter 15                 N-adic vs. Dyadic Operators: An Investigation     273

Chapter 16                 Toward an Industrial Strength Dialect of Tutorial D     285

Chapter 17                 A Remark on Prenex Normal Form     297

Chapter 18                 Orthogonal Language Design: How Not to Do It     305

PART III                     TYPE INHERITANCE     309

Chapter 19                 The Inheritance Model     311

Chapter 20                 The Inheritance Model: What Was Changed and Why     319

Chapter 21                 Extending Tutorial D to Support the Inheritance Model     347

Chapter 22                 Toward a Better Understanding of Numeric Data Types     357

PART IV                     MISSING INFORMATION      373

Chapter 23                 The Decomposition Approach     375

Chapter 24                 The Multirelational Approach     391

Chapter 25                 An Inheritance Approach     431

Chapter 26                 An Approach Using Relation Valued Attributes     445

Chapter 27                 Is SQL’s Three-Valued Logic Truth Functionally Complete?     457

Chapter 28                 A Critique of Nulls, Three-Valued Logic, and Ambiguity in SQL:
Critiquing Date's Critique      481

Chapter 29                 Nothing to Worry About     485

PART V                       MISCELLANEOUS TOPICS      487

Chapter 30                 Some Normalization Issues:     
An Attempt at Clarification      489

Chapter 31                 Professionals or Practitioners?
Some Reflections on the State of the Database Industry      505

Index     515