5. Weitere wichtige Begriffe
5.1 Beziehungen zwischen Tabellen
1:1 Beziehung:
Einem Datensatz einer Tabelle ist genau ein Datensatz einer anderen
Tabelle zugeordnet.
1:n Beziehung:
Siehe obige Beispiele, z. B. Abschnitt
4.4.3
n:m Bezeihung:
Viele zu viele (n zu m) Beziehung. Einem Datensatz der einen Tabelle
sind, wie bei der 1:n Beziehung, viele Datensätze einer anderen Tabelle
zugeordnet. Umgekehrt sind aber auch jedem Datensatz der zweiten Tabelle
viele Datensätze der ersten Tabelle zugeordnet. Z. B. kann bei einer
Produktdatenbank ein Lieferant viele Produkte liefern. Gleichzeitig kann
dasselbe Produkt von vielen Lieferanten geliefert werden.
Problem:
n:m Beziehungen sind komplex und in dieser Form kaum zu verwalten.
Abhilfe:
Aufschlüsseln der n:m Beziehung in zwei 1:n Beziehungen durch
Einfügen einer dritten Tabelle. Der Primärschlüssel der
neuen Tabelle ist meist ein zusammengesetzter Schlüssel aus den Primärschlüseln
der Ausgangstabellen.
5.2 Fremdschlüssel
Ein Datenfeld (Attribut) einer Tabelle, das nicht Primärschlüssel
dieser Tabelle, aber Schlüsselfeld einer anderen Tabelle ist. Bei
den zwei folgenden Tabellen ist das Feld "Personalnummer" der Tabelle "Reise"
ein Fremdschlüssel, da es gleichzeitig Primärschlüssel der
Tabelle "Personal" ist.
Reise
Rechnungsnummer |
Datum |
Personalnummer |
|
|
|
Personal
Personalnummer |
Name |
Vorname |
Straße |
PLZ |
|
|
|
|
|
5.3 Referentielle Integrität (Beziehungsintegrität)
Jeder Wert (im Sinne von Inhalt) eines Fremdschlüssels muß auch
als Wert des zugehörigen Primärschlüssels vorhanden sein.
Beispiel in obigen Tabellen:
Wenn in der Tabelle "Reise" die Personalnummer 510 eingetragen wird,
muß diese Personalnummer auch als Primärschlüssel in der
Tabelle "Personal" auftauchen, da nur in der Personaltabelle erfaßte
Angestellte Reisen machen können.
Aus dieser Forderung ergeben sich die referentiellen Integritätsbedingungen
für bestimmte Vorgänge:
-
Einfügen oder Ändern eines Wertes des Fremdschlüssels
Es muß darauf geachtet werden, daß dieser zuerst in das
zugehörige Primärschlüssel-Feld eingetragen wird. Ist dies
nicht der Fall, muß die Einfügungs/Änderungsanweisung zurückgewiesen
werden
-
Löschen eines Wertes des Primärschlüssels für den
es einen Fremdschlüssel gibt:
Die Löschanweisung kann zurückgewiesen werden,
alle entsprechenden Datensätze, bei denen der Wert eines Fremdschlüssels
mit dem gelöschten Wert des Primärschlüssels übereinstimmt,
werden komplett gelöscht,
alle entsprechenden Werte des Fremdschlüssels, die mit dem gelöschten
Wert des Primärschlüssels übereinstimmen, werden durch einen
Null-Wert oder einen voreingestellten Wert (Default) ersetzt
Beachten Sie:
Eine relationale Datenbank speichert neben Daten (Tabelleninhalte) auch
Beziehungen zwischen Tabellen. Dazu gehören bei Bedarf auch referentielle
Integritätsbedingungen.
Inhaltsverzeichnis
Kapitel 6
© 1996-98 Andreas
Kelz