Databases built using the relational
model use a separate, uniquely-structured table for every
different type of data (customers, orders, products etc). Each table
comprises a number of columns: customer number, name, address and
To build and maintain applications, programmers have
to know the precise structure of every table and the meaning of
As applications are developed, the database's structure
becomes embedded in the programs, so when users' requirements change,
each affected program has to be modified by a programmer with precise
knowledge of that structure.
When the relational model was invented in 1970, a
large application would have comprised maybe 50 tables and 100 programs.
Today, enterprise applications can comprise 20,000
tables or more, and correspondingly vast numbers of programs. This
is why modern database applications are so costly to build and maintain.
By contrast, the associative model uses a single,
common structure for all types of data. Information about the logical
structure of the data and the rules that govern it are stored alongside
the data in the database.
This allows programmers to work at a higher level
of abstraction without having to know the structure of every data
item, developing truly reusable programs that can operate on every
type of data without modification.
Ted Codd, the inventor of the relational model, said
"Future users of large data banks must be protected from having
to know how the data is organized in the machine."
The aim of Codd's relational model was to free programmers
from having to know the physical structure of data
The aim of the associative model is to free them
in addition from having to know its logical structure.