Математика

Физика

Химия

Биология

Техника и    технологии

Date on Database Writings 2000–2006 C. J. Date 2006 ctr525
Date on Database Writings 2000–2006 C. J. Date 2006 ctr525


Contents at a Glance


About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
PART 1 ¦ ¦ ¦ Some Preliminaries
¦CHAPTER 1 Edgar F. Codd: A Tribute and Personal Memoir . . . . . . . . . . . . . . . . . 3
¦CHAPTER 2 An Interview with Chris Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
¦CHAPTER 3 Good Writing Does Matter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
PART 2 ¦ ¦ ¦ And Now for Something
Completely Different
¦CHAPTER 4 On the Notion of Logical Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
¦CHAPTER 5 On the Logical Difference Between Model
and Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
¦CHAPTER 6 On the Logical Differences Between Types, Values,
and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
PART 3 ¦ ¦ ¦ Relational Database Management
¦CHAPTER 7 Why We Need Type BOOLEAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
¦CHAPTER 8 What First Normal Form Really Means . . . . . . . . . . . . . . . . . . . . . . . 107
¦CHAPTER 9 A Sweet Disorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
¦CHAPTER 10 Double Trouble, Double Trouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
¦CHAPTER 11 Multiple Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
¦CHAPTER 12 Data Redundancy and Database Design . . . . . . . . . . . . . . . . . . . . . . 217
¦CHAPTER 13 Data Redundancy and Database Design:
Further Thoughts Number One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
vi
¦CHAPTER 14 Tree-Structured Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
¦CHAPTER 15 Twelve Rules for Business Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
PART 4 ¦ ¦ ¦ SQL Database Management
¦CHAPTER 16 Two Remarks on SQL’s UNION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
¦CHAPTER 17 A Cure for Madness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
¦CHAPTER 18 Why Three- and Four-Valued Logic Don’t Work . . . . . . . . . . . . . . . 329
PART 5 ¦ ¦ ¦ Further Relational Misconceptions
¦CHAPTER 19 There’s Only One Relational Model . . . . . . . . . . . . . . . . . . . . . . . . . . 345
¦CHAPTER 20 The Relational Model Is Very Much Alive! . . . . . . . . . . . . . . . . . . . . 361
¦CHAPTER 21 What Do You Mean, “Post-Relational”? . . . . . . . . . . . . . . . . . . . . . . 369
¦CHAPTER 22 A Database Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
PART 6 ¦ ¦ ¦ Subtyping and Inheritance
¦CHAPTER 23 Is a Circle an Ellipse? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
¦CHAPTER 24 What Does Substitutability Really Mean? . . . . . . . . . . . . . . . . . . . . . 409
PART 7 ¦ ¦ ¦ Relational vs. Nonrelational Systems
¦CHAPTER 25 Models, Models, Everywhere, Nor Any Time to Think . . . . . . . . . . 437
¦CHAPTER 26 Basic Concepts in UML: A Request for Clarification . . . . . . . . . . . 445
¦CHAPTER 27 A Comparison Between ODMG and The Third Manifesto . . . . . . . 457
¦CHAPTER 28 An Overview and Analysis of Proposals Based on
the TSQL2 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
¦APPENDIX The Role of the Trade Press in Educating the
Professional Community: A Case Study . . . . . . . . . . . . . . . . . . . . . . 515
¦INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
vii
Contents
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
PART 1 ¦ ¦ ¦ Some Preliminaries
¦CHAPTER 1 Edgar F. Codd: A Tribute and Personal Memoir . . . . . . . . . . . 3
Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Database Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Other Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Personal Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
¦CHAPTER 2 An Interview with Chris Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
¦CHAPTER 3 Good Writing Does Matter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Exhibit A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Restriction Conditions in DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
A Suggested Replacement for Exhibit A . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Exhibit B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Exhibit C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
viii ¦CONTENTS
PART 2 ¦ ¦ ¦ And Now for Something
Completely Different
¦CHAPTER 4 On the Notion of Logical Difference . . . . . . . . . . . . . . . . . . . . . . 35
Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Why Is It Important to Think Precisely? . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Logical Differences Are Big Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Some Things Are Much the Same . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Object Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
The Unified Modeling Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Miscellaneous Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Appendix A: Some Quotes from the Literature . . . . . . . . . . . . . . . . . . . . . 43
¦CHAPTER 5 On the Logical Difference Between Model
and Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Terms and Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
What Are Models For? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Definitions from the Literature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Examples of Confusion: Performance Issues . . . . . . . . . . . . . . . . . . . . . . . 55
Examples of Confusion: Many Different Data Structures . . . . . . . . . . . . . 58
Examples of Confusion: Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Examples of Confusion: Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Consequences of Such Confusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
¦CHAPTER 6 On the Logical Differences Between Types,
Values, and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Types Are Fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
More on Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Values and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Values and Variables Can Be Arbitrarily Complex . . . . . . . . . . . . . . . . . . . 77
Variables Are Updatable, Values Aren’t . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6419de0a79232b3f3c7e0b078da09b55
¦CONTENTS ix
Pseudovariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Variables Have Addresses, Values Don’t . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Relation Values and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Examples of Confusion: Values vs. Variables . . . . . . . . . . . . . . . . . . . . . . 87
Logical Sameness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A Hypothesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Examples of Confusion: Types vs. Values and/or Variables . . . . . . . . . . . 92
Consequences of Such Confusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
PART 3 ¦ ¦ ¦ Relational Database Management
¦CHAPTER 7 Why We Need Type BOOLEAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
¦CHAPTER 8 What First Normal Form Really Means . . . . . . . . . . . . . . . . . . 107
Some Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
“Data Value Atomicity” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Relation-Valued Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Domains Can Contain Anything! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Relation-Valued Attributes Make Outer Join Unnecessary . . . . . . . . . . . 116
Relation-Valued Attributes in Base Tables?—The Bad News . . . . . . . . 118
Relation-Valued Attributes in Base Tables?—The Good News . . . . . . . 121
A Remark on “NF? Relations” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
A Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Appendix A: Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Appendix B: The Information Principle . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Appendix C: Definitions from the Literature . . . . . . . . . . . . . . . . . . . . . . . 135
Appendix D: So What About “Multi-Value Systems”? . . . . . . . . . . . . . . 136
Appendix E: Formal Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
¦CHAPTER 9 A Sweet Disorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
SQL Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
The “Select *” Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Duplicate Column Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Missing Column Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
x ¦CONTENTS
Implications for the UNION Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Type vs. Degree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Which Union? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Relation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Predicates Revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Where Did Column Ordering Come From? . . . . . . . . . . . . . . . . . . . . . . . . 155
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Appendix A: Row Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
¦CHAPTER 10 Double Trouble, Double Trouble . . . . . . . . . . . . . . . . . . . . . . . . . 159
The Cat Food Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Expression Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Rows Represent Propositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
The Conclusion So Far . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Rats and Ratlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
The Pennies Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Bag Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
The Performance Issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Some More SQL Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Appendix A: A Tuple-Bag Algebra? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Appendix B: More on Counting Pennies . . . . . . . . . . . . . . . . . . . . . . . . . . 178
¦CHAPTER 11 Multiple Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
A Little History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Assigning to Several Variables at Once . . . . . . . . . . . . . . . . . . . . . . . . . . 186
A Multiple Assignment Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Why We Need Multiple Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Why Integrity Checking Must Be Immediate . . . . . . . . . . . . . . . . . . . . . . 195
Assigning to a Variable More Than Once . . . . . . . . . . . . . . . . . . . . . . . . . 197
Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Assigning to Several Components at Once . . . . . . . . . . . . . . . . . . . . . . . 203
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
¦CONTENTS xi
Appendix A: Multiple Assignment in SQL . . . . . . . . . . . . . . . . . . . . . . . . . 205
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
The SET Statement: Single Assignment. . . . . . . . . . . . . . . . . . . . . . 207
The SET Statement: Multiple Assignment . . . . . . . . . . . . . . . . . . . . 211
The SQL UPDATE Statement Revisited. . . . . . . . . . . . . . . . . . . . . . . 214
¦CHAPTER 12 Data Redundancy and Database Design . . . . . . . . . . . . . . . . 217
The Running Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Some Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Database Design Is Predicate Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
A Brief Review of Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Normalization Is Not Enough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Orthogonality (I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Another Kind of Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Tuples vs. Propositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Orthogonality (II) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
What About Views? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Violating Orthogonality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
But Isn’t It All Just Common Sense? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Other Kinds of Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Managing Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1. Raw Design Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
2. Declare the Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
3. Use a View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
4. Use a Snapshot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
¦CHAPTER 13 Data Redundancy and Database Design:
Further Thoughts Number One . . . . . . . . . . . . . . . . . . . . . . . . . . 255
More on Predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Identity Decompositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
More on Propositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
More on Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
More on Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
More on Dependency Preservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Generalizing Key Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Orthogonality Revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
xii ¦CONTENTS
¦CHAPTER 14 Tree-Structured Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
A Tree-Based Sort Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
How Treesort Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Relational Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Implementing TREESORT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Integrity Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Traversing the Nodes of a Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Bill-of-Materials Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Another Kind of Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
What About Relation-Valued Attributes? . . . . . . . . . . . . . . . . . . . . . . . . . 294
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
¦CHAPTER 15 Twelve Rules for Business Rules . . . . . . . . . . . . . . . . . . . . . . . . 299
Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
A Note on Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Further Preliminary Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Prescription 1: Executable Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Prescription 2: Declarative Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Prescription 3: Kinds of Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Prescription 4: Declaration Sequence vs. Execution Sequence . . . . . . 304
Prescription 5: The Rule Engine Is a DBMS . . . . . . . . . . . . . . . . . . . . . . . 304
Prescription 6: The Rule Engine Is a Relational DBMS . . . . . . . . . . . . . . 305
Prescription 7: Rule Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Prescription 8: Kinds of Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Prescription 9: Extensibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Prescription 10: Platform Independence . . . . . . . . . . . . . . . . . . . . . . . . . 308
Prescription 11: No Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Prescription 12: Full Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
¦CONTENTS xiii
PART 4 ¦ ¦ ¦ SQL Database Management
¦CHAPTER 16 Two Remarks on SQL’s UNION . . . . . . . . . . . . . . . . . . . . . . . . . . 313
UNION in the Relational Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Data Type Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Duplicate Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
¦CHAPTER 17 A Cure for Madness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
The Syntax and Semantics of SELECT - FROM - WHERE . . . . . . . . . . . . 321
Model vs. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Nested Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Further Thoughts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
A Final Observation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
¦CHAPTER 18 Why Three- and Four-Valued Logic Don’t Work . . . . . . . . 329
Some Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Tautologies, Identities, and Contradictions . . . . . . . . . . . . . . . . . . . 331
De Morgan’s Laws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Codd’s Three-Valued Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
The Unknown Truth Value and A-marks . . . . . . . . . . . . . . . . . . . . . 334
How Many 3VLs Are There? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Codd’s Four-Valued Logics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
4VL Number 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
4VL Number 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
4VL Number 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Some Questions of Intuition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
xiv ¦CONTENTS
PART 5 ¦ ¦ ¦ Further Relational Misconceptions
¦CHAPTER 19 There’s Only One Relational Model . . . . . . . . . . . . . . . . . . . . . . 345
Celko’s Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
“Chris Date = No Duplicates, No NULLs” . . . . . . . . . . . . . . . . . . . . . . . . 347
“E. F. Codd, RM Version I” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
“E. F. Codd, RM Version II” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
“SQL-92 = Duplicates, One NULL” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
“Duplicates, One NULL, Non-1NF Tables” . . . . . . . . . . . . . . . . . . . . . . . . 351
“Rick Snodgrass = Temporal SQL” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
How Many Relational Models? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Technical Correspondence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
¦CHAPTER 20 The Relational Model Is Very Much Alive! . . . . . . . . . . . . . . . 361
Some Specific Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Technical Correspondence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
¦CHAPTER 21 What Do You Mean, “Post-Relational”? . . . . . . . . . . . . . . . . . 369
What About Object Technology? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Further Points Arising . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
What About Object/Relational Technology? . . . . . . . . . . . . . . . . . . . . . . . 374
Technical Correspondence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
¦CHAPTER 22 A Database Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
The SMART Paper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
The Version 8 Paper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
¦CONTENTS xv
PART 6 ¦ ¦ ¦ Subtyping and Inheritance
¦CHAPTER 23 Is a Circle an Ellipse? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
A Little Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
The Main Argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Software Engineering vs. Conceptual Modeling? . . . . . . . . . . . . . . . . . . 397
What About “Colored Circles”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
A Type Inheritance Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Technical Correspondence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
¦CHAPTER 24 What Does Substitutability Really Mean? . . . . . . . . . . . . . . . 409
What Is LSP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
The Liskov Substitution Principle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
A Behavioral Notion of Subtyping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
The Liskov/Wing Paper: Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
The Liskov/Wing Paper: Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
The Liskov/Wing Inheritance Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
The Running Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Preconditions and Postconditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Covariance and Contravariance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Extending the Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Extension and Constraint Subtypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Substitutability Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
PART 7 ¦ ¦ ¦ Relational vs. Nonrelational Systems
¦CHAPTER 25 Models, Models, Everywhere,
Nor Any Time to Think . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
“Modeling in the UML” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
What Does “Model” Mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Miscellaneous Observations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Postscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
xvi ¦CONTENTS
¦CHAPTER 26 Basic Concepts in UML: A Request for Clarification . . . . 445
Some Immediate Discoveries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
The OCL Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
The UML Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Types, Classes, and Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Further Puzzles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
¦CHAPTER 27 A Comparison Between ODMG and
The Third Manifesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Atomic Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Structured Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Collection Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Types, Classes, and Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Inheritance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Object Definition Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Object Interchange Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Object Query Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
RM Prescriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
RM Proscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
OO Prescriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
OO Proscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
RM Very Strong Suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
OO Very Strong Suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
IM Prescriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
¦CHAPTER 28 An Overview and Analysis of Proposals
Based on the TSQL2 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . 481
TSQL2 and the SQL Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
TSQL2 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
The Central Idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
¦CONTENTS xvii
Temporal Upward Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Current, Sequenced, and Nonsequenced Operations . . . . . . . . . . . . . . . 493
Current Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Sequenced Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Nonsequenced Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Accessing the Hidden Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Data Definition Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Valid-Time Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Transaction-Time Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Bitemporal Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Statement Modifiers Are Flawed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Consequences of Hidden Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Lack of Generality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Imprecise Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
¦APPENDIX The Role of the Trade Press in Educating
the Professional Community: A Case Study . . . . . . . . . . . . . 515
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
The Saga Continues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Exhibit A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Exhibit B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Exhibit C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Exhibit D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Exhibit E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Exhibit F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Exhibit G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Exhibit H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Exhibit I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Exhibit J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Postscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525

Цена: 200руб.

Назад

Заказ

На главную страницу