Artikel top billede

(Foto: Dan Jensen)

Nørgaard: SQL'er er også mennesker!

Klumme: Nedenstående er inspireret af en sjov snak over gode øl med en ÆLDgammel databasenørd, hvor vi øloficerede lidt over udviklingen - og pludselig kunne vi se den logiske vej frem. Men der er helt sikkert andre, mindste lige så gode "roadmaps" for vore venner SQL'erne.

Denne klumme er et debatindlæg og er alene udtryk for forfatterens synspunkter.

Da jeg begyndte at lege med SQL i 1987, var det jo ganske magisk.

Jeg kunne lære en ikke-EDB-kyndig person i Sparekassen SDS, hvor jeg arbejdede, at lave en tabel, lave en simpel form ovenpå den, og dernæst lave Insert, Delete, Update og Select.

Det var en revolution.

Subject-matter-eksperterne kunne blive EDB-kyndige, hvor man før kun kunne have den omvendte situation. Fantastisk.

Så begyndte folk for alvor at bruge SQL, og vi fik travlt med at håndtere run-away-SQL'er, SQL'er, der kørte i mange timer grundet manglende indexer, SQL'er, der låste en vigtig tabel i timevis, osv., osv.

Og vi fik hele tiden at vide af en klog mand, der hed Chris Date (fordi hans forældre tænkte, at Chris Number eller Chris Varchar lød dumt), at SQL var det VÆRST tænkelige "sprog" ovenpå en relationsdatabase, som man nogensinde havde set i Universets historie.

Han skrev stadigt tykkere bøger om, hvor dårlig SQL var. Det var hverken "Structured" eller bare "Query", endsige et "Language", og hvad han ellers (korrekt) påpegede.

Han var skidesur

Han var i det hele taget skidesur over, at IBM's amerikanske DB2-afdeling havde foreslået SQL, mens han og hans makker Codd, der var udstationeret i IBM UK, havde foreslået et sprog, som de kaldte Tasmania - og SQL, det skidt, vandt. Der manglede ortogonalitet. Der manglede ALT.

I mellemtiden stemte folket med deres fingerspidser og brugte SQL i vildskab.

Og vi fik VLDB (Very Large DataBases) - og senere VMDB (Very Many DataBases).

Vi fik data warehouses, data marts og endnu vildere ting. Så kom der data lakes, og her på det sidste kombinationen af datawarehouse og data lake, som de vitterligt har navngivet Lakehouse for at antyde, at nu kan man have enormt meget data OG enormt meget styr på samme ved hjælp af et teknisk fix, der ikke koster ret meget mere i daglige omkostninger end Elon Musks rumprogram.

Men én ting vedblev med at plage os: Uanset hvilken afsindig hardware vi satte op, så var der ALTID en tilfældig, dårligt skrevet, SQL, der kunne lægge den ned.

Dén ros skal SQL altså også have: Det er et sprog, der er "deceptively simple", og som gør, at både erfarne og uerfarne SQL-skribenter kan producere en Query From Hell.

Protip: "Select * from tabelA, tabelA, tabelA;"

Den femte puniske krig

Vi fik også Den Femte Puniske Krig mellem udviklerne og databaseadministratorerne.

De første så på databasen som noget ligegyldig storage, der bare skulle fungere via det gode princip, som SAP kaldte KIWI - Kill It With Iron. Det vil sige: Bare køb mere jern i stedet for at lave bedre SQL'er.

Databasenørderne, derimod, så på databaser som en hellig monolit, der skulle tilbedes lidt a la de store ting i Medina, og de skulle skånes for alt for åndssvage SQL'er.

De 10 værste - hver uge

Jeg kan huske en biks, hvor deres database-administrator forbitret begyndte at hænge en seddel op i kantinen hver fredag med de 10 værste SQL'er, som han havde set i løbet af ugen - og med navnet på ham eller hende, der havde skrevet den.

Det betød, at programmørerne holdt op med at være ligeglade med, hvordan deres SQL'er performede, men han dannede ingen livslange venskaber på det.

Så kom Skyen og pludselig var det sandt, at The Sky Is The Limit - det ser ud til, at vi har hardware nok til selv den værste SQL. Men jeg har en fornemmelse af, at det våbenkapløb ikke er slut endnu. Vi får se.

I mellemtiden er Verden jo gået HELT væk fra den monolitiske tankegang, som vi var så stolte af dengang i 1980'erne og 1990'erne.

Nu har vi igen VMDB, og vi har siden 1990'erne også fået fantastiske tools og features til at håndtere VMDB.

Men:

Problemerne med:

- manglende viden/interesse for god database-etik blandt programmørerne, kombineret med
- den udbredte idé om, at i Skyen er der uendelig skalering, ingen friktion og sub-zero response times

betyder, at der i de mange, mange databaser stadig produceres SQL'er, der forstyrrer alle de andre SQL'er, der bare prøver at passe deres IO-arbejde.

Jeg foreslår derfor, at vi tager hele database- og SQL-halløjet til det næste, det ultimative, niveau: OQOD - One Query, One Database.

Har knoklet for os i årtier

SQL'erne har knoklet for os i døgndrift i årtier, og hvad har takken været?

Vi lader dem slås om de få ressourcer dagligt, vi dropper deres bedste index-venner ved en fejl, og vi udsteder Kill Orders i flæng på dem og deres nærmeste.

Hver dag skal de kæmpe for livet mod en masse andre ligesindede i en lidt for lille memory pool og omgivet af alskens låse og latches.

Men det skal være slut! De skal have oprejsning. De har ALLE fortjent, efter alle disse års hårde arbejde, at få deres helt egen database.

One Query. One Database. One World. Det er det næste, logiske skridt på vejen.

SQL'er er ikke vore fjender. De vil hellere end gerne knokle 25/8/370, hvis vi blot lader dem gøre det.

De vil bare have arbejdsro

SQL'er er nemlig introverte: Alt, hvad de beder om, er arbejdsro og anerkendelse. Slut med storrumsdatabaser!

Vi er et rigt samfund, og vi SKAL have råd til at give dem deres eget databasekontor!

Lad millioner af SQL'er blomstre!

Eftertanke: I hans seneste bog skriver Chris Date i indledningen noget, der trods alt overraskede mig en del, selvom jeg i årenes løb har haft alle mulige diskussioner med ham om alt fra George Bush til kolonne-orienterede databaser:

"E. F. Codd's relational model of data has been described as one of the three greatest inventions of all time (the other two being agriculture and the scientific method), and his receipt of the 1981 ACM Turing Award, the top award in computer science, for inventing it was thoroughly deserved. The papers in which Codd first described his model were staggering in their originality; they had, and continue to have, a huge impact on just about every aspect of the way we do business in the world today. And yet few people, even in the professional database community, are truly familiar with those papers."

Skriv roligt til mig privat på mogensxy@gmail.com eller arbejdsmæssigt på mogens@teo.dk - så lover jeg at drikke GODE øl, mens jeg tænker over jeres bidrag og indspark.

Klummer er læsernes platform på Computerworld til at fortælle de bedste historier, og samtidig er det vores meget populære og meget læste forum for videndeling.

Har du en god historie, eller har du specialviden, som du synes trænger til at blive delt?

Læs vores klumme-guidelines og send os din tekst, så kontakter vi dig - måske bliver du en del af vores hurtigt voksende korps af klummeskribenter.