NoSQL-Datenbanken

Übersicht für die ersten Schritte

Was sind NoSQL-Datenbanken?

Für NoSQL-Datenbanken werden unterschiedliche Bezeichnungen verwendet, beispielsweise „nicht relational“, „NoSQL-DBs“ oder „Nicht-SQL“. Damit soll ausgedrückt werden, dass sie in der Lage sind, riesige Mengen an schnell veränderlichen, nicht strukturierten Daten auf andere Weise als relationale Datenbanken (SQL) mit Zeilen und Spalten zu verarbeiten.

Die Technologien hinter NoSQL sind schon seit den 1960er-Jahren unter verschiedenen Namen bekannt. Richtige Popularität haben sie aber erst gewonnen, seit sich die Datenlandschaft verschoben hat, sodass Entwickler Wege finden müssen, um die riesigen und vielfältigen Daten beherrschen zu können, die in der Cloud, mobil, in sozialen Medien und durch Big Data generiert werden.

Heutzutage entstehen mit einer enormen Geschwindigkeit ständig neue Daten und Datentypen – von den viralen Tweets von Prominenten bis hin zu lebensrettenden elektronischen Daten im Gesundheitswesen. Mit NoSQL-Datenbanken steht Entwicklern eine Möglichkeit zur Verfügung, schnell Datenbanksysteme zu erstellen, in denen sie neue Informationen speichern können, die sie dann fertig aufbereitet für die Suche, Konsolidierung und Analyse zur Verfügung stellen können.

Vorteile von NoSQL-Datenbanken (NoSQL-DBs)

NoSQL-Datenbanken unterstützen IT-Experten und Entwickler bei neuen Herausforderungen aufgrund immer vielfältigerer Datentypen und Modelle. Außerdem sind sie äußerst effektiv bei der Arbeit mit nicht vorhersagbaren Daten – oftmals mit unglaublich hohen Abfragegeschwindigkeiten. Darüber hinaus bieten sie für vorhandene NoSQL-Workloads eine nahtlose Datenbankmigration zur Cloud.

Agil entwickeln

Durch die Möglichkeit der Reaktion auf ungeplante Situationen eignen sich NoSQL-Datenbanken ideal für schnelle Releasezyklen von Software und damit eine schnellere und flexiblere App-Entwicklung.

Daten flexibel verarbeiten

Durch NoSQL erhalten Entwickler mehr Freiheiten sowie eine höhere Geschwindigkeit und Flexibilität bei der Anpassung von Schemas und Abfragen an ihre Datenanforderungen. Informationen werden als Aggregate gespeichert, sodass schnellere iterative Verbesserungen möglich sind – und das, ohne vorab ein Schema entwerfen zu müssen.

Beliebige Größe

NoSQL-Datenbanken können im laufenden Betrieb beträchtliche Vorteile bieten und Einsparungen ermöglichen. So können sie beispielsweise horizontal skaliert werden, indem günstige Server hinzugefügt werden, ohne dass dazu ein Upgrade nötig wäre. Durch das horizontale Skalieren können Sie mehr Daten aufnehmen oder eine einzelne, riesige Datenbank innerhalb eines flexibel verteilbaren Serverclusters bereitstellen.

Typen von Datenmodellen bei NoSQL-Datenbanken

Die meisten nicht relationalen Hochleistungs-Datenbanken – manchmal als „not only SQL“ bezeichnet – können auch stark strukturierte Daten verarbeiten. In den meisten Fällen werden sie nur durch starre Datenmodelle wie relationale Datenbanken (SQL) eingeschränkt.

Die vier häufigsten Typen von NoSQL-Datenbanken sind:

Schlüssel-Wert

In Schlüssel-Wert-Speichern werden Schlüssel und Werte über eine Hashtabelle zugeordnet. Schlüssel-Wert-Typen eignen sich am besten, wenn der Schlüssel bekannt und der dem Schlüssel zugeordnete Wert unbekannt ist.

Dokument

Dokumentdatenbanken erweitern das Konzept von Schlüssel-Wert-Datenbanken, indem in ihnen ganze Dokumente in Gruppen zusammengefasst sind, die als Sammlungen bezeichnet werden. Sie unterstützen geschachtelte Schlüssel-Wert-Paare und ermöglichen Abfragen zu jedem Attribut innerhalb eines Dokuments.

Einspaltig

Einspaltige oder breitspaltige Datenbanken oder solche mit Spaltenfamilien sorgen für eine effiziente Speicherung der Daten und schnelle Abfragen über Zeilen in Spalten mit geringer Dichte. Ihre ganze Stärke spielen sie bei Abfragen über bestimmte Spalten in der Datenbank aus.

Graph

