Buffl

Kapitel 2

CE
by Christopher E.

Referentielle Integrität


• Problem:

◦ Datensätze in MAster-Tabelle werden gelöscht - was passiert mit abhängigen Datensätzen in Detail-Tabellen?

◦ Bsp.: Prof. Müller hat 3 Vorlesungen, geht in Pension - wer ist der Dozent?

◦ 3 Möglichkeiten

‣ Mit Prof. Müller verschwinden auch die 3 Vorlesungen -> Löschen des Profs. führt zu Löschen der Vorlesung

‣ Ein anderer Prof. übernimmt -> Fremdschlüssel in Vorlesungen muss sich ändern

‣ Löschen wird verhindert

◦ Referentielle Integrität stellt sicher, dass DB konsistent bleib

• Constrains: Zwangsbedingungen

• NOT NULL: Ausschließen von Nullwerten

• Vorgehen:

• ON DELETE: Regel für Löschen von Datensätzen in der Mastertabelle

◦ NO ACTION: wird ein Master Datensatz gelöscht, auf den sich abhängige Datensätze in der Detailtabelle beziehen, wird der Begehl nicht ausgeführt und ein Fehler ausgegeben

◦ CASCADE: wird ein Master-Datensatz gelöscht, werden alle abhängigen Datensätze in der Dateiltabelle auch gelöscht. Setzt sich auch ggf. weiter fort (Kaskade)

◦ SET NULL: die Fremdschlüssel der abhängigen Daten werden auf NULL gesetzt (Voraussetzung: Fremdschlüssel-Spalte ist nicht NOT-NULL)

◦ SET DEFAULT: die Fremdschlüssel der abhängigen Datensätze werden auf den Standardwert gesetzt (Nicht in MySQL unterstützt)

• ON UPDATE (Regeln für Ändern von Datensätzen in der Mastertabelle)

◦ Prinzipiell s.o.

• Constrains ergeben sich aus dem ER-Diagramm (1:n, m:n)

• Automatischer Erzeugung von Constraints durch ER-Editor (MySQL Workbench)

• Fremdschlüssel dürfen auch den Wert NULL enthalten -> kein Verweis auf Master-Tabelle


Author

Christopher E.

Information

Last changed