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