NoSQL
NoSQL ist der Oberbegriff für nichtrelationale Datenbanken, darunter Dokument-, Key-Value-, Spaltenfamilien- und Graphmodelle, entworfen für Skalierbarkeit und flexible Schemata.
Zweck
Die Grenzen relationaler Datenbanken bei riesigen Datenmengen, flexiblen Schemata und horizontalem Skalieren adressieren.
Mechanismus
Vier Haupttypen: Dokument (MongoDB, JSON-Dokumente), Key-Value (Redis, einfach und schnell), Spaltenfamilien (Cassandra, breite dünnbesetzte Zeilen), Graph (Neo4j, beziehungsreich). Tauscht einen Teil von ACID gegen BASE-Eventual-Konsistenz und horizontales Skalieren. Kein festes Schema (oder flexibles Schema).
Anwendungsfälle
- Horizontale Skalierung massiger Daten
- Flexible und dynamische Schemata
- Cache und Session-Speicher
- Soziale Graphen und Empfehlungen
Beispiele
- Eingabe
db.users.insert({name:"Ada",tags:[...]})OutputNo fixed schemaDocument store
Häufige Fehler
- Assuming NoSQL needs no data modeling
- Document structure and indexes still need design
Verwandte Begriffe
SQL
SQL (Structured Query Language) ist die Standard-Abfragesprache relationaler Datenbanken und definiert und manipuliert Daten deklarativ (DDL/DML/DQL/DCL). GLOSSAR
ACID
ACID sind die vier Eigenschaften relationaler Transaktionen: Atomarität (Alles-oder-Nichts), Konsistenz (Constraints gewahrt), Isolation (Nebenläufigkeit ohne Störung), Dauerhaftigkeit (Persistenz nach Commit). GLOSSAR
BASE
BASE ist das schwach konsistente NoSQL-Modell: basically available, soft state, eventually consistent; es tauscht starke Konsistenz gegen Verfügbarkeit und Skalierbarkeit. GLOSSAR
CAP Theorem
Das CAP-Theorem besagt, dass ein verteiltes System bei einer Netzwerkpartition nur eine der beiden Eigenschaften Konsistenz (C) oder Verfügbarkeit (A) erfüllen kann; alle drei zugleich sind unmöglich. GLOSSAR