In a paper he wrote in 1979 (“Extending the Database Relational Model to Capture More Meaning,” ACM TODS 4, No. 4, December 1979), Codd proposed a certain design discipline, which (simplifying slightly) can be described as follows:
Let E be an “entity type,” and let ID be a data type such that every entity of type E has exactly one primary identifier (my term, not Codd’s), of type ID. For example, E and ID might be the entity type “suppliers” and the data type “character string,” respectively.
Let P1, ..., Pn be a set of “property types” such that every entity of type E has at most one property of each of the types P1, ..., Pn. For example, in the case of suppliers, P1, P2, and P3 might be the property types “name,” “status,” and “city” (so n = 3 in this example). Note: I’m assuming for the sake of the present discussion (only) that a given supplier can have any subset of the three properties, including the empty set in particular.
Then the database should contain:
Exactly one E-relvar, containing ID values for those entities of type E that exist at any given time, and
Exactly one P-relvar for each Pi (i = 1, ..., n), containing (ID value, Pi value) pairs for each entity of type E that exists at any given time and has a property of type Pi at that time.
I’ll refer to this discipline as “the RM/T discipline,” since it’s part of what Codd referred to, in that 1979 paper, as “the extended relational model RM/T” (T for Tasmania, where Codd first presented his ideas for that extended ...