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 |