Bei Graphdatenbanken kommt ein Modell zum Einsatz, das auf Knoten und Kanten beruht, mit denen verbundene Daten dargestellt werden – ähnlich den Beziehungen zwischen Personen in einem sozialen Netzwerk. Sie ermöglichen eine einfache Speicherung und Navigation in komplexen Beziehungen.

Vergleich relationaler (SQL) und nicht relationaler (NoSQL) Datenbanken

Nicht verfügbar NoSQL oder nicht relational SQL oder relational
Am besten geeignet für:
  • Verarbeitung umfangreicher, nicht verbundener, unbestimmter oder schnell veränderlicher Daten
  • Schemaunabhängige Daten oder von der App vorgegebenes Schema
  • Apps, bei denen Leistung und Verfügbarkeit wichtiger als die Konsistenz sind
  • Always On-Apps für Benutzer auf der ganzen Welt
  • Verarbeitung relationaler Daten mit logischen und diskreten Anforderungen, die im Voraus ermittelt werden können
  • Verwaltung und Synchronisierung des Schemas zwischen App und Datenbank
  • Ältere Systeme für relationale Strukturen
  • Apps, die komplexe Abfragen oder Transaktionen über mehrere Zeilen erfordern
Szenarien:
  • Mobile Apps
  • Echtzeitanalysen
  • Content Management
  • Personalisierung
  • IoT-Apps
  • Datenbankmigration
  • Buchhaltung, Finanzwesen und Banksysteme
  • Systeme für die Bestandsverwaltung
  • Systeme für die Transaktionsverwaltung
Skalierung:
  • Horizontale Skalierung durch Sharding über mehrere Server
  • Vertikale Skalierung der Daten durch Steigerung der Serverauslastung
Datenmodell:
  • Datenbanktypen: Schlüssel-Wert, Dokument, einspaltige und Graphdatenbanken
  • Speicherung der Daten in Abhängigkeit vom Datenbanktyp
  • Datenbanktyp: Tabellen mit Zeilen, gruppiert nach Beziehungen
  • Verwendung strukturierter Abfragesprache (Structured Query Language, SQL)
  • Speicherung der Daten als Zeilen in Tabellen – zusammengehörige Daten werden getrennt gespeichert und für komplexe Abfragen verknüpft
Nicht verfügbar Weitere Informationen zu nicht relationalen Datenmodellen Weitere Informationen zu relationalen Datenmodellen

Wie bewerte ich eine NoSQL-Datenbank?

Ein Datenmodell auswählen

Viele NoSQL-Datenbanken sind auf Aggregate ausgerichtet. Dabei handelt es sich um eine Sammlung von Daten, mit denen Sie als Einheit arbeiten können. Damit eignen sie sich erheblich besser für moderne, objektorientierte Programmiersprachen. Wenn Sie sich für eine NoSQL-Datenbank entscheiden, werden Sie zunächst ein Datenmodell auswählen. Erst danach untersuchen Sie NoSQL-Datenbanken, die dieses Modell unterstützen, sowie die Programmiersprachen und SDKs, die mit den jeweiligen Datenbanken verwendet werden können.

Weitere Informationen zu Programmiermodellen und APIs

Kompromisse bei der Konsistenz

Bei den meisten NoSQL-Datenbanken können Sie die Konsistenz beliebig festlegen: von strikter Konsistenz – bei der Sie die aktuellsten Daten erhalten, aber möglicherweise etwas warten müssen – bis zu einer lediglich finalen Konsistenz, die zwar schnelle Antwortzeiten bietet, aber bei der die Daten möglicherweise bereits veraltet sind. Es gibt eine Vielzahl von NoSQL-Datenbanken, die noch andere Konsistenzstufen zwischen diesen beiden Extremen unterstützen. Entscheiden Sie sich für eine NoSQL-Datenbank, die Ihnen größtmögliche Flexibilität und Kontrolle über die Konsistenzmodelle für Ihre Anforderungen bietet.

Weitere Informationen zu Konsistenz, Verfügbarkeit und Partitionstoleranz

Einfluss von Cloud und Datenbankmigration

Da es sich bei NoSQL-Datenbanken um verteilte Datenbanken handelt, die horizontal skalierbar sind, eignen sie sich perfekt für Cloud Computing. Sie werden allerdings auch auf viele NoSQL-Datenbanksysteme stoßen, die lokal oder in Hybridszenarien ausgeführt werden.

