Slide 1 - RWTH Aachen University

Werbung
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
Herunterladen