Serie | Database, Data Warehouse & Data Lake – Einführung in NoSQL-Datenbanken

NoSQL (englisch für „Not only SQL“) bezeichnet Datenbanken mit einem nicht-relationalen Ansatz zur Speicherung von Daten in einem flexiblen Schema. Dadurch können sowohl strukturierte als auch unstrukturierte Daten effizient gespeichert und genutzt werden, ohne diese in ein bestimmtes Format zu transformieren. Weitere Vorteile von NoSQL-Datenbanken sind eine hohe Skalierbarkeit und Verfügbarkeit, sodass diese sich besonders für Big Data Anwendungen eignen.

 

Vergleichen zwischen relationalen Datenbanken und NoSQL-Datenbanken

Relationale Datenbanken, wie MySQL oder Oracle, speichern Daten in Tabellen mit Spalten und Zeilen. Dazu muss im Voraus ein festes Schema definiert werden, sodass von Anfang an alle Spalten und die entsprechenden Datentypen bekannt sein müssen. Zur Nutzung von NoSQL-Datenbanken ist ein solches vordefiniertes Schema nicht erforderlich. Dadurch kann das Datenmodell jederzeit flexibel angepasst werden.

Ein anderer wesentlicher Unterschied besteht in der Auslegung des CAP Theorems, welches besagt, dass Datenbanksysteme nur zwei der drei folgenden Anforderungen vollständig erfüllen können:

  • Consistency (Konsistenz) bedeutet, dass alle Anwender zur gleichen Zeit dieselben Daten sehen.
  • Availability (Verfügbarkeit) bedeutet, dass alle Anwender jederzeit eine Antwort auf eine Datenabfrage erhalten.
  • Partition-Tolerance (Ausfalltoleranz) bedeutet, dass das System trotz Kommunikationsausfällen zwischen einzelnen Rechnern im System weiterhin funktioniert.

 

Relationale Datenbanksysteme erreichen durch die Nutzung des ACID-Prinzips eine hohe Konsistenz und Verfügbarkeit, ohne jedoch eine Ausfalltoleranz gewährleisten zu können. Das ACID-Prinzip setzt sich dabei aus folgenden Komponenten zusammen:

  • Atomicity (Atomarität): Jede Transaktion wird vollständig oder gar nicht ausgeführt.
  • Consistency (Konsistenz): Transaktionen erzeugen einen gültigen Zustand oder fallen in den alten Zustand zurück.
  • Isolation (Isolation): Gleichzeitige Transaktionen von unterschiedlichen Anwendern beeinflussen sich nicht gegenseitig.
  • Durability (Dauerhaftigkeit): Die Daten einer erfolgreichen Transaktion bleiben dauerhaft gespeichert.

 

NoSQL-Datenbanken setzen hingegen auf das BASE-Prinzip:

  • Basic Availability: Die Anwendung funktioniert quasi immer
  • Soft State: Die Anwendung muss nicht immer eine konsistente Sicht haben
  • Eventual Consistency: Irgendwann aber erhält sie die konsistente Sicht

 

Durch die lockeren Anforderungen an die Konsistenz bieten NoSQL-Datenbanken im Gegensatz zu relationalen Datenbanksystemen eine Ausfalltoleranz. Zudem ist die Verfügbarkeit von relationalen Datenbanken geringer, weil diese die Daten so lange sperren, bis sie konsistent sind. Auch die Skalierbarkeit von relationalen Datenbanksystemen ist durch den Scale Up Ansatz begrenzt, während NoSQL-Datenbanken mit dem Scale Out Prinzip deutlich skalierbarer sind. Damit eignen sich NoSQL-Datenbanken hervorragend für Anwendungen, welche große Datenmengen und geringe Latenzzeiten erfordern, wie zum Beispiel E-Commerce-Anwendungen.

CAP Theorem NoSQL SQL Datenbank Cloud Onpremise Vergleich mongoDB redis apache hbase MySQL MariaDB riak cassandra couchDB SQL Server

 

Arten von NoSQL-Datenbanken

