© 2012 TravelTainment Einführung in NoSQL-Datenbanken und deren Klassifizierung Von Patrick Becker
© 2012 TravelTainment 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 Grundlagen - NoSQL NoSQL = Not only SQL Verzicht auf Relationen NoREL Keine klare Definition
© 2012 TravelTainment Grundlagen – Definition von NoSQL Prof. Dr. Edlich 1. Nicht relational 2. Verteilt und horizantal skaliert 3. Open-Source 4. Schemafrei 5. Einfache Datenreplikation 6. Einfache Programmierschnittstelle 7. Eventually Consistent/ BASE
© 2012 TravelTainment Grundlagen – Nicht Relational Problem: Impedance-Mismatch Beispiel: Speicherung von Fluginformationen DUS PMI DUS CGN PMI
© 2012 TravelTainment Grundlagen – Nicht Relational Erste Möglichkeit:.… Unflexibel
© 2012 TravelTainment Grundlagen – Nicht Relational ZweiteMöglichkeit
© 2012 TravelTainment Grundlagen – Nicht Relational Sehr komplex Join-Operationen Performancegewinn
© 2012 TravelTainment Grundlagen – Verteilt und hoizontal skaliert Serverarchitektur Skalierungsmöglichkeiten: Vertikal Horizontal
© 2012 TravelTainment 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 Grundlagen – Einfache Datenreplikation Serverausfall Datenbestand sichern
© 2012 TravelTainment 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 Grundlagen – Eventually Consistency / BASE Konsistenzmodell Bankanwendungen Soziale Netzwerke Gegenseite strikter Konsistenz- anforderungen
© 2012 TravelTainment Klassifizierung von NoSQL-Datenbanken Es gibt mehr als 120 NoSQL-Datenbanken Core-NoSQL-SystemeSoft-NoSQL-Systeme Wide-Column-Store/ Column-Families Object-Databases Document-StoresGrid & Cloud-Database- Solutions Key-Value-StoreXML-Databases Graph-DatabasesEtc.
© 2012 TravelTainment Wide-Column-Stores / Column-Families Spaltenorientierte Datenbanksysteme Column-Family: Gruppe von mehreren Spalten
© 2012 TravelTainment Wide-Column-Stores / Column-Families Zeilenorientierte Datenbank: Spaltenorientierte Datenbank: Vertreter: Cassandra, HBase, Amazon SimpleDB und Hypertable
© 2012 TravelTainment Document-Stores Speichern Daten als Ganzes Identifikationsnummer Redundanz Schemalos Keine Relationen Vertreter: Lotus Notes, Riak, CouchDB und MongoDB { „firstn“:“Patrick“, „lastn“:“Becker“ } { „firstn“:“Patrick“, „lastn“:“Moll“, „age“:“19“ } 1 2
© 2012 TravelTainment Key/Value-Store 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 Graphdatenbanken Graphmodell Relationen Effiziente Traversierung Vertreter: Neo4J, HyperGraphDB und noch viele mehr Bild befreundet A B C C liebt gefällt
© 2012 TravelTainment CAP-Theorem Brewers-Theorem Consistency(Konsistenz) Availabilitiy(Verfügbarkeit) Partition Tolerance(Ausfalltoleranz) Vereinbarkeit ist unerreichbar
© 2012 TravelTainment CAP-Theorem [2]
© 2012 TravelTainment CAP-Theorem - Beispiel Verfügbar und ausfalltolerant(AP)
© 2012 TravelTainment CAP-Theorem - Beispiel
© 2012 TravelTainment CAP-Theorem - Beispiel
© 2012 TravelTainment Eventually Consistent / BASE BASE = Basically Available, Soft State, Eventually Consistent Gegenseite der Konsistenzeinhaltung Weak-Consistency Übergangsprozess Zeitfenster der Inkonsistenz Verfügbarkeit
© 2012 TravelTainment Multiversion Concurrency Control(MVCC) Hohe Kommunikationskosten Keine Sperrungen Versionierung Datenmanipulationen Vorgängerversion X = 1 Y = 0 X = 1 Y = 0 X = 2 Y = 1 X = 2 Y = 1 X = 2 Y = 2 X = 2 Y = 2 Aktuellste Version V=0V=1 V=2
© 2012 TravelTainment Multiversion Concurrency Control(MVCC) [4]
© 2012 TravelTainment Multiversion Concurrency Control(MVCC) [5]
© 2012 TravelTainment Zusammenfassung und Fazit Neue Anforderungen Klassifizierung Ideen und Technologien Datenanalyse
© 2012 TravelTainment Ausblick Große Bedeutung UnQL [6]
© 2012 TravelTainment Thank you
© 2012 TravelTainment Literatur- & Quellenverzeichnis Verweis Quelle [1] e-peg-round-hole.jpg [2] [3]S. Edlich, A. Friedland, J. Hampe, B. Brauer und M. Brückner, NoSQL, München: Carl Hanser Verlag, 2011 [4] koeln.de/wiki_db/Datenbanken/MVCC [5] koeln.de/wiki_db/Datenbanken/MVCC [6] abasesNoSQL_ pdf [7]