3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9) Werte einer Attributmenge müssen mit den Werten einer korrespondierenden Attributmenge in einer anderen Tabelle übereinstimmen (Realisierung von Beziehungen aus dem ER-Modell). Die Kennzeichnung von Fremdschlüsseln wird in SQL92 durch die FOREIGN KEY-Angabe ermöglicht. SS2001 Semantische Integritätsbedingungen Ó AIFB Beispiel
3.5.2 Fremdschlüssel/ Referentielle Integrität (2/9) Beispiel: CREATE TABLE auto ( typ CHARACTER(20), kennz CHARACTER(10) PRIMARY KEY, tuev DATE ) CREATE TABLE halter ( name CHARACTER(20), geb-dat DATE, kfz-kennz CHARACTER(10), PRIMARY KEY (name, geb-dat), FOREIGN KEY (kfz-kennz) REFERENCES auto(kennz) ) IB: halter.kfz-kennz \ {NULL} auto.kennz SS2001 Semantische Integritätsbedingungen Ó AIFB
3.5.2 Fremdschlüssel/ Referentielle Integrität (3/9) Bezeichnung: Relation auto : referenzierte Relation Relation halter: referenzierende Relation SS2001 ON DELETE-Klausel ... gibt an, was passiert, wenn ein Tupel aus der referenzierten Tabelle gelöscht wird. Format: FOREIGN KEY … REFERENCES … [ON DELETE Effekt] Semantische Integritätsbedingungen Ó AIFB
3.5.2 Fremdschlüssel/ Referentielle Integrität (4/9) Folgende Effekte können angegeben werden: NO-ACTION: Es wird keine besondere Aktion ausgeführt. Bei Verletzen der IB wird Delete verweigert („NO-ACTION“ = Default-Wert). SS2001 Semantische Integritätsbedingungen Ó AIFB CASCADE: Delete auch für referenzierende Relation SET NULL: Fremdschlüssel-Werte der referenzierenden Relation werden auf NULL gesetzt. SET DEFAULT: Fremdschlüssel-Werte werden auf Default-Wert gesetzt.
3.5.2 Fremdschlüssel/ Referentielle Integrität (5/9) ON UPDATE-Klausel ... analog zu ON DELETE siehe Beispiel 3-1 SS2001 Semantische Integritätsbedingungen Ó AIFB