Datenbank Praxis - Cheatsheet
Relationale Algebra
Definition:
Relationale Algebra: Ein formales System zur Manipulation und Abfrage von Relationen in einer Datenbank.
Details:
- Grundoperationen: Selektion (\texttt{SELECT}), Projektion (\texttt{PROJECT}), Vereinigung (\texttt{UNION}), Durchschnitt (\texttt{INTERSECT}), Differenz (\texttt{DIFFERENCE}), kartesisches Produkt (\texttt{CARTESIAN PRODUCT}), und Verbund (\texttt{JOIN})
- Selektion (\texttt{σ}): \texttt{SELECT * FROM R WHERE condition}
- Projektion (\texttt{π}): \texttt{SELECT column1, column2 FROM R}
- Vereinigung (\texttt{∪}): \texttt{SELECT column FROM R1 UNION SELECT column FROM R2}
- Durchschnitt (\texttt{∩}): \texttt{SELECT column FROM R1 INTERSECT SELECT column FROM R2}
- Differenz (\texttt{−}): \texttt{SELECT column FROM R1 EXCEPT SELECT column FROM R2}
- kartesisches Produkt (\texttt{×}): \texttt{SELECT * FROM R1, R2}
- Verbund (\texttt{⋈}): \texttt{SELECT * FROM R1 JOIN R2 ON R1.key = R2.key}
ER-Modelle und ER-Diagramme
Definition:
ER-Modell (Entity-Relationship-Modell) ist ein konzeptionelles Datenmodell zur Darstellung von Datenbankstrukturen. Ein ER-Diagramm veranschaulicht diese Struktur grafisch.
Details:
- Entitäten: Objekte oder Dinge (z.B. Kunde, Produkt)
- Attribute: Eigenschaften von Entitäten (z.B. Name, Preis)
- Schlüsselattribute: Eindeutige Kennzeichnung von Entitäten (z.B. Kundennummer)
- Beziehungen: Verknüpfungen zwischen Entitäten (z.B. kauft)
- Kardinalitäten: Beschreiben die Anzahl der beteiligten Entitäten in einer Beziehung (1:1, 1:n, n:m)
Transaktionsmanagement
Definition:
Verwaltung und Steuerung von Transaktionen in Datenbanksystemen.
Details:
- ACID-Prinzipien: Atomicity (Unteilbarkeit), Consistency (Konsistenz), Isolation (Isolation), Durability (Dauerhaftigkeit)
- Isolationsebenen: Read Uncommitted, Read Committed, Repeatable Read, Serializable
- Concurrency Control: Sperrmechanismen (Locks), Zeitstempelverfahren
- Fehlerbehandlung: Rollback, Recovery
Join-Operationen in SQL
Definition:
Verknüpfung von Tabellen über gemeinsame Attribute zur kombinierten Anzeige von Daten.
Details:
- INNER JOIN: Nur Datensätze mit passenden Werten in beiden Tabellen werden verknüpft.
SELECT * FROM t1 INNER JOIN t2 ON t1.id = t2.id
- LEFT JOIN: Alle Datensätze aus der linken Tabelle und die passenden Datensätze aus der rechten Tabelle.
SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id
- RIGHT JOIN: Alle Datensätze aus der rechten Tabelle und die passenden Datensätze aus der linken Tabelle.
SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id
- FULL OUTER JOIN: Alle Datensätze, wenn es eine Übereinstimmung in einer der beiden Tabellen gibt.
SELECT * FROM t1 FULL OUTER JOIN t2 ON t1.id = t2.id
- CROSS JOIN: Kartesisches Produkt von zwei Tabellen.
SELECT * FROM t1 CROSS JOIN t2
Stored Procedures und Trigger
Definition:
Stored Procedures: Vorprogrammierte SQL-Anweisungen, die auf dem Datenbankserver gespeichert sind. Trigger: Automatisierte Aktionen, die bei bestimmten Ereignissen in der Datenbank ausgelöst werden.
Details:
- Stored Procedures werden mit CREATE PROCEDURE definiert.
- Zur Ausführung: Aufruf mit EXEC oder CALL.
- Bieten Optimierung und Wiederverwendbarkeit.
- Trigger reagieren auf Ereignisse wie INSERT, UPDATE, DELETE.
- Definition mit CREATE TRIGGER.
- Trigger können BEFORE oder AFTER dem Ereignis ausgeführt werden.
- Trigger sind nützlich für Konsistenz und Automatisierung.
Schema-Design und Normalisierung
Definition:
Schema-Design zielt auf effiziente Organisation von Daten ab. Normalisierung reduziert Redundanzen und Anomalien.
Details:
- 1. Normalform (1NF): Beseitigung von wiederholten Gruppen, jede Tabellenzelle muss atomar sein.
- 2. Normalform (2NF): 1NF + keine partiellen Abhängigkeiten.
- 3. Normalform (3NF): 2NF + keine transitiven Abhängigkeiten.
- Boyce-Codd-Normalform (BCNF): 3NF + jede Determinante ist ein Kandidatenschlüssel.
- Anomalien: Einfüge-, Lösch-, und Aktualisierungsanomalien werden vermieden.
- Abhängigkeiten: Funktionale Abhängigkeiten analysieren und minimal halten.
Abfrageoptimierungsstrategien
Definition:
Strategien zur Effizienzsteigerung von Datenbankabfragen
Details:
- Ziel: Minimierung der Abfragezeit und Ressourcennutzung
- Join-Strategien: Nested Loop, Sort-Merge, Hash Join
- Index-Nutzung: B-Tree, Hash-Index
- Optimierungsverfahren: Heuristische Optimierung, Kostenbasierte Optimierung
- Abfragepläne: Selektion, Projektion, Join-Operationen
- Materialisierte Sichten und ihre Nutzung
- Vorteile und Nachteile der verschiedenen Strategien
- Werkzeuge zur Analyse von Abfrageplänen (z.B. EXPLAIN)
Verschiedene NoSQL-Datenbanktypen
Definition:
Verschiedene NoSQL-Datenbanktypen bieten spezialisierte Lösungen für unterschiedliche Anforderungen abseits relationaler Datenbanksysteme.
Details:
- Key-Value-Stores: Einfaches Schlüssel-Wert-Paar-Prinzip (z.B. Redis, DynamoDB).
- Dokumentenbasierte Datenbanken: Speicherung von Dokumenten in Formaten wie JSON, BSON (z.B. MongoDB, CouchDB).
- Spaltenorientierte Datenbanken: Optimiert für Lese- und Schreibzugriffe auf große Datenmengen (z.B. Cassandra, HBase).
- Graphdatenbanken: Hervorragend für die Modellierung und Abfrage von Beziehungen zwischen Daten (z.B. Neo4j, ArangoDB).