Inhaltsverzeichnis
NoSQL Datenbanken
Dokumentenorientierte Datenbanken
- Definition: Speichern von Daten in dokumentenähnlichen Strukturen (z.B. JSON).
- Beispiel: MongoDB
- Vorteile:
- Ist im Schema komplett flexibel.
- Erleichtert die Darstellung hierarchischer oder verschachtelter Daten.
- Nachteile:
- Die Abfragen können komplex sein, insbesondere wenn komplexe Joins benötigt werden.
- Fleixbles Schema, was zu inkosistenzen führen kann.
Spaltenorientierte Datenbanken
- Definition: Speichern von Daten in Spalten statt in Zeilen. Anstatt Daten für eine komplette Zeile hintereinander zu speichern (z. B. ID, Name, Adresse für einen Kunden), werden in spaltenorientierten Datenbanken alle Werte einer bestimmten Spalte hintereinander gespeichert (z. B. alle IDs, dann alle Namen, usw.).
- Beispiel: Cassandra
- Vorteile:
- Sehr goße Datenmengen können effizient und schnell verarbeitet werden, da Werte einer Spalte hintereinander gespeichert werden.
- Nachteile:
- Das Entwerfen von Datenmodellen kann komplexer sein, da Entwickler eine neue Denkweise annehmen müssen
- Spaltenorientierte Datenbanken können bei komplexen Abfragen, die mehrere Spaltenübergreifende Operationen erfordern, weniger effizient sein.
Key/Value-Store Datenbanken
- Definition: Speichern von Daten als ein Schlüssel-Wert-Paar.
- Beispiel: Redis
- Vorteile:
- Die Schlüssel-Wert-Paare ermöglichen sehr schnelle Lese- und Schreibvorgänge.
- Ist einfach zu verstehen und zu verwenden.
- Nachteile:
- Die meisten Abfragen beschränken sich auf den Schlüsselzugriff, was die Komplexität der unterstützten Abfragen begrenzt.
Objektorientierte Datenbanken
- Definition: Speichern von Daten als Objekte.
- Beispiel: db4o
- Vorteile:
- Die objektorientierte Modellierung ist intuitiv für Entwickler, die mit objektorientierten Programmiersprachen arbeiten.
- Kann komplexe Daten speichern.
- Nachteile:
- Erfordert ein Verständnis der objektorientierten Programmierung.
- Können ineffizienter sein als bspw. relationale Datenbanken.
Graphendatenbanken
- Definition: Speichern von Daten in Graphstrukturen.
- Beispiel: Neo4j
- Vorteile:
- Ermöglicht komplexe Abfragen von Beziehungen und Mustern.
- Ideal für Anwendungen mit komplexen Beziehungen, da Beziehungen in Graphendatenbanken direkt dargestellt werden können.
- Nachteile:
- Erfordert ein Verständnis von Graphtheorie und spezifischen Abfragesprachen.
CAP-Theorem
Das Akronym CAP steht für Consistency (Konsistenz), Availability (Verfügbarkeit) und Partition Tolerance (Ausfalltoleranz). Das Theorem besagt, dass in einem verteilten System nur zwei der drei Eigenschaften gleichzeitig erreichbar sind.
Consistency (Konsistenz)
- Definition: In einem konsistenten System sehen alle Knoten sehen zur gleichen Zeit die gleichen Daten. Eine Anfrage an das System liefert immer die neusten Daten.
- Bedeutung: Konsistenz gewährleistet, dass Daten immer aktuell sind, was in bestimmten Anwendungsfällen, wie z.B. bei Finanztransaktionen, von entscheidender Bedeutung sein kann.
Availability (Verfügbarkeit)
- Definition: Das System ist immer verfügbar und antwortet auf Anfragen, auch wenn einzelne Knoten ausfallen.
- Bedeutung: Verfügbarkeit ist entscheidend für Systeme, die eine hohe Uptime benötigen, wie z.B. Online-Shopping-Plattformen, wo Ausfallzeiten zu verlorenen Verkäufen führen können.
Partition Tolerance (Ausfalltoleranz)
- Definition: Das System kann weiterhin funktionieren, auch wenn Knoten voneinander getrennt sind.
- Bedeutung: Ausfalltoleranz ist wichtig für Systeme, die in verteilten Umgebungen arbeiten, um sicherzustellen, dass das System auch bei Netzwerkproblemen weiterhin funktioniert.
Map/Reduce
Map/Reduce ist ein Programmiermodell, das bei der Verarbeitung von Datenmengen verwendet wird.
Map
- Aufgabe: Beim Map wird eine spezifizierte Funktion auf jedes Element der Liste angewendet. Die Funktion transformiert jedes Element in irgendeiner Weise, ohne die ursprüngliche Liste zu verändern, und produziert eine neue Liste mit den transformierten Elementen.
- Beispiel: Angenommen man hat die Liste:
[1, 2, 3, 4]
. Hier kann mit einem Map beispielsweise jede Zahl in der Liste verdoppelt werden, um eine neue Liste[2, 4, 6, 8]
zu erhalten.
Filter
- Aufgabe: Beim Filter werden Daten auf der Grundlage bestimmter Kriterien gefiltert. Dabei werden Elemente, die dem Filter entsprechen, nicht in die neue Liste mit aufgenommen.
- Beispiel: Angenommen, man hat die Liste:
[1, 2, 3, 4, 5, 6]
. Wenn man nur die geraden Zahlen für die weitere Verarbeitung berücksichtigen möchte, kann man einen Filter verwenden, um eine neue Liste[2, 4, 6]
zu erhalten.
Reduce
- Aufgabe: Beim Reduce wird eine Aggregationsfunktion auf eine Liste angewendet. Die Funktion reduziert die Liste auf einen einzigen Wert.
- Beispiel: Angenommen auf die Liste
[2, 4, 6, 8]
wird eine Summenfunktion angewendet, um den einzelnen Wert20
zu erhalten.
BASE
Das BASE-Modell ist eine Alternative zu den stregen ACID-Prinzipien und erlaubt Systemen, auf eine „weichere“ Form der Konsistenz (Eventual Consistency) hinzuarbeiten, während eine höhere Verfügbarkeit und Fehlertoleranz gewährleistet wird.
Basically Available
- Definition: Dieser Aspekt besagt, dass das System im Allgemeinen verfügbar ist, selbst wenn es Teilausfälle gibt. Das System kann weiterhin Lese- und Schreibvorgänge ausführen, obwohl einige Daten möglicherweise veraltet sind.
- Beispiel: In einem verteilten Datenbanksystem könnte ein Knotenausfall auftreten, aber die restlichen Knoten bleiben funktionstüchtig und können Anfragen bearbeiten.
Soft State
- Definition: Der Zustand des Systems könnte sich mit der Zeit ändern, selbst wenn keine Eingaben erfolgen.
- Beispiel: Ein Knoten könnte veraltete Daten haben, aber im Laufe der Zeit werden diese Daten durch Replikationsprozesse auf den neuesten Stand gebracht.
Eventual Consistency
- Definition: Das System wird irgendwann konsistent sein, wenn keine weiteren Eingaben vorliegen. Dies bedeutet, dass wenn keine neuen Daten mehr vorliegen, alle Replikationen irgendwann den gleichen Stand haben werden.
- Beispiel: Nachdem alle Schreibvorgänge abgeschlossen sind und alle Knoten synchronisiert wurden, zeigt jeder Knoten die neuesten Daten an.
Phasen der Datenbankentwicklung
Externe Phase (Informationsbeschaffung)
- Ziel: Erfassung und Verständnis der Anforderungen der Benutzer und des Systems.
- Aktivitäten:
- Gespräche mit Endbenutzern bzw. Fachabteilung
- Analyse vorhandener Systeme
Konzeptionelle Phase (Semantisches Modell)
- Ziel: Erstellung eines abstrakten Modells der Datenbankstruktur.
- Aktivitäten:
- Identifizierung von Entitäten und Beziehungen
- z.B. die Erstellung von Entity-Relationship-Modell
Logische Phase (Datenmodell)
- Ziel: Umsetzung des konzeptionellen Modells in ein logisches Modell für relationale Datenbanken.
- Aktivitäten:
- Entitäten zu Tabellen transformieren
- Beziehungen durch Fremdschlüssel darstellen
- Anwendung der Normalisierungsregeln
Physische Phase (Datenbankschema)
- Ziel: Implementierung des logischen Modells in einem spezifischen DBMS (Datenbankmanagementsystem).
- Aktivitäten:
- Festlegung von Datentypen, usw.
- Datenbankspezifische Optimierungen
Grundlagen der Datenmodellierung
Entitätstypen
- Definition: Entitäten sind abstrakte Repräsentationen von Konzepten.
- Beispiel: Patient, Arzt, Termin.
Entitäten
- Definition: Konkrete Ausprägung eines Entitätstypen.
- Beispiel: Herr Müller (spezifischer Patient)
Relationsbeziehungen
- Eins-zu-Eins (1:1): Jede Entität aus Gruppe A steht mit genau einer Entität aus Gruppe B in Beizheung. Umgekehrt steht jede Entität aus Gruppe B mit genau einer Entität aus Gruppe A in Beziehung.
- Eins-zu-Viele (1:N): Eine Entität aus Gruppe A kann mit mehreren Entitäten aus Gruppe B in Beziehung stehen. Jedoch steht jede Entität aus Gruppe B immer nur mit einer Entität aus Gruppe A in Beziehung.
- Viele-zu-Viele (M:N): Mehrere Entitäten aus Gruppe A können mit mehreren Entitäten aus Gruppe B in Beziehung stehen und umgekehrt.
Normalisierung
- 1NF (Erste Normalform): Jede Spalte enthält atomare, eindeutige Werte.
- 2NF (Zweite Normalform): Erfüllt 1NF und alle Attribute sind voll funktional abhängig vom Primärschlüssel.
- 3NF (Dritte Normalform): Erfüllt 2NF und es existieren keine transitiven Abhängigkeiten.
Identifikationsschlüssel
- Primärschlüssel (PK): Eindeutige Identifikation von Datensätzen.
- Fremdschlüssel (FK): Verweist auf den Primärschlüssel einer anderen Tabelle.
Crow’s Foot Notation
- Definition: Grafische Notation zur Darstellung von Beziehungen in ER-Diagrammen.
- Vorteile: Visuelle Klarheit, leicht zu verstehen.
- Darstellungselemente:
- Entitätstypen: Dargestellt durch Rechtecke.
- Beziehungen: Linien, die die Entitätstypen verbinden.
- Kardinalitäten: Beschreiben das minimale und maximale Auftreten einer Beziehung:
0
: Symbolisiert die Option, dass keine Beziehung notwendig ist.|
: Steht für eine einzige, feste Beziehung.Krähenfuß
: Zeigt die Möglichkeit von mehreren Beziehungen an.
ACID-Prinzipien für Transaktionen
Atomicity (Atomarität)
- Definition: Ein Vorgang oder eine Transaktion ist entweder vollständig erfolgreich oder wird vollständig rückgängig gemacht.
- Vorteile: Verhindert unvollständige Transaktionen und Dateninkonsistenz.
- Anwendungen: Banküberweisungen, Lagerverwaltung.
- Beispiel: Bei einer Banküberweisung wird entweder der gesamte Betrag überwiesen oder die Transaktion wird abgebrochen, wenn z.B. der Kontostand unzureichend ist.
Consistency (Konsistenz)
- Definition: Die Datenbank bleibt nach jeder abgeschlossenen Transaktion in einem konsistenten Zustand.
- Vorteile: Erleichtert die Datenintegrität und Anwendungslogik.
- Anwendungen: Datenvalidierung, Integritätsregeln.
- Beispiel: Wenn ein Kunde in einem Online-Shop einen Artikel kauft, wird der Lagerbestand dieses Artikels entsprechend reduziert. Sollte der Artikel dadurch ausverkauft sein, wird er als „nicht verfügbar“ im Shop angezeigt.
Isolation (Isolierung)
- Definition: Transaktionen laufen so ab, als ob sie isoliert von anderen Transaktionen wären.
- Vorteile: Eliminiert Nebeneffekte zwischen gleichzeitig laufenden Transaktionen.
- Anwendungen: Mehrbenutzersysteme, Echtzeitsysteme.
- Beispiel: Zwei Personen buchen gleichzeitig den letzten verfügbaren Sitzplatz in einem Flugzeug. Isolation stellt sicher, dass nur eine Buchung erfolgreich ist.
Durability (Dauerhaftigkeit)
- Definition: Sobald eine Transaktion abgeschlossen ist, sind die Änderungen dauerhaft in der Datenbank gespeichert.
- Vorteile: Datenverlust wird minimiert, erhöhte Ausfallsicherheit.
- Anwendungen: Backup-Systeme, Transaktionsprotokolle.
- Beispiel: Nach dem Abschluss einer Online-Bestellung bleibt der Bestellstatus auch nach einem Systemausfall erhalten.
Weiteres Lernmaterial
Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.