Was sind relationale und spaltenbasierte Datenbanken?

Datenbanken dienen zur Speicherung und Verwaltung von Daten. Wie die Daten strukturiert sind, wird durch ein Datenbankmodell festgelegt. Am häufigsten ist die so genannte „relationale Datenbank“. Eine solche Datenbank besteht aus einer Sammlung von Tabellen. Die „Relation“ ist die Basis der relationalen Algebra, mit deren Hilfe die Daten z. B. aggregiert oder verknüpft werden. Eine Relation besteht aus einzelnen „Attributen“ (also z. B. einem Namen oder einem Geburtsdatum) und „Tupeln“ (einer Gruppe von Attributen, auch als „Datensatz“ bezeichnet). In einer relationalen Datenbank sind die Tupeln die Zeilen einer Tabelle – eine relationale Datenbank arbeitet also zeilenorientiert. In einer Zeile stehen zum also Beispiel die Daten zu einem Kunden, z. B. Name, Geburtsdatum, Straße, Stadt und Land. In der nächsten Zeile folgen die Daten zum nächsten Kunden. In Datenbanken werden die eindimensional abgespeichert, in einer zeilenorientierten Datenbank also zeilenweise hintereinander (z.B.: 1, Fischer, Peter, Hauptstraße, Berlin, Deutschland; 2, Gärtner, Martina, Fuchsweg, Köln, Deutschland). Eine spaltenorientierte Datenbank speichert die Daten hingegen nach Spalten ab – ebenfalls eindimensional und hintereinander, aber Spalte für Spalte (zum Beispiel: 1, 2; Fischer, Gärtner; Peter, Martina; Hauptstraße, Fuchsweg; Berlin, Köln; Deutschland, Deutschland). Müssen große Mengen von Daten analysiert werden und liegen diese Daten in sehr vielen Zeilen vor (OLAP-Aufgaben wie z. B. Planung und Analyse im Finanzwesen), dann sind spaltenorientierte Datenbanken effizienter und schneller als relationale, zeilenorientierte Datenbanken. Aber auch die relationalen Datenbanken haben ihre Vorteile, sie erlauben vor allem schnelle schreibende Zugriffe (OLTP-Aufgaben wie Buchhaltung oder Einkauf). OLTP steht für Online-Transaction-Processing, OLAP für Online Analytical Processing. SAP HANA besteht im Kern aus einem relationalen Datenbanksystem, vereint aber OLAT- und OLTP-Landschaften in einer In-Memory-Datenbank.