06 - NoSQL Flashcards
Definition: Vertikale Skalierung
Immer leistungsfähigere Hardware anschaffen
Probleme: Vertikale Skalierung (2)
1) Single point of failure
2) Irgendwann wird eine Grenze erreicht
Definition: Horizontale Skalierung
Mehrere Standard-Rechner anschaffen (relativ billig)
Ziele: Horizontale Skalierung (2)
1) Redundanz (Ausfallsicherheit)
2) Aufteilung der Daten
CAP-Theorem (3)
1) Consistency - Gleichheit der Daten in allen Knoten
2) Availability - Alle anfragen werden mit akzeptabler Reaktionszeit beantwortet
3) Partition Tolerance - System antwortet auch bei Ausfall von Kommunikationsbeziehungen oder Knoten auf Anfragen
Problem: CAP-Theorem
Es ist so gut wie unmöglich alle 3 Eigenschaften zufriedenzustellen, weswegen man sich oft nur bei Web 2.0-Anwendungen auf A-P einigt. So entstanden die BASE-Eigenschaften
BASE-Eigenschaft (3)
1) Basically Available - so oft wie möglich verfügbar
2) Soft State - muss nicht sofort konsistent sein und Kopien auf unterschiedlichen Rechnern müssen nicht jederzeit identisch sein.
3) Eventually Consisten - erreicht zu einem späteren Zeitpunkt Konsistenz
Eigenschaften: NoSQL (6)
1) Datenmodell Nicht Relational
2) Systeme auf vertikale und horizontale Skalierbarkeit ausgelegt
3) Schemafrei oder kaum ein definiertes Schema
4) Unterstützt Datenreplikation
5) Bietet einfache API
6) Miest anderes Konsistenzmodell als relationale Datenbanken (BASE anstatt ACID)
Klassifikation von NoSQL-Datenbanken (4)
1) Key/Value-Datenbanken
2) Dokumentenorientierte Datenbanken
3) Spaltenorientierte Datenbanken
4) Graphdatenbanken
Definition: Key/Value-Datenbanken
In der DB gibt es keine komplizierten Datenstrukturen - sondern Schlüssel-Wert Paare werden anstatt Entitäten gespeichert
Definition: Dokumentenorientierte Datenbanken
Hier wird eine Strukturierte Textdate (z.B. JSON) an die DB geschickt
Definition: Spaltenorientierte Datenbanken
Daten werden spaltenweise und nicht zeilenweise gespeichert. Sobald neue Einträge eingepflegt werden müssen, werden sich dann auch in den jeweiligen Stellen eingetragen und nicht einfach hinten dran eingefügt (z.B. HANA)