Während die meisten Da­ten­ban­ken In­for­ma­tio­nen in Zeilen verteilen, gehen spal­ten­ori­en­tier­te Da­ten­ban­ken genau an­ders­her­um vor. Die Daten werden bei ihnen in Spalten auf­ge­teilt. Was ist der Sinn dahinter? Erfahren Sie im Folgenden, welche Vorteile solche auch als Columnar Database be­zeich­ne­ten Da­ten­ban­ken haben.

Wie sind spal­ten­ori­en­tier­te Da­ten­ban­ken aufgebaut?

Ty­pi­scher­wei­se funk­tio­nie­ren Da­ten­ban­ken zei­len­ori­en­tiert: Pro Eintrag legt das Da­ten­bank­ma­nage­ment­sys­tem (DBMS) eine Zeile an. So werden nach­ein­an­der die Felder mit den je­wei­li­gen In­for­ma­tio­nen auf­ge­lis­tet. Ins­be­son­de­re re­la­tio­na­le Da­ten­ban­ken basieren auf diesem Prinzip. Spal­ten­ori­en­tier­te Da­ten­ban­ken drehen dies System um. Bei ihnen steht jede Spalte für einen Eintrag: Die Daten zu jedem Eintrag werden demnach un­ter­ein­an­der (und nicht ne­ben­ein­an­der wie bei der zei­len­ori­en­tier­ten Variante) an­ge­ord­net.

Zur Ver­deut­li­chung hier das zei­len­ori­en­tier­te 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 Fest­plat­te selbst er­schei­nen die Daten al­ler­dings ein­di­men­sio­nal, werden also hin­ter­ein­an­der dar­ge­stellt. Für zei­len­ori­en­tier­te Da­ten­ban­ken heißt das:

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

Auch die spal­ten­ori­en­tier­te Datenbank speichert die In­for­ma­tio­nen nach­ein­an­der. Durch die andere Ori­en­tie­rung ergibt sich aber auch eine andere Rei­hen­fol­ge der Daten:

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

Neben den spal­ten­ori­en­tier­ten Da­ten­ban­ken gibt es noch weitere Al­ter­na­ti­ven zum klas­si­schen Modell. NoSQL-Da­ten­ban­ken oder deren Un­ter­ka­te­go­rie do­ku­men­ten­ori­en­tier­te Da­ten­ban­ken sowie die ver­wand­ten Key-Value-Da­ten­ban­ken geraten immer stärker in den Fokus. Auch Graph­da­ten­ban­ken werden immer beliebter, da dieses Modell stark vernetzte Daten sehr gut abbilden kann.

Ein­satz­ge­bie­te von spal­ten­ori­en­tier­te Da­ten­ban­ken

Re­la­tio­na­le Systeme auf der Basis von Zeilen setzt man vor allem dann ein, wenn viele Trans­ak­tio­nen schnell durch­ge­führt werden müssen. Einträge schreiben, ändern, löschen – das geht mit re­la­tio­na­len Da­ten­ban­ken sehr gut. Columnar Databases setzt man dann ein, wenn große Da­ten­men­gen ana­ly­siert werden müssen.

In vielen An­wen­dungs­ge­bie­ten – bei­spiels­wei­se, aber nicht aus­schließ­lich in der Forschung – werden fort­lau­fend Daten aus­ge­wer­tet. Das geht spal­ten­ba­siert sehr viel schneller: Grund dafür ist, dass man weniger Fest­plat­ten­zu­grif­fe benötigt. Die Daten einer Kategorie liegen nah bei­ein­an­der. Möchte man einen Datensatz auslesen und auswerten, reicht das Laden eines Blockes. Es muss nicht die komplette Datenbank ein­ge­le­sen werden, um die ver­teil­ten In­for­ma­tio­nen zu­sam­men­su­chen zu können.

Vor- und Nachteile einer Columnar Database

Spal­ten­ori­en­tier­te Da­ten­ban­ken spielen dann ihre Vorteile aus, wenn es um die Aus­wer­tung von großen Da­ten­men­gen – also Big Data – geht. Da beim Lesen jeder Datenbank der Fest­plat­ten­zu­griff den Fla­schen­hals darstellt, und der Zugriff bei einer Columnar Database ef­fi­zi­en­ter gestaltet ist, kann die Variante auf Basis von Spalten hier punkten.

Bei trans­ak­tio­na­len An­wen­dun­gen sind die Zugriffe in den meisten Fällen al­ler­dings anders gestaltet: Bei ihnen müssen neue In­for­ma­tio­nen über die komplette Datenbank verteilt werden. Eine Column-oriented Database würde bei dieser Aufgabe langsamer agieren als das klas­si­sche Modell.

Einen weiteren Vorteil von spal­ten­ori­en­tier­ten Da­ten­ban­ken bilden die Mög­lich­kei­ten der Kom­pres­si­on. Daten einer Spalte sind immer vom gleichen Typ – zum Beispiel ein String (Zei­chen­ket­te) oder ein Integer (ganz­zah­li­ge Werte). Da alle Einträge eines Typs nah bei­ein­an­der­lie­gen, lassen sie sich ef­fi­zi­en­ter kom­pri­mie­ren.

Die be­kann­tes­ten spal­ten­ori­en­tier­ten Da­ten­ban­ken

Da­ten­bank­ma­nage­ment­sys­te­me auf der Basis von Spalten sind zwar schon ver­gleichs­wei­se lang im Einsatz, die Zahl der ver­füg­ba­ren Im­ple­men­tie­run­gen ist aber weiterhin gering – der Bedarf an re­la­tio­na­len Da­ten­ban­ken ist einfach größer. Dennoch haben sich ein paar Systeme etabliert.

  • Amazon Redshift: Als Teil der Amazon Web Services (AWS) bietet Redshift ein spal­ten­ori­en­tier­tes Data Warehouse für Big Data.
  • MariaDB-Co­lum­nS­to­re: Das Open-Source-DBMS MariaDB (Fork aus MySQL) bietet mit dem Co­lum­nS­to­re auch eine Kom­bi­na­ti­on aus spal­ten­ori­en­tier­ter und re­la­tio­na­ler Datenbank.
  • SAP HANA: Die Ent­wick­lungs­platt­form von SAP verwendet ebenfalls eine Kom­bi­na­ti­on aus re­la­tio­na­ler und spal­ten­ori­en­tier­ten Datenbank.
  • Apache Cassandra: Die freie Software baut auf Apache Hadoop auf und ist in Java verfasst.
  • MonetDB: Diese Open-Source-Software wurde mit be­son­de­ren Fokus auf Data-Mining ent­wi­ckelt.
Zum Hauptmenü