Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Grundlagen der Programmierung: Datenbanken

NoSQL-Datenbanken

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
NoSQL-Datenbanken haben in letzter Zeit deutlich an Popularität gewonnen. Diese dienen hauptsächlich der Erstellung von umfangreichen, weborientierten Projekten und werden meistens als OpenSource-Software zur Verfügung gestellt.

Transkript

In den letzten Jahren haben Datenbanksysteme an Popularität gewonnen, die man mit den Überbegriff NoSQL-Datenbanksysteme zusammenfassen kann wobei das No nicht für Nein steht, sondern für Not only SQL. Unter diesen Datenbanken sind CouchDB, MongoDB, HBase und einige mehr, die Sie vielleicht schon mal gehört haben. Schauen wir uns mal an was diese Datenbanksysteme an gemeinsamen Eigenschaften haben oder oder vielleicht auch nicht. Sie nutzen alle kein SQL. Sollte man meinen bei diesen Namen. Es gibt da aber einige wenige, die anleihen an SQL machen oder wo ich zumindest zusätzlich mit SQL drauf zugreifen kann. Die allermeisten besitzen keine formeln Tabellen, manche allerdings schon, wenn auch sehr rudimentär. In den meisten Fällen gibt es keine Beziehung unter diesen Tabellen, die ja gar nicht existieren, aber manchmal sind diese Beziehungen auch extrem wichtig, wie wir gleich nochmal sehen werden. Sie unterliegen nicht dem ACID Schema, also das sie atoma und konsistent sind, sie haben nicht immer ein formelles Schema, das kann manchmal sehr sehr hilfreich sein manchmal ist es auch hinderlich. Die meisten sind für sehr sehr große Projekte, Weborientierte Projekte gedacht und in vielen Fällen ist es auch OpenSource-Software. Schauen wir uns mal die erste Unterkategorie an, die heißt Dokumentenspeicher, das bedeutet, dass die Daten nicht in Spalten oder Reihen gespeichert sind, sondern in kompletten Dokumenten, ähnlich wie man das auch ganz normal auf seiner Festplatte hat. Und in so ein Dokument könnte beispielsweise ein JSON-Text stehen, der Titel eines Trainings und das Rating davon oder das kann auch etwas komplizierter sein mit Vorname, Nachname, Email und so weiter und innerhalb der Email kann es dann auch zu Unterkategorien kommen. Alle diese Daten werden in einzelnen Dokumenten gespeichert. Bekannteste Beispiele sind CouchDB oder MongoDB. Der Vorteil ist, dass diese Datenbanksysteme sehr sehr flexibel und manchmal vollkommen flexibel sind und wir können mit den unterschiedlichsten Arten von Daten arbeiten und darauf zugreifen. Aus rein technischer Sicht kann man wohl auch die XML Datenbanken, die ich vorhin erwähnt habe auch zu dieser Kategorie zählen. Schauen wir uns eine weitere Unterkategorien an, die heißt Schlüssel-Wert-Paar und das bedeutet, dass in diesen Datenbanken alles, also wirklich alles als Schlüssel-Wert-Paar gespeichert wird. Beispiele sind MemcacheDB, Project Voldemort oder Riak. Bei diesen Datenbanken ist das Besondere, dass sie sehr sehr Fehlertoleranz sind. Ich kann eine große Datenbank auf unzähligen verschiedenen Rechnern speichern und wenn einzelne Maschinen ausfallen, dann funktioniert trotzdem noch das gesamte Datenbanksystem. Das ist bei relationalen Datenbanksystemen nicht immer der Fall. Also wenn ich hier auf Ausfallsicherheit gehe, dann kann mir so eine Schlüssel-Wert-Paar Datenbank eventuell gute Dienste leisten. Schauen wir uns abschließend nochmal die sogenannten Graph-Datenbanken an. Das bedeutet, dass alle Informationen in kleinen, miteinander verbundenen Knotenpunkten gespeichert werden. Ich habe vorhin gesagt, dass viele NoSQL-Datenbanken nicht mehr Tabellen haben und das diese Tabellen nicht mehr in irgendeiner Beziehung zueinander stehen. Das gilt für Graph-Datenbanken nicht, da ist genau das Gegenteil der Fall. Da sind die Beziehungen unter diesen einzelnen Knotenpunkten extrem wichtig. Es kann Anwendungsfälle geben, da kann das auch die Realität besonders gut abbilden. Wenn ich also sage, wir haben einen Mitarbeiter John, das ist der Manager von David, die arbeiten beide in der Sales Abteilung, derJohn muss aber seinerseits an die Brenda Berichte abfassen und die Brenda ist die Gesamtmanagerin von Sales und das Ganze ist in einem Office in Omaha beheimatet. Also je nachdem was Sie genau damit machen möchten kann auch so ein Graph-Datenbank besonders interessant sein. Die bekanntesten Beispiele unter diesen Systemen sind Neo4J, AllegroGraph oder der DB2 NoSQL Graph Store. Bei der Entscheidung welches Datenbankmanagementsystem Sie verwenden, sollten Sie nicht nur auf Grad der Wohl hinaus entscheiden, sondern Sie sollten sich überlegen, brauche ich ein flexibles Schema, kann es sein, dass ich die Daten, die ich speichern und bearbeiten möchte noch gar nicht so genau beschreiben kann, dann könnte eine NoSQL-Datenbank besonders interessant sein. Habe ich eine unglaublich große Menge an Daten, die auf verschiedenen Computern speichern muss, weil es diesen einen Super Rechner gar nicht gibt, auch dann könnten NoSQL-Datenbanken für sie interessant sein. Und dann ist die Frage noch entscheidend, was ist für mich wichtiger, die Skalierbarkeit oder die Konsistenz meiner Daten. Sie könnten jetzt sagen die Konsistenz meiner Daten ist doch immer wichtig, dass die Daten die ich habe auch tatsächlich richtig sind, aber wenn Sie sich vorstellen, dass Sie beispielsweise die Besucher einer Webseite analysieren möchten und Sie haben auf ihrer Webseite unglaublich viel Traffic mit mehreren 100000 Hits pro Tag, dann kommt es auf ein oder zwei Hits die Sie nicht mit abrechnen gar nicht mehr an. Da ist Ihnen wichtig, dass Sie auch mit großen Datenmengen schnell zu Ergebnissen kommen und wenn dann mal der ein oder andere Datensatz unter den Tisch fällt, dann ist das egal. Wenn Sie dahingegen natürlich mit Flugbuchung arbeiten, dann ist es sehr wichtig, dass Sie jeden einzelnen Datensatz von jedem einzelnen Kunden natürlich ständig zur Verfügung haben, je nachdem wie Ihre Anforderung ist, wenn Sie sich für das eine oder für das andere Datenbankmanagementsystem unterscheiden. Zusammenfassend kann man sagen, dass eigentlich jedes Datenbank-Töpfchen irgendwo sein Datenbank-Deckelchen findet.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!