Eine Alternative zu relationalen Datenbanken

Werbung
NoSQL – Eine Alternative zu relationalen
Datenbanken
© 2015 TravelTainment
Dominik Schmitz
Inhalt

Einleitung

Theoretische Grundlagen

MapReduce

CAP-Theorem


Die wichtigsten NoSQL-Datenbanktypen

Key/Value-Datenbanken

Spaltenorientierte Datenbanken

Dokumentenorientierte Datenbanken

Graphenorientierte Datenbanken
© 2015 TravelTainment

Alternatives Konsistenzmodell: BASE
Schlusswort
NoSQL – Eine Alternative zu relationalen Datenbanken
2|
Einleitung

Not only SQL, nicht im Sinne von kein SQL

Erste DB mit NoSQL spezifischen Ansätzen bereits 1979

BerkeleyDB und Lotus Nodes aus den 80er Jahren noch
heute populär

Die heute verbreiteten Systeme wie Cassandra, Redis,
MongoDB, Hypertable und CouchDB entstanden im
Zeitraum von 2006 bis 2009
Nach wie vor erscheinen neue Implementationen für
© 2015 TravelTainment

neue Anwendungsfälle
NoSQL – Eine Alternative zu relationalen Datenbanken
3|
Motivation
Anwendungsfallspezifische
Datenstrukturen
• Relationale Datenbanken mit
Indizierung sind nicht für jeden
Anwendungsfall die beste Wahl,
siehe Key/Value-Speicherung oder
die Speicherung von Graphen
NoSQL – Eine Alternative zu relationalen Datenbanken
4|
© 2015 TravelTainment
WEB 2.0
• Große Datenmengen sind zu
verarbeiten und die vertikale
Skalierung der Hardware reicht
nicht mehr aus
Inhalt

Einleitung

Theoretische Grundlagen

MapReduce

CAP-Theorem


Die wichtigsten NoSQL-Datenbanktypen

Key/Value-Datenbanken

Spaltenorientierte Datenbanken

Dokumentenorientierte Datenbanken

Graphenorientierte Datenbanken
© 2015 TravelTainment

Alternatives Konsistenzmodell: BASE
Schlusswort
NoSQL – Eine Alternative zu relationalen Datenbanken
5|
MapReduce

Framework welches 2004 von Google Inc. eingeführt
wurde

Zur parallelen Verarbeitung großer Datenmengen

Entwickler stellt Anwendungsfallspezifische Map- und
© 2015 TravelTainment
Reduce-Funktionen zur Verfügung
NoSQL – Eine Alternative zu relationalen Datenbanken
6|
© 2015 TravelTainment
MapReduce
NoSQL – Eine Alternative zu relationalen Datenbanken
7|
CAP-Theorem

Web 2.0 Unternehmen waren unzufrieden mit der
horizontalen Skalierung der relationalen Systeme

Lösungen der Hersteller waren nicht zufriedenstellend

Konsistenzmodell ACID verhindert eine effektive
© 2015 TravelTainment
horizontale Skalierung
NoSQL – Eine Alternative zu relationalen Datenbanken
8|
CAP-Theorem

Vorgestellt durch Eric Brewer im Jahr 2000
© 2015 TravelTainment
Types
NoSQL – Eine Alternative zu relationalen Datenbanken
9|
© 2015 TravelTainment
CAP-Theorem
NoSQL – Eine Alternative zu relationalen Datenbanken
10 |

Basically Available, Soft State, Eventually Consistent

Verfügbarkeit ist zentrales Thema

Umsetzung durch Eventually Consistency

ACID und BASE bilden die Extrema eines
Konsistenzspektrums

Spektrum bietet viele Möglichkeiten für die Entwickler
NoSQL – Eine Alternative zu relationalen Datenbanken
11 |
© 2015 TravelTainment
Alternatives Konsistenzmodell: BASE
Inhalt

Einleitung

Theoretische Grundlagen

MapReduce

CAP-Theorem


