Die Bibliothek · Informatik & KITafel № 908 · Folio III
ILL. № 908
CS·KI
Plate — Datenbanken & das relationale Modell

Datenbanken & das relationale Modell

Codds Idee: Daten als Tabellen, Abfragen als Algebra — der ganze Rest ist dann nur noch Ingenieursarbeit.
Als Nächstes empfohlen → Mengenlehre · MATH · T3
Facetten
  • Codd's tables, keys, and relational algebranoch nicht geprüft
  • SQL as the declarative query languagenoch nicht geprüft
  • ACID guarantees on every transactionnoch nicht geprüft
  • CAP, NoSQL, and the NewSQL returnnoch nicht geprüft
Der Beitrag

Edgar F. Codd, ein britischer Informatiker bei IBM Research in San Jose, hatte 1969 bereits jahrelang zugesehen, wie Anwendungsprogrammierer sich durch die Zeigernavigation hierarchischer und Netzwerkdatenbanken quälten — IBMs IMS, der CODASYL-Standard —, wo eine Änderung der physischen Speicherung stillschweigend funktionierenden Code zerbrach. Seine Antwort war ein elfseitiger Aufsatz in den Communications of the ACM vom Juni 1970, A Relational Model of Data for Large Shared Data Banks: Daten als Relationen — Mengen von Tupeln, Tabellen aus Zeilen und Spalten —, Abfragen deklarativ formuliert, den Zugriffsplan überlässt man einem Abfrageoptimierer in der Engine. Die logische Struktur war damit vollständig von der physischen Speicherung entkoppelt. IBM blieb zunächst reserviert; Codd setzte die Arbeit gegen den Widerstand des Hauses durch und erhielt 1981 den Turing Award.

Das relationale Modell kommt mit wenigen Abstraktionen aus. Eine Relation ist eine Menge von Tupeln über einem Schema; der Primärschlüssel identifiziert jede Zeile eindeutig, ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle. Den formalen Kern bildet die relationale Algebra: Selektion, Projektion, Verbund, Vereinigung, Schnitt, kartesisches Produkt, Umbenennung. Codds Normalformen — von der ersten bis zur Boyce-Codd-Normalform — räumen Datenredundanz und Änderungsanomalien aus. SQL, Mitte der 1970er von Chamberlin und Boyce bei IBM entwickelt und 1986 von ANSI standardisiert, ist die beherrschende deklarative Sprache jeder relationalen Datenbank; der Abfrageoptimierer, der SQL anhand von Tabellenstatistiken, Kardinalitätsschätzung und dem Durchprobieren von Verbundreihenfolgen in einen Ausführungsplan übersetzt, gehört zum Tiefsten, was die praktische Informatik zu bieten hat. Die Korrektheitsgarantien heißen ACID — Atomarität, Konsistenz, Isolation, Dauerhaftigkeit: Eine Transaktion wird ganz festgeschrieben oder ganz zurückgerollt, nebenläufige Transaktionen verhalten sich, als liefen sie nacheinander, und was festgeschrieben ist, übersteht jeden Absturz. Jim Gray führte diesen Rahmen 1981 in The Transaction Concept zusammen; 1998 erhielt Gray den Turing Award. Das CAP-Theorem — 2000 von Eric Brewer vermutet, 2002 von Gilbert und Lynch bewiesen — zeigte, dass ein verteiltes System von Konsistenz, Verfügbarkeit und Partitionstoleranz höchstens zwei haben kann; weil Partitionen unvermeidlich sind, tauschen reale Systeme Konsistenz gegen Verfügbarkeit. Die NoSQL-Bewegung der späten 2000er — MongoDB, Redis, Cassandra, DynamoDB — entstand für Workloads im Web-Maßstab, bei denen ACID unbezahlbar war; über NewSQL-Systeme wie Spanner und CockroachDB, die horizontale Skalierbarkeit mit vollem ACID verbinden, ist das Feld seither weitgehend zu SQL zurückgekehrt.

Warum jetztDer Löwenanteil aller Anwendungsdaten weltweit liegt in relationalen Datenbanken; der SQL-Markt lag 2024 bei rund 60 Milliarden Dollar jährlich — PostgreSQL über weite Strecken der 2020er Jahre die Standardwahl unter den Open-Source-Systemen, Oracle, SQL Server und Snowflake vorn im kommerziellen Spitzensegment. Analytische Workloads laufen auf spaltenorientierten OLAP-Systemen wie Snowflake, BigQuery, ClickHouse oder DuckDB — abgefragt in SQL, ausgeführt auf verteilten Engines. Nach 2021 kamen Vektordatenbanken hinzu (Pinecone, pgvector, Milvus); sie speichern die hochdimensionalen Embeddings, von denen die retrieval-augmentierte Generierung lebt. Und SQLite, Richard Hipps eingebettete Bibliothek aus dem Jahr 2000, ist nach manchen Zählungen die am weitesten verbreitete Software der Geschichte — sie steckt in jedem iOS- und jedem Android-Gerät. Ob die SQL-Syntax die Lingua franca bleibt, beginnt die Übersetzung aus natürlicher Sprache in SQL gerade zu verwischen; das relationale Modell selbst aber bleibt der Ort, an dem die ingenieurtechnische Tiefe sitzt.
Zur VertiefungA Relational Model of Data for Large Shared Data Banks (Codd, CACM 1970). Designing Data-Intensive Applications (Kleppmann, 2017). Database System Concepts (Silberschatz et al., 7. Aufl.).