Book

A Relational Model of Data for Large Shared Data Banks

by E. F. Codd · 1970 · 1 reading card

AuthorE. F. CoddShelvesData warehousing

1 card

  1. A Relational Model of Data for Large Shared Data Banks · 1970

    Every attribute depends on the key, the whole key, and nothing but the key.

    In 1970 Codd proposed something that now looks obvious: tables (relations) with rows and columns, primary keys that identify a row and foreign keys that link tables, plus a declarative language in which you state the result you want rather than which files the machine should open. Normalisation comes from the same idea: if a customer's address appears in a thousand orders, you correct it in a thousand places or in none. Third normal form fits in one sentence: every attribute depends on the key, the whole key, and nothing but the key. For a data warehouse, normalisation is a choice, not a law. Sources are normalised so they can write without anomalies; the warehouse denormalises on purpose so it can read without ten joins. What stays untouched is Codd's principle: the logical model separated from the physical one. That is why you can change indexes, partitions and storage formats without rewriting queries — and why the later lessons on indexes and memory never touch the SQL at all.

    Future users of large data banks must be protected from having to know how the data is organized in the machine (the internal representation).

    Open the card