1:1-Beziehungen
Aufgabe 10
Ordne Klassen und Klassenleiter zu und erkenne die 1:1-Beziehung. Übertrage das auf Schlüssel und Schloss.
Entdecken
Welcher Klassenleiter gehört zu welcher Klasse?
Eine Schule speichert ihre Klassen und Klassenleiter in zwei Tabellen. Klasse meint hier die Schulklasse, z. B. 10a.
Für dieses Schulbeispiel gilt: Jede Klasse hat genau einen Klassenleiter, und jeder Klassenleiter leitet genau eine Klasse. Die Tabellen zeigen nur diese drei Klassen und drei Klassenleiter.
Ziehe jedes Kürzel in das Feld seiner Klasse. Nutze dafür die Spalte klasse_id.
Deine Beobachtung
Wähle für beide Aussagen die passende Ergänzung.
Eine Klasse hat …
Ein Klassenleiter leitet …
Klassenleiter
Trage in beide Lücken die passende Kardinalität ein (1, n oder m).
Hilfe 1
Die Zahl direkt an einer Klassenkarte gibt an, wie viele Objekte dieser Klasse zu einem Objekt der anderen Klasse gehören.
Hilfe 2
Frage für die Lücke bei Klassenleiter: Wie viele Klassenleiter hat eine Klasse? Frage für die Lücke bei Klasse: Wie viele Klassen leitet ein Klassenleiter?
Hilfe 3
Deine Beobachtung: Jede Klasse hat genau einen Klassenleiter. Also steht bei Klassenleiter eine 1. Überlege für die andere Lücke genauso.
Stehen an beiden Enden einer Beziehung eine 1, spricht man von einer 1:1-Beziehung.
Hier: Klasse 1 ───── 1 Klassenleiter
Verstehen
Wohin kommt der Fremdschlüssel?
Bei einer 1:n-Beziehung steht der Fremdschlüssel auf der n-Seite. Bei Klasse 1 ───── 1 Klassenleiter gibt es aber keine n-Seite.
Der jeweilige Fremdschlüssel kann in die eine oder die andere Klasse eingefügt werden, aber nicht in beide Klassen.
Wähle alle Schemata aus, die die 1:1-Beziehung richtig umsetzen.
Hilfe 1
Vergleiche, in welcher Tabelle jeweils ein Attribut mit eckigen Klammern steht.
Hilfe 2
Bei 1:n muss der Fremdschlüssel auf die n-Seite, weil dort jeder Datensatz genau einen Verweis braucht. Bei 1:1 haben beide Seiten nur genau einen Partner.
Hilfe 3
Schema A speichert die Verbindung genau einmal und ist richtig. Prüfe, ob das für Schema B genauso gilt und was in Schema C anders ist.
Bei 1:1 kann der Fremdschlüssel in einer der beiden Tabellen stehen. Allein der Fremdschlüssel erzwingt aber noch keine 1:1-Beziehung: Ohne zusätzliche Eindeutigkeit könnten mehrere Zeilen auf dieselbe Klasse oder dasselbe Schloss verweisen. In diesem Beispiel gilt die eindeutige Zuordnung als feste Annahme.
Er steht aber nur in einer Tabelle – sonst wäre die Verbindung doppelt gespeichert.
Übertragen: Schlüssel und Schloss
Für diese Schließanlage gilt: Jeder Schlüssel öffnet genau ein Schloss, und zu jedem Schloss gehört genau ein Schlüssel.
Schlüssel
- id
- nummer
- besitzer
Schloss
- id
- ort
Ergänze die Kardinalitäten.
Notiere beide möglichen Tabellenschemata, um die 1:1-Beziehung umzusetzen.
Schreibe in jedes Feld beide Tabellen untereinander und jede Spalte in eine eigene Zeile. Die Reihenfolge der Tabellen und Attribute ist egal.
Hilfe 1
Jede Möglichkeit besteht aus beiden Tabellen. Übertrage zuerst die Attribute der Klassenkarten mit ihren Datentypen.
Hilfe 2
Die Beziehung öffnet wird durch einen Fremdschlüssel umgesetzt. Du schreibst ihn wie user_id[users]: int: in den eckigen Klammern steht die Tabelle, auf die er verweist.
Hilfe 3
In einer Möglichkeit bekommt schluessel die Zeile schloss_id[schloss]: int. In der anderen steht der Fremdschlüssel stattdessen in schloss.
Kreuze an, was außer dem Fremdschlüssel für die 1:1-Zuordnung gelten muss.
Hilfe 1
Vergleiche die Anzahl der Partner in beide Richtungen.
Hilfe 2
Ein Fremdschlüssel nennt einen Partner. Prüfe, ob derselbe Partner in einer anderen Zeile erneut genannt werden könnte.
Hilfe 3
Zwei Klassenleiter könnten ohne Eindeutigkeitsregel beide dieselbe klasse_id eintragen. Deshalb ist die 1:1-Zuordnung hier eine ausdrücklich geltende Annahme.
Übersicht
1:1-Beziehungen auf einen Blick
1:1-Beziehung
Bei einer 1:1-Beziehung gehört zu jedem Datensatz der einen Tabelle genau ein Datensatz der anderen Tabelle – und umgekehrt. Der Fremdschlüssel kann in einer der beiden Tabellen stehen; die Zuordnung muss zusätzlich eindeutig sein.
Sicherungsblatt zu Aufgabe 10
Sicherungsblatt anzeigen
Sichern
Abschlussquiz
Kreuze alle richtigen Antworten an. Bei manchen Fragen sind mehrere Antworten richtig.