Bruce Lindsay on Codd's relational legacy
How they made it work
Thanks to IBM's Bruce Lindsay for some more thoughts on the value of Tedd Codd's relational work. Bruce worked on System/R with Gray and Chamberlin, whose words about his legacy you can find here. Codd died last Friday.
"Ted's idea was tremendously important," he says, and explains how.
Unlike some inventions, such as the wheel, the relational database is a work in progress. The inventor of the wheel, could, once he had the general roundness figured out, sit back and consider a job well done. But relational databases required "hundreds of thousands algorithmic innovations" to make it work well," Bruce reminded us. And this is an ongoing challenge.
Which in turn demonstrates that technical innovation in the computer systems field is far from over.
Lindsay also stressed that resilience and data integrity - specifically the ability to recover data - were also crucial factors in turning Codd's relational theory into reality. Chamberlin also noted this when we spoke yesterday.
When you can't trust the query results, it's time to fix the database. (Assuming it's fixable).
Some database concepts only became apparent when the implementers set to work.
Lindsay cites NULLs, which are not the same as zero.
"There has to be a description of out-of-band data: where you don't know the answer or where it doesn't apply."
"For example if you have a census database, and a table for sex and a table for pregnancies, then a 'no' for male pregnancies is irrelevant.
"That was a radical realization. People aggregate databases and zero is not the right answer."
"But Ted's idea - that there were relationships between records - was tremendously important. In some cases there was a new word for the same concept. Ted called a record a row.
"In the navigational models of the day, relationships were explicitly represented one way or another by inclusion or direct references."
"The revolutionary notion - considering the powers of computers of the day - was about relationships. He found a new way of representing data and the structure was there whether you used it or not."
This was very powerful, he says, and IBM found that its customers wanted relational databases even at they were more expensive - in terms of time and hardware - than their predecessors, because of the flexibility they offered.
"You could simply express a new predicate."
"In the very early days of SQL our first customers would tell us that it would take three and half ours before they could get an answer.
"Our executives would say, 'we're very sorry to hear it, we'll get back to the lab'."
"But the customers said, "Hang on. It does, but the results are telling me about my biz that I didn't know before."
In a structured database you have to know what the questions are.
"The ability to ask about relations that the data designer didn't have in mind when they were designing the layout is a key contribution to the technology."
How the relational word spread
With "relational" almost synonymous with databases now, how did the concept overcome these early, slow implementations?
"Two or three things have conspired to deal with that problem."
"Firstly there was the huge increasing in processing power. Secondly there were a ton of algorithmic innovations. And probably the most significant one was the invention of the SQL language."
"The system guy has problem of how to do it - that was the key technology contribution of System/R.
"The system looked at all the ways of doing it, and had to estimate the cost of doing it and pick the cheapest one. Cost estimated query optimization was a key contribution. But there are many clever methods of doing it along the way."
"The ability of today's systems to recover the database to a consistent state was tremendously important for the ability of organizations to rely on these things," he told us.
"The reliability technologies that were developed by System/R, and other systems, made it possible for organizations to rely on them."
In an age when disaster recovery can be regarded as a dispensible line-item, the converse is also true. One is more likely to trust people who value data integrity highly.
Thanks to the System/R team for their input.®