Beachten Sie bei der Beurteilung Ihrer Cloudoptionen Folgendes:

  • Unterstützte Datenmodelle: Unterstützt der Cloudanbieter alle Datenmodelle, die Sie eventuell nutzen möchten?
  • Bereitstellung und Betrieb: Wie einfach ist die Bereitstellung der Datenbank und ihre Replikation in andere Regionen, sofern dies erforderlich ist?
  • Geografische Verfügbarkeit: Wo befinden sich die Rechenzentren des Cloudanbieters? Können Sie Ihre Daten an den von Ihnen gewünschten Orten aufbewahren? Wie gut können Sie globale Vorgaben zum Datenschutz wie die DSGVO der Europäischen Union einhalten?
  • Einfache Replikation: Wie läuft die Replikation einer Datenbank in eine andere geografische Region ab?
  • Skalierbarkeit: Können Sie mithilfe der Ressourcen Ihrer NoSQL-Datenbank eine ausreichende Leistung sicherstellen, und sind Sie auf zukünftiges Wachstum vorbereitet? Sind zentrale oder horizontale Skalierungen möglich?
  • Hochverfügbarkeit: Was passiert bei einem unerwarteten Ausfall? Bietet der Dienst integrierte Hochverfügbarkeit und Notfallwiederherstellung?
  • Servicelevel: Welche Garantien gibt es hinsichtlich Verfügbarkeit oder Latenz?
  • Ökosystem: Ist die Datenbank eng mit der übrigen Cloudplattform integriert, und erlaubt sie das schnelle Zusammenfügen neuer Lösungen?

Anwendungsmöglichkeiten für NoSQL-Datenbanksysteme

Datenmodelle auf der Grundlage von NoSQL eignen sich perfekt für alle Unternehmen, die mobile, Web-, IoT- (Internet of Things) oder Gaming-Apps entwickeln möchten, die flexible, skalierbare, leistungsstarke und umfassende Datenbanken erfordern, mit denen eine ansprechende Benutzererfahrung gewährleistet werden soll – egal ob bei Gaming, E-Commerce, Big Data-Analysen oder Echtzeit-Web-Apps ... oder darüber hinaus.

Apps global verteilen

Gewinnen Sie mit einer höheren App-Leistung durch Hochverfügbarkeit und Notfallwiederherstellung neue Benutzer – buchstäblich auf der ganzen Welt.

Benutzererfahrungen in Echtzeit

Mit NoSQL-Datenbanken können Sie Personalisierungen und Empfehlungen in Echtzeit bereitstellen und für mehr Benutzerfreundlichkeit sorgen.

Verschiedenste IoT-Workloads unterstützen

Führen Sie sofortige und elastische Skalierungen durch – für dauerhafte, schreibintensive Datenerfassungen mit verbesserter Abfrageleistung für IoT-Apps.

E-Commerce-Apps erweitern

Durch flexible Schemas und hierarchische Daten eignet sich NoSQL ideal für die Speicherung der Daten von Produktkatalogen, in denen die verschiedenen Produkte unterschiedliche Attribute aufweisen.

Gamer mit neuen Inhalten motivieren

Erschaffen Sie personalisierte Benutzeroberflächen, die Elemente wie Spielstände, Einbindung sozialer Medien oder Bestenlisten enthalten. Niedrige Latenzen und eine flexible Skalierung sorgen auch bei Datenverkehrsspitzen durch Spieleinführungen oder Turniere für einen reibungslosen Ablauf.

Serverlose Apps entwickeln

Skalieren Sie Datenerfassung, Durchsatz und Datenvolumen reibungslos und mit sofortiger Verfügbarkeit, automatischer Indizierung, stabilen Erfassungsraten und hoher Abfrageleistung.

Bessere Erkenntnisse aus Big Data

Implementieren Sie Machine Learning im großen Maßstab, um Ihre schnell veränderlichen, umfangreichen Daten noch besser analysieren zu können.

Vorhandene NoSQL-Workloads zur Cloud migrieren

Verbringen Sie weniger Zeit mit der Verwaltung einer lokalen Datenbank. Führen Sie stattdessen eine Migration zur Cloud durch, bei der Sie trotzdem Ihre vorhandenen Tools, Treiber, Bibliotheken und SDKs weiter nutzen können.

Erste Schritte mit NoSQL und der Datenbankmigration zur Cloud

Erfahren Sie, wie Sie Ihre Apps mit ganz neuer Flexibilität und Skalierbarkeit bei der Verwaltung Ihrer Datenbanksysteme und unterschiedlichen Datentypen entwickeln können und wie Sie vorhandene NoSQL-Workloads per Datenbankmigration zur Cloud migrieren. In dieser technischen Übersicht über Azure Cosmos DB für Entwickler finden Sie mehr Informationen zur nativen Unterstützung für NoSQL in einem global verteilten, umfassend skalierbaren Datenbankdienst, der darüber hinaus mehrere Modelle unterstützt.

Weitere Informationen zu Azure Cosmos DB für NoSQL-Daten

Weitere Informationen