Die wichtigsten NoSQL-Datenbanktypen

Key/Value-Datenbanken

Spaltenorientierte Datenbanken

Dokumentenorientierte Datenbanken

Graphenorientierte Datenbanken
© 2015 TravelTainment

Alternatives Konsistenzmodell: BASE
Schlusswort
NoSQL – Eine Alternative zu relationalen Datenbanken
12 |
Key/Value-Datenbanken
Basierend auf einem Schlüssel/Wert-Schema

Schlüssel besteht aus einer strukturierten oder
zufälligen Zeichenkette

Schlüssel kann anhand eines definierten Musters die
Daten in Namensräume und Datenbanken unterteilen

Wert kann je nach Implementation den Datentyp String,
aber auch Listen, Sets oder Hashes zur Verfügung
haben
© 2015 TravelTainment

NoSQL – Eine Alternative zu relationalen Datenbanken
13 |
Key/Value-Datenbanken
Pro
Contra
Bessere Skalierbarkeit
Direkte Suche nach einem Wert
nicht möglich
O(1) für Lese- und
Schreiboperationen
Keine komplexen Abfragemöglichkeiten
© 2015 TravelTainment
Keine Schemaerweiterungen
notwendig
NoSQL – Eine Alternative zu relationalen Datenbanken
14 |
Spaltenorientierte Datenbanken


Daten werden Spaltenweise gespeichert, was zu einer
anderen physischen Datenorganisation führt
ProduktID
ProduktName
ProduktPreis
1
Smartphone
500
2
Fahrrad
200
3
Fußball
20
In einem relationalen Modell werden die Attributwerte
reihenorientiert gespeichert

Bei den Spaltenorientierten Datenbanken werden die
Daten hingegen nach ihrer Spalte sortiert
1, 2, 3; Smartphone, Fahrrad, Fußball; 500, 200, 20;
NoSQL – Eine Alternative zu relationalen Datenbanken
15 |
© 2015 TravelTainment
1, Smartphone, 500; 2, Fahrrad, 200; 3, Fußball, 20;
Spaltenorientierte Datenbanken

Pro
Contra
Physische Datenanordnung
Einfügen von neuen
Datensätzen ist komplizierter
Selbe Datentypen einfacher zu
komprimieren
Häufiges Einfügen neuer
Datensätze behindert
gleichzeitige Lesezugriffe
In einem relationalen Modell werden die Attributwerte
reihenorientiert gespeichert

Bei den Spaltenorientierten Datenbanken werden die
Daten hingegen nach ihrer Spalte sortiert
1, 2, 3; Smartphone, Fahrrad, Fußball; 500, 200, 20;
NoSQL – Eine Alternative zu relationalen Datenbanken
16 |
© 2015 TravelTainment
1, Smartphone, 500; 2, Fahrrad, 200; 3, Fußball, 20;
Dokumentenorientierte Datenbanken

© 2015 TravelTainment

Speicherung der Daten in Dokumenten
Dokumente sind strukturierte Zusammenstellungen von
Daten, z.B. JSON
NoSQL – Eine Alternative zu relationalen Datenbanken
17 |
Dokumentenorientierte Datenbanken
Pro
Contra
Zusammengehörige Daten
werden zusammen gespeichert
Lesen und Speichern erfordert
manuelle Kontrolle
© 2015 TravelTainment
Durch Speicherung im JSONKeine Datenbankfunktionen wie
Format kann man prinzipiell alle Constraints oder Trigger für
Daten persistieren
solche Kontrollen verfügbar
NoSQL – Eine Alternative zu relationalen Datenbanken
18 |
Graphenorientierte Datenbanken
Ermöglicht die Speicherung stark vernetzter Informationen


Werden besonders von sozialen Netzwerken wie Facebook
und Twitter genutzt
Ein Graph besteht aus Knoten und Kanten

Knoten repräsentieren Entitäten mit bestimmen Eigenschaften

