Das Relationenmodell - BFH-TI Staff

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