Zum Inhalt springen
uencoder

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:[...]})
    Output
    No fixed schema

    Document store

Häufige Fehler

Assuming NoSQL needs no data modeling
Document structure and indexes still need design

Verwandte Begriffe

References