Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Jörg Sauer Geändert vor über 8 Jahren
1
© 2012 TravelTainment Einführung in NoSql-Datenbanken und der Vergleich zu relationalen Datenbanken Alexey Sibirtsev
2
© 2012 TravelTainment Ablauf Einleitung NoSql-Eigenschaften Brewer‘s Theorem Konsistenz in NoSql-Datenbanken Datenbanktypen Key-Value Datenbanken Graphenorientierte Datenbanken Dokumentorientierte Datenbanken Spaltenorientierte Datenbanken Fazit/Ausblick
3
© 2012 TravelTainment Einleitung 1998: Erste Erwähnung des NoSql-Begriffes von Carlo Strozzi, gemeint als „No Sql“ 2009: Neudefinition des Begriffes als „Not Only Sql“ Woher kommt die Popularität? Unternehmen mit bis zu 1000 Mitarbeitern lagern ca. 3.8 Petabyte Daten Der Datenzuwachs eines solchen Unternehmens beträgt 40 Prozent pro Jahr Täglich entstehen 2.5 Quintillionen Byte (= 2*10^5 Petabyte) 90% der Daten, die aktuell im Umlauf sind, entstanden in den letzten 2 Jahren Abhängigkeit und Vernetzung der Daten nimmt zu (z.B. durch soziale Netzwerke) Einleitung Eigenschaften Brewser‘s Theorem BASE-Modell
4
© 2012 TravelTainment Einleitung Wieso sind relationale Datenbanken nicht mehr so gut geeignet? Werden mit einer wachsenden Datenmenge schnell langsamer Prüfung der korrekten Datenstrukturen Bildung von Relationen zwischen den Daten Komplex vernetzte Daten sind schwer darzustellen Unterteilen in viele Tabellen wird notwendig Zusammenführen vieler Tabellen ist zeitaufwendig Einleitung Eigenschaften Brewser‘s Theorem BASE-Modell
5
© 2012 TravelTainment NoSql-Eigenschaften Verzicht auf ein festes Schema Keine Relationen oder feste Datenstrukturen vorhanden Speicherung der Daten wird flexibler gestaltet Verzicht auf die Abfragesprache SQL Kein allgemeiner NoSql-Standard vorhanden Kommunikationsschnittstellen werden in der jeweiligen Implementierung zur Verfügung gestellt Ausfalltoleranz, Verfügbarkeit und horizontale Skalierbarkeit Datenbanken werden als verteilte Systeme implementiert Einleitung Eigenschaften Brewser‘s Theorem BASE-Modell
6
© 2012 TravelTainment Brewer‘s Theorem Tritt bei verteilten Systemen in Kraft Beschreibt den Zusammenhang zwischen drei wichtigen Eigenschaften in solchen Systemen Consistency (Konsistenz): Gleiche Daten auf jedem Client Availability (Verfügbarkeit): Ständige Verfügbarkeit und Erreichbarkeit des Systems Partition Tolerance (Ausfalltoleranz): Korrekte Funktionsweise bei Ausfall von Verbindungen oder Servern Nur zwei dieser Eigenschaften sind in einem verteilten System erfüllbar! Eigenschaften Brewser‘s Theorem BASE-Modell Datenbanktypen
7
© 2012 TravelTainment Brewer‘s Theorem Wieso sind nur zwei Eigenschaften erfüllbar? Ein Beispiel: Ausfalltolleranz: Ein verteiltes System mit redundanten Daten wird benötigt Konsistenz: Datensätze müssen bei Aktualisierungen auf allen Servern gesperrt werden Dieses Sperren ist zeitaufwändig -> Verfügbarkeit kann nicht mehr erreicht werden! Eigenschaften Brewser‘s Theorem BASE-Modell Datenbanktypen
8
© 2012 TravelTainment Brewer‘s Theorem Verteilte relationale Datenbanken: Konsistenz steht im Vordergrund ACID-Prinzipien müssen befolgt werden Realisierung der anderen Eigenschaft über hochwertige und leistungsfähige Hardware (vertikale Skalierung) Kostenintensiv! Verteilte NoSql-Datenbanken: Ausfalltolleranz und Verfügbarkeit stehen im Vordergrund Häufige Verwendung bei Internetanwendungen (z.B: Online-Shops) Gewinnverlust, wenn ein Systemausfall vorliegt oder die Verfügbarkeit nicht vorhanden ist Verzicht auf die Konsistenz und somit auf das ACID- Konsistenzmodell Eigenschaften Brewser‘s Theorem BASE-Modell Datenbanktypen
9
© 2012 TravelTainment Konsistenz in NoSql-Datenbanken BASE-Konsistenzmodell (Basically Available, Soft State, Eventually Consistent): Daten wechseln zwischen einem konsistenten und einem inkonsistenten Zustand Die Daten sind nur zu bestimmten Zeitpunkten für alle Clients konsistent Konkurrierender Zugriff wird über das Multiversion Concurrency Control Verfahren geregelt Ersatz für die Sperren, die in relationalen Datenbanken verwendet werden Versionierung von Datensätzen Es liegt immer eine Version des Datensatzes bereit Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
10
© 2012 TravelTainment Die wichtigsten NoSql-Datenbanktypen Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
11
© 2012 TravelTainment Key-Value-Datenbanken Mit assoziativen Feldern aus der Programmierung vergleichbar Ein Wert wird einem Schlüssel zugewiesen Der Wert kann eine komplexe Datenstruktur (z.B. eine Liste oder ein assoziatives Feld darstellen) On-Disk und In-Memory Varianten: On-Disk: Speicherung der Daten auf der Festplatte In-Memory: Speicherung der Daten im Arbeitsspeicher Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
12
© 2012 TravelTainment Key-Value-Datenbanken Vorteile: Schnelle Zugriffszeiten von O(1) Im Gegensatz zu relationalen Datenbanken sind die Zugriffszeiten unabhängig von der Datenmenge Gute horizontale Skalierbarkeit Verwendung einer Hash-Funktion, um einen Server zu einem Schlüssel zu bestimmen -> Zeitersparnis Nachteile: Umständlich nach einem Wert zu suchen Zusätzliche Verweise vom Wert auf den Schlüssel und somit wechselseitige Beziehungen wären nötig Datenverlust schnell möglich, falls ein Schlüssel versehentlich überschrieben wird Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
13
© 2012 TravelTainment Graphenorientierte Datenbanken Bereits seit den 60er Jahren bekannt Sollten ursprünglich als Allzweckdatenbanksystem dienen Vom einfacheren relationalen Ansatz verdrängt worden Steigendes Interesse an diesen Datenbanken, da die graphenstrukturen im Internet wachsen Vor allem für soziale Netzwerke (z.B. Twitter) brauchbar Bestehen aus Knoten und Kanten Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
14
© 2012 TravelTainment Graphenorientierte Datenbanken Vorteile: Bilden reale Netzwerkstrukturen (z.B. soziales Geflecht aus Freunden und Bekannten) direkt ab und erleichtern somit das Verständnis für diese Die Suche bleibt unabhängig von der Größe der Netzwerkstruktur stets performant Gleiche Zeit für einen Kantenschritt Verzicht auf die rechenintensiven JOIN-Operationen Verwendung von Algorithmen aus der Graphentheorie, um die Performance zu verbessern Nachteile: Einsatz wird komplex, falls für einen unpassenden Anwendungsfall verwendet Nutzbarkeit komplizierter Keine einfach verständliche Abfragesprache, die in allen Graphendatenbanken gilt Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
15
© 2012 TravelTainment Dokumentorientierte Datenbanken Arbeiten mit Dokumenten statt mit Tabellen Dokumente sind keine „Textdateien“, sondern Sammelcontainer Ein solcher Sammelcontainer enthält Schlüssel-Wert- Paare Der Wert darf auch nicht atomare Inhalte, wie ein Feld oder eine Datei beinhalten Die Schlüssel sind innerhalb des Dokuments eindeutig Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
16
© 2012 TravelTainment Dokumentorientierte Datenbanken Vorteile: Freiheit für den Benutzer, da jedes Dokument verschiedene Schlüssel enthalten kann Speicherung und Darstellung der Daten in dem JSON- Format Arbeiten mit zusammenhängenden Daten wird erleichtert Zusammenhängende Daten werden geschlossen in Dokumenten gespeichert Es müssen nicht zunächst viele Tabellen zusammengeschlossen werden Nachteile: Prüfung der Plausibilität muss auf die Anwendungsebene verlagert werden Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
17
© 2012 TravelTainment Spaltenorientierte Datenbanken Grundlegend anderes Speicherprinzip als bei relationale Datenbanken Datensätze werden spaltenweise abgespeichert Column Families statt Tabellen Haben keine Struktur Können beliebig viele Spalten enthalten Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
18
© 2012 TravelTainment Spaltenorientierte Datenbanken Beispiel einer Mitarbeiterliste: Speicherung in einer relationalen Datenbank: 1, Muster, 30000; 2, Testperson, 32000; Speicherung in einer spaltenorientierten Datenbank: 1, 2; Muster, Testperson; 30000, 32000; Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick MitarbeiterIDNameJahresgehalt 1Muster30000 2Testperson32000
19
© 2012 TravelTainment Spaltenorientierte Datenbanken Vorteile: Schnellere Durchführung von Analysen, die meistens über eine einzige Spalte stattfinden Relationale Datenbank: Spalte jedes Datensatzes muss einzeln abgerufen werden -> viele sequentielle Lesezugriffe auf den Arbeitsspeicher Spaltenorientierte Datenbank: Spalte muss einmal ermittelt werden -> danach Iteration durch den zugehörigen Arbeitsspeicher Speicherersparnis: Keine Speicherreservierung für leere Einträge Gleiche Datentypen nebeneinander, somit bessere Ablage im Speicher Verwendung von Komprimierungsverfahren, da gleiche Datentypen nebeneinander (z.B. Zusammenfassung von Sequenzen) Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
20
© 2012 TravelTainment Spaltenorientierte Datenbanken Nachteile: Schlechter Umgang mit Ad-Hoc Abfragen Flexible Abfragen, die beliebige Daten zurückgeben können. Die Struktur der Datenbank spielt bei diesen Abfragen keine Rolle Datenbankstruktur muss an die später verwendeten Datenbankabfragen angepasst werden Schlechtere Flexibilität Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
21
© 2012 TravelTainment Fazit/Ausblick Nicht standardisiert -> Schreckt viele Unternehmen von der Verwendung ab Große Unternehmen (z.B. Amazon, Google) setzen NoSql-Datenbanken erfolgreich ein Nicht für alle Anwendungsfälle gedacht Viel Potential für neue Fortschritte und Ideen: Multiversion Concurrency Control Verfahren MapReduce Verfahren Brewser‘s Theorem BASE-Modell Datenbanktypen Fazit/Ausblick
22
© 2012 TravelTainment Fragen?
23
© 2012 TravelTainment Vielen Dank!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.