C.J.Date,1962年、1966年在英國(guó)劍橋大學(xué)獲得數(shù)學(xué)學(xué)士、碩士學(xué)位,1994年在英國(guó)Moritfort大學(xué)獲得博士學(xué)位。他是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)方面非常著名的獨(dú)立撰稿人、學(xué)者、研究者和顧問(wèn),是最早認(rèn)識(shí)到Codd在關(guān)系模型方面所做的開(kāi)創(chuàng)性貢獻(xiàn)的學(xué)者之一,參與了IBM產(chǎn)品(SQL/DS和DB 2)的技術(shù)規(guī)劃。Date發(fā)表了300多篇數(shù)據(jù)庫(kù)方面的技術(shù)性文章和研究論文,對(duì)數(shù)據(jù)庫(kù)理論的發(fā)展做出了巨大的貢獻(xiàn)。特別是《數(shù)據(jù)庫(kù)系統(tǒng)導(dǎo)論》一書(shū),這是數(shù)據(jù)庫(kù)領(lǐng)域的標(biāo)準(zhǔn)教材,已在全球發(fā)行了近75萬(wàn)冊(cè)。Hugh Darwen 1967-2004年間一直在IBM軟件開(kāi)發(fā)中心工作。在他職業(yè)生涯的早期階段,他參與了DBMS的研究與開(kāi)發(fā)。在1978—1982年間,他是IBM Business System 12的主要架構(gòu)師之一。從1988年起。他是SOL國(guó)際標(biāo)準(zhǔn)制訂工作的積極參與者。他是一位學(xué)者,同時(shí)也是英國(guó)Warwick大學(xué)和Open大學(xué)的課程開(kāi)發(fā)顧問(wèn)。
圖書(shū)目錄
Preface . vii PART I PRELIMINARIES Chapter 1 Background and Overview The Third Manifesto Back to the relational future Some guiding principles Some crucial logical differences Concluding remarks Exercises Chapter 2 A Survey of the Relational Model The running example Tuples Relations Relation variables Relvars, relations, and predicates Integrity constraints Relational operators Virtual relvars The relational model Exercises Chapter 3 Toward a Theory of Types Values are typed Types vs. representations Scalar vs. nonsealar types Possible representations Selectors and THE_ operators System-defined types Operators Type generators Concluding remarks Exercises PART II FORMAL SPECIFICATIONS Chapter 4 The Third Manifesto RM Prescriptions RM Proscriptions OO Prescriptions OO Proscriptions RM Very Strong Suggestions OO Very Strong Suggestions Recent Manifesto changes Chapter 5 Tutorial D Common constructs Scalar definitions Tuple definitions Relational definitions S alara operations Tuple operations Relational operations Relations and arrays Statements Recent language changes A remark on syntax Exercises PART III INFORMAL DISCUSSIONS AND EXPLANATIONS Chapter 6 RM Prescriptions RM Prescription 1: Scalar types RM Pres ription 2: Scalar values are typed RM Pres ription 3: Read-only vs. update operators RM Pres ription 4: Physical vs. possible representations RM Pres ription 5: Expose possible representations RM Pres ription 6: Type generator TUPLE RM Pres ription 7: Type generator RELATION RM Pres ription 8: Equality RM Pres ription 9: Tuples RM Pres ription 10: Relations RM Pres ription 11: Scalar variables RM Pres ription 12: Tuple variables RM Pres ription 13: Relation variables (relvars) RM Pres ription 14: Kinds of relvars RM Pres ription 15: Candidate keys RM Pres ription 16: Databases RM Pres ription 17: Transa tions RM Pres ription 18: Relational algebra RM Pres ription 19: Relvar names, relation selectors, and recursion RM Pres ription 20: User-defined tuple and relational operators RM Pres ription 21: Assignments RM Pres ription 22: Comparisons RM Pres ription 23: Integrity constraints RM Pres ription 24: Total database constraints RM Pres ription 25: Catalog RM Pres ription 26: Language design Exercises Chapter 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 nullologi at mistakes RM Proscription 6: No internal-level constru ts RM Prosciption 7: No tuple-level coperations RM Proscription 8: No composite attributes RM Proscription 9: No domain check override RM Proscription 10: Not SQL Exercises Chapter 8 OO Prescriptions OO Prescription 1: Compile-time type checking OO Prescription 2: Type inheritance (conditional) OO Prescription 3: Computational completeness OO Prescription 4: Explicit transaction boundaries OO Prescription 5: Nested transactions OO Prescription 6: Aggregate operators and empty sets Exercises Chapter 9 OO Proscriptions OO Proscription 1: Relvars are not domains OO Proscription 2: No object IDs Exercises Chapter 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 inferen e 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: User-defined generi operators RM Very Strong Suggestion 8: SQL migration Exercises .. Chapter 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: Single-level store Exercises PART IV SUBTYPING AND INHERITANCE Chapter 12 Preliminaries Toward a type inheritance model Single vs. multiple inheritance Scalars, tuples, and relations The running example Concluding remarks Exercises Chapter 13 The Inheritan e Model IM Prescriptions Recent inheritan e model changes Chapter 14 Single Inheritan e with Scalar Types IM Prescription 1: Types are sets IM Prescription 2: Subtypes are subsets IM Prescription 3: "Subtype of" is reflexive IM Prescription 4: Proper subtypes IM Prescription 5: "Subtype of" is transitive IM Prescription 6: Immediate subtypes IM Prescription 7: Root types disjoint IM Prescription 8: Scalar values with inheritance IM Prescription 9: Scalar variables With inheritance IM Prescription 10: Specialization by constraint IM Prescription 11: Assignment with inheritance IM Prescription 12: Bquality etc . with inheritance IM Prescription 13: Join etc . with inheritanc e IM Prescription 14: TREAT IM Prescription 15: Type testing IM Prescription 16: Read-only operator inheritanc e and value substitutability IM Prescription 17: Operator signatures IM Prescription 18: Read-only parameters to update operators IM Prescription 19: Update operator inheritan e and variable substitutability IM Prescription 20: Union, dummy, and maximal and minimal types Exerc ises Chapter 15 Multiple Inheritance with Scalar Types An introductory example Type graphs Least specifi types unique Most specifi types unique Remarks on operator inheritance Exercises Chapter 16 Inheritance with Tuple and Relation Types IM Prescription 21: Tuple/relation subtypes and supertypes IM Prescription 22: Tuple/relation values with inheritance IM Prescription 23: Maximal and minimal tuple/relation types IM Prescription 24: Tuple/relation most spe ifi types IM Prescription 25: Tuple/relation variables with inheritance Some implications of IM Prescriptions 21-25 Exercises APPENDIXES Appendix A A New Relational Algebra Motivation and justification REMOVE, RENAME, and COMPOSE Treating operators as relations Formal definitions How Tutorial D builds on A Appendix B A Design Dilemma? Encapsulation Discussion Further considerations Appendix C Types and Units Type definition Selectors THE_ operators Computational operators Display operators Type constraints A more complex example Appendix D What Is a Database? Updating the database Databases vs. tuples Appendix E View Updating Date's appoa h Assumptions and notation A loser look at relational assignment A model of updating A loser look at constraints Updating restrictions Updating intersections Updating unions Updating differences Nested updates Updating extensions Updating joins Updating projections Some remarks on orthogonality A remark on multiple assignment Summary Darwen's approach Appendix F A Closer Look at Specialization by Constraint The 3 out of 4 "rule" What does inheritance really mean? Benefits of S by C What about objects? Implementation considerations Appendix G A Closer Look at Structural Inheritance An introductory example Tuple types, values, and variables Subtables and supertables Scalar types revisited Structural inheritance with fewer tears Appendix H A Comparison with SQL RM Prescriptions RM Proscriptions OO Prescriptions OO Proscriptions RM Very Strong Suggestions OO Very Strong Suggestions IM Pres riptions Appendix I A Grammar for Tutorial D Appendix J References and Bibliography Index