Trace Id is missing
Zum Hauptinhalt wechseln

NoSQL-Datenbank: Was ist NoSQL?

Übersicht für die ersten Schritte

Was sind NoSQL-Datenbanken?

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

NoSQL-Technologien sind schon seit den 1960er Jahren unter verschiedenen Namen bekannt. Richtig populär sind sie aber erst mit der Umstrukturierung der Datenlandschaft geworden. Also seit Entwickler die großen und vielfältigen Datenmengen bewältigen müssen, die in der Cloud, auf dem Mobilgerät, in den Social Media und durch Big Data generiert werden.

Neue Daten und Datentypen entstehen heute in einem rasanten Tempo – von viralen Tweets prominenter Personen bis hin zu lebensrettenden elektronischen Daten im Gesundheitswesen. NoSQL-Datenbanken bieten Entwicklern die Möglichkeit, Datenbanksysteme zur Speicherung neuer Informationen schnell umzusetzen und sofort für die Suche, Konsolidierung und Analyse bereitzustellen.

Die Vorteile von NoSQL-Datenbanken (NoSQL-DBs)

NoSQL-Datenbanken unterstützen IT-Fachleute und Entwickler bei neuen Herausforderungen, die durch immer vielfältigere Datentypen und Modelle entstehen. Außerdem sind sie äußerst effektiv im Umgang mit nicht vorhersagbaren Daten – oft mit extrem schnellen Abfragegeschwindigkeiten. Darüber hinaus bieten sie für vorhandene NoSQL-Workloads eine nahtlose Datenbankmigration zur Cloud.

Agil entwickeln

Durch die dynamische Reaktion auf ungeplante Situationen eignen sich NoSQL-Datenbanken besonders für dynamische Softwarereleasezyklen sowie die besonders schnelle und agile App-Entwicklung.

Daten flexibel verarbeiten

NoSQL bietet Entwicklern mehr Freiheiten sowie eine höhere Geschwindigkeit und Flexibilität, um Schemas und Abfragen an ihre Datenanforderungen anzupassen. Informationen werden als Aggregate gespeichert, sodass schnelle iterative Verbesserungen möglich sind – ohne vorab ein Schema entwerfen zu müssen.

Größe beliebig skalieren

NoSQL-Datenbanken können im laufenden Betrieb enorme Vorteile und Kosteneinsparungen bieten. Beispielsweise lassen sie sich "horizontal skalieren" oder ohne Upgrade um günstige Server erweitern. Durch die Skalierung können sie mehr Daten aufnehmen oder eine einzelne, große Datenbank innerhalb eines flexibel verteilbaren Serverclusters bereitstellen.

Typen von Datenmodellen bei NoSQL-Datenbanken

Die meisten nicht relationalen Hochleistungsdatenbanken – manchmal als „Not Only SQL“ bezeichnet – können auch stark strukturierte Daten verarbeiten. Allerdings sind sie nicht wie relationale Datenbanken (SQL) auf starre Datenmodelle beschränkt.

 

Die vier häufigsten Typen von NoSQL-Datenbanken:

Schlüssel-Wert

Schlüssel und Werte werden in einem dafür vorgesehenen Speicher über eine Hashtabelle zugeordnet. Schlüssel-Wert-Typen eignen sich am besten, wenn ein Schlüssel bekannt und der zugehörige Wert des Schlüssels unbekannt ist.

Dokument

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

Spaltenorientiert

Spaltenorientierte Datenbanken (wie Wide-Column- oder Column-Family-Datenbanken) speichern Daten und Abfragen effizient in Datenzeilen, die platzsparend sind und Vorteile bei der Abfrage bestimmter Datenbankspalten bieten.

Graph

Graphdatenbanken basieren auf einem Modell aus „Knoten“ und „Kanten“, die die Vernetzung von Daten  darstellen – z. B. die Beziehungen zwischen Personen in einem sozialen Netzwerk. Diese Datenbanken ermöglichen die einfache Speicherung und Navigation trotz komplexer Beziehungen.

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

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 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
  • Legacy-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 Erhöhung der Serverlast

DATENMODELL:

  • Datenbanktypen: Schlüssel-Wert-, Dokument-, spaltenorientierte 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 Tabellenzeilen – zusammengehörige Daten werden getrennt gespeichert und für komplexe Abfragen verknüpft

Wie evaluiere 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 interagieren. Damit eignen sie sich viel 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 evaluieren Sie NoSQL-Datenbanken, die dieses Modell unterstützen, sowie die Programmiersprachen und SDKs, die mit den jeweiligen Datenbanken verwendet werden können.

