This is an informal description of E.F. Codd’s model [2] that was originally drafted as part my contribution to a special edition of the IEEE Annals of the History of Computing devoted to the history of relational model. It turned out to be too long and its level of detail was not thought to be suited to my article, which was to serve as the introductory article to that edition. The terminology is that used in The Third Manifesto by Chris Date and myself. Our terminology is mostly the same as Codd’s but we made a few changes in an attempt to clear up some matters that had given rise to confusion over the years. The notation used in my examples is taken from Tutorial D [3,4], a language Chris Date and I devised as an example for teaching purposes. My description is in three main sections. First, in Definitions, I describe the objects that constitute a relational database. Then, in Relational Algebra, I describe the operators that are defined in the model for operating on those objects. Finally, Database Integrity covers the mechanism the model prescribes for maintaining consistency in a database. Differences between the current definition and Codd’s original are mentioned in footnotes.
[1]
C. J. Date,et al.
Databases, types and the relational model : the third manifesto
,
2007
.
[2]
E. F. Codd.
Derivability, redundancy and consistency of relations stored in large data banks
,
2009,
SGMD.
[3]
Ronald Fagin,et al.
Inclusion dependencies and their interaction with functional dependencies
,
1982,
PODS.
[4]
Stephen Todd,et al.
An algebra of relations for machine computation
,
1975,
POPL '75.
[5]
E. F. Codd,et al.
A relational model of data for large shared data banks
,
1970,
CACM.