Datavirtualisatie
Heeft SQL nog wel toekomst? Laatst bijgewerkt: 8 november 2018

Recentelijk dook ik in de archieven op zoek naar oude artikelen die ik jaren geleden heb geschreven. Noem het een ‘walk down memory lane’. Stiekem was ik benieuwd of er nog materiaal tussen zat dat anno 2018 nog steeds relevant is. Eerder schreef ik al over de De eeuwige weerstand tegen nieuwe technologie. Na wat meer research viel mijn oog op een oud artikel over SQL.

Eind zeventiger jaren begon ik mijn IT-carrière in een researchlaboratorium van Control Data in Brussel. Hier deden we onderzoek naar semantisch datamodelleren en nieuwe databasetechnologie. Het lab werd geleid door Professor G.M. Nijssen. Het bekendste product dat uit dit lab voortkwam is NIAM. Dit staat voor Natural Language Information Analysis Method, maar volgens zijn assistenten stond de N voor Nijssen’s. Modeleringtechnieken zoals FCO-IM (Fully Communication Oriented Information Modeling) en ORM (Object Role Modeling) zijn hier later van afgeleid.

Ook werd onder leiding van Professor Robert Meersman een vraagtaal ontworpen en ontwikkeld genoemd: RIDL. Dit stond voor Reference and Idea Language, maar daarvan hadden zijn assistenten het vermoeden dat het voor Robert’s Idea Language stond. Een van mijn taken was het bestuderen van een ‘concurrerende’ taal die steeds populairder werd. Ik moest op zoek naar de zwakke plekken van die taal. Je raadt het waarschijnlijk al, dat was SQL! Iedereen in het lab vond het een matige taal. RIDL was veel beter. De algemene mening was dat SQL het niet lang zou volhouden. Nu weten we wel beter. In 2001 wijdde ik er onderstaande blog aan:


De uitvinder van SQL

September 2001 – Ogh Visie

Het donkergroene gebouw bevindt zich op de zonovergoten bergrug die de stad San Jose scheidt van de Grote Oceaan. De met geelkleurig gras bedekte bergrug maakt weer duidelijk waarom Californië de “Golden State” genoemd wordt. Het gebouw is het domein van één van IBM’s bekendste research-afdelingen: de IBM Almaden Research Group. Deze groep was ooit verantwoordelijk voor het uitvinden van de eerste schijfeenheid, de RAMAC.

Tegenwoordig biedt het ook onderdak aan de groep onderzoekers die aan het einde van de jaren zeventig baanbrekend werk heeft verricht op het gebied van  databasetechnologie. Uit hun breinen ontsprong de relationele theorie (voor het eerst werd de verzamelingenleer als basis voor databases gebruikt), de interne technologie van het System R-project (wat uiteindelijk de basis voor Oracle en DB2 werd) en de databasetaal SQL.

Twee onderzoekers waren verantwoordelijk voor het creëren van SQL: Donald Chamberlin en Raymond Boyce. Laatstgenoemde is jaren geleden overleden, maar Chamberlin (57) is nog steeds actief op het gebied van databasetalen. Hij is zelfs één van de drijfveren achter de nieuwe databasetaal voor XML genaamd XQuery.

Alhoewel ik al jarenlang met SQL werk, heb ik Chamberlin nog nooit ontmoet. Ik vond het tijd voor een bezoekje waarin ik hem vragen wilde stellen over de eerste dagen van SQL. Het werd een prettig, informeel gesprek buiten in het zonnetje, met uitzicht over de daken van San Jose.

Toen Ted Codd zijn relationele theorie bedacht, introduceerde hij ook een databasetaal genaamd Alfa. Deze taal maakte intens gebruik van mathematische symbolen, waardoor ze niet op een doorsnee toetsenbord en computerscherm gebruikt kon worden. Chamberlin en Boyce, die zeer gecharmeerd waren van Codd’s ideeën, wilden een taal met de functionaliteit van Alfa creëren, maar die uit gewone woorden en letters zou bestaan en dus wel op doorsnee machines goed te gebruiken zou zijn. Codd zelf, in tegenstelling tot wat soms vermeld wordt, had weinig tot niets met het ontwikkelen van SQL te maken.

