# Fifty Years of Relational #wwdvc/2023 #person/Chris-Date ## Part I. ### Background _**Part I: Topic Outline**_ 1. Original contributions 2. Historical context 3. Battles for acceptance 4. Milestones > Theory is practical! It’s hard to believe the relational model has been around now for over half a century!  But it has—it was born on August 19th, 1969, when Codd’s first database paper was published.  And Chris Date was instrumental in making it all happen, working closely with Codd for many years and publishing the first, and highly influential, book on the subject in 1975.  In this unique presentation, Chris offers his own perspective on those fifty years.  No database professional can afford to miss this one of a kind history. The presentation is in two parts, corresponding roughly to the first 25 years and the second 25 years, respectively.  Part I traces the development of relational technology from its early theoretical beginnings to its total dominance of the database marketplace (albeit in an unfortunately imperfect form) by the mid 1990s.  Part II explains how the industry then began to lose its way … It considers in some depth various claimed alternatives to the relational model, and explains why those alternatives are doomed to eventual failure.  It also shows how relational technology has led to success in a variety of important research areas, and it touches on issues where work still remains to be done. ### Original contributions #### Codd's early papers 1. derivability, redundancy, and consistency of relations stored in large data banks (1969) 2. A relational model of data for large shared data banks (1970) 3. relational completeness of data base sublanguages (1972) 4. further normalization of the data base relational model (1972) 5. interactive support for non-programmers: the relational and network approaches (1974) #### Codd's achievements 1. made db management a science 2. introduced the "data model" concept 3. defined relational algebra, relational calculus > *I see relational theory as simply a body of theory to which many people are contributing in different way* > - Ted Codd #### Implementation - System R (1976) - Ingres (1976) - IS/1 and PRTV (1976) - Query by Example (1975) - Optimization (1972) #### Dependency Theory - "dependency structures of data base relationships" -W.W. Armstrong (1976) ### Historical context 1. CODASYL 2. DL/I (IMS user language) - Relational really is different than the above! - not just a "better CODASYL" - relational advocates did themselves a major disservice in the early days by arguing relations vs. hierarchies - Relational is fundamental! ### Battles for acceptance - In 1973, this British computer science society ran the first relational database conference, in London - C.J. Date opened for Ted Codd - Ted Codd ices IBM's IBS tool - In 1972, Ted and CJ were on a panel in Miami Beach - In 1974, CJ meets with GUIDE (IBM) DB Programming Language Working Group - GUIDE and SHARE were the two biggest IBM user groups - CJ was brought in to talk about relational - In 1975, Codd wrote to an IBM manager suggesting that they take on relational as a long term strategy - They were disrespectful, in a very British way - "*Respectfully, we think this is interesting. Please supply us with the following....*" - "The Great Debate" - Charlie Bachman vs Tedd Codd - CODASYL (Charlie) vs. Relational (Tedd) - 1974, Ann Arbor, Michigan - Tedd wins hands down ### Milestones - 1970: Codd's CACM Paper - In CJ Date's opinion, the single most important paper for the relational database - 1970-1971: MacAIMS (Goldstein & Strand) - 1971: Inventions of the "suppliers and parts" V1 database (Codd) - 1971-1975: IS/1 & PRTV (Codd and others) - proper relations (no dupes allowed, proper attribute names) - user language cleanly based on relational algebra - lazy eval - user defined operations - 1974: the great debate - 1970-1975: System R - 1977-1979: Early relational product announcements: - Oracle, Ingres, DB2 - 1981: Codd wins the Turing Award - 1986, 1989, 1992: the first three versions of SQL standards come out - 1985: Codd's *Computerworld Articles* - RM/V1 - 12 rules - In Date's opinion, these papers were terrible! not independent, not achievable - 1987: Tandem NonStop SQL - 1990: Relational model V2 - Date's opinion, these were worse! > SQL/1986: Intersection of existing implementations > SQL/1989: Added optional support for PKs and FKs > SQL/1992: Added huge number of new features... but just a confidence trick! - 1988-1996: "Object Relational", marketing term that vendors dreamt up to hid the fact that they weren't fully relational ## Part II. **Part II: Topic Outline** 1. Replacing relational? 2. Why relational won’t be replaced 3. The Third Manifesto 4. Research topics and successes ### Replacing relational? #### Background - Relational is a genuine paradigm shift - truly foundational - Telling that nobody has managed to develop a new database theory in the last 50 years - Date's opinion: in 100 years, no one will have supplanted this > *If you don't know what the relational model is, then you run the risk that people that come up with new ideas, competing ones, you might let them get away with it* For example: "Computer science ahas seen many generations of data management... now we're on the verge of another generation: object management. That objects will replace relations..." -Charles Babcock "Relational Backlash" *Computerworld* (1993) "Don't Mix Pointers and Relations!" (1996) #### Attempts to replace 1. OO - for DBs, not just programming 2. XML 3. E/R 4. The associative model 5. The semistructured model 6. NoSQL 7. Key-value stores 8. Graph DBs ### Why relational won’t be replaced - because it's rock solid! - it's based on **set theory** and **logic**.... the basis of most mathematics! - if we have a problem with relational model, then we have a lot of bigger problems on our hands ### The Third Manifesto - "*Databases, Types, and the Relational Model: The Third Manifesto*" - CJ Date, 2007 - the manifesto is a contribution of dotting a few i's and crossing a few t's left over from Tedd Codd - evolution, not revolution - clarified logical difference between relations and relvars - relational comparisons - improved understanding of relational algebra, including relative significance of various operations and appreciation of importance of relations of degree zero - new operators (e.g. EXTEND, MATCHING) - image relations - clarified "first normal form" and embraced relation valued attributes - improved understanding of updating - improved understanding of integrity constraints, plus a few good theoretical results - clarified relationship between RM and logic - clarified the true nature of **domains** (are they the same thing as computer science "types"? Yes, says Codd) #### Type Theory 1. relations have attributes 2. attributes have types - therefore... 3. "*Databases, Types, and the Relational Model: The Third Manifesto*" - CJ Date, 2007 - although the book is on Amazon in print for $250, [it's also available for free, from CJ Date, here](https://www.dcs.warwick.ac.uk/~hugh/TTM/DTATRM.pdf) - a detailed study of the impact of type theory > "Please remember this from tonight's talk: the question of what types are supported is orthogonal to the question of support for the relational model as such... > TYPES ARE ORTHOGONAL TO TABLES" > - CJ Date #### Why The Third Manifesto This was an abstract blueprint for the design and language of a proper database system. 1. lack of understanding of RM - early papers are quite daunting - goalpost moving 2. relational backlash 3. SQL 4. "the great blunder" To summarize, a relational system that did domains right would be able to do all of the things that OO advocates claim their systems can do and relational systems can't. In other words, relational vendors had failed to implement the relational model. ### Research topics and successes #### Relations vs. Relvars 1. Relations are schemas of models 2. Relvars are rows of models #### Contributions 1. implementation 2. language design 3. business rules, predicates, and constraints 4. view updating 5. type inheritance 6. temporal data 7. database design 8. missing information