NOSQL

Big Data

4Vs:

  • Volume: Sehr viele Daten
  • Velocity: Geschwindigkeit von Lesen und Schreiben
  • Variety: verschiedene Formate, teilw. unstrukturiert
  • Veracity: Qualität der Daten

Ziele mit Big Data:

  • Kosteneffizienz
  • Elastic Scaling: sehr einfach erweiterbar
  • New Insights: Daten analysieren
  • Business Intelligence (BI): Mit den Daten Entscheidungen treffen

Datenbanken

Key-Value-Store: jedem Schlüssel wird ein Wert zugeordnet

  • sehr schneller Zugriff, z.B. für Caching

Column-Oriented-Database:
Ähnlich zu relationale Datenbanken, aber Spaltenanzahl je nach Eintrag anders und Speicher ist in Spalten orientiert.

Graph Databases:
Fokussiert auf Beziehungen zwischen Objekten, Aufgeteilt in Nodes und Edges

Document-oriented Databases:
Daten werden in Dokumenten gespeichert, oft in JSON, Blob oder XML. Erlaubt Flexibles Schema

Verteilte Datenbanken

  • Scalability
  • Fault Tolerance + High Availability
  • Geographical Distribution & Low Latency
  • Load Balancing
  • Consistency vs Availability (CAP): Consistency, Availability, Partition Tolerance

Paradigms

ACID:

  • Atomicity
  • Consistency: Constraints
  • Isolation: Tranksaktionen können sich nicht sehen
  • Durability: Ausfallsicherheit

BASE:

  • Basically Available: Datenbank ist zu jedem Zeitpunkt für alle Verfügbar
  • Soft State: Temporäre falsche zustände sind ok
  • Eventualy Consistent: Sobald die Updates fertig sind und alles synchronisiert ist ist alles wieder gut

Unterschiede:

  • Scalability: ACID vertikal, BASE horizontal
  • BASE ist deutlich flexibler
  • BASE ist bei parallelen Zugriffen deutlich performanter
  • BASE ist nicht auf Datenbankebene synchronisiert