Ein kostenloses Probekapitel meines neuen Hörbuchs zur Vorbereitung
auf das Fachgespräch zum Thema NoSQL gibt es in der
einhundertvierten Episode des Anwendungsentwickler-Podcasts. TL;DR
Für dein Fachgespräch als Fachinformatiker:in Anwendungsentwicklung
gehe ich die fünf im Hörbuch behandelten NoSQL-Datenbankmodelle
durch und zeige dir passende Einsatzgebiete. NoSQL steht für "Not
Only SQL" und umfasst Konzepte, die du je nach Aufgabe gemeinsam
mit relationalen Datenbanken einsetzen kannst. Du erfährst, wie die
einzelnen Modelle Daten speichern und welche Systeme du im
Fachgespräch als Beispiele nennen kannst. Mein neues
Datenbank-Hörbuch enthält außerdem allgemeine Hinweise dazu, wie du
dich auf Fragen vorbereitest und auf Prüfer:innen reagierst.
Kapitelmarken [00:00:01] Einstieg ins Fachgespräch [00:00:37] Neues
Datenbank-Hörbuch und Umfang [00:01:41] Allgemeine Hinweise zu
Fragen im Fachgespräch [00:02:48] NoSQL-Kapitel als Hörprobe
[00:04:16] Was NoSQL bedeutet und wofür es eingesetzt wird
[00:08:23] Fünf Arten von NoSQL-Datenbanken [00:09:10]
Spaltenorientierte Datenbanken [00:12:04] Objektorientierte
Datenbanken [00:13:59] Key-Value-Stores und In-Memory-Caches
[00:16:04] Dokumentendatenbanken [00:19:28] Graphdatenbanken und
Cypher [00:23:05] Bekannte NoSQL-Systeme und Antworten im
Fachgespräch [00:24:55] Umfang und Download der Hörbücher
[00:26:12] Preise und Rabattaktion bis Mai 2017 [00:27:45]
Fragenlisten, Hörproben und Rückgaberecht [00:28:45] Website und
weitere Inhalte der Hörbücher Inhalt Das Hörbuch findest du hier:
Das perfekte Fachgespräch. NoSQL Was ist NoSQL und wofür braucht
man das? Steht für "Not only SQL". Fasst die "modernen" Datenbanken
zusammen. Sinnvolle Ergänzung zu relationalen Datenbanken. Welche
Arten von NoSQL-Datenbanken gibt es? spaltenorientierte Datenbanken
objektorientierte Datenbanken Key-Value-Stores
Dokumentendatenbanken Graphendatenbanken Wie funktionieren
spaltenorientierte Datenbanken? Die Datenbank speichert ihre
Datensätze nicht zeilenweise, sondern spaltenweise. Dadurch sind
bestimmte Auswertungen (wie z.B. die Summe über alle Werte einer
Spalte) einfacher und performanter durchführbar. Wie funktionieren
objektorientierte Datenbanken? Die Datenbank legt Objekte im Sinne
der Objektorientierung direkt ab. Wie funktionieren
Key-Value-Stores? Sie bilden ein assoziatives Array
(Schlüssel-/Wert-Paare, auch Hash bzw. Dictionary genannt) ab. Wie
funktionieren Dokumentendatenbanken? Die Datenbank speichert
komplette unstrukturierte Dokumente ggfs. mit eingebetteten
Unterdokumenten. Wie funktionieren Graphendatenbanken? Die
Datenbank speichert vernetzte Informationen in Form von Graphen,
die aus Knoten und Kanten bestehen. So kann sie Gebrauch von
etablierten Graphenalgorithmen machen, um bspw. die kürzeste
Verbindung zwischen zwei Knoten zu finden. Welche bekannten
NoSQL-Datenbanken gibt es und wie heißen ggfs. die Hersteller?
spaltenorientierte Datenbanken Cassandra von Apache HBase von
Apache objektorientierte Datenbanken db4o Key-Value-Stores Riak
Redis Dokumentendatenbanken Lotus Notes MongoDB CouchDB von Apache
Graphendatenbanken Neo4J Literaturempfehlungen Eine kurze und gut
verständliche Einführung in verschiedene NoSQL-Datenbanken und ihre
Stärken und Schwächen. * Links Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts Weitere Infos zum FachgesprächDu suchst noch
mehr Tipps rund um das Fachgespräch? Dann schau doch mal in diese
Artikel- und Podcast-Kategorie: Alle Artikel rund um das
Fachgespräch.Kennst du schon meine Hörbücher zur Vorbereitung auf
das Fachgespräch? Unter dasperfektefachgespraech.de kannst du sie
herunterladen. In insg. über 10 Stunden gehe ich über 200 Fragen im
Detail durch und gebe Tipps für die Beantwortung.Und wenn du dich
für meinen Newsletter einträgst, bekommst du immer direkt alle
Neuigkeiten von dieser Seite in dein Postfach geliefert.Jetzt
anmelden! Zusammenfassung NoSQL im Fachgespräch Mit einem Kapitel
aus meinem Datenbank-Hörbuch bereite ich dich auf mögliche Fragen
zu NoSQL vor. Der Begriff steht für "Not Only SQL", ausgeschrieben
"Not Only Structured Query Language". SQL steht dabei
stellvertretend für relationale Datenbanken. Unter NoSQL werden je
nach Literatur verschiedene Datenbankmodelle zusammengefasst. Die
fünf hier behandelten Modelle haben jeweils eigene Eigenschaften
und Einsatzgebiete. Einige lassen sich mit SQL abfragen; andere
bringen eigene Abfragesprachen mit. In einer Anwendung können
mehrere Datenbankmodelle zusammenarbeiten. Wenn ich etwa einen
Warenkorb aus zahlreichen relationalen Tabellen zusammenstelle,
kann ich das Ergebnis in einem Key-Value-Store zwischenspeichern.
Bei späteren Anfragen lässt sich der gesamte Warenkorb über einen
Schlüssel abrufen, wodurch die relationale Datenbank entlastet
wird. Für die zugrunde liegenden Daten kann sie weiterhin zuständig
bleiben. Auch die Struktur der Daten spielt bei der Wahl eine
Rolle. Beziehungen zwischen Personen in einem sozialen Netzwerk
lassen sich beispielsweise als Graph darstellen. Spaltenorientierte
Datenbanken Wenn du den Durchschnittspreis aller Artikel berechnen
möchtest, brauchst du die Werte einer bestimmten Spalte. Eine
spaltenorientierte Datenbank legt solche Werte physisch
hintereinander ab, sodass sie sich effizient lesen und auswerten
lassen. Um einen vollständigen Datensatz zusammenzustellen, muss
die Datenbank die zugehörigen Werte aus den einzelnen Spalten
zusammenführen. Welche Ablage geeignet ist, hängt deshalb davon ab,
welche Abfragen du durchführen möchtest. Typische Einsatzgebiete
sind Data Warehouses und Anwendungen, in denen du regelmäßig
Statistiken über ganze Spalten berechnest. Spaltenorientierte
Datenbanken lassen sich häufig mit SQL abfragen. Als Beispiele für
diesen Bereich nenne ich Apache Cassandra und Apache HBase.
Objektorientierte Datenbanken Beim Speichern von Objekten in einer
relationalen Datenbank müssen Objektreferenzen auf Fremdschlüssel
abgebildet werden. Beim Lesen werden daraus wieder Referenzen.
Diese Unterschiede zwischen den Datenmodellen werden als
Impedance-Mismatch bezeichnet. Eine objektorientierte Datenbank
speichert Objekte samt ihren Referenzen direkt. Dadurch entfällt
das Mapping zwischen der objektorientierten Anwendung und der
relationalen Ablage. Du kannst einen Objektbaum speichern und
später wieder einlesen. Das passt zu Anwendungen, die du
objektorientiert entwickelst, weil sich das Datenmodell deiner
Programmiersprache unmittelbar ablegen lässt. Ein genannter
Vertreter ist db4o, ausgeschrieben "Database for Objects".
Key-Value-Stores Aus einer HashMap oder einem Dictionary kennst du
das Prinzip bereits: Unter einem eindeutigen Schlüssel liegt ein
Wert, auf den du über diesen Schlüssel zugreifst. Der Wert kann ein
umfangreiches JSON-Dokument sein, das einen komplexen Objektbaum
enthält. Beim hier beschriebenen Modell erfolgt der Zugriff über
den Schlüssel. Key-Value-Stores werden häufig als Cache eingesetzt.
Darin lassen sich Ergebnisse aufwendiger Datenbankabfragen oder
Berechnungen ablegen, damit sie bei einer späteren Anfrage mit
einem Zugriff verfügbar sind. Bei einem In-Memory-Cache liegen die
Inhalte im Arbeitsspeicher. Dadurch lassen sich häufig angefragte
Werte schnell bereitstellen. Als Beispiele nenne ich Riak und
Redis. Dokumentendatenbanken In einer Dokumentendatenbank werden
zusammengehörige Daten als Dokumente abgelegt. Die Sammlung solcher
Dokumente heißt je nach System beispielsweise Collection. Ein
Dokument kann Unterdokumente und Arrays enthalten, wodurch sich
hierarchische Strukturen speichern lassen. Auch Referenzen auf
andere Dokumente sind möglich. Wenn alle zugehörigen Daten
eingebettet sind, stehen sie beim Lesen mit einem Zugriff bereit.
Innerhalb einer Collection können Dokumente unterschiedliche
Attribute besitzen. In einer Sammlung von Personen könnte
beispielsweise ein Dokument Hobbys enthalten, während ein anderes
einen zusätzlichen Namensbestandteil führt. Über die Attribute
lassen sich dennoch Daten suchen und Indizes anlegen. Diese
Flexibilität eignet sich für Rapid Prototyping, wenn sich die
benötigte Datenstruktur während des Entwickelns noch verändert.
Attribute lassen sich ergänzen oder umbenennen, ohne dafür jedes
Mal eine starre Tabellenstruktur anzupassen. JSON-Dokumente lassen
sich zudem gut mit JavaScript verarbeiten, weil die eingelesenen
Daten als Objekte weiterverwendet werden können. Genannte Systeme
sind MongoDB und Apache CouchDB. Auch Lotus Notes, das vielen als
E-Mail-Anwendung bekannt ist, basiert auf einer
Dokumentendatenbank. Graphdatenbanken Mit einem Graphen kannst du
beispielsweise darstellen, welche Person eine andere kennt. Die
Personen bilden Knoten, ihre Beziehungen werden als Kanten
gespeichert. Eine Kante kann eine Bezeichnung wie "kennt" tragen.
Sowohl Knoten als auch Kanten können Eigenschaften besitzen. Bei
einer Person wären das etwa Name und Alter; an der Beziehung könnte
das Datum stehen, an dem sich beide kennengelernt haben.
Graphalgorithmen helfen dabei, Verbindungen zwischen Knoten zu
untersuchen. In einem sozialen Netzwerk lässt sich damit
beispielsweise ermitteln, über welche Kontakte zwei Personen
miteinander verbunden sind. Weitere Einsatzgebiete sind
Navigationssysteme mit Verbindungen zwischen Städten sowie
Fertigungsanlagen, deren Stationen über Transportbänder miteinander
verbunden sind. Ein bekanntes System ist Neo4j. Dessen
Abfragesprache heißt Cypher und stellt Beziehungen mit Zeichen dar,
die an gezeichnete Graphen erinnern. Antworten im Fachgespräch
vertiefen Wenn du nach NoSQL oder bekannten Datenbanksystemen
gefragt wirst, kannst du deine Antwort mit einem konkreten Modell
und einem passenden Anwendungsfall ausbauen. Dazu gehören die
Eigenschaften des Modells und die Gründe, aus denen es für die
jeweilige Aufgabe geeignet ist. Bei einer Frage nach bekannten
Produkten würde ich nach den Namen auf die betreffenden Modelle
eingehen und
Kommentare (0)
Melde dich an, um einen Kommentar zu schreiben.