Das Relationenmodell Contents Pierre Fierz Das Relationenmodell Pierre Fierz Chapter 3 Das Relationenmodell Attribute und Domänen Lecture Datenbanken 28.02.2014 Datenbankschema und Datenbank Relationenschema, Relation und Tupel 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 Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank 4 Fremdschlüssel (foreign Key) 5 Beispiel Pierre Fierz Berner Fachhochschule Technik und Informatik 3.1 Die Lernziele dieses Kapitels. Das Relationenmodell 3.2 Das Modell Pierre Fierz 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 Das Relationenmodell • Das realtionale Modell wurde 1970 von Edgar F. Codd entwickelt. Datenbankschema und Datenbank • Es ist ein mathematisches Modell das auf dem Befriff der Relation basiert Fremdschlüssel (foreign Key) • Das Modell ist sehr einfach mit wenigen Konzepten. Beispiel 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.3 3.4 Outline Das Relationenmodell Das Universum (Attribute) Pierre Fierz 1 Attribute und Domänen Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel • Das Universum ist die (endliche) Menge aller Attribute die im System vorkommen. Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Das Relationenmodell Universum für Firma mit Mitarbeiter und Projekten Fremdschlüssel (foreign Key) • Alle Entitäts- und Bezihungsattribute gehören zum Beispiel Universum • U = {mNr, Name, Ahv-Nummer, Geburtsdatum, Adresse, Geschlecht, . . . } 3 Datenbankschema und Datenbank Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel 4 Fremdschlüssel (foreign Key) Definition Sei U eine nichtleere, endliche Menge, das Universum. Ein Element A ∈ U heisst Attribut. 5 Beispiel 3.5 Domänen Das Relationenmodell 3.6 Das Relationenmodell Domänen (2) Pierre Fierz 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 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Attribut Name Ort Wochenstunden Geburtsdatum Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel 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 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. • In den meisten Systemen gibt es keine definierbaren Domänen • Das System stellt Datentypen wie INTEGER, FLOAT, CHAR, DATE, . . . zur Verfügung 3.7 3.8 Nullwerte Das Relationenmodell Das Relationenmodell Outline 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. Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel 1 Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Fremdschlüssel (foreign Key) Beispiel Beispiel • NULL muss von 0 und "" eindeutig unterscheidbar sein. 3 Datenbankschema und Datenbank • Für den Wert NULL werden wir das Zeichen ⊥ verwenden. • Einige Rechenregeln: • 10 + ⊥=⊥ • ⊥ − ⊥=⊥ • false ∧ ⊥= false • true ∨ ⊥= true 4 Fremdschlüssel (foreign Key) 5 Beispiel 3.10 3.9 Relationenschema Das Relationenmodell Relationenschema, Relation und Tupel (2) Pierre Fierz 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 Das Relationenmodell Fremdschlüssel (foreign Key) • 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 Beispiel Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Ein Mitarbeiter Eine nicht leere Menge R ⊆ U heisst Relationenschema. • Für das Relationenschema Mitarbeiter haben wir: Das Relationenschema Mitarbeiter A • Für den Mitarbeiter definieren wir das folgende = dom(mNr ) × dom(Name) × dom(AHV − Nummer )× dom(Adresse) × dom(Geschlecht) × dom(Geburtsdatum) • Ein Tupel t ∈ A könnte so aussehen: Relationenschema Mitarbeiter = {mNr , Name, AHV − Nummer , Adresse, Geschlecht, Geburtsdatum} <202, "Müller", "671.54.244.112", "Langstr. 17 8022 Zürich", "M", 13.4.1954> 3.11 3.12 Relationenschema, Relation und Tupel (3) Das Relationenmodell Das Relationenmodell Semantische Überlegungen Pierre Fierz Pierre Fierz • Wir sind nun in der Lage die Relation zu definieren • Semantisch ist die Definition der Relation und Tupel Attribute und Domänen 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 ) Relationenschema, Relation und Tupel Datenbankschema und Datenbank fragwürdig Attribute und Domänen • Durch das kartesische Produkt wird innerhalb der Attribute eine Reihenfolge festgelegt. Datenbankschema und Datenbank • Diese Reihenfolge hat aber keine semantische Bedeutung Fremdschlüssel (foreign Key) Relationenschema, Relation und Tupel Beispiel Fremdschlüssel (foreign Key) Beispiel Reihenfolge der Attribute 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 ). 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: • Von dieser Definition her stammt auch der Ausdruck < 1, Fischerweg, 15, 3012, Bern > < 1, 15, Fischerweg, 3012, Bern > relationale Datenbank • In der Mathematik ist eine Relation eine Teilmenge des kartesischen Produkts. 3.13 Alternative definition für Tupel und Relation Das Relationenmodell 3.14 Das Relationenmodell Relationen und Tabellen Pierre Fierz Pierre Fierz • Statt von Relationen spricht man häufig auch von Tabellen • 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) • Der Unterschied ist, dass bei Relationen sowohl bei den Attributen wie auch bei den Tupel die Reihenfolge keine Rolle spielt. n [ Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Mitarbeiterrelation als Tabelle Beispiel t : R −→ Attribute und Domänen Beispiel Numeric String M Date W dom(Ai ) wobei t|Ai ∈ dom(Ai ) für i = 1, . . . , n Domaenen 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. mNr Name Geburtsdatum Geschlecht 1 2 3 Meier Dettwiler Roth 12.02.1972 23.11.1950 03.05.1980 M W M Relationenschema Tuple Relation 3.15 3.16 Lokale Integritätsbedingungen Das Relationenmodell Lokale Integritätsbedingungen (2) Pierre Fierz Pierre Fierz • Hier noch die genaue Definition • 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 Das Relationenmodell Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Definition Attribute und Domänen Sei R ein Relationenschema. Eine Menge von Abbildungen Fremdschlüssel (foreign Key) B = {b|b : REL(R) → {true, false}} Beispiel Integritätsbedingungen erfüllt sind. Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel nennt man eine Menge lokaler Integritätsbedingungen für das Relationenschema R. Lokale Integritätsbedingung für Projekte 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. 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: Die Menge aller Relationen über einem erweiterten Relationenschema R wird mit SATR (B) := {r |r ∈ r (R)} bezeichnet. Anfangsdatum ≤ Enddatum 3.17 Lokale Integritätsbedingungen (3) Das Relationenmodell Pierre Fierz 3.18 Das Relationenmodell Superschlüssel • Eine Relation ist als Menge von Tupel über ein Pierre Fierz Relationenschema R definiert. • In einer Menge sind alle Elemente verschieden. D.h. in 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 • 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. 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)) = 3.19 true false falls ∀t1 , t2 ∈ r (R) : [t1 6= t2 ⇒ ∃Aj ∈ K : t1 (Aj ) 6= t2 (Aj )] sonst 3.20 Schlüssel Das Relationenmodell Kandidatschlüssel 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 Das Relationenmodell Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Attribute und Domänen • Für ein Relationenschema kann es mehrere verschiedene Schlüssel geben. Mehrere Schlüssel Fremdschlüssel (foreign Key) • Sowohl {mNr} wie auch {AHV-Nummer} sind Schlüssel für Beispiel Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel den Mitarbeiter. der Relation ⊆. • Sowohl {aNr} wie {Name} sind Schlüssel für die Abteilung Definition • Die Schlüssel für ein Relationenschema werden Ein Schlüssel S für ein Relationenschema R ist ein Superschlüssel für R und Kandidatschlüssel genannt. • Alle kommen als Primärschlüssel in Frage. ∀A : A ⊂ S ⇒ A ist kein Superschlüssel von R 3.21 Primärschlüssel • Unter allen Kandidatschlüsseln wird einer als Das Relationenmodell 3.22 Outline Pierre Fierz 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 1 Attribute und Domänen Datenbankschema und Datenbank Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Attribute und Domänen Beispiel Fremdschlüssel (foreign Key) Beispiel 3 Datenbankschema und Datenbank • Der Primärschlüssel muss ein Tupel eindeutig identifizieren. Daher sind im Primärschlüssel Nullwerte nicht erlaubt. • Diese Forderung heisst Schlüsselintegrität. 4 Fremdschlüssel (foreign Key) 5 Beispiel 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 3.24 Datenbankschema und Datenbank Das Relationenmodell Datenbankschema und Datenbank (2) Pierre Fierz • Mit Hilfe von Relationenschemata definieren wir nun das Datenbankschema • Ein Datenbankschema ist eine Menge von Relationenschemata • Diese Beschreiben alle Objekte unseres Modells Das Relationenmodell Pierre Fierz Attribute und Domänen Attribute und Domänen Relationenschema, Relation und Tupel Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Datenbankschema • Im Firmenbeispiel besteht das Datenbankschema aus • Mitarbeiterrelation • Abteilungsrelation • Projektrelation • Angehörigenrelation • MitarbeiterProjektrelation Beispiel • Eine Datenbank ist dann eine Menge von Relationen über die gegebenen Relationschemata • Daher kommt die Behauptung: Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel • Eine relationale Datenbank ist eine Datenbank die nur aus Tabellen besteht 3.25 Datenbankschema und Datenbank (3) Das Relationenmodell 3.26 Globale Integritätsbedingungen 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. Das Relationenmodell Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) • 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. Beispiel 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 Ein lokal erweitertes Datenbankschema ist eine Menge von erweiterten Relationenschemata und globalen Integritätsbedingungen erfüllt. Projekte und Mitarbeiter Ein Datenbankwert (kurz: Datenbank) über einem Datenbankschema S ist eine Menge von Relationen d := {r1 (R1 ), . . . , rp (Rp )}. 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. Eine Datenbank d über S wird mit d(S) bezeichnet. 3.27 3.28 Globale Integritätsbedingungen (2) Das Relationenmodell Outline Pierre Fierz Definition Eine Menge von Abbildungen Γ := {γ|γ : {d|d(S)} −→ {true, false}} nennt man eine Menge globaler Integritätsbedingungen für das Datenbankschema S. Das Relationenmodell Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel 1 Attribute und Domänen Datenbankschema und Datenbank Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Attribute und Domänen Beispiel Fremdschlüssel (foreign Key) Beispiel S := (S, Γ) heisst global erweitertes Datenbankschema. 3 Datenbankschema und Datenbank Eine Datenbank d(S) überS ist eine Datenbank d(S) über S mit γ(d) = true ∀γ ∈ Γ. 4 Fremdschlüssel (foreign Key) Die Menge aller gültigen Datenbanken wird als DAT (S) := {d|d(S)} bezeichnet. 5 Beispiel 3.29 Beziehungen zwischen Relationen Das Relationenmodell 3.30 Fremdschlüssel Pierre Fierz Das Relationenmodell Pierre Fierz Definition • 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 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 . • Beziehungen im relationalen Modell werden mit Hilfe von Fremdschlüssel realisiert. • Aus der Definition geht sofort hervor, dass die Anzahl Attribute in XR1 und YR2 dieselbe sein muss. • Ein Fremdschlüssel in einem Tupel ist ein Verweis auf ein anderes Tupel, das auch in einer anderen Relation sein kann. • Es müssen auch die Domänen übereinstimmen dom(XR1 ) = dom(YR2 ) • Der Fremdschlüssel verweist auf den Primärschlüssel im • Die erste Bedingung kann abgeschwächt werden durch assozierten Tupel YR2 ist ein Kandidatschlüssel für R2 • Die zweite Bedingung heisst referentielle Integrität oder Fremdschlüsselintegrität. 3.31 3.32 Das Relationenmodell Fremdschlüssel (2) Das Relationenmodell Fremdschlüssel (3) Pierre Fierz Pierre Fierz • In der Abbildung wird gezeigt, wie eine M:M Beziehung • In der Abbildung wird gezeigt, wie eine M:1 Beziehung zwischen Relationen realisiert wird. Relationenschema, Relation und Tupel Beziehung zwischen Mitarbeiter und Abteilung Datenbankschema und Datenbank Mitarbeiter mNr Name Fremdschlüssel (foreign Key) aNr • Dazu benutzt man eine Hilfsrelation und zwei Fremdschlüssel. Beziehung zwischen Mitarbeiter und Projekt Mitarbeiter 2 Meyer 2 Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Projekt Beispiel Name pNr Name Haller 20 Kinderspital mNr Haller Attribute und Domänen Relationenschema, Relation und Tupel Beispiel . 11 . 23 . zwischen Relationen realisiert wird. Attribute und Domänen 10 Abteilung XMitarbeiter YAbteilung aNr . 2 . . Name ... MitarbeiterProjekt Montage mNr 10 pNr 20 3.33 Fremdschlüssel (4) Das Relationenmodell 3.34 Löschen von Tupel 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. Das Relationenmodell Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) 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. Beispiel • Um das zu garantieren gibt es drei Strategien: Relationenschema, Relation und Tupel Datenbankschema und Datenbank Fremdschlüssel (foreign Key) Beispiel Fremdschlüssel und Nullwerte 1 2 1 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. 2 3 3.35 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 Das Relationenmodell Outline 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: Pierre Fierz Attribute und Domänen Relationenschema, Relation und Tupel 1 Attribute und Domänen Datenbankschema und Datenbank Relationenschema, Relation und Tupel Datenbankschema und Datenbank 2 Relationenschema, Relation und Tupel Fremdschlüssel (foreign Key) Attribute und Domänen Beispiel Fremdschlüssel (foreign Key) Beispiel Wenn ein Mitarbeiter gelöscht wird, so werden auch die entsprechenden Verwandten gelöscht. 3 Datenbankschema und Datenbank • Nullify: 4 Fremdschlüssel (foreign Key) 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. 5 Beispiel 3.37 Schreibweise Das Relationenmodell 3.38 Schema für die Firma Pierre Fierz Das Relationenmodell Pierre Fierz Mitarbeiter • Wir werden die folgende Schreibweise für die Definition von Relationenschema verwenden. Attribute und Domänen Mitarbeiter 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) = ({mNr, Name, AhvNr, Plz, Ort, Geschlecht, Geburtsdatum, aNr, Vorgesetzter nw}, {mNr}, ks({AhvNr}), fs({Vorgesetzter}, Mitarbeiter, nul), fs({aNr}, Abteilung, res)) Beispiel 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 3.39 = ({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