Kursinhalt
Relationale Datenbank und Normalisierung
Relationale Datenbank und Normalisierung
Eins-zu-Eins und Viele-zu-Viele
Eins-zu-Eins
Eine Eins-zu-Eins Beziehung ist eine, bei der jeder Datensatz in einer Tabelle genau einem Datensatz in einer anderen Tabelle entspricht. Im Gegensatz zu One-to-Many, bei dem ein Datensatz in einer Tabelle mit mehreren Datensätzen in einer anderen Tabelle in Beziehung stehen kann, ist bei der Eins-zu-Eins Verbindung jedes Datensatzpaar eindeutig verknüpft. Diese Beziehung umfasst zwei wesentliche Verbindungen:
- Die erste Tabelle hat einen foreign key, der auf den primary key der zweiten Tabelle verweist;
- Umgekehrt hat die zweite Tabelle einen foreign key, der auf den primary key der ersten Tabelle zeigt.
Hinweis
Die Eins-zu-Eins Beziehung beruht auf dem foreign key. Dieser foreign key sollte den Parameter “unique=True” enthalten.
In bestimmten Fällen kann ein Datensatz nur existieren, wenn ein anderer vorhanden ist, wobei letzterer auch eigenständig bestehen kann. Diese Art der Verknüpfung wird als Obligatorisches Eins-zu-Eins bezeichnet.
Betrachten Sie das folgende Diagramm:
Eine weitere Illustration:
Ein verpflichtendes Eins-zu-Eins: Jeder Reisepass muss an eine bestimmte Person gebunden sein. Allerdings kann eine Person auch ohne Reisepass existieren, wie dies bei Kindern der Fall ist.
Viele-zu-Viele
Eine Viele-zu-Viele-Beziehung umfasst zwei Tabellen, die mehrere entsprechende Datensätze zueinander enthalten können, oft vermittelt durch eine Zwischentabelle. Im Gegensatz zur Eins-zu-Viele-Beziehung, bei der ein Datensatz in einer Tabelle mehreren Datensätzen in einer anderen entspricht, ermöglicht eine Viele-zu-Viele-Beziehung, dass mehrere Datensätze beider Tabellen miteinander in Beziehung stehen.
Diese Zwischentabelle sollte drei Spalten haben: id (ein Identifikator für jede Beziehung), first_table_id und second_table_id. Die Spalten first_table_id und second_table_id fungieren als Fremdschlüssel, die wieder auf ihre jeweiligen Tabellen verweisen.
Zum Beispiel betrachten Sie einen Carsharing-Dienst, bei dem sowohl driver_id als auch car_id als Fremdschlüssel fungieren. In der Tabelle „driver-car“ werden fünf unterschiedliche Beziehungen dargestellt:
- (id 1 und 2) - Fahrer John (driver_id=1) fuhr die Autos Subaru (car_id=1) und BMW (car_id=3);
- (id 3, 4 und 5) - Fahrer Emma (driver_id=2) fuhr die Autos Subaru (car_id=1), Mercedes (car_id=2) und BMW (car_id=3).
Mehrere Fahrer fuhren verschiedene Autos: Sowohl John als auch Emma fuhren sowohl Subaru als auch BMW.
Datenbankschema:
Typischerweise werden diese Zwischentabellen in Diagrammen weggelassen. Wie oben ersichtlich, wird die driver-car-Tabelle nicht angezeigt.
1. Wählen Sie eine 1:1-Beziehung:
2. Wählen Sie eine Viele-zu-Viele-Beziehung:
Danke für Ihr Feedback!