Relationele databasetechnologie. De technologie waarover het meest wordt gesproken en waarvan het minst wordt begrepen. Chris Date, een van de bekendste specialisten op het gebied van relationele databases ter wereld, was voor het seminar Database Systems in Nederland en sprak daar wederom zijn zorg uit over de huidige relationele kennis en producten.
|
Discussie Discussieer mee op het forum op Computable.nl: SQL: relationeel drama of niet? |
“Dat klopt. Ik ben vanaf het begin betrokken bij het relationele model en weet dus hoe een echte relationele taal eruit zou kunnen zien en hoe een echt relationeel product zou moeten zijn. SQL is een voorbeeld van een taal die is ontworpen door mensen die niet weten hoe ze een taal moeten ontwerpen. Het is verschrikkelijk, er zijn zoveel dingen onjuist. Het allergrootste probleem met SQL is dat het het relationele model niet ondersteunt. Mensen denken dat als ze SQL beheersen, ze het relationele model kennen, maar dat is niet zo.”
Toch is SQL ontworpen voor de relationele database.
“SQL is voor het relationele model wat de Amerikaanse overheid is voor democratie. Je hebt een ideaal, de theorie, en je hebt de praktijk. T.S. Elliot zei ooit: ‘Tussen het idee en de realiteit valt de schaduw.’. Ik moet wel zeggen dat SQL beter is dan hetgeen we daarvoor hadden, zoals IMS en DL1. Het probleem is alleen dat we een relationeel systeem zouden kunnen hebben waarbij de taal op z’n minst zoveel beter zou zijn geweest als SQL versus DL1.”
Heeft u nooit de neiging gehad om zelf een beter alternatief te ontwikkelen?
Verklaring Relationele database – Een relationele database is een verzameling gegevens die worden georganiseerd als een set formeel beschreven tabellen van waaruit gegevens kunnen worden opgevraagd of bewerkt, zonder dat het daarvoor nodig is om de database-tabellen te reorganiseren. SQL – Structured Query Language is een standaard interactieve programmeertaal voor het opvragen en wijzigen van informatie in een database. Ted Codd – Edgar Frank (Ted) Codd, wiskundige en computer scientist. Werkzaam bij IBM toen hij het relationele model ontwikkelde in 1970. Stierf in 2003 op 79-jarige leeftijd aan een hartaanval. Chris Date – Christopher J. (Chris) Date kwam in aanraking met Codd’s relationele model toen hij met hem samenwerkte bij IBM. Momenteel is hij de voornaamste onderhouder en ontwikkelaar van het relationele model, samen met Hugh Darwen. Hugh Darwen – Werkte van 1967 tot 2004 bij IBM UK en is sinds het begin betrokken bij het relationele model. Hij creëerde het eerste volledig relationele systeem, IBM BS12. |
Dat is toch vreemd, dat er slechts één taal is die aan het relationele model voldoet?
“Heel weinig mensen begrijpen het relationele model. Ze begrijpen de producten van Oracle of Sybase, maar ze snappen niet de theorie waarop die producten zijn gebaseerd. Wanneer de producten dan afwijken van die theorie, realiseren ze zich dat niet. Ze realiseren zich niet dat de theorie bestaat voor goede praktische redenen en dat wanneer je daarvan afwijkt, je in problemen komt. Een triviaal voorbeeld hiervan is bijvoorbeeld duplicate rijen in een tabel. Om theoretische en praktische redenen is dit niet mogelijk in het relationele model, maar SQL laat het je rustig doen. Je moet de theorie van het model weten, zodat je jezelf de discipline op kan leggen, daar waar SQL dat had moeten doen, maar het niet doet.”
Wordt het ooit beter? Zal een D-taal SQL vervangen?
“Wie weet. Ik vergelijk het met Cobol. Cobol is een erg oude ontwikkeltaal, maar bestaat nog steeds en zal nooit verdwijnen. We zullen het niet gebruiken als we het kunnen vermijden. Als er meerdere manieren zijn om een applicatie te bouwen, zal Cobol altijd het laatste toevluchtsoord zijn. Voor mij is SQL zoals Cobol. Als we iets kunnen vinden dat beter is, zullen mensen daarop overgaan. SQL zal nooit verdwijnen, maar ik hoop dat het het laatste toevluchtsoord wordt wat betreft databasetalen. Het is mogelijk om iets beters te bouwen.”
Kennis van het relationele model verdwijnt, ook bij de leveranciers. Wat betekent dat voor de toekomst?
“Die ziet er somber uit. Ik zie in Amerika dat universiteiten bijvoorbeeld geen database-integriteit onderwijzen. Dat is ongelooflijk. Mijn collega Fabian Pascal is sinds kort columnist in Database Magazine (uitgeverij Array – red.). Als je voorbeelden wilt van hoe weinig men van het relationele model snapt, zou je zijn columns moeten lezen. In het meest recente nummer neemt hij een boek dat is geproduceerd door Oracle, dat veronderstelt de ideeën achter de relationele database uit te leggen, maar Pascal vernietigt het gewoon. De Amerikaanse universiteiten onderwijzen het relationele model niet eens meer. Ze onderwijzen SQL en Oracle. Ik weet niet precies hoe dat hier in Europa zit, maar ik hoorde van Rick (van der Lans – red.) dat zijn boek, Introduction to SQL, wordt gebruikt door veel universiteiten hier in Nederland. Dus
Meer informatie De twaalf regels van Codd www.frick-cpa.com Producent van Dataphor www.alphora.com Informatie over Darwen, Date en The Third Manifesto www.thethirdmanifesto.com Website ter promotie van het relationele model met venijnige aanvallen op de it-industrie. Door Chris Date en Fabian Pascal www.dbdebunk.com Interview met Chris Date door DBMS uit 1994 www.dbmsmag.com Website Database Magazine www.dbm.nl |
De huidige databaseproducten scoren niet zo goed op de twaalf regels van Ted Codd. Zijn de huidige systemen goed genoeg?
“Nee, absoluut niet. We moeten wellicht toe naar een heel nieuw databasemodel. Ook daarmee ben ik bezig. Steve Tarin heeft een implementatietechnologie ontwikkelt, genaamd het ‘Transrelational Model’. Daarbij gaat het om een heel nieuwe manier van database bouwen, eigenlijk vanaf nul. Alles wat we dachten te weten over het bouwen van relationele databases is fout. Indexen zijn bijvoorbeeld niet meer nodig, er is een andere manier om het te doen. Dus er is een nieuwe technologie op komst, een implementatietechnologie die ons de mogelijkheid geeft om nieuwe producten te bouwen die voldoen aan het relationele model.”
Zullen de huidige leveranciers ooit terugkeren naar het relationele model?
“Ze zullen doen wat geld oplevert, dus we moeten het aantrekkelijk voor hen maken. Er zijn twee manieren waarop dat kan gebeuren. De meest voor de hand liggende is druk vanuit de klanten. Als ik klanten kan laten zien hoe het zou moeten zijn, kunnen zij dat vervolgens van hun leverancier eisen. Een andere mogelijkheid is concurrentie, maar dat waag ik te betwijfelen. Ik denk niet dat een klein, onbekend bedrijf ineens met een beter product komt waardoor bestaande leveranciers hun producten veranderen. But you never know what’s around the next corner.”< BR>
Codd’s relationale regels
Edgar Frank Codd ontwikkelde in 1970 het relationele datamodel. Hij publiceerde een lijst met twaalf regels die een ideale relationele database definieerden. Deze zijn een richtlijn bij het ontwerp van relationele databases. Vooralsnog voldoet geen van de commerciële databases aan alle twaalf de regels. Hieronder een beknopt overzicht.
- De informatie regel
Alle data moet aan de gebruiker worden aangeboden in de vorm van tabellen. - Gegarandeerde toegang regel
Alle data moet zonder tweeslachtigheid toegankelijk zijn. Dit kan worden bereikt door de combinatie van tabelnaam, ‘primary key’ en kolomnaam. - Systematische afhandeling van NULL-waarden
Een veld moet leeg kunnen blijven. Dit verlangt de ondersteuning van een NULL-waarde, die anders is dan een lege string of een numerieke waarde nul. - Zelfbeschrijvend
Een relationele database moet toegang bieden tot zijn structuur op dezelfde wijze als er toegang is tot de data. Dit kan worden bereikt door de structuurdefinitie in speciale systeemtabellen op te slaan. - Eén taal om te communiceren met de database
De database moet tenminste één duidelijk beschreven taal ondersteunen waarmee het mogelijk is om data te definiëren, te manipuleren, die integriteit veilig stelt en waarmee databasetransacties kunnen worden beheerd. - Alternatieven voor het bekijken van data
Data kan aan de gebruiker worden aangeboden in verschillende logische combinaties, views of virtuele tabellen genaamd. Views moeten op dezelfde wijze kunnen worden gemanipuleerd als de tabellen in de database. - High-level insert, update en delete
Data uit een relationele database wordt weergegeven in sets die uit verschillende tabellen of rijen kan worden gehaald. Dit betekent dat manipulaties als insert, update en delete moeten worden ondersteund op set-niveau en niet op een enkele rij in een enkele tabel. - Fysieke data onafhankelijkheid
De gebruiker is onafhankelijk van de fysieke opslagmethode. Veranderingen aan de hardware of architectuur hebben geen invloed op de toegang van de gebruiker tot de database. - Logische data onafhankelijkheid
De manier waarop een gebruiker data ziet, moet niet veranderen als de logische structuur (tabelstructuur) van de database wijzigt. - Integriteit onafhankelijkheid
Met data-integriteit wordt de consistentie en juistheid van gegevens bedoeld. De databasetaal zou op integriteit moeten controleren bij invoer van een gebruiker. - Distributie onafhankelijkheid
De gebruiker moet niets merken van het feit of een database gedistribueerd is (of delen van de database zicht op meerdere plaatsen bevinden). - Data-integriteit kan niet worden ondermijnd
Er mag geen andere manier zijn om de databasestructuur te manipuleren anders dan de databasetaal.
Het transrelationele model
Het transrelationele model is volgens Chris Date de belangrijkste vooruitgang sinds Ted Codd zo’n 35 jaar geleden het relationele model ontwikkelde. In essentie is het transrelationele model een implementatietechnologie. Toen het relationele model voor het eerst ten tonele verscheen, werd door sceptici het verwijt gemaakt dat het onmogelijk was om het op een efficiënte manier te implementeren. Het transrelationele model biedt een nieuwe benadering van implementatie, een die dramatisch verschilt van de benaderingen die in het verleden zijn geprobeerd en die veel te wensen overlieten (inclusief alle benaderingen die men in de huidige SQL-producten tegenkomt). Een aantal specifieke kenmerken van de transrelationele benadering zijn onder meer dat de gegevens op effectieve wijze tegelijkertijd worden opgeslagen in veel verschillende sorteervolgordes, dat de hoeveelheid gegevens slechts een fractie beslaat van de ruimte die tegenwoordig nodig is voor een conventionele database, dat indexen en andere conventionele manieren van benaderen overbodig zijn geworden, dat het fysieke databaseontwerp volledig geautomatiseerd kan worden en dat optimalisatie veel makkelijker is dan bij de huidige systemen. Chris Date trekt momenteel de wereld over om workshops en seminars over dit onderwerp te geven.
Lees ook de bijdrage van Fabian Pascal op http://www.dbdebunk.com/page/page/1548800.htm
SQL, een levende taal voor database-interactie
|
SQL als een relationele query taal
De taal SQL laat zich gebruiken als een relationele query-taal, maar daarbij moet de gebruiker bewust een aantal eigenschappen niet (meer) gebruiken. De belangrijkste hierin zijn de aannames rond de opslag en ordening van informatie. Veelal wordt aangenomen dat de nieuwe records achteraan worden geplaatst, tenzij er een ‘clustering key’ is aangemerkt. Het relationele model doet echter in het geheel geen uitspraak over de volgorde waarin informatie wordt toegevoegd, noch de stabiliteit van een eenmaal gerealiseerde volgorde. Helaas gaan veel applicaties wel uit van de gedachte dat record 1 wordt gevolgd door record 2 en dat dit in lengte van dagen zo zal zijn. In ieder geval tot dat de DBA een database reorganisatie uitvoert.
Revolutionaire implementatietechnieken
In de implementatie van relationele systemen zijn vele wegen uitgeprobeerd en is de techniek in de huidige generatie commerciële systemen in belangrijke mate een legacy-probleem. Echter, het claimen van een nieuwe, revolutionaire implementatie-techniek gebaseerd op welbekende compressie-methoden zonder deze ter toetsing voor te leggen aan de wetenschappelijke wereld, noch de concrete databasetoepasser past meer in het beeld van een commerciële PR-activiteit dan een fluwelen revolutie.
De website http://www.requiredtech.com is overduidelijk leeg, men moet het doen met de patentaanvraag, waarin duidelijk is dat men goed gekeken heeft naar (overigens verouderde) MonetDB-technologie die is ontwikkeld aan het CWI en beschikbaar is in de open source-gemeenschap. De discussies in de internetfora richten zich meer op ‘non-disclosure-agreements’ dan op inhoud.
‘Er zijn meer zaken relevant dan alleen pure theorie’
|
Bij het ontwikkelen van een standaard geldt dat er meer zaken relevant zijn dan een ‘pure implementatie van de theorie’. Er moet ook rekening worden gehouden met bestaande kennis, vaardigheden et cetera, alsmede met (toekomstige) uitbreidingen et cetera. Zo kon Oracle de SQL implementatie relatief snel uitbreiden met extensies voor bijvoorbeeld geografische mogelijkheden, object relationele eigenschappen enzovoorts. Je kunt discussiëren over het ‘relationele model’ gehalte van dit soort uitbreidingen, maar het staat buiten iedere discussie dat het de productiviteit en daarmee de zakelijke efficiëntie en effectiviteit enorm heeft verhoogt.
Snelle kennisopbouw
Het belangrijkste voordeel van een open standaard, zoals SQL, is dat de wereld relatief snel kennis kan opbouwen, nieuwe producten kan ontwikkelen en zich meer kan richten op het toepassen dan wel realiseren van oplossingen in plaats van. op ‘low level’ zaken. Open standaarden brengen flexibiliteit, (vrije markt) keuze aan implementaties, kostenbesparingen, kennis en ervaring et cetera met zich mee.
Ik ben benieuwd wat Martin Kersten en Hans Bos ervan vindt dat zijn hoofd in een promoverhaal voor de schrijfsels van Date gebruikt worden.