NoSQL
NoSQL (Not only SQL) steht für Datenbanksysteme, die einen nicht-relationalen Ansatz verfolgen. Diese Datenbanken skalieren horizontal und eignen sich besonders für Big-Data-Anwendungen.
In diesem Artikel oder Abschnitt fehlen noch wichtige Informationen.
Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.
Die Architektur von NoSQL-Datenbanken sind auf Größe und Performance ausgelegt. Aufgrund ihres Aufbaus sind für große Datenmengen, wie sie in Big-Data-Anwendungen verwendet werden, gut geeignet.
Es gibt verschiedene NoSQL-Ansätze und Datenbankmodelle, die in vier Hauptkategorien eingeteilt werden können:
- Dokumenorientierte Datenbanken
- Spaltenorientierte Datenbanken
- Graphendatenbanken
- Key-Value-Datenbanken
Typen
Dokumentenorientierte Datenbanken:
Dokumentenorientierte Datenbanken speichern Daten als Dokumente, die in einem bestimmten Format wie JSON oder XML vorliegen. Ein solches Dokument kann eine ganze Menge an Informationen speichern, und es ist flexibel genug, um verschiedene Arten von Daten aufzunehmen. Dokumentenorientierte Datenbanken sind eine gute Wahl für Anwendungen, die viele komplexe Datenstrukturen benötigen.
Key-Value-Datenbanken:
Key-Value-Datenbanken speichern Daten als Schlüssel-Wert-Paare. Die Daten sind somit unstrukturiert und können beliebig groß sein. Der Schlüssel ist ein eindeutiger Identifier, mit dem auf die gespeicherten Daten zugegriffen werden kann. Key-Value-Datenbanken sind sehr schnell und einfach zu verwenden, was sie zu einer guten Wahl für Anwendungen macht, bei denen schnelle Lese- und Schreibzugriffe erforderlich sind.
Graphendatenbanken:
Graphendatenbanken speichern Daten als Knoten und Kanten. Die Knoten repräsentieren Entities wie Personen oder Orte, während die Kanten Beziehungen zwischen den Knoten darstellen. Graphendatenbanken sind sehr gut geeignet für Anwendungen, die komplexe Beziehungen zwischen Daten haben, wie zum Beispiel Social-Media-Plattformen oder Empfehlungssysteme.
Spaltenorientierte Datenbanken:
Spaltenorientierte Datenbanken speichern Daten in Spalten anstatt in Reihen. Die Daten sind somit in einer Matrix organisiert, wobei jede Spalte eine bestimmte Art von Daten enthält. Spaltenorientierte Datenbanken sind sehr effizient bei der Verarbeitung von großen Datenmengen und eignen sich daher gut für Anwendungen, die eine hohe Skalierbarkeit erfordern, wie z.B. Business Intelligence oder Data Warehousing.
Unterschiede
Im Gegensatz zu relationalen Datenbanken verwenden NoSQL-Datenbanken alternative Datenbankmodelle wie Wertepaare, Objekte, Dokumente oder Listen und Reihen für die Organisation der Daten. Sie sind für Anwendungen optimiert, bei denen SQL-basierte relationale Datenbanken nicht ausreichen. Sie werden oft auch strukturierte Datenspeicher bezeichnet.
Modelle
Einige der bekanntesten NoSQL-Datenbanken sind:
Leistung
Ben Scofield hat die Leistung von NoSQL-Datenbanken wie folgt bewertet:
Datenmodell | Leistung | Skalierbarkeit | Flexibilität | Komplexität | Funktionalität |
---|---|---|---|---|---|
Key-Value | hoch | hoch | hoch | keine | unterschiedlich (keine) |
Spaltenorientiert | hoch | hoch | mittel | gering | minimal |
Dokumentenorientiert | hoch | unterschiedlich (hoch) | hoch | gering | unterschiedlich (gering) |
Graphbasiert | unterschiedlich | unterschiedlich | hoch | hoch | Graphentheorie |
RelationalRelational | unterschiedlich | unterschiedlich | gering | mittel | Relationale Algebra |