Datenbanken

Werbung
fbi
h_da
Datenbanken
Kapitel 3: Relationenmodell
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 1
Relationenmodell
fbi
h_da
Inhalte des Kapitels
• Der Übergang vom ER-Modell zum Relationenmodell
• Die Codd‘schen Normalformen
• Die Implementierung von Vererbungshierarchien
Lernziele
• Der Übergang von der Analysephase zur Designphase soll im SW-Lifecycle
auch auf die Datenmodellierung angewandt werden können.
• Die Anwendung der Codd‘schen Normalformen soll strategisch eingeordnet
werden können.
• Die unterschiedlichen Implementierungen von Vererbungshierarchien sollen
in ihren strategischen Auswirkungen verstanden werden und die
Restriktionen von RDBMS bzgl. der Implementierung von Vererbungshierarchien bekannt sein.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 2
Das Relationenmodell
•
•
fbi
h_da
Die Grundlage des von Edgar F. Codd 1970 vorgestellten Relationalen
Datenbankmodells bildet der Relationenbegriff aus der Mathematik:
Eine n-stellige (n-äre) Relation in einer Menge M ist eine Beziehung, die
zwischen je n Elementen aus M besteht oder nicht – vorstellbar als eine
Menge von Tupeln gleicher Länge n ( auch n-Tupel genannt):
A1
A2
A3
A4
…
An
( x 1 , x 2 , x 3 , x 4 , … , xn )
( y 1 , y 2 , y 3 , y 4 , … , yn )
( z1 , z2 , z3 , z4 , … , zn )
…
→ Für die Darstellung von Relationen bietet sich die Tabellendarstellung an:
Die Spaltenbezeichner einer solchen Tabelle nennt man Attribute und die
einzelnen Zeilen Tupel bzw. Datensätze.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 3
fbi
h_da
Vom ER-Modell zum Relationenmodell
Analysesicht
bietet an
Verlag
VerlagID
...
Verlagszugehörigkeit
wird verlegt bei
Buch
ISBN
...
ER-Modell
ER-Modell
In der Analysesicht (ER-Modell) modellieren wir
• Entity-Typen, deren Eigenschaften wir als
• Attribute bezeichnen, sowie die
• Beziehungstypen der Entity-Typen untereinander, versehen mit
Kardinalitäten und Bezeichnern.
In der Analysesicht
• sollten alle Bezeichner der Sprache des Endanwenders entsprechen,
• können ggf. schon generische Datentypen für Attribute ergänzt werden.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 4
fbi
h_da
Vom ER-Modell zum Relationenmodell
Analysesicht
•
Die Analysesicht (ER-Modell) enthält noch keinerlei Informationen über die
systemspezifischen Implementierungsdetails des Datenmodells.
Designsicht
•
In der Designphase wird ein Relationenmodell modelliert, dessen Basis
alle Informationen des konzeptionellen ER-Modells sind, erweitert um
spezifische Implementierungsdetails für das Ziel-DBMS.
→ Für das Klassendiagramm in der Analyse- bzw. Designsicht gelten die oben
genannten Eigenschaften analog (vgl. OOA/OOD).
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 5
fbi
h_da
Vom ER-Modell zum Relationenmodell
Beim Übergang vom ER- zum Relationenmodell werden
• Entity-Typen zu Tabellen (Relationen),
• Attribute zu Spalten,
• system-spezifische Datentypen für die Spalten werden ergänzt.
Verlag
VerlagsID int <pk>
...
?
Buch
ISBN varchar2(15) <pk>
...
RelationenRelationenmodell
modell
→ Wie erfolgt die Implementierung der Beziehungstypen?
•
Machen Sie sich zunächst noch einmal klar, wie Beziehungen im UML-Klassendiagramm beim Übergang von der OOA zur OOD implementiert werden!
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 6
Vom ER-Modell zum Relationenmodell
fbi
h_da
•
Beziehungstypen (Relationships) werden entsprechend ihrer Kardinalitäten
als physische Referenzen implementiert.
→ Dies erfolgt bei relationalen Datenbanken durch die Ergänzung von Fremdschlüssel (-Spalten) (foreign keys). Die Referenzierung über Fremdschlüssel ist eine werte-basierte Referenzierung! Sie erfolgt – im Unterschied zu
objektorientierten Systemen – nicht über physische Adressen!
Designsicht
Verlag
VerlagsID int <pk>
...
Referenz
RelationenRelationenmodell
modell
Buch
ISBN varchar(15) <pk>
VerlagsID int <fk>
...
Die VerlagsD ist als FremdschlüsselSpalte die physische Implementierung
der Beziehung aus dem ER-Modell und
dient zur Referenzierung des assoziierten
Verlag-Datensatzes.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 7
fbi
h_da
Vom ER-Modell zum Relationenmodell
•
Man spricht von referentieller Integrität, wenn zu jedem Zeitpunkt die
Referenz eines Primärschlüsselwertes durch den Wert einer Fremdschlüsselspalte gewährleistet ist.
Verlag
•
Buch
VID <pk>
VerlagBez
ISBN <pk>
123
234
‘ABC ‘
‘XYZ ‘
3-548-…
0-122-…
2-456-…
9-768-…
3-672-…
0-398-…
Titel
VID <fk>
‘A…. ‘
‘B…. ‘
‘C…. ‘
‘D…. ‘
‘E…. ‘
‘F…. ‘
123
123
234
567
234
123
Welche Veränderungen an den beiden Tabellen würden darüber hinaus zu
einer Verletzung der referentiellen Integrität führen?
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 8
Relationenmodell
fbi
h_da
9 Der Übergang vom ER-Modell zum Relationenmodell
•
Die Codd‘schen Normalformen
•
Die Implementierung von Vererbungshierarchien
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 9
fbi
h_da
Die Codd‘schen Normalformen – CNF
Modellierungsregeln und Strukturen der relationalen Datenmodellierung zur
Vermeidung von Redundanzen sind
•
die Codd‘sche Normalformen und
•
die Supertype- / Subtype-Hierarchien (vgl. auch Kapitel 2).
•
Anfang der 70er Jahre formulierte Edgar F. Codd die Coddschen
Normalformen (NF) im Rahmen der Untersuchungen seines
Relationenmodells.
•
Die Coddschen NF bilden eine Reihe von Regeln, die eingehalten werden
müssen bzw. sollten um Redundanzen von Daten zu vermeiden.
Nachteile von Redundanzen:
•
erhöhter Speicherbedarf → erhöhte Kosten
•
Gefahr von Inkonsistenz (“Speicheranomalien”)
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 10
Die Codd‘schen Normalformen
fbi
h_da
Beispiel für Speicheranomalien:
Mitarbeiter - MA
MA_NR
MA_NAME
MA_ABT_NR
MA_ABT_NAME
135241
...
11
Vertrieb Inland
23789
...
21
Personalwesen
...
...
...
...
16543
...
11
Vertrieb Ausland
38765
...
34
Einkauf
Speicheranomalie
•
•
•
•
Codd formulierte insgesamt fünf Normalformen 1NF, 2NF, ..., 5NF, sowie
die Normalform nach Boyce/Codd, die mit BCNF bezeichnet wird.
In der Praxis haben die ersten drei Normalformen die größte Bedeutung.
Jede Normalform xNF, x ≥ 1, fordert, dass die vorhergehende NF bereits
erfüllt ist.
Die eigentlichen Vorschriften jeder NF können jedoch unabhängig voneinander betrachtet werden, denn jede einzelne Vorschrift beschäftigt sich
mit einem anderen Bereich der Datenmodellierung.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 11
Hörsaalbeispiel zu den CNF
fbi
h_da
Datenmodell „Werkstattauftrag“
Entity-Typen→
→Relationen
Relationen(?)
(?)
Entity-Typen
AUFTRAG(ANR
(ANR––Auftragsnr,
Auftragsnr,ADAT
ADAT––Auftragsdatum,
Auftragsdatum,TERM
TERM––Liefertermin,
Liefertermin,AFO
AFO––Arbeitsfolgenr,
Arbeitsfolgenr,
•• AUFTRAG
VZ––Vorgabezeit
Vorgabezeitpro
proArbeitsfolge)
Arbeitsfolge)
VZ
Arbeitsplatznr,KST
KST––Kostenstelle,
Kostenstelle,KAP
KAP––Kapazität)
Kapazität)
ARBEITSPLATZ(APZ
(APZ––Arbeitsplatznr,
• •ARBEITSPLATZ
Teilenr,TBEZ
TBEZ––Teilebezeichnung)
Teilebezeichnung)
TEIL(TNR
(TNR––Teilenr,
• •TEIL
Beziehungstypen→
→Referenzen
Referenzen(?)
(?)
Beziehungstypen
Zujedem
jedemAuftrag
Auftraggibt
gibtes
esmehrere
mehrereArbeitsfolgen.
Arbeitsfolgen.
••Zu
VerschiedeneArbeitsfolgen
Arbeitsfolgenkönnen
könnenam
amselben
selbenArbeitsplatz
Arbeitsplatzbearbeitet
bearbeitetwerden,
werden,
• •Verschiedene
eineArbeitsfolge
Arbeitsfolgekann
kannjedoch
jedochnur
nuran
aneinem
einemArbeitsplatz
Arbeitsplatzbearbeitet
bearbeitetwerden.
werden.
eine
JederArbeitsplatz
Arbeitsplatzenthält
enthältAngaben
Angabenüber
überdie
dieKapazität
Kapazitätund
unddie
diezuständige
zuständigeKostenstelle.
Kostenstelle.
• •Jeder
Eskann
kannsein,
sein,dass
dassein
einAuftrag
Auftragmehr
mehrals
alseine
eineTeileposition
Teilepositionbenötigt,
benötigt,und
undein
einTeil
Teilkann
kannfür
für
• •Es
mehrals
alseinen
einenAuftrag
Auftragbenötigt
benötigtwerden.
werden.
mehr
→
Die Rolle der CNF beim Übergang vom ER-Modell zum Relationenmodell
wird anhand des Datenmodells „Werstattauftrag“ verdeutlicht.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 12
fbi
h_da
Darstellung von Attributbeziehungen
•
Im Zusammenhang mit der Untersuchung von CNF ist es notwendig, die
Beziehungen von Attributen innerhalb eines Entity-Typ bzw. von Spalten
innerhalb einer Relation zu betrachten.
→
Es bietet sich hierfür an, Entity-Typen (Relationen) durch Rechtecke und
Attribute (Spalten) durch Ovale innerhalb dieser Rechtecke zu kennzeichnen.
TEIL
→
TBEZ
TNR
…
Die Abhängigkeit des Wertes eines Attributes A1 vom Wert eines
Attributes A2 kann nun mit Hilfe von Pfeilen dargestellt werden:
TNR
Schestag
TBEZ
Der Attributwert einer Teilebezeichnung TBEZ
wird durch den Attributwert des Primärschlüsselattributes TNR eindeutig festgelegt.
Datenbanken (Bachelor)
Kapitel 3 - 13
Die erste Codd‘sche Normalform – 1NF
•
fbi
h_da
Im Gegensatz zu allen anderen Codd‘schen Normalformen muss die 1NF
immer erfüllt sein:
"In einer Relation darf jedes Attribut maximal eine Ausprägung haben."
•
Enthält ein Entity-Typ Attribute mit mehr als einer Ausprägung, so müssen
die mehrfach vorkommenden Attribute in einem eigenen Entity-Typ ausgelagert werden (im Hörsaalbeispiel: “Arbeitsfolgedaten“).
Auftrag
ANR
ADAT
TERM
Zu jedem Auftrag gibt es
• mehrere Arbeitsfolgen (AFO), und
• zu jeder Arbeitsfolge eine Vorgabezeit (VZ).
Schestag
Datenbanken (Bachelor)
AFO
VZ
mehrwertige
Attribute
Kapitel 3 - 14
1NF – attributive Entitäten
fbi
h_da
Auslagerung von Attributen
•
Jede Ausprägung des neuen Entity-Typ muss eindeutig identifizierbar sein.
→ Zusätzlich zum Primärschlüssel des ursprünglichen Entity-Typs wird ein
zweites Schlüsselelement benötigt, durch das die unterschiedlichen
Ausprägungen des mehrwertigen Attributes unterschieden werden können.
→
Eine Entität, die bei Attributen mit mehrfachem Vorkommen aus der
Erfüllung der 1NF resultiert, benötigt immer mehr als ein Schlüsselelement
zur Identifizierung:
– Primärschlüssel des Entity-Typ, aus dem der neue Entity-Typ
ausgegliedert wurde als Fremdschüsselspalte, plus
– Schlüsselbestandteil, der zur Unterscheidung der Ausprägung des
neuen Entity-Typs dient.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 15
fbi
h_da
1NF – attributive Entitäten
•
•
Ausgelagerte Entitäten nennt man auch abhängig (dependent) oder
attributive bzw. schwache Entitäten (weak Entities, vgl. Kapitel 2).
Im Gegensatz dazu nennt man Entitäten, deren Primärschlüssel (komponente) unabhängig ist von Primärschlüsseln anderer Entitäten, fundamentale oder Kern-Entität.
•
Es können - wenn nötig - beliebig oft attributive Entitäten von attributiven
Entitäten gebildet werden.
Auflösung bei Verletzung der 1NF
Kernentität E1
PK1
hat
(i) gehört zu
attributive Entität
PK2
attributive Entität
PK1 foreign key, PK2 <pk>
als Referenz auf E1 PK1 <pk, fk1>
und Primärschlüssel-Komponente
Kernentität E1
PK1 <pk>
Schestag
Datenbanken (Bachelor)
ER-Modell
Relationenmodell
Kapitel 3 - 16
fbi
h_da
1NF – attributive Entitäten
•
Durch die Relationship “gehört zu” wird das Attribut PK1 Primärschlüssel
der attributiven Entität und leistet somit einen Beitrag zur Identifizierung
dieser Entität.
•
Man spricht deshalb von identifizierenden Relationships und bezeichnet
diese mit (i) oder nennt sie auch abhängig (dependent – vgl. Power
Designer).
•
Eine Beziehung, die nicht identifizierend ist, nennt man referenzierende
Beziehung und bezeichnet diese mit (r).
→
Wird die zusammengesetzte PK-Komponente durch einen einfachen, synthetischen
Schlüssel ersetzt, ist die Relationship (technisch) keine abhängige Relationship
mehr!
Aus wie viel Spalten und welchen Schlüsseln besteht dann die attributive Entität?
→
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 17
fbi
h_da
1NF – attributive Entitäten
•
Hörsaalbeispiel: Die attributive Entität „Arbeitsfolge“ ist entstanden
durch Auslagern der mehrwertigen Attribute aus der Kernentität
„Auftrag“:
Auftrag
Zu jedem Auftrag gibt es
• mehrere Arbeitsfolgen (AFO), und
• zu jeder Arbeitsfolge eine Vorgabezeit (VZ).
ANR
ADAT
TERM
AFO
VZ
mehrwertige Attribute,
ANR ADAT
1
2
...
Schestag
TERM
1NF
AFO VZ
2.3.01 31.5.01 1,2 15,25
15.4.01 30.9.01 1,2,3 30,30,30
Datenbanken (Bachelor)
Kapitel 3 - 18
fbi
h_da
1NF – attributive Entitäten
Normalisierung durch Auslagern der mehrwertigen Attribute:
Auftrag
ANR
ADAT
TERM
hat
(i) gehört zu
Arbeitsfolge
AFO
VZ
ER-Modell
Tabellen bzw.
Relationen
Auftrag
ANR
ADAT
TERM
Schestag
Relationenmodell
Arbeitsfolge
AFO
ANR
VZ
Datenbanken (Bachelor)
ANR ADAT
1
2
...
TERM
2.3.01 31.5.01
15.4.01 30.9.01
ANR
1
1
2
2
2
...
AFO VZ
1
2
1
2
3
15
25
30
30
30
Kapitel 3 - 19
1NF – Auflösung von n:m-Beziehungen
fbi
h_da
n:m-Beziehung im „Werkstattauftrag“
Auftrag
benötigt
wird benötigt für
Teil
n:m-Beziehung
•
Um aus der Tabelle Auftrag in die Tabelle Teil zu referenzieren, würde
man deren Primärschlüssel TNR als Fremdschüssel-Spalte in der Tabelle
Auftrag implementieren.
→ In der Tabelle Auftrag kann das Attribut TNR mehrfach vorkommen.
•
Entsprechend müsste auch in der Tabelle Teil ein Attribut ANR mehrfach
vorkommen.
→
Beides würde zu einer Verletzung der 1NF führen.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 20
fbi
h_da
1NF – Auflösung von n:m-Beziehungen
Lösungsansatz
•
Ausgliederung von TNR aus Auftrag in eine attributive Entität
Teile_pro_Auftrag mit den Primärschlüssel-Komponenten ANR (über
die Beziehung) und TNR.
•
Ausgliederung von ANR aus Teil in eine attributive Entität
Aufträge_pro_Teil mit den Primärschlüssel-Komponenten TNR (über die
Relationship) und ANR.
n:m
Auftrag
Teil
(i)
Teile_pro
_Auftrag
(i)
Aufträge_
pro_Teil
Zwei Entitäten mit identischem
Schlüssel sind identisch.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 21
fbi
h_da
1NF – Auflösung von n:m-Beziehungen
•
→
•
•
)
Schlüsselkomponenten werden nicht nach Relationship oder Attribut
unterschieden.
Es sind zwei attributive Entitäten mit gleichen Schlüsselkomponenten
entstanden.
Beide Entitäten sind identisch und können zu einer (abhängigen) Entität
zusammengefasst werden.
Diese Entität hat zwei Schlüsselkomponenten, die beide jeweils Primärschlüssel von Kern-Entitäten sind. Deshalb kann die Entität nicht attributiv
sein.
Man nennt solche Entitäten assoziative Entitäten, denn sie „repräsentieren“ die Assoziation (Beziehung) zwischen den beiden Kern-Entitäten.
Als Synonym für assoziative Entität wird wiederum oft die Bezeichnung schwache Entität
(weak entity) verwendet, da sie – genau wie attributive Entitäten – nicht ohne die referenzierten
Kern-Entitäten existieren können.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 22
fbi
h_da
1NF – Auflösung von n:m-Beziehungen
E1
E2
(r)
PK1
E1
Auflösung einer n:m-Beziehung
PK2
E1_E2
(i)
(i)
PK1
E2
PK2
ER-Modell
E1
E1_E2
PK1=PK1
PK1
E2
PK2=PK2
PK1
PK2
Relationenmodell
Schestag
PK2
Eine assoziative Entität kann auch mehr als zwei
Kern-Entitäten verbinden.
Sie enthält dann mehr als zwei Primär- bzw. Fremdschlüssel-Komponenten, nämlich genau so viele wie
die Anzahl der Kern-Entitäten, die sie verbindet.
Datenbanken (Bachelor)
Kapitel 3 - 23
fbi
h_da
1NF - Stückliste
•
Den Sonderfall der n:m-Beziehung einer Entität auf sich selbst bezeichnet
man als Stückliste oder auch part-of-Structure. Man spricht auch von
selbstreferenzierenden n:m-Beziehungen.
•
Der Begriff Stückliste kommt aus der Fertigungsindustrie.
Dort ist man, z.B. zur Generierung von Montage- und DemontageProtokollen, interessiert an Informationen darüber,
–
welche anderen Teile in einem bestimmten Teil enthalten sind, bzw.
–
in welchen anderen Teilen ein bestimmtes Teil enthalten ist.
•
Bezüglich der Rollen in den Beziehungen einer Stückliste spricht man
auch von parents und children (vgl. auch Folien 3-28 und 3.29).
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 24
fbi
h_da
1NF - Stückliste
Stückliste „Fahrrad“
MB_543
GABEL
MB_538
FAHRRAD
MB_541
SATTEL
MB_540
RAHMEN
MB_550
POLSTER
MB_556
LENKER
MB_542
ANTRIEB
MB_540
RAHMEN
MB_551
STANGE
MB_539
REIFEN
MB_557
STANGE
MB_549
LAGER
MB_546
MANTEL
MB_544
SCHLAUCH
MB_545
FELGE
MB_547
SPEICHE
MB_554
PEDAL
MB_553
KETTE
MB_552
KETTENRAD
MB_555
KURBEL
MB_548
VENTIL
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 25
1NF - Stückliste
fbi
h_da
Stückliste „Fahrrad“
- Ausschnitt besteht
bestehtaus
aus
ist
istBestandteil
Bestandteilvon
von
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 26
fbi
h_da
1NF - Stückliste
•
Bei der Auflösung einer selbstreferenzierenden n:m-Beziehung verfährt
man ganz analog der Auflösung von n:m-Beziehungen durch Einfügen
einer assoziativen Entität:
Teil
Teil
TNR
TBEZ
TNR
TBEZ
besteht
aus
(i)
(i)
Stückliste
ist Bestandteil von
ER-Modell
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 27
1NF - Stückliste
•
fbi
h_da
Die assoziative Entität Stückliste enthält beim Übergang zum Relationenmodell zwei Primärschlüssel-Komponenten vom Typ TNR, die durch
unterschiedliche Bezeichner eindeutig werden. PTNR referenziert auf die
parents in der Beziehung (ist enthalten in), CTNR auf die children (enthält).
Teil
TNR
TBEZ
Teil.TNR =
Stückliste.CTNR
Teil.TNR =
Stückliste.PTNR
Stückliste
PTNR
CTNR
PTNR = Parent-Teilenummer
CTNR = Child-Teilenummer
Relationenmodell
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 28
fbi
h_da
Die Daten der Fahrrad-Stückliste
•
Um die Fahrradstückliste zu implementieren, sind als zwei Relationen
(Tabellen) notwendig:
TEIL
Schestag
STÜCKLISTE
TNR
TBEZ
Einzelpreis
PTNR
CTNR
MB_538
Fahrrad
...
MB_538
MB_539
2
MB_539
Reifen
…
MB_538
MB_540
1
MB_540
Rahmen
…
MB_538
MB_541
1
MB_541
Sattel
...
MB_538
MB_542
1
MB_542
Antrieb
…
MB_539
MB_544
1
MB_543
Gabel
…
MB_539
MB_545
1
MB_544
Schlauch
…
MB_539
MB_546
1
MB_545
Felge
…
MB_539
MB_547
18
MB_546
Mantel
…
MB_539
MB_548
1
MB_547
Speiche
…
MB_539
MB_549
1
MB_548
Ventil
…
…
…
MB_549
Lager
…
…
…
…
Datenbanken (Bachelor)
Anzahl
…
Kapitel 3 - 29
Relationenmodell
fbi
h_da
9 Der Übergang vom ER-Modell zum Relationenmodell
•
Die Codd‘schen Normalformen
9 1 NF
– 2 NF
– 3 NF
•
Die Implementierung von Vererbungshierarchien
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 30
fbi
h_da
Die zweite Codd‘sche Normalform – 2NF
•
Die zweite Coddsche Normalform ist eine (optionale) Regel zur Vermeidung von Redundanzen - im Gegensatz zur ersten Coddschen Normalform, die immer erfüllt sein muss.
•
Die Überprüfung der 2NF ist nur relevant, wenn ein Primärschlüssel mit
mehr als einer Schlüssel-Komponente vorliegt:
Untersucht wird, ob jedes Attribut, das nicht Primärschlüssel-Komponente
ist, auch tatsächlich von allen Primärschlüssel-Komponenten abhängig ist:
"Jedes Attribut einer Entität bzw. jede Spalte einer Tabelle muss von allen
Primärschlüssel-Komponenten voll funktional abhängig sein."
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 31
fbi
h_da
2 NF – ein Beispiel
Beispiel „Benotung von Studenten”
•
Voraussetzung: Jede Lehrveranstaltung wird von genau einem Dozenten
gehalten und findet in genau einem Raum statt.
MatrikelNR
LVID
Bezeichnung
Dozent
Raum
Note
Pirmärschlüssel
•
Jeder Datensatz zur gleichen “LVID“ enthält als redundante
Informationen die Attribute “Bezeichnung“, “Dozent“ und “Raum“!
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 32
2 NF – ein Beispiel
fbi
h_da
Beispiel „Benotung von Studenten” (Fortsetzung)
Verletzung der 2NF
•
Die Attribute “Bezeichnung”, “Dozent” und “Raum” sind nicht funktional
abhängig von der primary key-Komponente “Matrikel-Nummer”.
Vorgehen bei der Normalisierung zur 2NF
•
Bei der Definition einer Entität mit mehreren Primärschlüssel-Komponenten muss jedes Attribut daraufhin untersucht werden, ob es wirklich von
der Gesamtheit aller Primärschlüssel-Komponenten abhängt oder nur von
einem Teil dieser Komponenten.
→
Attribute, die bereits durch einen Teil des Primärschlüssels
identifiziert werden, lagert man in eine eigene Entität aus.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 33
fbi
h_da
2 NF – ein Beispiel
Beispiel „Benotung von Studenten” (Fortsetzung)
Lehrveranstaltung
LVID
Bezeichnung
Dozent
Raum
Bewertung
MatrikelNR
→
LVID
Lehrveranstaltung.LVID
=
Bewertung.LVID
Note
“Lehrveranstaltung” wird zur Kern-Entität mit der attributiven Entität
“Bewertung”, die auch assoziative Entität zu den Kern-Entitäten
“Lehrveranstaltung” und “Student” mit Primärschlüssel “MatrikelNr” sein
könnte (bzw. entsprechende Relationen im Relationenmodell).
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 34
2 NF
fbi
h_da
•
Bei Normalisierung zur 2NF entstehen oft Kern-Entitäten zu attributiven
bzw. assoziativen Entitäten.
•
Die Einhaltung der 2NF muss also besonders bei der Bildung assoziativer
Entitäten beachtet werden:
→
Jedes Attribut einer solchen Entität darf nicht alleine von einer der
beteiligten Kern-Entitäten abhängen.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 35
Relationenmodell
fbi
h_da
9 Der Übergang vom ER-Modell zum Relationenmodell
•
Die Codd‘schen Normalformen
9 1 NF
9 2 NF
– 3 NF
•
Die Implementierung von Vererbungshierarchien
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 36
fbi
h_da
Die dritte Codd‘sche Normalform – 3NF
•
Die 3NF beschäftigt sich mit der transitiven Abhängigkeit von Attributen
zum Primärschlüssel der Entität (oder zu candidate keys).
•
Definition: Ein Attribut b ist transitiv abhängig (indirekt abhängig) von
einer Schlüssel-Komponente s, wenn es ein Attribut a gibt, so dass gilt:
a ist abhängig von s und b ist abhängig von a, also ist auch b (transitiv)
abhängig von s.
s
a
b
"Jedes Attribut einer Entität E, das nicht zu einem Primärschlüssel
(oder candidate key) von E gehört, hängt direkt, also nicht transitiv,
von diesem Schlüssel ab."
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 37
fbi
h_da
3 NF – ein Beispiel
Beispiel: Die Entität "Bestellung"
BNR
BDAT
LNR
LNAME
LADR
→ Die Attribute LNAME und LADR sind transitiv abhängig vom
Primärschlüssel-Attribut BNR, und zwar über das Attribut LNR.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 38
fbi
h_da
3 NF – ein Beispiel
Vorgehen bei der Normalisierung zur 3NF
•
•
Attribute, zu denen transitive Abhängigkeit besteht, werden in eine eigene
Entität ausgegliedert.
Im Beispiel ist dies die Entität Lieferant mit dem Schlüsselelement LNR.
Das Attribut LNR, das in der Entität Lieferant Primärschüssel ist, wird im
Relationenmodell zum Fremdschlüssel in der Tabelle Bestellung:
Bestellung
BNR
BDAT
LNR
Bestellung.LNR
=
Lieferant.LNR
Lieferant
LNR
Schestag
LNAME
LADR
Datenbanken (Bachelor)
Kapitel 3 - 39
Die ersten drei Codd‘schen Normalformen
fbi
h_da
Zusammenfassung
•
Im Relationenmodell ist die 1NF immer erforderlich.
•
Eine vollständige Normalisierung bzgl. aller anderen NF ist jedoch nicht
immer wünschenswert.
•
Der Grad der Normalisierung sollte den tatsächlichen Gegebenheiten
angepasst werden, z.B. den Zugriffshäufigkeiten in ihrer semantischen
Abhängigkeit.
•
Die Gewährleistung referentieller Integrität kann durch die Normalisierung
vor allem bei schreibenden Zugriffen erreicht werden, bei lesenden
Zugriffen ist diese grundsätzlich nicht gefährdet, und man kann zur
Verbesserung der Performance auf Normalisierung verzichten (man
spricht dann auch von Denormalisierung).
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 40
Denormalisierung
fbi
h_da
Beispiel
•
Die Entität Kunde enthalte das Schlüsselattribut KNR (Kundennummer)
und die Nicht-Schlüsselattribute PLZ und ORT.
→ Verletzung der 3NF, da ORT ausschließlich abhängig ist von PLZ, also
nur indirekt abhängig vom Schlüsselattribut KNR.
•
Trotzdem würde man hier nicht unbedingt normalisieren, da die
semantische Zusammengehörigkeit bei fast jedem Zugriff auf die PLZ
auch einen zusätzlichen Zugriff auf eine ausgelagerte Entität ORT
bedeuten würde
→ zusätzliche Joins, I/Os, Performanceverluste (vgl. auch Kapitel 4 und 5).
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 41
Relationenmodell
fbi
h_da
9 Der Übergang vom ER-Modell zum Relationenmodell
9 Die Codd‘schen Normalformen
9 1 NF
9 2 NF
9 3 NF
•
Die Implementierung von Vererbungshierarchien
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 42
Die Implementierung von Vererbungshierarchien
fbi
h_da
•
Vererbungshierarchien können im ER-Modell dargestellt werden mit den
Constraints
– disjoint und
– overlapping
für einzelne Spezialisierungsebenen (vgl. Kapitel 2).
•
Beim Übergang zum Relationenmodell können vier verschiedene
Implementierungsvarianten gewählt werden, die sich dadurch unterscheiden,
– welche Entity-Typen der Hierarchie als Tabellen implementiert werden
und
– welche Attribute vom Supertyp zum Subtyp vererbt werden.
Grundsätzlich gilt:
•
Ein Subtyp erbt immer mindestens den Primärschlüssel vom Supertyp.
Dieser wird in der Doppelfunktion Primär- und Fremdschlüssel in der
entsprechenden Tabelle implementiert.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 43
Vererbungshierarchien – eine Beispielhierarchie
Supertype-/Subtype-Hierarchie: Mitarbeiter
fbi
h_da
Mitarbeiter
PersNr
•
Mitarbeiter ist Supertype von
Sekretärin, Ingenieur, Techniker,
•
Ingenieur ist Supertype von
KfZ-Ing., Elektro-Ing.
•
etc. ...
IST-EIN (IS-A)
Sekretärin
Techniker
Ingenieur
...
...
...
IST-EIN (IS-A)
→
Im folgenden werden für diese
Beispielhierarchie die drei unterschiedlichen Implementierungsstrategien vorgestellt:
Schestag
Datenbanken (Bachelor)
KfZ-Ing.
...
Elektro-Ing.
...
Kapitel 3 - 44
fbi
h_da
Vererbung – Implementierungsstrategie 1
•
Der Supertyp und alle Subtypen werden im Relationenmodell als Tabellen
generiert, und
nur das Primärschlüssel-Attribut wird vom Supertyp an die Subtypen
vererbt.
•
Attribute
des Supertyp
Mitarbeiter
PNR <pk>
Name
...
Typ
Ingenieur
PNR <pk, fk>
Sparte
erbt PK des Supertyp
und enthält als zusätzliche
Spalten die speziellen
Attribute des Subtyp
→
Diese Implementierungsstrategie empfiehlt sich, wenn applikatorisch
sowohl häufig nur auf Mitarbeiter-Stammdaten (Supertyp) als auch auf
spezielle Mitarbeiter-Daten (Subtyp) zugegriffen wird.
→
Nachteil?
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 45
Vererbung – Implementierungsstrategie 2
•
•
Der Supertype und alle Subtypen werden im Relationenmodell als
Tabellen generiert, und
alle Attribute werden vom Supertype an die Subtypen vererbt.
Attribute
des Supertypes
→
→
fbi
h_da
Mitarbeiter
PNR <pk>
Name
...
Typ
Ingenieur
PNR <pk, fk>
Name
...
Typ
Sparte
alle Attribute
des Supertyp
Attribute
des Subtyp
Diese Implementierungsform empfiehlt sich dann, wenn zusätzlich zu den
speziellen Daten des Subtyp applikatorisch fast immer auch die
Mitarbeiter-Stammdaten benötigt werden.
Nachteil?
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 46
fbi
h_da
Vererbung – Implementierungsstrategie 3
•
→
Nur die Subtypes werden im Relationenmodell als Tabellen generiert.
Dann müssen alle Attribute vom Supertyp an jeden Subtyp vererbt und
dort als Spalten implementiert werden.
Ingenieur
PNR <pk>
Name
...
Typ
Sparte
→
→
Schestag
alle Attribute
des Supertyp
Attribute
des Subtyp
Diese Strategie empfiehlt sich, wenn auf den Supertyp alleine, im
Beispiel also auf die Mitarbeiter-Stammdaten, „fast nie“ zugegriffen
wird.
Nachteil?
Datenbanken (Bachelor)
Kapitel 3 - 47
fbi
h_da
Vererbung – Implementierungsstrategie 4
•
→
Nur der Supertyp wird im Relationenmodell als Tabelle generiert.
Dann müssen alle Attribute der Subtypes vom Supertyp verwaltet und
dort als Spalten implementiert werden.
Mitarbeiter
PNR <pk>
Name
...
Typ
Sparte_Ing
A1_Tec
A2_Tec
A1_xxx
…
→
→
Schestag
alle Attribute
des Supertyp …
… und alle Attribute
aller Subtypes
Diese Strategie empfiehlt sich, wenn (fast) ausschließlich auf die
Gesamtheit aller Mitarbeiter-Daten zugegriffen werden muss.
Nachteil?
Datenbanken (Bachelor)
Kapitel 3 - 48
Zusammenfassung
•
Der Übergang vom ER-Modell zum Relationenmodell findet beim Übergang
von der Analyse- zur Designphase statt:
–
–
–
–
–
•
•
•
•
fbi
h_da
das Ziel-DBMS wird bekannt gegeben,
Entity-Typen werden zu Relationen bzw. Tabellen,
Attribute werden zu Spalten,
entsprechende Datentypen werden den Spalten zugeordnet,
Beziehungen werden durch Fremdschlüsselspalten implementiert.
Die erste Codd‘sche Normalform ist obligatorisch und bewirkt, dass eine
Beziehung immer nur „in Richtung der 1“ implementiert werden kann!
Eine weitere Konsequenz der ersten Codd‘schen Normalform ist, dass eine
n:m-Beziehung beim Übergang zum Relationenmodell immer aufgelöst
werden muss in zwei 1:n-Beziehungen.
Die 2NF und 3NF können optional zur Vermeidung von Redundanzen
berücksichtigt werden – oft ist es aus Gründen der Performance jedoch
besser, nicht vollständig zu normalisieren bzw. zu denormalisieren.
Unter vier verschiedenen Implementierungsvarianten für Vererbungshierarchien wird unter Berücksichtigung der Prozesse auf den Daten gewählt.
Schestag
Datenbanken (Bachelor)
Kapitel 3 - 49
Datenbanken
9
Einführung
9
Semantische Datenmodellierung
9
Relationenmodell
•
Interne Datenorganisation
•
SQL - Structured Query Language
•
Datenbank-Anwendungsentwicklung
•
Transaktionsmanagement
•
Rückblicke und Ausblicke
Schestag
Datenbanken (Bachelor)
fbi
h_da
Kapitel 3 - 50
Herunterladen