Was bedeutet der Begriff NoSQL?
NoSQL steht für „Not only SQL“ und bezieht sich auf Datenbanksysteme, die nicht (ausschließlich) das relationale Modell und die SQL-Abfragesprache verwenden. Stattdessen legen sie Wert auf hohe Skalierbarkeit, flexible Datenstrukturen und hohe Verfügbarkeit.
Warum entstanden NoSQL-Systeme ursprünglich?
Sie entstanden, um die Anforderungen von sehr schnell wachsenden Internetanwendungen (z. B. soziale Netzwerke, Web-Shops) zu erfüllen:
Hohe Skalierbarkeit: Datenbank soll horizontal durch weitere Server erweiterbar sein (Scale-Out).
Hohe Verfügbarkeit: Ein Ausfall einzelner Knoten darf das Gesamtsystem nicht lahmlegen.
Verzicht auf strenge ACID-Regeln: Stattdessen BASE-Modell (Basically Available, Soft state, Eventual consistency), um kurzfristige Inkonsistenzen zugunsten höherer Verfügbarkeit zu tolerieren.
Welche Gemeinsamkeiten haben NoSQL-Systeme typischerweise?
Häufig Open Source.
Datenmodell ist nicht zwingend relational (stattdessen Key-Value, Document, Graph etc.).
Einfachere Datenschemata, häufig „schemafrei“ oder mit lockeren Vorgaben.
Keine klassische SQL-Schnittstelle, stattdessen einfache API-Aufrufe.
Oft verteilte Speicherarchitektur mit integrierter Replikation.
Was ist der Unterschied zwischen ACID und BASE?
ACID (Atomicity, Consistency, Isolation, Durability): Relationale Datenbanken gewährleisten strenge Konsistenz und Transaktionssicherheit.
BASE (Basically Available, Soft state, Eventual consistency): NoSQL-Systeme erlauben vorübergehende Inkonsistenzen, sind dafür aber hochverfügbar und verteilbar.
Welche Hauptkategorien von NoSQL-Datenbanksystemen gibt es?
Key-Value-Stores: Speichern alle Daten in Form von Schlüssel/Wert-Paaren.
Wide Column Stores: Speichern Daten spaltenweise; häufig gruppierte Spaltenfamilien.
Document Stores: Speichern „Dokumente“ (z. B. JSON, XML) mit frei definierbarer Struktur.
Graphdatenbanken: Speichern Daten in Knoten und Kanten, ideal für vernetzte Daten (Social Graph, Verkehrsnetze etc.).
Wie funktionieren Key-Value-Stores?
Daten werden als Schlüssel („Key“) und Wert („Value“) abgelegt.
Sehr flexibel, da sich der „Value“ nicht an ein strenges Schema halten muss.
Typische Vertreter sind z. B. Redis, Riak.
Was sind Wide Column Stores?
Auch „Column-oriented“ bzw. „Column-Family“ Stores.
Daten werden in Spaltenform statt in Zeilenform organisiert – gut für analytische Auswertungen.
Vertreter: Apache Cassandra, HBase.
Wozu dienen Document Stores?
Speichern halbstrukturierte Daten im JSON-/BSON-/XML-Format als sogenannte „Documents“.
Sehr flexibel bezüglich Änderung oder Erweiterung der Felder.
Vertreter: MongoDB, CouchDB.
Was sind Graphdatenbanken?
Knoten (Entities) und Kanten (Relations) stehen im Mittelpunkt.
Ideal für stark vernetzte Daten (soziale Netzwerke, Geodaten, Routenplanung).
Vertreter: Neo4j, AllegroGraph.
Was sind Vor- und Nachteile von NoSQL-Systemen?
Vorteile:
Skalierbarkeit (horizontal): Neue Knoten hinzufügen.
Hohe Verfügbarkeit dank Replikation.
Flexibles Datenschema, schnelle Anpassung an neue Anforderungen.
Nachteile:
Teilweise nur eventual consistency, daher mögliche vorübergehende Inkonsistenz.
Häufig keine standardisierte Abfragesprache wie SQL.
ACID-Transaktionen sind oft eingeschränkt (z. B. keine komplexen Joins).
Zuletzt geändertvor 2 Monaten