Er moest sowieso een databasetaal voor het System R-project bedacht worden, dus dat kwam goed uit. Het SQL-dialect dat voor System R bedacht werd, is uiteindelijk ook overgenomen in IBM’s commerciële producten en in die van Oracle.

De doopnaam van de taal was Sequel. Dit stond voor Structured English Query Language. De term ‘structured’ was gekozen omdat dat in die tijd populair was. Men had het toen over structured programming en structured design. De naam Sequel is dus niet gekozen, zoals sommigen denken, omdat het de opvolger van iets anders was.

Waarom de naam Sequel ooit veranderd is in SQL, is een onduidelijk verhaal. Ook Chamberlin zelf weet dit nog steeds niet precies. Een commercieel bedrijf scheen al een copyright trademark op de naam te hebben. Het probleem werd opgelost door de drie klinkers uit de naam te verwijderen en daarmee ontstond een van de bekendste afkortingen binnen de automatisering. Grappig is wel dat sommigen SQL nog steeds uitspreken als Siekwel. Ongetwijfeld is dit een erfenis.

De SQL3-standaard is een veel rijker dialect dan dat kleine taaltje dat ooit uit de pen van deze heren vloeide. Chamberlin bekende dat het nooit hun intentie is geweest dat de taal alles zou kunnen wat vandaag met de volledige SQL3-taal mogelijk is. Op de vraag of hij trots is op het succes van SQL, verscheen er een bescheiden lachje om zijn mond en een heel zacht uitgesproken bevestiging.

Als er iemand is die de mogelijkheden en ook de beperkingen van SQL kent, dan is dat natuurlijk Chamberlin zelf. Hij werkt nu aan een nieuwe databasetaal genaamd: XQuery. Een van de redenen is dat hij vindt dat SQL voor sommige toepassingen niet geschikt is, zoals het omgaan met tekstdocumenten. Bij de initiële ontwikkeling van SQL is primair uitgegaan van het werken met klassieke gestructureerde gegevenselementen. Volgens hem is het dan ook langzaam tijd voor een nieuwe taal. Over tien jaar zullen we weten of hij inderdaad de uitvinder is van een tweede succesvolle databasetaal.


SQL is een kat met negen levens

2018

Nu, meer dan vijftien jaar later, moeten we concluderen dat XQuery bij lange na niet zo succesvol is geworden als SQL. Wel kunnen we stellen dat Chamberlin’s eerste taal nog steeds ‘alive and kicking’ is, ondanks de door hem gesignaleerde beperkingen. SQL heeft het even moeilijk gehad met de komst van big data. Plots was er veel aandacht voor databasetechnologieën die geen SQL ondersteunden, maar dat is inmiddels voorbij. Voor Hadoop en bijna elke NoSQL technologie is SQL beschikbaar. Dat heet eieren voor je geld kiezen. Ook veel nieuwe, grensverleggende databaseservers, zoals memSQL en Snowflake, ondersteunen gewoon weer SQL.

Dus op de vraag uit 2001 of SQL nog wel toekomst heeft, kunnen we voorlopig nog wel volmondig ja zeggen. Het lijkt wel een kat met negen levens. Wel onvoorstelbaar dat SQL het al zo lang heeft overleefd. De meeste andere technologieën die tegelijkertijd met SQL geïntroduceerd werden, zijn verdwenen. Ik denk dat David Chamberlin en Raymond Boyce trots mogen zijn op het feit dat ze zo’n dominante en nog steeds succesvolle taal ontworpen hebben.

Denk jij dat SQL ooit een waardige opvolger krijgt?


eBook: Het logisch data warehouse
DOWNLOAD