Bevor Architekten ein Haus bauen, zeichnen sie einen Bauplan. In der Informatik machen wir das genauso: Bevor wir eine Datenbank am PC programmieren, zeichnen wir ein ER-Diagramm (Entity-Relationship-Diagramm). Es hilft uns, die reale Welt logisch zu strukturieren.
Das Vokabular der Modellierung (Chen-Notation)
In einem ER-Diagramm gibt es drei wichtige Bausteine, die jeweils durch ein eigenes Symbol dargestellt werden:
EntitätstypEntität (Rechteck): Ein Objekt der realen Welt, über das wir Daten speichern wollen (z.B. Schüler, Buch, Lehrer). Später wird daraus eine Tabelle in der Datenbank.
AttributAttribut (Oval): Eine Eigenschaft einer Entität (z.B. Vorname, Geburtsdatum, Preis). Später werden das die Spalten unserer Tabelle. (Ein Primärschlüssel wird unterstrichen).
BeziehungBeziehung (Raute): Das Verb, das zwei Entitäten verbindet (z.B. ein Schüler leiht ein Buch).
Aufgabe 1: Architekt spielen
Wir bauen eine Datenbank für unsere Schule. Ordne die folgenden Begriffe richtig zu: Sind es eigenständige Objekte (Entität) oder nur Eigenschaften (Attribut)?
Begriff
Was ist das?
Klasse (z.B. 5B)
Schuhgröße
Lehrer
E-Mail-Adresse
Kardinalitäten: Wer mit wem und wie oft?
Beziehungen zwischen Entitäten können unterschiedlich ausfallen. Wir müssen festlegen, wie viele Datensätze auf der einen Seite mit wie vielen Datensätzen auf der anderen Seite verknüpft sein dürfen. Das nennt man Kardinalität. Es gibt drei Arten:
1:1 (Eins-zu-Eins): Genau ein Element von A ist mit genau einem Element von B verbunden. Beispiel: 1 Reisepass gehört genau 1 Person.
1:n (Eins-zu-Viele): Ein Element von A kann mit mehreren Elementen von B verbunden sein, aber B gehört nur zu einem A. Beispiel: 1 Mutter hat mehrere (n) Kinder, aber 1 Kind hat (biologisch) nur 1 Mutter.
m:n (Viele-zu-Viele): Mehrere Elemente von A können mit mehreren Elementen von B verknüpft sein. Beispiel: Ein Netflix-User schaut viele Filme, und ein Film wird von vielen Usern geschaut.
Aufgabe 2: Kardinalitäten erkennen
Welche Art von Beziehung liegt hier vor? Überlege aus der Sicht beider Seiten!
Szenario A: Eine Klasse (z.B. 5B) und ihre Schüler.
Szenario B: Schüler und Schulfächer. (Ein Schüler hat mehrere Fächer, ein Fach wird von vielen Schülern besucht).
Das m:n-Problem (Der Endgegner)
In Aufgabe 2 hast du herausgefunden, dass Schüler und Fächer eine m:n-Beziehung haben. Auf dem Papier (im ER-Diagramm) ist das kein Problem. Aber: Datenbankprogramme hassen m:n-Beziehungen! Man kann sie in einer relationalen Datenbank schlichtweg nicht direkt einspeichern.
Die Lösung: Die Verknüpfungstabelle
Um eine m:n-Beziehung für den Computer verständlich zu machen, müssen wir sie in zwei 1:n-Beziehungen aufbrechen. Dafür erschaffen wir eine künstliche Tabelle in der Mitte, die sogenannte Verknüpfungstabelle.
Aufgabe 3: Eine m:n-Beziehung auflösen
Wir haben die Entitäten SCHÜLER und KURS. Sie haben eine m:n Beziehung. Wir erstellen nun die neue Verknüpfungstabelle in der Mitte und nennen sie TEILNAHME.
Dein Auftrag: Welche zwei Spalten (Fremdschlüssel) MÜSSEN zwingend in dieser neuen mittleren Tabelle stehen, damit das System weiß, wer welchen Kurs besucht?