R20/Consultancy B.V. - The website of Rick F. van der Lans

R20/Consultancy B.V.

The website of Rick F. van der Lans

Home page
Up

Ted Codd heeft weer gelijk (*)

Auteur: Rick F. van der Lans
Geschreven: mei 2003
Gepubliceerd in: DataNews jaargang 2003 nummer 17

Lang, lang geleden, toen Java nog niet bestond, het Internet hooguit iemand’s droom was, Bill Gates nog niet zijn eerste miljoen had verdiend en het mainframe nog op aarde regeerde, was er een man die in zijn eentje de relationele theorie bedacht. Ted Codd, in die tijd een IBM researcher, was eind van de jaren zestig zijn tijd hiermee ver vooruit. Nu zijn bijna alle informatiesystemen qua gegevensopslag volledig afhankelijk van zijn theorie. Zij was namelijk de grondslag voor de succesvolle databasetaal SQL. 

In zijn eerste artikelen introduceerde hij de bouwstenen waarmee wij vandaag allemaal vertrouwd zijn, zoals tabel, kolom en primairesleutel. Maar daarnaast bedacht hij ook nog vele andere begrippen, waaronder data independence ofwel gegevensonafhankelijkheid. Hiermee bedoelde Codd dat voor elke databaseserver, die pretendeert de relationele theorie te ondersteunen, geldt dat de buitenwereld (lees de applicaties) tabellen en kolommen zien, maar dat ze vrij zijn in het kiezen van een opslagstructuur. Hij voorzag toen al de voordelen van een scheiding tussen de werkelijke opslagstructuur en de logische presentatievorm.

Toch zijn de leveranciers jarenlang niet erg creatief geweest met het bedenken van speciale opslagstructuren. Er heeft altijd een hechte band bestaan tussen de manier waarop gegevens liggen opgeslagen en hoe ze aan de applicaties gepresenteerd worden. Pas sinds enkele jaren wordt hier door sommigen van afgestapt met alle voordelen van dien.

Databaseservers als Alterian, Nucleus en Sybase IQ bijvoorbeeld zijn aan de buitenkant gewone SQL-producten. Kijken we echter onder de motorkap, dan zien we iets anders, zij slaan namelijk hun gegevens kolom-georiënteerd op. Anders geformuleerd, in plaats van dat ze per tabel een groot aantal records bestaande uit een beperkt aantal kolomwaarden opslaan, slaan ze alle waarden van één kolom gescheiden op. Zeker voor applicaties die eerder de gegevens kolom-georiënteerd dan rij-georiënteerd manipuleren, geeft dit een performance verbetering. Want alleen de kolomwaarden die gevraagd worden, worden van de schijf gehaald. Dit verbetert aanzienlijk de verwerkingssnelheid van de zware queries in datawarehouses, want deze zijn erg kolom-georiënteerd.

Een ander voorbeeld betreft de fameuze taal XML. Voor het opslaan van XML-documenten bieden diverse databaseleveranciers oplossingen. In Release 2 van Oracle9i is Oracle met een conceptueel elegante oplossing gekomen. De hiërarchische XML-documenten worden in ‘geneste’ tabellen opgeslagen. Genest betekent dat tabellen binnen tabellen worden opgeslagen. Hiermee kan de hiërarchische structuur van een XML-document nagebootst worden. Het grote voordeel hiervan is dat als er bepaalde applicaties zijn die de XML-documenten ook hiërarchisch willen verwerken, dat ook kan. Maar omdat geneste tabellen zelf weer tabellen zijn, kunnen we er ook op de klassieke manier naar kijken: als platte tabellen. Dus ook hier een scheiding.

Datzelfde Oracle is nu ook in staat om enkele tabellen fysiek op te slaan als een zogenaamde multi-dimensionale kubus. De SQL-vragen die afgevuurd worden op de tabellen, worden onder de motorkap gewoonweg vertaald naar de kubus. Alweer ziet de buitenwereld tabellen, maar onder de motorkap zien we een geheel andere structuur.

Eindelijk is het dus zover. Leveranciers hebben ontdekt wat de voordelen kunnen zijn van Codd’s data independence. Hopelijk blijven ze creatief, zodat er meer verschillende soorten opslagstructuren verschijnen waarmee bepaalde applicaties versneld kunnen worden. 

De komst van vele opslagstructuren zal echter wel het fysieke proces van databaseontwerp bemoeilijken. Welke opslagstructuur kies je nu voor welke tabel? Maar ja, dat is een prijs die we graag allemaal willen betalen.

Ted Codd heeft weer bewezen zijn tijd ver voor te zijn. Jammer dat hij al door zovelen vergeten is.

(*) Na het insturen van de column, vernam ik dat Ted Codd op 18 april jongstleden overleden is. Dit is een serieus verlies voor ons vakgebied. Zijn relationele theorie was, is en blijft voor altijd baanbrekend.

 

If you have any questions or remarks concerning this website, please send us an email: info@r20.nl.
Copyright © 2009 R20/Consultancy B.V.