Von SQL zu NoSQL und NewSQL: Aktuelle Datenbanktechnologien im Überblick

Nachdem jahrzehntelang relationale Datenbanken als Standard galten, stellte zunächst NoSQL, dann auch NewSQL bisherige DBMS-Architekturen grundsätzlich infrage.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen
Aktuelle Datenbanktechnologien: ein Rundumschlag
Lesezeit: 13 Min.
Von
  • Andrea Held
Inhaltsverzeichnis

Moderne Datenbanken haben ihre Wurzeln in den 1960er- und 1970er-Jahren: IBMs System R war der erste Prototyp eines relationalen Datenbankmanagementsystems (DBMS). Es setzte die Abfragesprache SEQUEL (Structured English Query Language) ein, aus der später SQL hervorging. Die Berkeley Group folgte wenig später mit Ingres und der Abfragesprache QUEL.

System R als Urmutter relationaler Datenbanksysteme wurde jedoch nie vermarktet. Vielmehr setzte IBM auf die Erfahrungen mit System R auf und entwickelte System SQL/DS, das ab 1981 bei IBM-Kunden zum Einsatz kam. SQL/DS ist der Vorgänger des relationalen Datenbankmanagementsystems Db2. IBM stellt heute Db2 für verschiedene Plattformen bereit: Es gibt die Produktlinie für IBM-Mainframes sowie eine weitere, die zunächst für das Betriebssystem OS/2 in C geschrieben wurde. Diese bildetet die Codebasis für die Varianten auf den Betriebssystemen Linux, Unix und Windows (LUW).

Wie alles begann ...

Probleme bei der Verarbeitung von Daten in einfachen Dateien führten in den 1960er-Jahren dazu, dass neue Konzepte erforderlich wurden. Ein neuer Layer, eine separate Softwareschicht zwischen Betriebssystem und Anwendungsprogramm für die Datenverwaltung, wurde eingeführt: Datenbanken (DB) und deren Verwaltungssoftware, die Datenbankmanagementsysteme. Zuvor wurden einfache, flache Dateien als Datenspeicher verwendet. Für die Verwaltung musste man in jedem Anwendungsprogramm eigene Prozeduren bereitstellen.

Eines der ersten größeren DBMS war IMS mit der Sprache Data Language One (DL/I). Die damit verwalteten Datenbanken waren hierarchisch strukturiert. Das hierarchische Datenmodell ist das älteste, es bildet Informationen durch eine Baumstruktur ab: Jeder Datensatz hat genau einen Vorgänger – mit Ausnahme eines Satzes, nämlich der Wurzel dieser Baumstruktur.

Wenig später wurde ein Modell für netzwerkartig strukturierte Datenbanken entwickelt. Das Netzwerkdatenbankmodell wurde zunächst von der Data Base Task Group (DBTG) des Programming Language Committee (später COBOL Committee) der Conference on Data Systems Language (CODASYL) vorgeschlagen. Dieselbe Organisation definierte auch die Programmiersprache COBOL. Das CODASYL-Datenbankmodell war daher deutlich von COBOL beeinflusst.

Das Netzwerkmodell hat gegenüber hierarchischen Datenbanken einen entscheidenden Vorteil: Es fordert keine strenge Hierarchie und kann daher m:n-Beziehungen abbilden. Ein Datensatz kann also mehrere Vorgänger haben. Auch können mehrere Datensätze an erster Stelle stehen. Bekannte Vertreter des Netzwerkdatenbankmodells sind UDS (Universal Datenbank System) von Siemens und DMS (Database Management System) von Sperry Univac.

Seit den frühen 1990er-Jahren wurde das Netzwerkdatenbankmodell vom relationalen Datenbankmodell mehr und mehr verdrängt. Aber mit der Idee des semantischen Webs gewinnt es wieder an Bedeutung: Mittlerweile existieren eine Reihe von Graphdatenbanken, die man als moderne Nachfolger der Netzwerkdatenbanken bezeichnen könnte.

IBM bietet heute mit Db2 eine Vielzahl an Funktionen, die hier nicht alle aufgezählt werden können. Neben der Möglichkeit, relationale Daten zu speichern, gibt es Erweiterungen für XML, JSON, Graph, Column, Oracle Compatibility und In-Memory (BLU). Mit einer Shared-Nothing-Architektur skaliert Db2 horizontal nahezu linear, wobei Datenbankpartitionen sich über mehrere Rechner (Nodes) verteilen lassen. Db2s Shared-Nothing-Technologie DPF (Database Partitioning Feature) kommt für die Skalierung von Data-Warehousing-Anwendungen, die Shared-Disk-Technologie pureScale für die Skalierung für OLTP-Anwendungen im Cluster zum Einsatz. Neben Scale-out (horizontale Skalierung) ist natürlich auch Scale-up (vertikale Skalierung) möglich.