Kompromisse bei der Konsistenz abwägen

Bei den meisten NoSQL-Datenbanken können Sie die Konsistenz beliebig festlegen: von strikter Konsistenz, bei der Sie brandaktuelle Daten erhalten, aber möglicherweise etwas warten müssen, bis hin zur irgendwann erreichten Konsistenz (Eventual Consistency), die zwar schnelle Antwortzeiten, aber möglicherweise veraltete Daten bietet. Es gibt viele NoSQL-Datenbanken, die weitere 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.

Cloud- und Datenbankmigration einbeziehen

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.

Bei der Evaluierung Ihrer Cloudoptionen sollten Sie Folgendes berücksichtigen:

  • Unterstützte Datenmodelle. Unterstützt der Cloudanbieter alle Datenmodelle, die Sie ggf. nutzen möchten?
  • Bereitstellung und Betrieb. Wie einfach sind 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 lassen sich globale Vorgaben zum Datenschutz wie die DSGVO der Europäischen Union einhalten?
  • Einfache Replikation. Wie erfolgt die Replikation einer Datenbank in eine andere geografische Region?
  • Skalierbarkeit. Können Sie mithilfe der Ressourcen Ihrer NoSQL-Datenbank eine ausreichende Leistung sicherstellen, und sind Sie auf zukünftiges Wachstum vorbereitet? Ist die Skalierung in alle Richtungen möglich (nach oben, unten oder horizontal)?
  • Hochverfügbarkeit. Was passiert bei einem unerwarteten Ausfall? Bietet der Dienst integrierte Hochverfügbarkeit und Notfallwiederherstellung?
  • Servicelevels. Welche Zusicherungen gibt es hinsichtlich Verfügbarkeit oder Latenz?
  • Ökosystem. Ist die Datenbank eng in die übrige 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 und deshalb auf flexible, skalierbare, leistungsstarke und funktionsstarke Datenbanken angewiesen sind, um ein attraktives Benutzererlebnis zu bieten – sei es für Gaming, E-Commerce, Big-Data-Analysen, Echtzeit-Web-Apps oder andere Zwecke.

Apps weltweit bereitstellen

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

Kundenerlebnisse in Echtzeit bieten

Bieten Sie mit NoSQL-Datenbanken Personalisierung, Echtzeitempfehlungen und ein optimiertes Benutzererlebnis.

Verschiedene IoT-Workloads unterstützen

Führen Sie sofortige und elastische Skalierungen durch, um eine dauerhafte, schreibintensive Datenerfassung mit verbesserter Abfrageleistung für IoT-Apps sicherzustellen.

E-Commerce-Apps erweitern

Durch flexible Schemas und hierarchische Daten ist NoSQL ideal für die Speicherung von Produktkatalogdaten, in denen die verschiedenen Produkte unterschiedliche Attribute aufweisen.

Gamer mit neuen Inhalten motivieren

Bieten Sie eine personalisierte Benutzeroberfläche, die Elemente wie Spielstände, Einbindung sozialer Medien oder Bestenlisten enthält. Durch geringe Latenz und elastische Skalierbarkeit lassen sich Spitzenlasten beim Datenverkehr wie etwa bei Markteinführungen und Turnieren bewältigen.

Serverlose Apps entwickeln

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

Bessere Erkenntnisse aus Big Data gewinnen

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 in die Cloud migrieren

Sparen Sie Zeit bei der Verwaltung Ihrer lokalen Datenbank. Migrieren Sie stattdessen in die Cloud, wobei Sie Ihre vorhandenen Tools, Treiber, Bibliotheken und SDKs weiter nutzen können.

Jetzt einsteigen in NoSQL und Datenbankmigration in die Cloud

Erfahren Sie, wie Sie Ihre Apps mit neuer Agilität, Flexibilität und Skalierbarkeit entwickeln, und zwar mit Blick auf die Verwaltung von Datenbanksystemen und diverse Datentypen, und Ihre Datenbank für vorhandene NoSQL-Workloads in die Cloud migrieren. In dieser technischen Übersicht über Azure Cosmos DB für Entwickler  finden Sie weitere Informationen zur nativen NoSQL-Unterstützung in einem global verteilten, umfassend skalierbaren Datenbankdienst, der darüber hinaus mehrere Modelle unterstützt.

Mehr erfahren über Azure Cosmos DB for NoSQL-Daten   
Mehr erfahren