Top Up Home HTML2PDF

Einordnung

Was ist NoSQL

  • Eindeutige Definition schwierig
  • Alles, was nicht dem relationalen Datenmodell entspricht
  • Not only SQL
  • Verteilung
  • Keine vollständige Transaktionsunterstützung (ACID)

Warum NoSQL

  • Unterstützung großer Datenmengen verwaltet durch Computer-Cluster
  • Horizontale Skalierbarkeit
  • Flexibler Umgang mit Schemata
  • Bessere Anpassung an Datenstrukturen in Anwendungen
  • Polyglot Persistence

NoSQL vs SQL

  • Relationale Systeme integrieren immer mehr nicht-relationale Strukturen
  • Realisieren ebenfalls Verteilung
  • NoSQL-Syteme unterstützen vermehrt SQL und Transaktionen
  • Die Grenze verschwimmt immer weiter

Aspekte der Verteilung

  • Zugriffstransparenz: Von wo erfolgt der Zugriff
  • Partitionierungsstransparenz: Wo liegen die Daten
  • Replikationstransparenz: An welchen Stellen werden Kopien gespeichert
  • Migrationstransparenz: Repartionierung der Daten

Key Value Store

  • Bekannter Vertreter: Redis
  • Nur Schlüssel-Wert-Paare
  • Keine Abfragesprache
  • Werte sind "Black Box"
  • Strukturierte Datentypen möglich, z.B. Listen, Mengen, Hashes, Blobs

Wide Column Store

  • Bekannter Vertreter: Cassandra
  • Ist kein spaltenorientiertes Datenbanksystemen
  • Zeilenweise Speicherung
  • Zeilen haben kein festes Schema
  • Keine Joins, keine Aggregation
  • Partitionierung / Replikation
  • Schnelles Schreiben, LSM Tree
  • Verschiedene Konistenzmodelle

Document Database

  • Bekannter Vertreter: MongoDB
  • Fokus auf JSON als Dokumente
  • Geschachtete Strukturen
  • Ansonsten ähnlich zu Wide Column Stores

Graph Database

  • Bekannter Vertreter: neo4j
  • Knoten, Kanten, Property Graph
  • Spezielle Abfragesprache, z.B. Cypher
  • Graphalgorithmen, z.B. Shortest Path