Relationale Datenbankmodelle
Definition:
Modell zur strukturierten Speicherung und Abfrage von Daten durch Tabellen (Relationen), Spalten (Attribute) und Zeilen (Tupel).
Details:
- Datenbankstruktur basiert auf mathematischer Theorie der Relationen
- Schlüsselkriterien: Primärschlüssel, Fremdschlüssel
- Mengenoperationen: Projektion, Selektion, Joins, Vereinigungen
- Datenintegrität durch Constraints sichergestellt
- SQL (Structured Query Language) zur Abfrage und Manipulation verwendet
Normalisierung
Definition:
Normalisierung: Prozess der Organisation von Daten in einer relationalen Datenbank zur Reduktion von Redundanzen und Vermeidung von Anomalien.
Details:
- Ziel: Strukturierung der Daten in sinnvolle Tabellen zur Sicherstellung der Datenintegrität.
- 1. Normalform: Beseitigung von Redundanzen – jedes Attribut enthält nur atomare Werte.
- 2. Normalform: Einhaltung der 1. NF und keine partiellen Abhängigkeiten zwischen Attributen und Schlüssel.
- 3. Normalform: Einhaltung der 2. NF und keine transitiven Abhängigkeiten zwischen Nicht-Schlüsselattributen.
- Boyce-Codd-NF (BCNF): Einhaltung der 3. NF und jedes Determinante ist ein Superschlüssel.
- Normalisierung reduziert Daten-Anomalien wie Einfüge-, Lösch- und Änderungsanomalien.
Joins und Subqueries in SQL
Definition:
Verwende Joins und Subqueries, um Daten aus mehreren Tabellen zu kombinieren und komplexere Abfragen zu ermöglichen.
Details:
ACID-Prinzipien
Definition:
ACID-Prinzipien dienen zur Gewährleistung der Zuverlässigkeit von Datenbanktransaktionen:
Details:
- Atomicity: Transaktionen sind unteilbar (\textit{alles oder nichts}).
- Consistency: Transaktionen führen die Datenbank von einem konsistenten Zustand in einen anderen.
- Isolation: Transaktionen sind voneinander unabhängig.
- Durability: Einmal abgeschlossene Transaktionen bleiben dauerhaft gespeichert.
NoSQL Kategorisierung
Definition:
Einteilung von NoSQL-Datenbanken in verschiedene Kategorien je nach ihrem Datenmodell und ihren Anwendungsfällen.
Details:
- Dokumentbasierte Datenbanken: Speichern Daten im JSON-Format (z.B. MongoDB, CouchDB)
- Key-Value-Stores: Speichern Paare von Schlüssel und Wert (z.B. Redis, Riak)
- Spaltenorientierte Datenbanken: Daten in Spalten statt Zeilen gespeichert (z.B. Cassandra, HBase)
- Graphdatenbanken: Speichern Daten als Knoten und Kanten (z.B. Neo4j, ArangoDB)
Entity-Relationship-Modelle
Definition:
Entität-Typen und deren Beziehungen modellieren
Details:
- Bestandteile: Entitäten, Attribute, Beziehungen
- Entität: Objekt der realen Welt
- Attribut: Eigenschaften einer Entität
- Beziehung (Relationship): Assoziation zwischen Entitäten
- Kardinalitäten: 1:1, 1:N, N:M
- Schlüsselattribute: eindeutige Identifizierung von Entitäten
- Chen-Notation: Standard-Darstellung
Transaktionsverwaltung
Definition:
Verantwortlich für die Sicherstellung der ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability) in Datenbanktransaktionen.
Details:
- Atomicity: Transaktionen werden vollständig ausgeführt oder gar nicht (alles-oder-nichts-Prinzip).
- Consistency: Transaktionen führen die Datenbank von einem konsistenten Zustand in einen anderen.
- Isolation: Parallel ausgeführte Transaktionen beeinflussen sich nicht gegenseitig.
- Durability: Nach erfolgreichem Abschluss einer Transaktion bleiben die Änderungen dauerhaft gespeichert, auch bei Systemausfällen.
- Verwendet Mechanismen wie Sperren, Logs und Wiederherstellungsstrategien.
- Isolation Levels: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
- Two-Phase Commit Protocol für verteilte Transaktionen.
Datenkonsistenz und Integritätsbedingungen
Definition:
Datenkonsistenz stellt sicher, dass Daten korrekt und fehlerfrei sind; Integritätsbedingungen gewährleisten, dass die gespeicherten Daten den definierten Regeln entsprechen.
Details:
- Konsistenz: Daten dürfen nach einer Transaktion nicht inkonsistent sein.
- Integritätsbedingungen:
- Schlüsselintegrität: Primärschlüssel müssen eindeutig sein.
- Referentielle Integrität: Fremdschlüssel müssen auf existierende Primärschlüssel verweisen.
- Domänenintegrität: Werte müssen dem definierten Datentyp entsprechen.
- Benutzerdefinierte Integrität: Anwendungsbezogene Bedingungen.