Das Relationenmodell - BFH-TI Staff

Werbung
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
Herunterladen