Datenbankentwurf in der Praxis
Die drei Entwurfsphasen
Der Datenbankentwurf folgt einem systematischen Prozess in drei Phasen:
- Konzeptioneller Entwurf: Modellierung der realen Welt als Entity-Relationship-Modell (ER-Modell) – unabhängig vom konkreten Datenbanksystem.
- Logischer Entwurf: Überführung des ER-Modells in ein relationales Schema (Tabellen mit Primär- und Fremdschlüsseln).
- Physischer Entwurf: Umsetzung im konkreten DBMS (Indizes, Speicherstrukturen, Optimierung).
Anforderungsanalyse
Vor dem Entwurf steht die Anforderungsanalyse:
- Welche Daten sollen gespeichert werden?
- Welche Beziehungen bestehen zwischen den Daten?
- Welche Abfragen und Operationen sind häufig?
- Welche Integritätsbedingungen müssen gelten?
Beispiel: Eine Schulverwaltung soll Schüler, Kurse und Lehrkräfte verwalten. Jeder Schüler besucht mehrere Kurse, jeder Kurs wird von genau einer Lehrkraft unterrichtet.
Das Entity-Relationship-Modell (ER-Modell)
Das ER-Modell besteht aus drei Grundbausteinen:
- Entitäten (Rechtecke): Objekte der realen Welt, z. B. Schüler, Kurs, Lehrkraft.
- Attribute (Ovale): Eigenschaften von Entitäten, z. B. Name, Geburtsdatum. Der Primärschlüssel wird unterstrichen.
- Beziehungen (Rauten): Verbindungen zwischen Entitäten, z. B. „besucht“, „unterrichtet“.
Kardinalitäten
Kardinalitäten beschreiben, wie viele Entitäten einer Menge mit Entitäten einer anderen Menge in Beziehung stehen:
- 1:1 – Jede Entität steht mit höchstens einer Entität der anderen Menge in Beziehung. Beispiel: Schüler – Schließfach.
- 1:n – Eine Entität steht mit vielen Entitäten in Beziehung. Beispiel: Lehrkraft unterrichtet mehrere Kurse.
- m:n – Mehrere Entitäten stehen mit mehreren in Beziehung. Beispiel: Schüler besuchen Kurse.
Vom ER-Modell zum relationalen Schema
Regeln der Überführung:
- Jede Entität wird eine Tabelle (Relation).
- Jedes Attribut wird eine Spalte.
- 1:n-Beziehungen: Der Primärschlüssel der 1-Seite wird als Fremdschlüssel in die Tabelle der n-Seite aufgenommen.
- m:n-Beziehungen: Es entsteht eine Zwischentabelle mit den Primärschlüsseln beider Entitäten als zusammengesetztem Schlüssel.
Fallbeispiel: Schulverwaltung
-- Relationales Schema
CREATE TABLE Lehrkraft (
lehrkraft_id INT PRIMARY KEY,
name VARCHAR(100),
fach VARCHAR(50)
);
CREATE TABLE Kurs (
kurs_id INT PRIMARY KEY,
bezeichnung VARCHAR(100),
lehrkraft_id INT REFERENCES Lehrkraft(lehrkraft_id) -- 1:n
);
CREATE TABLE Schüler (
schueler_id INT PRIMARY KEY,
name VARCHAR(100),
klasse VARCHAR(10)
);
-- Zwischentabelle für m:n
CREATE TABLE Belegung (
schueler_id INT REFERENCES Schüler(schueler_id),
kurs_id INT REFERENCES Kurs(kurs_id),
PRIMARY KEY (schueler_id, kurs_id)
);
Abitur-Tipp: Im Abitur wird häufig ein Textabschnitt gegeben, aus dem ein ER-Diagramm erstellt und dann in ein relationales Schema überführt werden soll. Achte besonders auf die korrekte Identifikation der Kardinalitäten (1:1, 1:n, m:n) und die regelkonforme Umsetzung mit Fremd- und Zwischentabellen.