Mit SQL kannst du re­la­tio­na­le Da­ten­ban­ken aufbauen und be­stehen­de Da­ten­be­stän­de verwalten sowie abfragen. Die Sprache gehört zum Stan­dard­werk­zeug für Web­ent­wick­ler:innen, Data-Analysts und die Forschung. Im Vergleich zu anderen Pro­gram­mier­spra­chen weist SQL einige Be­son­der­hei­ten auf. Wir zeigen dir, was diese Sprache ausmacht.

Was ist SQL?

SQL steht für „Struc­tu­red Query Language“ (auf Deutsch: „struk­tu­rier­te Ab­fra­ge­spra­che“). Damit stellst du gezielte Anfragen an Da­ten­ban­ken, die struk­tu­rier­te bzw. re­la­tio­na­le Daten enthalten. Die Basis bildet die „re­la­tio­na­le Algebra“. Diese ma­the­ma­ti­sche Theorie hilft dabei, Daten logisch zu ordnen und Ab­fra­ge­er­geb­nis­se präzise zu berechnen. Aus diesem Fundament ergeben sich viele Spe­zia­li­sie­run­gen von SQL. Seit den 1970er-Jahren gilt SQL als die Stan­dard­lö­sung für Da­ten­bank­an­wen­dun­gen schlecht­hin.

Wichtig zu wissen: SQL ist eine reine Abfrage- und Pro­gram­mier­spra­che, kein ei­gen­stän­di­ges Datenbank-Ma­nage­ment-System (DBMS). Bekannte Systeme, die SQL nutzen, sind etwa MySQL, Oracle SQL oder SQLite. Meist kommen dabei ver­schie­de­ne SQL-Dialekte zum Einsatz, die über spe­zi­fi­sche Zu­satz­be­feh­le verfügen.

SQL als do­mä­nen­spe­zi­fi­sche und de­kla­ra­ti­ve Sprache

SQL un­ter­schei­det sich von klas­si­schen Pro­gram­mier­spra­chen dadurch, dass es eine do­mä­nen­spe­zi­fi­sche Sprache (Domain-Specific Language, DSL) ist. Während General Purpose Languages (GPLs) viel­sei­tig ein­setz­bar sind, kon­zen­triert sich SQL rein auf den Umgang mit Da­ten­ban­ken.

Zudem ist SQL eine de­kla­ra­ti­ve Pro­gram­mier­spra­che. Das bedeutet: Du de­fi­nierst als Pro­gram­mie­rer:in das ge­wünsch­te Ziel per Befehl, und das System kümmert sich um den Weg dorthin. Im Gegensatz dazu steht die im­pe­ra­ti­ve Pro­gram­mie­rung, bei der jeder einzelne Schritt im Code exakt vor­ge­ge­ben werden muss.

Wofür wird SQL genutzt?

Primär dient SQL als Brücke zu re­la­tio­na­len Datenbank-Ma­nage­ment-Systemen (RDBMS). Eine solche Datenbank kannst du dir wie eine Tabelle vor­stel­len, in der jede Zeile bestimmte Attribute besitzt. Der SQL-Code wird entweder direkt über ein Text­in­ter­face ein­ge­ge­ben oder au­to­ma­ti­siert über API-Schnitt­stel­len ver­ar­bei­tet.

Vor- und Nachteile von SQL

Vorteile von SQL

Ein we­sent­li­cher Pluspunkt ist die enorme Be­kannt­heit und weite Ver­brei­tung. SQL ist seit Jahr­zehn­ten der In­dus­trie­stan­dard. Ent­spre­chend leicht findest du Fach­per­so­nal sowie passende Schnitt­stel­len zu anderen Tech­no­lo­gien.

SQL hat sich bewährt, weil es auf einem soliden ma­the­ma­ti­schen Gerüst steht, das eine hoch­ef­fi­zi­en­te Da­ten­spei­che­rung er­mög­licht. Zwar erfordern re­la­tio­na­le Da­ten­ban­ken Planung und Know-how bei der Mo­del­lie­rung, doch ein sauberes Schema erlaubt es dir, durch ge­schick­te Abfragen wertvolle Er­kennt­nis­se aus deinen Daten zu ziehen.

Nachteile von SQL

Die Kom­ple­xi­tät kann eine Hürde sein. SQL umfasst hunderte Befehle, was den Einstieg für Neulinge fordernd macht. Zudem variieren diese Befehle oft je nach System.

Beim Aufbau musst du vorab viele Annahmen über deine Daten treffen. Das sichert zwar die Da­ten­qua­li­tät, schränkt dich aber auch ein. Nach­träg­li­che Än­de­run­gen am Schema im laufenden Betrieb sind oft kom­pli­ziert. Auch die Per­for­mance-Op­ti­mie­rung durch De­zen­tra­li­sie­rung ist bei SQL-Da­ten­ban­ken meist schwierig um­zu­set­zen.

Ein weiterer Punkt ist die Dis­kre­panz zur ob­jekt­ori­en­tier­ten Pro­gram­mie­rung. Während dort Daten und Funk­tio­nen in Objekten gebündelt werden, verteilt der re­la­tio­na­le Ansatz Daten über Tabellen. Ein direktes Abbilden von Objekten auf re­la­tio­na­le Struk­tu­ren ist daher oft nicht ver­lust­frei möglich.

Al­ter­na­ti­ven zu SQL

Trotz seines Alters bleibt SQL hoch­re­le­vant. Dennoch gibt es heute al­ter­na­ti­ve Modelle, die je nach An­wen­dungs­fall besser geeignet sein können.

Ob­jekt­re­la­tio­na­le Datenbank-Ma­nage­ment-Systeme

Systeme wie Post­greS­QL kom­bi­nie­ren das Beste aus beiden Welten: Sie nutzen SQL, un­ter­stüt­zen aber auch Konzepte der ob­jekt­ori­en­tier­ten Pro­gram­mie­rung. So lassen sich Ver­er­bun­gen oder Ob­jekt­hier­ar­chien direkt nutzen, ohne dass ein komplexes Mapping (ORM) nötig ist. Das ver­ein­facht oft die Struktur deiner Abfragen.

NoSQL

Wenn Daten keinem starren Schema folgen, schlägt die Stunde von NoSQL-Da­ten­ban­ken. Der Begriff NoSQL steht für nicht-re­la­tio­na­le DBMS. Hier werden Daten nicht zwingend in Ta­bel­len­form gepresst.

Ein ver­brei­te­ter Weg ist die do­ku­men­ten­ba­sier­te Spei­che­rung. Dabei liegen In­for­ma­tio­nen in einzelnen Do­ku­men­ten vor, die ihr Schema selbst de­fi­nie­ren können. Das macht dich extrem flexibel, da ver­schie­de­ne Einträge un­ter­schied­lich aufgebaut sein dürfen.

NoSQL-Systeme sind oft weniger komplex und punkten bei der Ska­lier­bar­keit und Per­for­mance. Du kannst das Schema leichter im Betrieb anpassen. Im Gegenzug musst du manchmal Abstriche bei der strengen Da­ten­kon­sis­tenz machen.

Zum Hauptmenü