Das Relationenmodell Pierre Fierz Chapter 3 Das Relationenmodell Attribute und Domänen Lecture Datenbanken 28.02.2014 Datenbankschema und Datenbank Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel Pierre Fierz Berner Fachhochschule Technik und Informatik 3.1 Contents Das Relationenmodell Pierre Fierz 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.2 Die Lernziele dieses Kapitels. Das Relationenmodell Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel 1 2 Begriff des relationalen Datenmodells Kennenlernen der Elemente des Modells • • • • • Universum, Attribute und Domänen Relationen Primärschlüssel und Kandidatschlüssel Fremdschlüssel Integritätsbedingungen Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel 3.3 Das Modell Das Relationenmodell Pierre Fierz • Das realtionale Modell wurde 1970 von Edgar F. Codd entwickelt. • Es ist ein mathematisches Modell das auf dem Befriff der Relation basiert • Das Modell ist sehr einfach mit wenigen Konzepten. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • Es wird verwendet um das logische Datenmodell zu definieren. • Andere Modelle: • Das hierarchische Datenmodell • Das Netzwerkmodell • Das objektorientierte Modell • u.s.w. 3.4 Outline Das Relationenmodell Pierre Fierz 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.5 Das Universum (Attribute) Das Relationenmodell Pierre Fierz • Das Universum ist die (endliche) Menge aller Attribute die im System vorkommen. Universum für Firma mit Mitarbeiter und Projekten • Alle Entitäts- und Bezihungsattribute gehören zum Universum • U = {mNr, Name, Ahv-Nummer, Geburtsdatum, Adresse, Geschlecht, . . . } Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Definition Sei U eine nichtleere, endliche Menge, das Universum. Ein Element A ∈ U heisst Attribut. 3.6 Domänen Das Relationenmodell Pierre Fierz • Jedes Attribut besitzt eine Domäne. Attribute und Domänen • Die Domäne legt fest, welche Werte für ein Attribut Relationenschema, Relation und Tupel möglich sind. • Im relationalen Modell sind alle Attribute atomar • Es gibt also keine zusammengesetzte Attribute • Es gibt keine mehrwertigen Attribute Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Definition Sei D = {D1 , . . . , Dm } eine endliche Menge endlicher nichtleerer Mengen. Jedes Di wird Domäne oder Wertebereich genannt. Ferner existiert eine Funktion dom : U 7→ D. dom(A) heisst die Domäne von A. Ein w ∈ dom(A) wird Attributwert oder Konstante für A genannt. 3.7 Das Relationenmodell Domänen (2) Pierre Fierz Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Attribut Name Ort Wochenstunden Geburtsdatum Domäne Zeichenkette der Länge ≤ 30 Zeichenketten der Länge ≤ 25 Zahlen zwischen 1 und 42 Datum Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • In den meisten Systemen gibt es keine definierbaren Domänen • Das System stellt Datentypen wie INTEGER, FLOAT, CHAR, DATE, . . . zur Verfügung 3.8 Nullwerte Das Relationenmodell Pierre Fierz • In Informationssystemen kommt es häufig vor, dass ein Wert für ein Attribut unbekannt ist. • Ein Nullwert (NULL) ist ein spezieller Wert mit der Bedeutung “Wert unbekannt”. • NULL ist nicht dasselbe wie die Zahl 0 oder der Leerstring. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • NULL muss von 0 und "" eindeutig unterscheidbar sein. • Für den Wert NULL werden wir das Zeichen ⊥ verwenden. • Einige Rechenregeln: • 10 + ⊥=⊥ • ⊥ − ⊥=⊥ • false ∧ ⊥= false • true ∨ ⊥= true 3.9 Outline Das Relationenmodell Pierre Fierz 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.10 Relationenschema Das Relationenmodell Pierre Fierz • Ein Relationenschema ist die Menge aller Attribute eines Objektes Attribute und Domänen • Es entspricht dem Entitätstyp im ER-Modell. Relationenschema, Relation und Tupel • Im relationalen Modell ist dies einfach eine Teilmenge des Datenbankschema und Datenbank Universums Definition Fremdschlüssel (foreign Key) Beispiel Eine nicht leere Menge R ⊆ U heisst Relationenschema. Das Relationenschema Mitarbeiter • Für den Mitarbeiter definieren wir das folgende Relationenschema Mitarbeiter = {mNr , Name, AHV − Nummer , Adresse, Geschlecht, Geburtsdatum} 3.11 Relationenschema, Relation und Tupel (2) Das Relationenmodell Pierre Fierz • Zu einem Relationenschema R = {A1 . . . An } betrachten wir das kartesische Produkt der Domänen der Attribute. • A = dom(A1 ) × dom(A2 ) × . . . , dom(An ) • Die Elemente von A sind tupel < a1 , a2 , . . . an > mit ai ∈ dom(Ai ) i = 1 . . . n Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Ein Mitarbeiter • Für das Relationenschema Mitarbeiter haben wir: A = dom(mNr ) × dom(Name) × dom(AHV − Nummer )× dom(Adresse) × dom(Geschlecht) × dom(Geburtsdatum) • Ein Tupel t ∈ A könnte so aussehen: <202, "Müller", "671.54.244.112", "Langstr. 17 8022 Zürich", "M", 13.4.1954> 3.12 Relationenschema, Relation und Tupel (3) Das Relationenmodell Pierre Fierz • Wir sind nun in der Lage die Relation zu definieren Definition Eine Relation r (R) über das Relationenschema R = {A1 . . . An } ist eine Teilmenge des kartesischen Produkts r (R) ⊆ dom(A1 ) × dom(A2 ) × · · · × dom(An ) Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Die Elemente t ∈ r (R) heissen Tupel. Die Menge aller Relationen über R wird mit REL(R) = {r |r (R)} bezeichnet. Für X ⊆ R bezeichnet man die Projektion von t auf die Menge X als X -Wert von t. Man schreibt dafür t(X ). • Von dieser Definition her stammt auch der Ausdruck relationale Datenbank • In der Mathematik ist eine Relation eine Teilmenge des kartesischen Produkts. 3.13 Semantische Überlegungen Das Relationenmodell Pierre Fierz • Semantisch ist die Definition der Relation und Tupel fragwürdig • Durch das kartesische Produkt wird innerhalb der Attribute eine Reihenfolge festgelegt. • Diese Reihenfolge hat aber keine semantische Bedeutung Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Reihenfolge der Attribute Als Beispiel nehmen wir die Adresse. Mit dem Relationenschema Adresse = {aNr , Strasse, Nummer , PLZ , Ort}. Die beiden folgenden Tupel sind mathematisch gesehen verschieden, haben aber semantisch dieselbe Bedeutung: < 1, Fischerweg, 15, 3012, Bern > < 1, 15, Fischerweg, 3012, Bern > 3.14 Alternative definition für Tupel und Relation Das Relationenmodell Pierre Fierz • In der folgenden Definition von Tupel und Relation gibt es keine Reihenfolge der Attribute mehr. Attribute und Domänen Relationenschema, Relation und Tupel Definition Eine Relation r über das Relationenschema R = {A1 , . . . , An } (kurz r (R)) ist eine endliche Menge von Abbildungen der Form Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel t : R −→ n [ dom(Ai ) wobei t|Ai ∈ dom(Ai ) für i = 1, . . . , n i=1 t|Ai bezeichnet dabei die Einschränkung der Abbildung t auf Ai . Die Abbildungen t heissen Tupel über R. • Wir werden trotzdem die erste Definition verwenden, da diese näher bei der Implementation liegt. 3.15 Das Relationenmodell Relationen und Tabellen Pierre Fierz • Statt von Relationen spricht man häufig auch von Tabellen • Der Unterschied ist, dass bei Relationen sowohl bei den Attributen wie auch bei den Tupel die Reihenfolge keine Rolle spielt. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Mitarbeiterrelation als Tabelle Beispiel Numeric String M Date W mNr Name Geburtsdatum Geschlecht 1 2 3 Meier Dettwiler Roth 12.02.1972 23.11.1950 03.05.1980 M W M Domaenen Relationenschema Tuple Relation 3.16 Lokale Integritätsbedingungen Das Relationenmodell Pierre Fierz • Die Menge der Relationen REL(R) über ein Relationenschema R ist durch die Domänen der Attribute gegeben. • Oft sind aber nicht alle möglichen Tupel semantisch sinvoll • Mit Hilfe von lokalen Integritätsbedingungen können wir REL(R) in gültige und ungültige Relationen unterteilen. • Eine Relation ist gültig, wenn alle lokalen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Integritätsbedingungen erfüllt sind. Lokale Integritätsbedingung für Projekte Wir nehmen an, dass ein Projekt ein Anfangsdatum und ein Enddatum besitz. Eine mögliche lokale Integritätsbeingung für die Tupel in Projekt ist: Anfangsdatum ≤ Enddatum 3.17 Lokale Integritätsbedingungen (2) Das Relationenmodell Pierre Fierz • Hier noch die genaue Definition Definition Attribute und Domänen Sei R ein Relationenschema. Eine Menge von Abbildungen B = {b|b : REL(R) → {true, false}} Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel nennt man eine Menge lokaler Integritätsbedingungen für das Relationenschema R. R := (R, B) heisst erweitertes Relationenschema. Eine Relation r über R (kurz r (R)) ist eine Relation r über R mit b(r ) = true für alle b ∈ B. Die Menge aller Relationen über einem erweiterten Relationenschema R wird mit SATR (B) := {r |r ∈ r (R)} bezeichnet. 3.18 Lokale Integritätsbedingungen (3) Das Relationenmodell Pierre Fierz Attribute und Domänen Formale Definition einer Integritätsbedingung Wir wollen wieder Ausdrücken, dass für alle Projekte das Enddatum null ist oder grösser als das Anfangsdatum: true ∀t ∈ r (Projekt) : t(Anfangsdatum) ≤ t(Enddatum)∨ b(r (Projekt)) = t(Enddatum) = null false sonst Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel 3.19 Das Relationenmodell Superschlüssel • Eine Relation ist als Menge von Tupel über ein • • • • • Relationenschema R definiert. In einer Menge sind alle Elemente verschieden. D.h. in einer Relation r (R) können nicht zwei Tupel vorkommen, für die alle Attributwerte gleich sind. Meistens existieren auch Teilmengen von R, für die die Werte in allen Tupeln verschieden sind. Eine solche Teilmenge heisst Superschlüssel von R. Für ein beliebiges Relationenschema R ist R ein Superschlüssel von R. Ein Superschlüssel von R wird auch als identifizierende Attributmenge von R bezeichnet. Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Definition Ein Superschlüssel für ein Relationenschema R ist eine Menge K := {A1 , . . . , Ak } ⊆ R von Attributen, die der folgenden lokalen Integritätsbedingung genügt: bK (r (R)) = true false falls ∀t1 , t2 ∈ r (R) : [t1 6= t2 ⇒ ∃Aj ∈ K : t1 (Aj ) 6= t2 (Aj )] sonst 3.20 Schlüssel Das Relationenmodell Pierre Fierz • In einem Superschlüssel SS können redundante Attribute vorkommen. • Redundant heisst, dass es mindestens ein Attribut A ∈ SS existiert, so dass SS \ {A} immer noch ein Superschlüssel ist. • Ein Schlüssel ist ein minimaler Superschlüssel bezüglich Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel der Relation ⊆. Definition Ein Schlüssel S für ein Relationenschema R ist ein Superschlüssel für R und ∀A : A ⊂ S ⇒ A ist kein Superschlüssel von R 3.21 Kandidatschlüssel Das Relationenmodell Pierre Fierz Attribute und Domänen • Für ein Relationenschema kann es mehrere verschiedene Schlüssel geben. Mehrere Schlüssel • Sowohl {mNr} wie auch {AHV-Nummer} sind Schlüssel für Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel den Mitarbeiter. • Sowohl {aNr} wie {Name} sind Schlüssel für die Abteilung • Die Schlüssel für ein Relationenschema werden Kandidatschlüssel genannt. • Alle kommen als Primärschlüssel in Frage. 3.22 Primärschlüssel • Unter allen Kandidatschlüsseln wird einer als Das Relationenmodell Pierre Fierz Primärschlüssel ausgewählt. • Bei der Wahl sollte man darauf achten, dass der ausgewählte Schlüssel die folgenden Eigenschaften hat (obwohl dies vom Modell nicht verlangt wird): • Der Wert des Schlüssels darf sich nicht verändern • Der Schlüssel soll wenn möglich keine semantische Bedeutung haben • Ein einmal gebrauchter Wert soll nie wieder verwendet werden. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • Der Primärschlüssel muss ein Tupel eindeutig identifizieren. Daher sind im Primärschlüssel Nullwerte nicht erlaubt. • Diese Forderung heisst Schlüsselintegrität. Definition Ein Primärschlüssel (engl. primary Key) für ein Relationenschema R ist ein ausgezeichneter Schlüssel. Weitere Schlüssel von R (falls vorhanden) heissen dann Kandidatschlüssel (candidate Key). 3.23 Outline Das Relationenmodell Pierre Fierz 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.24 Datenbankschema und Datenbank Das Relationenmodell Pierre Fierz Attribute und Domänen • Mit Hilfe von Relationenschemata definieren wir nun das Datenbankschema • Ein Datenbankschema ist eine Menge von Relationenschemata • Diese Beschreiben alle Objekte unseres Modells Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • Eine Datenbank ist dann eine Menge von Relationen über die gegebenen Relationschemata • Daher kommt die Behauptung: • Eine relationale Datenbank ist eine Datenbank die nur aus Tabellen besteht 3.25 Datenbankschema und Datenbank (2) Das Relationenmodell Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema • Im Firmenbeispiel besteht das Datenbankschema aus • Mitarbeiterrelation • Abteilungsrelation • Projektrelation • Angehörigenrelation • MitarbeiterProjektrelation Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel 3.26 Datenbankschema und Datenbank (3) Das Relationenmodell Pierre Fierz • Hier noch die formale Definition von Datenbankschema und Datenbank Definition Ein Datenbankschema ist eine endliche nichtleere Menge von Relationenschemata S := {R1 , . . . , Rp } über das Universum U. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Ein lokal erweitertes Datenbankschema ist eine Menge von erweiterten Relationenschemata Ein Datenbankwert (kurz: Datenbank) über einem Datenbankschema S ist eine Menge von Relationen d := {r1 (R1 ), . . . , rp (Rp )}. Eine Datenbank d über S wird mit d(S) bezeichnet. 3.27 Globale Integritätsbedingungen Das Relationenmodell Pierre Fierz • Lokale Integritätsbedingungen betreffen genau eine Relation • Wir wollen dieses Konzept nun auf Datenbanken ausweiten • Eine Globale Integritätsbedingung schränkt die Möglichen Datenbankwerte über ein Datenbankschema ein. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • Eine Datenbank d(S) ist nur gültig, wenn sie alle lokalen und globalen Integritätsbedingungen erfüllt. Projekte und Mitarbeiter Wir möchten erreichen, dass alle Mitarbeiter, die an einem Projekt arbeiten aus der Abteilung kommen, die das Projekt betreut. Diese Bedingung betrifft nicht nur eine Relation sondern die drei Relationen Mitarbeiter, Projekt und Abteilung. 3.28 Globale Integritätsbedingungen (2) Das Relationenmodell Pierre Fierz Definition Eine Menge von Abbildungen Γ := {γ|γ : {d|d(S)} −→ {true, false}} nennt man eine Menge globaler Integritätsbedingungen für das Datenbankschema S. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel S := (S, Γ) heisst global erweitertes Datenbankschema. Eine Datenbank d(S) überS ist eine Datenbank d(S) über S mit γ(d) = true ∀γ ∈ Γ. Die Menge aller gültigen Datenbanken wird als DAT (S) := {d|d(S)} bezeichnet. 3.29 Outline Das Relationenmodell Pierre Fierz 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.30 Beziehungen zwischen Relationen Das Relationenmodell Pierre Fierz • Wir führen nun (binäre) Beziehungen zwischen Tupel von verschiedenen Relationen ein. Mitarbeiter und Abteilung Ein Mitarbeiter gehört zu einer Abteilung ist eine Beziehung zwischen einem Tupel aus Mitarbeiter und einem Tupel aus Abteilung. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • Beziehungen im relationalen Modell werden mit Hilfe von Fremdschlüssel realisiert. • Ein Fremdschlüssel in einem Tupel ist ein Verweis auf ein anderes Tupel, das auch in einer anderen Relation sein kann. • Der Fremdschlüssel verweist auf den Primärschlüssel im assozierten Tupel 3.31 Fremdschlüssel Das Relationenmodell Pierre Fierz Definition Eine Fremdschlüsselbeziehung zwischen zwei Relationen r1 (R1 ) und r2 (R2 ) ist ein Ausdruck der Form XR1 → YR2 mit XR1 ⊆ R1 und YR2 ⊆ R2 , welcher den folgenden zwei Bedingungen genügt: 1 YR2 ist der Primärschlüssel für R2 2 {t(XR1 )|t ∈ r1 (R1 )} ⊆ {t(YR2 )|t ∈ r2 (R2 )} Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel XR1 nennt man Fremdschlüssel für R1 bezüglich YR2 in R2 . • Aus der Definition geht sofort hervor, dass die Anzahl Attribute in XR1 und YR2 dieselbe sein muss. • Es müssen auch die Domänen übereinstimmen dom(XR1 ) = dom(YR2 ) • Die erste Bedingung kann abgeschwächt werden durch YR2 ist ein Kandidatschlüssel für R2 • Die zweite Bedingung heisst referentielle Integrität oder Fremdschlüsselintegrität. 3.32 Das Relationenmodell Fremdschlüssel (2) Pierre Fierz • In der Abbildung wird gezeigt, wie eine M:1 Beziehung zwischen Relationen realisiert wird. Attribute und Domänen Relationenschema, Relation und Tupel Beziehung zwischen Mitarbeiter und Abteilung Datenbankschema und Datenbank Mitarbeiter mNr Name Fremdschlüssel (foreign Key) aNr Beispiel . 11 . 23 . Haller 2 Meyer 2 Abteilung XMitarbeiter YAbteilung aNr . 2 . . Name ... Montage 3.33 Das Relationenmodell Fremdschlüssel (3) Pierre Fierz • In der Abbildung wird gezeigt, wie eine M:M Beziehung zwischen Relationen realisiert wird. • Dazu benutzt man eine Hilfsrelation und zwei Fremdschlüssel. Attribute und Domänen Relationenschema, Relation und Tupel Beziehung zwischen Mitarbeiter und Projekt Mitarbeiter Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Projekt Beispiel mNr 10 Name pNr Name Haller 20 Kinderspital MitarbeiterProjekt mNr 10 pNr 20 3.34 Fremdschlüssel (4) Das Relationenmodell Pierre Fierz • Ein Fremdschlüssel darf Nullwerte enthalten • Ein Nullwert im Fremdschlüssel kann aber zwei Bedeutungen haben. • Es existiert (momentan) keine Beziehung zu einem anderen Tupel • Das referenzierte Tupel ist unbekannt. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Fremdschlüssel und Nullwerte 1 2 Falls der Fremdschlüssel aNr im Mitarbeiter Null ist, so bedeutet dies, dass dieser Mitarbeiter momentan keiner Abteilung angehört. Bei einem Patienten kann die Nummer der Krankenkasse (Fremdschlüssel) Null sein, weil die Krankenkasse bisher unbekannt ist. 3.35 Löschen von Tupel Das Relationenmodell Pierre Fierz Attribute und Domänen • Was passiert, wenn ein durch einen Fremdschlüssel referenziertes Tupel gelöscht wird? • Die referentielle Integrität muss auf jeden Fall erhalten bleiben. • Um das zu garantieren gibt es drei Strategien: 1 2 3 Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Restricted delete (res) Die Löschoperation wird verworfen. Cascaded delete (cas) Alle referenzierenden Tupel werden auch gelöscht Nullify (nul) In allen referenzierenden Tupel wird der Fremdschlüssel auf den Wert NULL gesetzt. 3.36 Löschen von Tupel (2) Das Relationenmodell Pierre Fierz Beispiele fürs Löschen • Restricted: Ein Kunde darf erst gelöscht werden, wenn keine offenen Rechnungen für diesen Kunden existieren. • Cascaded: Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Wenn ein Mitarbeiter gelöscht wird, so werden auch die entsprechenden Verwandten gelöscht. • Nullify: Wenn in einer Firma eine Abteilung geschlossen wird, sollen nicht alle entsprechenden Mitarbeiter gelöscht werden. Für diese Mitarbeiter wird die Abteilung vorläufig auf null (Abteilung unbekannt) gesetzt. 3.37 Outline Das Relationenmodell Pierre Fierz 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.38 Schreibweise Das Relationenmodell Pierre Fierz • Wir werden die folgende Schreibweise für die Definition von Relationenschema verwenden. Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Schema Relation Pschlüssel Constraint SListe Schlüssel Kschlüssel Fschlüssel Aliste Liste Attribut Modus ::= <Name> ’=’ ’(’ Relation ’,’ Pschlüssel ’,’ Constraint ’)’ ::= Aliste ::= Aliste ::= Schlüssel SListe || "" ::= ’,’ Schlüssel SListe || "" ::= Kschlüssel || Fschlüssel ::= "ks" ’(’ Aliste ’)’ ::= "fs" ’(’ Aliste ’,’ <Relationname> ’,’ Modus ’)’ ::= ’{’ Liste ’}’ ::= Attribut , Liste || Attribut ::= <Attributname> "nw" || <Attributname> ::= "res" || "cas" || "nul" Fremdschlüssel (foreign Key) Beispiel 3.39 Schema für die Firma Das Relationenmodell Pierre Fierz Mitarbeiter Mitarbeiter = ({mNr, Name, AhvNr, Plz, Ort, Geschlecht, Geburtsdatum, aNr, Vorgesetzter nw}, {mNr}, ks({AhvNr}), fs({Vorgesetzter}, Mitarbeiter, nul), fs({aNr}, Abteilung, res)) Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Abteilung Abteilung = ({aNr, AName, mNr, LeiterSeit}, {aNr}, ks({AName}), ks({mNr}), fs({mNr}, Mitarbeiter, res)) Standort = ({aNr, Standort}, {aNr, Standort}, fs({aNr}, Abteilung, cas)) 3.40 Schema für die Firma (2) Das Relationenmodell Pierre Fierz Projekt Attribute und Domänen Projekt = ({pNr, PName, paNr, PStandort}, {pNr}, ks({PName}), fs({paNr}, Abteilung, res)) MitProj = ({mNr, pNr, WochenStunden}, {mNr, pNr}, fs({mNr}, Mitarbeiter, cas), fs({pNr}, Projekt, cas)) Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Angehöriger Angehöriger = ({mNr, Vorname, AGeburtsdatum, AGeschlecht, Partner}, {mNr, Vorname}, fs({mNr}, Mitarbeiter, cas)) 3.41