23rd Jun 2022 9 Leseminuten Die Geschichte von SQL - Wie alles anfing Agnieszka Kozubek-Krycuń SQL-Geschichte Inhaltsverzeichnis Ted Codd und das relationale Datenmodell System R Eine Abfragesprache für relationale Datenbanken Das Abfragespiel SQL wird zum Industriestandard Wer hat SQL entwickelt und warum? Finden Sie es in diesem Artikel heraus! Lernen Sie gerade SQL? Oder sind Sie dabei, den ersten Schritt in die Arbeit mit Datenbanken zu machen? Eine gute Entscheidung! Wie auch immer, es lohnt sich, die Geschichte von SQL zu kennen - woher es kommt, wer es erfunden hat und warum. Im Folgenden finden Sie einen kurzen Überblick über die Geschichte von SQL, beginnend mit dem grundlegenden Konzept: der Datenbank. Ted Codd und das relationale Datenmodell Die ersten Computerdatenbanken kamen Ende der 1960er Jahre auf. Zu dieser Zeit war dies ein wichtiges Forschungsgebiet. Viele Informatiker beschäftigten sich mit der Verbesserung der Funktionsweise von Datenbanken. Einer von ihnen war Edgar Frank (Ted) Codd, ein englischer Informatiker, der bei IBM beschäftigt war. In den 1940er Jahren war er an dem Projekt Selective Sequence Electronic Calculator beteiligt - dem ersten elektromechanischen Computer der Welt. Wirklich berühmt wurde Codd jedoch durch einen 1970 veröffentlichten Artikel mit dem Titel A Relational Model of Data for Large Shared Data Banks (Ein relationales Datenmodell für große gemeinsame Datenbanken), mit dem die Ära der relationalen Datenbanken in der Informatik begann. Codd wird daher oft als der Urvater von SQL bezeichnet. Im Jahr 1981 erhielt er den Turing Award, die höchste Auszeichnung in der Informatik, die manchmal auch als "Nobelpreis der Informatik" bezeichnet wird. Zu der Zeit, als Codd seinen Artikel schrieb, waren hierarchische und Netzwerk-Datenbanken vorherrschend. Sie waren auch ziemlich unflexibel. Um Daten aus der Datenbank zu erhalten, musste man im Grunde ein Computerprogramm schreiben: Die Daten waren für Nicht-Programmierer nicht zugänglich. Jede Änderung des Modells erforderte Änderungen der Datenzugriffsmuster - mit anderen Worten, die Datenzugriffsprogramme mussten im Grunde neu geschrieben werden. In seinem Artikel schlug Codd eine völlig neue Idee vor: die Modellierung von Daten mit Hilfe des mathematischen Begriffs der Relationen. (Das relationale Datenmodell von Codd bot mehr Flexibilität als hierarchische und Netzwerkdatenmodelle. Neue Beziehungen konnten hinzugefügt werden, ohne dass bestehende Beziehungen geändert werden mussten. Dank seiner Ideen ist die Arbeit mit Datenbanken viel einfacher geworden. System R Das Modell von Codd war nicht sofort erfolgreich. IBM war nicht erpicht darauf, seine Vorschläge umzusetzen. Zu dieser Zeit hatten sie IMS, eine sehr erfolgreiche hierarchische Datenbank. Sie wollten ihre Einnahmen aus IMS nicht durch die Entwicklung eines konkurrierenden Produkts schmälern. (IMS wird noch heute weiterentwickelt, was zeigt, wie erfolgreich es war.) Erst 1973 begann IBM mit System R, einem Forschungsprojekt zur Erforschung von Codds Ideen für das relationale Datenmodell. Codd arbeitete nicht eng mit dem System R-Team zusammen; es ist schwer zu verstehen, warum er aus einem Projekt, das auf seiner eigenen Arbeit basierte, herausgezogen wurde. Zwei an der Entwicklung von System R beteiligte Personen, Don Chamberlin und Ray Boyce, waren für die Erstellung der Abfragesprache verantwortlich. Eine Abfragesprache für relationale Datenbanken Joins in Codds Artikel In seinem bahnbrechenden Artikel schlug Codd eine Reihe von Operationen vor, die zur Extraktion von Daten aus Relationen verwendet werden können. Man kann sich diese Operationen als die erste Abfragesprache für relationale Datenbanken vorstellen. Natürlich war die Syntax völlig anders als das uns heute bekannte SQL; Codd verwendete für diese Sprache eine mathematische Notation. Die meisten der von Codd vorgeschlagenen Operationen können auch im heutigen SQL durchgeführt werden, nur mit einer anderen Notation. Don Chamberlin arbeitete zu dieser Zeit an hierarchischen Datenbanken und hatte die Sprache für die Abfrage dieser Datenbanken studiert. Er verstand sofort die Auswirkungen von Codds Datenmodell. Im Jahr 1995 erinnerte er sich: "Für Ray und mich war die Begegnung mit dem relationalen Datenmodell auf Codds Forschungssymposium eine Offenbarung. Zum ersten Mal konnten wir sehen, wie eine Abfrage, die ein komplexes Programm in der DBTG-Sprache erfordern würde, mit einer der relationalen Sprachen von Codd auf ein paar einfache Zeilen reduziert werden konnte. Es wurde ein Spiel für uns beide, Abfragen zu erfinden und uns gegenseitig herauszufordern, sie in verschiedenen Abfragesprachen auszudrücken." [1] Tatsächlich schlug Codd zwei verschiedene Sprachen für das relationale Modell vor: die relationale Algebra (die Grundlage für diese Sprache fand sich in seinem ursprünglichen Artikel von 1970) und das relationale Kalkül (auch bekannt als die Sprache Alpha). Beide Sprachen verwendeten eine mathematische Notation mit Quantoren und verschiedenen mathematischen Operatoren. Ideen aus Codds relationaler Algebra sind heute in SQL zu finden. Irv Traiger, der zu dieser Zeit ebenfalls bei IBM arbeitete, fügte hinzu: "Glenn Bacon, der die Systemabteilung leitete, fragte sich, wie Ted es rechtfertigen konnte, dass jeder in der Lage sein würde, diese Sprache zu schreiben, die auf der mathematischen Prädikatenkalkulation basierte, mit universellen Quantoren und existenziellen Quantoren und Variablen und wirklich, wirklich haarigem Zeug." [2] Relationales Kalkül/Alpha wurde die Grundlage für QUEL, die Abfragesprache für Ingres (Interactive Graphics Retrieval System), eine frühe relationale Datenbank, die von Michael Stonebraker an der University of California, Berkeley, entwickelt wurde. Aus Ingres sind viele kommerzielle Datenbankanwendungen wie PostgreSQL hervorgegangen. Das Abfragespiel Noch bevor das System R-Projekt begann, entwickelten Chamberlin und Boyce eine Sprache, die sie SQUARE (Specifying Queries as Relational Expressions) nannten. Sie schätzten die Leistungsfähigkeit von Codds Ideen, die es ihnen ermöglichten, mit wenigen Zeilen komplexe Abfragen zu formulieren, die in einer hierarchischen Datenbank Seiten füllen würden. Sie waren jedoch überzeugt, dass ihre Sprache einfacher und für normale Benutzer zugänglicher war als Codds relationale Algebra und relationales Kalkül. "Ray und ich waren beeindruckt davon, wie kompakt Codds Sprachen komplexe Abfragen darstellen konnten. Gleichzeitig glaubten wir aber auch, dass es möglich sein müsste, eine relationale Sprache zu entwickeln, die für Benutzer ohne formale Ausbildung in Mathematik oder Computerprogrammierung zugänglicher ist." [1] SQUARE war die Grundlage für die neue Abfragesprache von System R. SQUARE verwendete viele tiefgestellte Zeichen und einige mathematische Notationen. Es war schwierig, sie auf einer Tastatur einzugeben. Chamberlin und Boyce beschlossen, die Sprache so anzupassen, dass sie der Struktur eines englischen Satzes ähnelte und leichter zu tippen war. "Wir begannen also zu sagen, dass wir die SQUARE-Ideen an ein englisches Schlüsselwortkonzept anpassen würden, das leichter zu tippen ist, weil es auf englischen Strukturen basiert. Wir nannten es Structured English Query Language und verwendeten dafür das Akronym SEQUEL." [2] Zwei Dinge waren für Chamberlin und Boyce bei der Entwicklung von SEQUEL wichtig. Erstens wollten sie, dass die Software auch für normale Benutzer ohne mathematische oder programmiertechnische Vorkenntnisse zugänglich ist. Die Mitarbeiter von System R rekrutierten sogar eine Gruppe von Studenten, um SEQUEL zu lernen und zu sehen, ob sie die Syntax einfach finden. Außerdem sollte die Sprache Elemente zur Datenänderung und Datendefinition enthalten, was zu dieser Zeit etwas sehr Neues war. "Ray und ich hofften, eine relationale Sprache entwickeln zu können, die auf Konzepten basiert, die einem größeren Benutzerkreis vertraut sein würden. Wir hofften auch, die Sprache so zu erweitern, dass sie Datenbankaktualisierungen und Verwaltungsaufgaben wie die Erstellung neuer Tabellen und Ansichten umfasst, die traditionell nicht in den Anwendungsbereich einer Abfragesprache fielen. [...] Wir dachten, wir würden es Nicht-Programmierern ermöglichen, mit Datenbanken zu interagieren. Wir dachten, dass dies den Zugang zu Daten für eine ganz neue Klasse von Menschen öffnen würde, die Dinge tun könnten, die vorher nicht möglich waren, weil sie nicht programmieren konnten." [2] Schließlich schrieben Chamberlin und Boyce zwei Artikel über SEQUEL: einen über DML (Data Manipulation Language, z. B. SELECT-, INSERT- und UPDATE-Anweisungen) und einen über DDL (Data Definition Language, die zur Erstellung und Änderung von Datenbankstrukturen verwendet wird). "Wir haben zwei Arbeiten geschrieben: eine über SEQUEL/DML und eine über SEQUEL/DDL. Dabei haben wir sehr eng zusammengearbeitet. Die Autoren des DML-Papiers waren Chamberlin und Boyce; die Autoren des DDL-Papiers waren Boyce und Chamberlin, aus keinem besonderen Grund; wir haben es einfach aufgeteilt. Wir wollten in diesem Jahr nach Stockholm fahren, weil dort der IFIP-Kongress stattfand. Ich hatte ein Ticket nach Stockholm wegen einiger Arbeiten, die ich in Yorktown gemacht hatte, also reichte Ray das DDL-Papier beim IFIP-Kongress in Stockholm ein, und das DML-Papier reichten wir bei SIGMOD ein. [...] Nach unserer ursprünglichen Einschätzung waren dies Zwillingsarbeiten. Wir schrieben sie zusammen und dachten, sie seien von vergleichbarem Wert und Einfluss. Aber was mit ihnen geschah, war ganz anders. Das DDL-Papier wurde vom IFIP-Kongress abgelehnt; Ray konnte nicht nach Stockholm fahren." [2] Und so wurde SEQUEL geboren. Später wurde SEQUEL wegen eines Markenrechtsproblems in SQL umbenannt. Leider verstarb Ray Boyce kurz nachdem er den Grundstein für SQL gelegt hatte; er erlebte nicht mehr, welche Auswirkungen es haben würde. Im Jahr 1974, etwa einen Monat nachdem er einen SEQUEL-Artikel auf einer technischen Konferenz in Ann Arbor, Michigan, vorgestellt hatte, starb er plötzlich an einem gerissenen Hirnaneurysma. Er war erst 26 Jahre alt. Interessanterweise hielt Donald Chamberlin SQL für die Art und Weise, wie es damals verwendet wurde, nicht für eine gute Sprache. Im Jahr 1995 sagte er: "Als Ray und ich 1974 Sequel entwarfen, dachten wir, dass die Sprache hauptsächlich für Ad-hoc-Abfragen von Planern und anderen Fachleuten verwendet werden würde, deren Fachgebiet nicht in erster Linie die Datenbankverwaltung war. Wir wollten, dass die Sprache so einfach ist, dass gewöhnliche Menschen sie mit einem Minimum an Training benutzen können. Im Laufe der Jahre habe ich mit Erstaunen festgestellt, dass SQL immer häufiger von ausgebildeten Datenbankspezialisten verwendet wird, um sich wiederholende Transaktionen wie Bankeinzahlungen, Kreditkartenkäufe und Online-Auktionen durchzuführen. Ich freue mich, dass die Sprache in einer Vielzahl von Umgebungen eingesetzt wird, auch wenn sie sich für ungeschulte Benutzer nicht als so zugänglich erwiesen hat, wie Ray und ich ursprünglich gehofft hatten." [1] SQL wird zum Industriestandard Im Laufe der Jahre hat sich SQL zu einem Industriestandard entwickelt. Im Moment reicht es aus, wenn wir sagen, dass SQL die grundlegende Sprache für die Arbeit mit Datenbanken geworden ist. Sie wurde von allen wichtigen Organisationen anerkannt, und Marktriesen wie Google und Facebook verwenden sie täglich für viele Prozesse. SQL und Datenbanken sind derzeit einer der am schnellsten wachsenden Zweige der IT-Industrie. Sich diesem Trend anzuschließen, kann sich lohnen. Wenn Sie SQL von Grund auf lernen wollen, probieren Sie unseren SQL für Anfänger Kurs. Wenn Sie bereits SQL-Kenntnisse haben und lernen möchten, wie Sie das Verhalten Ihrer Kunden oder Umsatztrends besser analysieren können, empfehle ich Ihnen den Kurs SQL Reporting. Egal, was Sie aus dem umfangreichen Angebot von LearnSQL.de wählen, jetzt ist ein guter Zeitpunkt, um SQL zu lernen. Diese Sprache ist zwar schon 40 Jahre alt, aber sie ist nicht vom Aussterben bedroht. SQL-Kenntnisse sind eine großartige Fähigkeit, die Ihnen bei Ihrer täglichen Arbeit nützlich sein wird und Ihrer Karriere einen Schub geben wird. Quellen: 1. Chamberlin, Donald D. "Early History of SQL", abgerufen am 11. November 2020 von https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6359709 2. McJones et al. "The 1995 SQL Reunion: People, Projects and Politics", abgerufen am 11. November 2020 von http://www.scs.stanford.edu/~dbg/readings/SRC-1997-018.pdf Tags: SQL-Geschichte