Beziehungen
Ein Schüler geht in genau eine Klasse.
In eine Klasse gehen n Schüler, wobei n eine ganze Zahl größer 0 ist.
1:n-Beziehung
Im ER-Diagramm wird eine Beziehung durch eine Raute dargestellt. Wir notieren eine Bezeichnung, die den Vorgang beschreibt, der der Beziehung zugrunde liegt: der Schüler xy geht in die Klasse z
In dem ER-Diagramm notieren wir noch bei Schüler ein "n" für n Schüler, bei Klasse eine "1" für eine Klasse (Kardinalitäten).
Auf der n- Seite der Beziehung wird ein Fremdschlüssel als Verweis auf die 1-Seite hinzugefügt.
Die entsprechende Tabelle erhält eine weitere Spalte, in der Primärschlüssel der zugeordneten Objekte der anderen Tabelle (1-Seite) stehen.
Im Beispiel: Die Tabelle Schüler hat schon eine Spalte "Klasse"; deshalb brauchen wir hier nichts hinzuzufügen.
Das Datenbankschema lautet jetzt:
Schueler (ID, Nachname, Vorname, Geburtsdatum, ↑Klassenname)
Klasse (Klassenname, Klassenlehrer, Raum)
Der Klassenname in der Tabelle Schueler ist ein Fremdschlüssel und bekommt als Kennzeichnung einen Pfeil nach oben.
In unserer gedachten Schule unterrichtet eine Lehrerin / ein Lehrer mehrere Klassen und jede Klasse hat Unterricht bei mehreren Lehrerinnen und Lehrern.
Lehrer --> n Klassen
Klasse --> m Lehrer
n:m-Beziehung
ER-Diagramm
Eigenschaften der Beziehung:
Hier gibt es zusätzlich noch das "Fach", in dem die Klasse unterrichtet wird. Fach ist nämlich weder eine Eigenschaft der Klasse noch des Lehrers/der Lehrerin, sondern des Zusammenspiels "Lehrer/Lehrerin unterrichtet Klasse im Fach".
Attribute des Beziehungstyps werden in das neue Relationenschema aufgenommen.
Beispiel
Für die n:m-Relation zwischen Lehrer und Klasse wird also folgendes Tabelle zum Datenbankschema hinzugefügt.
unterrichtet (↑Klassenname, ↑Lehrerkuerzel)
Zusammen mit dem Fach ergibt sich: unterrichtet (↑Klassenname, ↑Lehrerkuerzel, Fach) .
Das ist aber so nicht richtig, weil eine Lehrerin/ein Lehrer dieselbe Klasse in mehreren Fächern unterrichten kann. Dann ist der Primärschlüssel aus ↑Klassenname und ↑Lehrerkuerzel aber nicht mehr eindeutig.
Lösung 1: Wir fügen das Fach zum Primärschlüssel hinzu.
Lösung 2: Wir fügen anstelle von ↑Klassenname, ↑Lehrerkuerzel einen neuen Primärschlüssel hinzu, wie es Dateenbankprogramme empfehlen.
unterrichtet (ID, ↑Klassenname, ↑Lehrerkuerzel, Fach)
Der Entitätstyp "Klasse" hat noch das Attribut "Klassenlehrer". Das weist auf eine weitere Beziehung zwischen Klasse und Lehrerin/Lehrer hin, denn in dieser Spalte stehen die Kürzel (Primärschlüssel) der jeweiligen Klassenlehrer.
Jede Klasse hat nur einen Klassenlehrer/eine Klassenlehrerin, jede Lehrerin/jeder Lehrer ist Klassenlehrer von höchstens einer Klasse. Statt bei der Klasse hätte man diese Eigenschaft also auch bei den Lehrern notieren können: "ist Klassenlehrerin/Klassenlehrer von Klasse xy"; bei manchen Lehrerinnen/Lehrern bleibt der Eintrag dann eben frei.
1:1-Beziehung
1:1-Beziehungen sind Beziehungen, in denen eine Entität mit einer anderen Entität in Beziehung steht
Das vollständige Datenbankschema zu unserem Beispiel:
Schueler (ID, Nachname, Vorname, Geburtsdatum, ↑Klassenname)
Klasse (Klassenname, ↑Klassenlehrer, Raum)
Lehrer (Kuerzel, Name, Vorname)
unterrichtet (ID, ↑Klassenname, ↑Lehrerkuerzel, Fach)
Das ER - Diagramm: