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