iX 8/2019
S. 108
Report
Datenbanken

Aktuelle Datenbanktechnologien – jenseits von SQL

Aufnahmebereit

Andrea Held

Dieser zweite Teil einer Übersicht über aktuelle Datenbank­technologien beleuchtet weitere NoSQL-Vertreter, verteilte Datenbanken und NewSQL.

NoSQL brach die Vorherrschaft von SQL und relationalen Datenbanken (siehe „Quellen“). Teil 1 dieses Artikels stellte aus dieser neuen Generation bereits die Key Value Stores und die Graphdatenbanken vor. Doch auch an­dere Systeme finden sich unter der Bezeichnung NoSQL wieder. Dazu gehören zum Beispiel die Document Stores und die Column Stores.

Dokumente im Mittelpunkt

Ein Document Store speichert Dokumente als Grundeinheit. Dokumente können strukturierte Dateien mit einem Standarddateiformat – beispielsweise dem einer Textverarbeitung – oder auch unstrukturierte BLOBs wie Bilder oder Filme sein. Da Dokumente schemafrei sind, kann ein Document Store völlig unterschiedliche Arten von Dokumenten enthalten. Durch die Zuordnung der Dokumente zu einem eindeutigen Schlüssel sind dokumentenorientierte Datenbanken den Key-Value-­Datenbanken recht ähnlich.

Aufgrund der fehlenden Möglichkeiten zur Normalisierung der Daten können Redundanzen auftreten. Das macht manchmal Anwendungen, die diese Daten nutzen, komplexer: Sie müssen oft selbst dafür sorgen, dass die Daten auch konsistent sind.

IBM Notes (bis 2013 Lotus Notes) ist eine der bekanntesten Implementierungen einer dokumentenorientierten Datenbank. In neueren Vertretern dieser Gattung wie CouchDB und MongoDB enthalten Dokumente oft auch semistrukturierte Daten in Form von JSON, YAML oder XML. OrientDB schlägt die Brücke zur Graphdatenbank: Das System speichert Daten in einzelnen Dokumenten. Die Beziehungen zwischen den Dokumenten lassen sich durch direkte Verbindungen zwischen den Knoten herstellen.

Andere wichtige Document Stores sind DynamoDB von Amazon, Microsofts Azure Cosmos DB und das quelloffene, auf die Suchmaschinen-Engine Lucene setzende Elasticsearch. Etablierte relationale Datenbanksysteme (Oracle, SQL Server, Db2, MySQL, MariaDB und Postgre­SQL) bieten Document Stores als optionale Erweiterungen an.

MySQL ermöglicht mit seinem Document Store, unstrukturierte Daten auf Basis von JSON und in Verbindung mit dem X-Protokoll bzw. einer nativen CRUD (siehe Kasten „CRUD“) zu bearbeiten. MariaDB verwendet ebenfalls den JSON-­Datentyp und JSON-Funktionen und erlaubt so NoSQL-Strukturen.

Auch XML-Datenbanken zählen zu den dokumentenorientierten Datenbanken. Für die Abfrage und Änderung der Daten werden Sprachelemente eingesetzt, die über den SQL-Standard hinausgehen. XPath, XQuery und XQuery Update sind einige davon.

Column Stores: Spalten­orientierte Datenbanken

Spaltenorientierte Datenbanken speichern Daten in Spalten statt in Zeilen (siehe Abbildung 1). Gerade bei Data Warehouses bringt dies Vorteile, wenn man Gruppierungen und Aggregate über große Datenmengen hinweg bilden möchte. Zudem können Komprimierungsalgorithmen aufgrund der Ähnlichkeit der Daten innerhalb einer Spalte besser arbeiten. Um die Kompressionsrate zu optimieren, sortieren einige Implementationen die Spaltenwerte.

Zeilen- vs. spaltenbasierte Organisation von Daten (Abb. 1)

Exasol beispielsweise speichert Daten spaltenorientiert und nutzt eine proprietäre In-Memory-Komprimierung. Die Datenbank verwendet zudem einige Algorithmen zur Selbstoptimierung, wie die automatische Erstellung von Indizes, ­Tabellenstatistiken und Verteilung von Daten im Cluster. Exasol ist nicht nur spaltenorientiert, sondern auch darauf optimiert, rein im Memory zu laufen, dabei aber auch Daten gemäß ACID auf Disk zu persistieren. Das Datenbanksystem unterstützt neben dem SQL-Standard 2003 ODBC, JDBC sowie Microsofts Klassen für den Zugriff auf relationale Daten­banken ADO.NET. Zudem gibt es ein ­eigenes SDK.

Auch relationale Datenbanken bieten zum Teil als Erweiterung einen Column Store. MariaDB ColumnStore bindet dazu zum Beispiel eine zusätzliche Storage Engine ein. MySQL plant mit RAPID (derzeit in der geschlossenen Betaphase) einen Column Store mit horizontal skalierbarer In-Memory-Technologie. 

Kommentieren