Einführung in NoSQL-Datenbanken und
deren Klassifizierung
© 2012 TravelTainment
Von
Patrick Becker
Gliederung
Einleitung & Motivation
Grundlagen
Klassifizierung von NoSQL-Datenbanken
CAP-Theorem
Eventually Consistent / BASE
Multiversion Concurrency Control
Zusammenfassung & Fazit
Ausblick
© 2012 TravelTainment
Einleitung
Weltweit gespeicherte Datenmenge
1,8 Zettabyte (1,8 Billionen Gigabyte)
Datenvolumen verdoppelt sich
Gründe:
Mehr Internetnutzer
Web2.0-Zeitalter
RDBMS
© 2012 TravelTainment
Einleitung
Probleme von RDBMS:
Performanceprobleme
Nachträgliche Schemaänderungen
Impedance Mismatch
Web2.0-Zeitalter Anforderungen:
Performance
Verfügbarkeit
Skalierbarkeit
[1]
© 2012 TravelTainment
NoSQL = Not only SQL
Verzicht auf Relationen
NoREL
Keine klare Definition
© 2012 TravelTainment
Grundlagen - NoSQL
Grundlagen – Definition von NoSQL
1.
2.
3.
4.
5.
6.
7.
Prof. Dr. Edlich
Nicht relational
Verteilt und horizantal skaliert
Open-Source
Schemafrei
Einfache Datenreplikation
Einfache Programmierschnittstelle
Eventually Consistent/ BASE
© 2012 TravelTainment
Grundlagen – Nicht Relational
Problem: Impedance-Mismatch
Beispiel: Speicherung von Fluginformationen
DUS
DUS
CGN
PMI
© 2012 TravelTainment
PMI
Grundlagen – Nicht Relational
Erste Möglichkeit:
Unflexibel
© 2012 TravelTainment
.…
Grundlagen – Nicht Relational
ZweiteMöglichkeit
© 2012 TravelTainment
Sehr komplex
Join-Operationen
Performancegewinn
© 2012 TravelTainment
Grundlagen – Nicht Relational
Serverarchitektur
Skalierungsmöglichkeiten:
Vertikal
Horizontal
© 2012 TravelTainment
Grundlagen – Verteilt und hoizontal skaliert
Grundlagen – Open-Source
Kaum Beachtung
Ziele:
leichter Zugang
günstige Alternative
Geringe Bedeutung
© 2012 TravelTainment
Grundlagen – Schemafreiheit
Schemafreiheit oder nur schwache
Schemaausprägungen
Problem:
Agile Web2.0-Anforderungen und Datenstukturen
Nachträgliche Schemaanpassungen
Ziel:
Schemaanpassungen in den Anwendungen
© 2012 TravelTainment
Serverausfall
Datenbestand sichern
© 2012 TravelTainment
Grundlagen – Einfache Datenreplikation
Grundlagen – Einfache Programmierschnittstelle
SQL zu komplex:
Join-Operationen
Unterabfragen
ineinandergeschachtelte Select-Operationen
rekursive Select-Operationen
Ziel: NoSQL-APIs einfacher als SQL
Idee: Daten als Ganzes speichern
© 2012 TravelTainment
Konsistenzmodell
Bankanwendungen
Soziale Netzwerke
Gegenseite strikter
Konsistenzanforderungen
© 2012 TravelTainment
Grundlagen – Eventually Consistency / BASE
Klassifizierung von NoSQL-Datenbanken
Es gibt mehr als 120 NoSQL-Datenbanken
Core-NoSQL-Systeme
Soft-NoSQL-Systeme
Wide-Column-Store/
Column-Families
Object-Databases
Document-Stores
Grid & Cloud-DatabaseSolutions
Key-Value-Store
XML-Databases
Graph-Databases
Etc.
© 2012 TravelTainment
Wide-Column-Stores / Column-Families
Spaltenorientierte Datenbanksysteme
Column-Family:
Gruppe von mehreren Spalten
© 2012 TravelTainment
Zeilenorientierte Datenbank:
Spaltenorientierte Datenbank:
Vertreter: Cassandra, HBase, Amazon SimpleDB
und Hypertable
© 2012 TravelTainment
Wide-Column-Stores / Column-Families
Document-Stores
Speichern Daten als
Ganzes
Identifikationsnummer
Redundanz
Schemalos
Keine Relationen
Vertreter: Lotus Notes,
Riak, CouchDB und
MongoDB
{
„firstn“:“Patrick“,
1
„lastn“:“Becker“
}
{
„firstn“:“Patrick“,
2
„lastn“:“Moll“,
„age“:“19“
}
© 2012 TravelTainment
Wert Schlüssel
Wert:
Strukturiert
Unstrukturiert
Semistrukturiert
Nicht zwingend ein String
Listen & Mengen
Abfrage der Daten über den Schlüssel
Eingeschränkte Abfragemöglichkeit
© 2012 TravelTainment
Key/Value-Store
Graphdatenbanken
Graphmodell
Relationen
Effiziente
Traversierung
Vertreter: Neo4J,
HyperGraphDB und
noch viele mehr
A
befreundet
B
gefällt
befreundet
C
C
Bild
© 2012 TravelTainment
Brewers-Theorem
Consistency(Konsistenz)
Availabilitiy(Verfügbarkeit)
Partition Tolerance(Ausfalltoleranz)
Vereinbarkeit ist unerreichbar
© 2012 TravelTainment
CAP-Theorem
[2]
© 2012 TravelTainment
CAP-Theorem
Verfügbar und ausfalltolerant(AP)
© 2012 TravelTainment
CAP-Theorem - Beispiel
© 2012 TravelTainment
CAP-Theorem - Beispiel
© 2012 TravelTainment
CAP-Theorem - Beispiel
BASE = Basically Available, Soft State, Eventually
Consistent
Gegenseite der Konsistenzeinhaltung
Weak-Consistency
Übergangsprozess
Zeitfenster der Inkonsistenz
Verfügbarkeit
© 2012 TravelTainment
Eventually Consistent / BASE
Hohe Kommunikationskosten
Keine Sperrungen
Versionierung
Datenmanipulationen
Vorgängerversion
X=1
X=2
X=2
Y=0
Y=1
Y=2
V=0
V=1
V=2
Aktuellste Version
© 2012 TravelTainment
Multiversion Concurrency Control(MVCC)
Multiversion Concurrency Control(MVCC)
© 2012 TravelTainment
[4]
Multiversion Concurrency Control(MVCC)
© 2012 TravelTainment
[5]
Neue Anforderungen
Klassifizierung
Ideen und Technologien
Datenanalyse
© 2012 TravelTainment
Zusammenfassung und Fazit
Große Bedeutung
UnQL
[6]
© 2012 TravelTainment
Ausblick
© 2012 TravelTainment
Thank you
Literatur- & Quellenverzeichnis
Quelle
[1]
http://jholverstott.files.wordpress.com/2011/04/squar
e-peg-round-hole.jpg
[2]
http://blog.beany.co.kr/archives/275
[3]
S. Edlich, A. Friedland, J. Hampe, B. Brauer und M.
Brückner, NoSQL, München: Carl Hanser Verlag, 2011
[4]
http://wikis.gm.fhkoeln.de/wiki_db/Datenbanken/MVCC
[5]
http://wikis.gm.fhkoeln.de/wiki_db/Datenbanken/MVCC
[6]
http://assets1.csc.com/lef/downloads/LEFBriefing_Dat
abasesNoSQL_090811.pdf
[7]
http://nosql-database.org/
© 2012 TravelTainment
Verweis