What Makes A Database Relational?
There is a calumny being spread across the Internet. It is so deeply entrenched that many intelligent people think they understand it. It makes perfect sense. It is logical. It is understandable. But it is wrong, wrong, wrong.
Let me explain...
Back in the 1960's computers were big, noisy and very, very expensive. Information was kept in more-or-less random places and accessed by programs which were hand-coded to fetch & send the data to the right place. It was a little like writing the names of all your friends together with their phone numbers randomly on a piece of paper. How do you know which phone number belongs to which friend? Back in those early days, programmers had to know whcih item belonged with which when they wrote the programs to get the data out of the system. In the system itself, it was pretty much all over the place. A customer's phone number had to be linked to the customer's name by the programmer, every time the information was used.
Then, in 1970, along came Ted Codd with his seminal paper: "A Relational Model of Data for Large Shared Data Banks" (http://www.acm.org/classics/nov95/toc.html).
Dr Edgar Codd was born in 1923 in Dorset, England, was educated at Oxford and flew in the RAF during the war. In 1949 he joined IBM in the USA, became an IBM Fellow in 1976 and in 1981 was presented with the Turing Award, the highest industry accolade possible. Yet few people now understand his 'Relational Model'.
Most people know that relational databases store information in tables. These are just like the ordinary tables we use everyday - telephone books, TV programme listings, train timetables, league tables in sports etc.
Many people think that a database is relational if it allows you to relate information in one table to matching information in another.
Consider an order system. Customers are in one table, together with their contact details, credit limit, phone numbers etc. Orders are in another table, with the first column being the Customer Number, so you can relate the Customer to the Orders for that Customer, held in another table. Many people think this is called a 'relation'. Actually, in the Structured Query Language (SQL) which is used to manipulate relational databases, its called a 'join'.
Ted Codd showed that the table IS the relation. What he said was that if you put all this data in a table, you can see how one piece of data (Customer Name) relates to all the others (Customer Phone Number) without having to program it every time.
(Actually, what he said was something like:
"The term relation is used here in its accepted mathematical sense. Given sets S1, S1, иии, Sn, (not necessarily distinct), R is a relation on these n sets if it is a set of n-tuples each of which has its first element from S1, its second element from S1, and so on."
but he was a mathematician and a genius and I'm neither.)
In a table, for example a phone book, you can read a name in one column and you know the phone number in the next column relates to the name you just read, and not some other name on a different page. In any (vertical) column all the information is of the same type (name or phone number but not both). In each row, all the the information is related (the phone number belongs to the name in the 'name' column, and not some other name somewhere else).
So a relational database stores its data in tables. Its as simple as that. These tables may or may not join to other tables for complex queries, but if they don't, it doesn't stop it being relational.
In 1985 Ted Codd defines rules for relational databases, 12 in all, but only one of them (Rule 7: High-level Insert, Update, and Delete) talks, in passing, about joining tables. Some of the rules are still not supported by present day relational databases. Ted Codd passed away in 2003, but technology still hasn't caught up with all of his remarkable insights.
About the Author: fter more than 30 years in the IT industry,
Mike Street is a director of FastComm (http://www.fastcomm.net) w
hich specialises in information and tools to help increase sales,
including Airlook Mobile Email software, the Eye Catcher Video Phone
and the online Contact Management system, FastCRM.
He is also webmaster of his wife's Health and Beauty site Zenergie (http://www.zenergie.co.uk)