Es gibt vier Arten von NoSQL-Datenbanken, welche sich für unterschiedliche Anwendungsfälle und Datenmodelle eignen.

 

Dokumentenorientierte Datenbanken

Dokumentenorientierte Datenbanken dienen zur Speicherung und Abrufung halbstrukturierter Daten. Dabei werden die Daten als Schlüssel-Wert-Paare in Form von Dokumenten im JSON-Format gespeichert. Diese Datenbanken bieten eine hohe Flexibilität, da nicht definiert werden muss, welche Felder ein Dokument enthalten soll.

Beispiele für dokumentenorientierte Datenbanken sind MongoDB, CouchDB und Riak.

 

Schlüssel/Wert-Paare

Schlüsselwert-Datenbanken sind die flexibelsten NoSQL-Datenbanken. Die Daten werden in einer Hash-Tabelle gespeichert, in welcher jeder Schlüssel einzigartig ist. Der Wert zu einem Schlüssel kann alles Mögliche sein, zum Beispiel ein JSON-Objekt, eine Liste oder Datei, sodass Anwendungen beliebige Werte ohne Schema in einer Schlüsselwert-Datenbank speichern können.

Beispiele für NoSQL-Datenbanken vom Typ Schlüssel/Wert-Paar sind Redis und Dynamo.

 

Spaltenorientierte Datenbanken

Spaltenorientierte Datenbanken speichern Daten in Form von Tabellen mit Zeilen und Spalten und basieren auf dem BigTable-Modell von Google. Die Werte der Spalten werden dabei zusammenhängend gespeichert, sodass sich diese Art von NoSQL-Datenbanken besonders gut für Aggregationsabfragen eignet.

Beispiele für spaltenorientierte Datenbanken sind Cassandra und HBase.

 

Graphenorientierte Datenbanken

Graphenorientierte Datenbanken speichern Daten in Form von Knoten und Kanten, wobei die Kanten die Beziehungen zwischen den Knoten darstellen. Dies ermöglicht eine leichte Visualisierung von Netzwerkverbindungen. Diese Art von NoSQL-Datenbanken wird unter anderem für soziale Netzwerke und Logistik-Anwendungen eingesetzt.

Beispiele für graphenorientierte Datenbanken sind Neo4J und OrientDB.

 

Fazit

NoSQL-Datenbanken stellen eine Alternative zu relationalen Datenbanksystemen dar. Die Vorteile von NoSQL-Datenbanken sind ein flexibles Schema, eine hohe Verfügbarkeit der Daten, nahezu unbegrenzte Skalierbarkeit, Ausfalltoleranz und die Möglichkeit zur Speicherung und Verarbeitung von unstrukturierten Daten. Auf der anderen Seite können NoSQL-Datenbanken keinen jederzeit konsistenten Zustand der Daten garantieren, sodass beispielsweise für Anwendung aus dem Finanzbereich relationale Datenbanksysteme zu bevorzugen sind. Für Anwendungen mit lockereren Anforderungen an die Konsistenz der Daten bieten die vier Arten von NoSQL-Datenbanken jedoch spezifische Eigenschaften, welche für unterschiedliche Einsatzgebiete optimiert sind.

Als IT-Beratung sind wir darauf spezialisiert, unseren Kunden bei der Nutzung von Datenbanken zu helfen. Wir unterstützen Sie bei der Einrichtung, Verwaltung und Optimierung von Speicherlösungen u.a. in der Microsoft Azure Cloud. Datalytics steht Ihnen zur Verfügung und wird ihnen helfen, die bestmöglichen Speicherlösungen für Ihr Unternehmen zu finden und zu implementieren.

Sie möchten mehr über die Möglichkeiten von NoSQL-Datenbanken erfahren? Dann nichts wie ab zu unserem Data Strategy & Analytics Assessment!

 

Übersicht der Database, Data Warehouse & Data Lake Serie:

 

Haben wir Ihr Interesse geweckt? Kontaktieren Sie uns!

Ihr Ansprechpartner

Datalytics Mitarbeiter Vorstellung Christoph-Espelage

Christoph Espelage

christoph.espelage@datalytics-consulting.com
+49 178 3984086