Spaltenorientierte Datenbank: Erklärung des Systems

Während die meisten Datenbanken Informationen in Zeilen verteilen, gehen spaltenorientierte Datenbanken genau andersherum vor. Die Daten werden bei ihnen in Spalten aufgeteilt. Was ist der Sinn dahinter? Erfahren Sie im Folgenden, welche Vorteile solche auch als Columnar Database bezeichneten Datenbanken haben.

Wie sind spaltenorientierte Datenbanken aufgebaut?

Typischerweise funktionieren Datenbanken zeilenorientiert: Pro Eintrag legt das Datenbankmanagementsystem (DBMS) eine Zeile an. So werden nacheinander die Felder mit den jeweiligen Informationen aufgelistet. Insbesondere relationale Datenbanken basieren auf diesem Prinzip. Spaltenorientierte Datenbanken drehen dies System um. Bei ihnen steht jede Spalte für einen Eintrag: Die Daten zu jedem Eintrag werden demnach untereinander (und nicht nebeneinander wie bei der zeilenorientierten Variante) angeordnet.

Zur Verdeutlichung hier das zeilenorientierte System:

Nummer Nachname Vorname Schlüssel
1 Skywalker Luke 3FN-Z768
2 Kenobi Obi-wan 7TR-K345
3 Organa Leia 8NN-R266

Die Columnar Database dreht die gleiche Tabelle praktisch auf die Seite:

Nummer 1 2 3
Nachname Skywalker Kenobi Organa
Vorname Luke Obi-wan Leia
Schlüssel 3FN-Z768 7TR-K345 8NN-R266

Auf der Festplatte selbst erscheinen die Daten allerdings eindimensional, werden also hintereinander dargestellt. Für zeilenorientierte Datenbanken heißt das:

1, Skywalker, Luke, 3FN-Z768; 2, Kenobi, Obi-wan, 7TR-K345; 3, Organa, Leia, 8NN-R266

Auch die spaltenorientierte Datenbank speichert die Informationen nacheinander. Durch die andere Orientierung ergibt sich aber auch eine andere Reihenfolge der Daten:

1, 2, 3; Skywalker, Kenobi, Organa; Luke, Obi-wan, Leia; 3FN-Z768, 7TR-K345, 8NN-R266
Tipp

Neben den spaltenorientierten Datenbanken gibt es noch weitere Alternativen zum klassischen Modell. NoSQL-Datenbanken oder deren Unterkategorie dokumentenorientierte Datenbanken sowie die verwandten Key-Value-Datenbanken geraten immer stärker in den Fokus. Auch Graphdatenbanken werden immer beliebter, da dieses Modell stark vernetzte Daten sehr gut abbilden kann.

Einsatzgebiete von spaltenorientierte Datenbanken

Relationale Systeme auf der Basis von Zeilen setzt man vor allem dann ein, wenn viele Transaktionen schnell durchgeführt werden müssen. Einträge schreiben, ändern, löschen – das geht mit relationalen Datenbanken sehr gut. Columnar Databases setzt man dann ein, wenn große Datenmengen analysiert werden müssen.

In vielen Anwendungsgebieten – beispielsweise, aber nicht ausschließlich in der Forschung – werden fortlaufend Daten ausgewertet. Das geht spaltenbasiert sehr viel schneller: Grund dafür ist, dass man weniger Festplattenzugriffe benötigt. Die Daten einer Kategorie liegen nah beieinander. Möchte man einen Datensatz auslesen und auswerten, reicht das Laden eines Blockes. Es muss nicht die komplette Datenbank eingelesen werden, um die verteilten Informationen zusammensuchen zu können.

Vor- und Nachteile einer Columnar Database

Spaltenorientierte Datenbanken spielen dann ihre Vorteile aus, wenn es um die Auswertung von großen Datenmengen – also Big Data – geht. Da beim Lesen jeder Datenbank der Festplattenzugriff den Flaschenhals darstellt, und der Zugriff bei einer Columnar Database effizienter gestaltet ist, kann die Variante auf Basis von Spalten hier punkten.

Bei transaktionalen Anwendungen sind die Zugriffe in den meisten Fällen allerdings anders gestaltet: Bei ihnen müssen neue Informationen über die komplette Datenbank verteilt werden. Eine Column-oriented Database würde bei dieser Aufgabe langsamer agieren als das klassische Modell.

Einen weiteren Vorteil von spaltenorientierten Datenbanken bilden die Möglichkeiten der Kompression. Daten einer Spalte sind immer vom gleichen Typ – zum Beispiel ein String (Zeichenkette) oder ein Integer (ganzzahlige Werte). Da alle Einträge eines Typs nah beieinanderliegen, lassen sie sich effizienter komprimieren.

Die bekanntesten spaltenorientierten Datenbanken

Datenbankmanagementsysteme auf der Basis von Spalten sind zwar schon vergleichsweise lang im Einsatz, die Zahl der verfügbaren Implementierungen ist aber weiterhin gering – der Bedarf an relationalen Datenbanken ist einfach größer. Dennoch haben sich ein paar Systeme etabliert.

  • Amazon Redshift: Als Teil der Amazon Web Services (AWS) bietet Redshift ein spaltenorientiertes Data Warehouse für Big Data.
  • MariaDB-ColumnStore: Das Open-Source-DBMS MariaDB (Fork aus MySQL) bietet mit dem ColumnStore auch eine Kombination aus spaltenorientierter und relationaler Datenbank.
  • SAP HANA: Die Entwicklungsplattform von SAP verwendet ebenfalls eine Kombination aus relationaler und spaltenorientierten Datenbank.
  • Apache Cassandra: Die freie Software baut auf Apache Hadoop auf und ist in Java verfasst.
  • MonetDB: Diese Open-Source-Software wurde mit besonderen Fokus auf Data-Mining entwickelt.