Kanten zeigen die Relationen zwischen diesen
NoSQL – Eine Alternative zu relationalen Datenbanken
19 |
© 2015 TravelTainment

Graphenorientierte Datenbanken
Contra
Performante Algorithmen zur
Suche in Graphen und
Traversierung der Kanten
existieren bereits
Keine standardmäßige
Abfragesprache vorhanden,
wodurch man auf die API des
Herstellers angewiesen ist
Suche bleibt unabhängig von
der Größe stets performant, da
keine JOIN-Operationen
notwendig sind
Vorteile bei falschem
Anwendungsfall nicht mehr
gültig
© 2015 TravelTainment
Pro
NoSQL – Eine Alternative zu relationalen Datenbanken
20 |
Inhalt

Einleitung

Theoretische Grundlagen

MapReduce

CAP-Theorem


Die wichtigsten NoSQL-Datenbanktypen

Key/Value-Datenbanken

Spaltenorientierte Datenbanken

Dokumentenorientierte Datenbanken

Graphenorientierte Datenbanken
© 2015 TravelTainment

Alternatives Konsistenzmodell: BASE
Schlusswort
NoSQL – Eine Alternative zu relationalen Datenbanken
21 |
Schlusswort

Das kontinuierlich wachsende Datenvolumen im Web 2.0
erforderte Alternativen im Vergleich zu den relationalen
Systemen

Das MapReduce Verfahren und die Aussage des CAP
Theorem sind entscheidend für ein performantes verteiltes
Datenbanksystem
Die vier Hauptdatenbanktypen im Bereich NoSQL mit den
facettenreichen Implementationen, sowie die bestehenden
relationalen Systeme bieten für nahezu jeden Anwendungsfall eine optimale Lösung
NoSQL – Eine Alternative zu relationalen Datenbanken
22 |
© 2015 TravelTainment

NoSQL – Eine Alternative zu relationalen Datenbanken
© 2015 TravelTainment
Fragen?
23 |
1.
Stefan Edlich, Achim Friedland, Jens Hampe, Benjamin Brauer, Markus
Brückner. 2011. NoSQL – Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken
(2. Auflage)
2.
NoSQL Overview. 2015. Unter http://nosql-database.org/ (abgerufen am 27.11.2015)
3.
NoSQL – Wikipedia. 2015. https://en.wikipedia.org/wiki/NoSQL (abgerufen am
27.11.2015)
4.
NoSQL – Grundlagen. 2011. BASE, CAP, Consistent Hashing, Eventually Consistent,
Map Reduce, Skalierbarkeit und verteilte Datenbanken http://lwibs01.gm.fhkoeln.de/wikis/wiki_db/index.php?n=Category.Grundlagen (abgerufen am 27.11.2015)
5.
Joe Celko. 2013. Complete Guide to NoSQL
6.
Graphendatenbanken – Wikipedia. 2015.
https://de.wikipedia.org/wiki/Graphdatenbank (abgerufen am 04.12.2015)
7.
Dokumentenorientierte Datenbank. 2013. http://lwibs01.gm.fhkoeln.
de/wikis/wiki_db/index.php?n=Datenbanken.DokumentenorientierteDatenbank
(abgerufen am 04.12.2015)
8.
Key/Value-Datenbanksysteme. 2013. http://lwibs01.gm.fhkoeln.
de/wikis/wiki_db/index.php?n=Datenbanken.KeyValueSysteme (abgerufen am
03.12.2015)
9.
Spaltenorientierte Datenbanksysteme. 2014.
http://lwibs01.gm.fhkoeln.de/wikis/wiki_db/
index.php?n=Datenbanken.SpaltenorientierteDatenbank (abgerufen am 03.12.2015)
NoSQL – Eine Alternative zu relationalen Datenbanken
24 |
© 2015 TravelTainment
Quellen
© 2015 TravelTainment
Vielen Dank!
NoSQL – Eine Alternative zu relationalen Datenbanken
25 |
Herunterladen