Übung Normalisierung 1

Transcription

Übung Normalisierung 1
Übungen Teil 1:
Normalisierung
Dozent: Stefan Maihack Dipl. Ing. (FH)
1. Übung: Normalisierung
•
Eine Tabelle zur Verwaltung von Personalinformationen soll bis in die 3. Normalform überführt werden.
Angelegt wurde eine „naive“ Tabelle „PERSONAL-PROJEKT“. Mitarbeiterinnen und Mitarbeiter können an
mehreren Projekten beteiligt sein. Es wird jeweils notiert, wie viele Stunden sie in einem Projekt geleistet haben.
P#
P_Name
Abt#
Abt-Name
Pj#
Pj-Name
Pj-Std
101
Müller
1
Motoren
11, 12
A, B
60, 40
102
Meier
2
Karosserie
13
C
100
103
Krause
2
Karosserie
11, 12, 13
A, B, C
20, 50, 30
104
Schmidt
1
Motoren
11, 13
A, C
80, 20
1. Übung: Normalisierung
Lösung: 1NF
•
Eine Tabelle liegt in der ersten Normalform vor, wenn jeder Attributwert eine atomare, nicht weiter zerlegbare
Dateneinheit ist.
Alternativ: Eine Tabelle ist nicht in der 1NF, wenn Attribute mehrfach komplex in einer Spalte auftreten; d.h. 1NF ist
eine Strukturierungsvorschrift.
Rezept: Auslagern der nicht atomaren Attribute in verschiedene Zeilen oder Spalten oder eine eigene Tabelle.
P#
P_Name
Abt#
Abt-Name
Pj#
Pj-Name
Pj-Std
101
Müller
1
Motoren
11
A
60
101
Müller
1
Motoren
12
B
40
102
Meier
2
Karosserie
13
C
100
103
Krause
2
Karosserie
11
A
20
103
Krause
2
Karosserie
12
B
50
103
Krause
2
Karosserie
13
C
30
104
Schmidt
1
Motoren
11
A
80
104
Schmidt
1
Motoren
13
C
20
1. Übung: Normalisierung
Lösung: 2NF
•
Eine Tabelle liegt in der zweiten Normalform vor, wenn sie in der ersten Normalform ist und jedes
Nichtschlüsselattribut voll funktional abhängig vom Primärschlüssel ist.
Alternativ: Eine Tabelle ist nicht in der 2 NF, wenn Attribute von einem Teil des Schlüssels eindeutig identifiziert
werden. Voraussetzung ist die 1NF.
Rezept: Auslagern von Teilschlüsseln und zugehörigen Informationen in eigene Tabelle nach Sachgebieten; bzw.
separaten Entitätstypen mit eigenem Schlüssel finden. Beim Auslagern durch entsprechende Beziehungen darauf
achten, dass Informationen nicht verloren gehen.
•
Tabelle: PERSONAL
P#
101
102
103
104
P-Name
Müller
Meier
Krause
Schmidt
Tabelle: PROJEKT
Abt#
1
2
2
1
Tabelle: PERSONAL-PROJEKT
P#
101
101
102
103
103
103
104
104
Pj#
11
12
13
11
12
13
11
13
Pj-Std
60
40
100
20
50
30
80
20
Abt-Name
Motoren
Karosserie
Karosserie
Motoren
Pj#
11
12
13
Pj-Name
A
B
C
1. Übung: Normalisierung
Lösung: 3NF
•
Eine Tabelle liegt in der 3NF vor, wenn sie sich in der 2NF befindet und jedes Nichtschlüsselattribut nicht transitiv
abhängig vom Primärschlüssel ist.
Alternativ: Eine Tabelle ist nicht in der 3NF, wenn Attribute von anderen NICHT-Schlüsselattributen identifiziert
werden. Voraussetzung ist außerdem die 2NF.
Rezept: Auslagern der „transitiv abhängigen“ Attribute in eigene Tabellen.
Tabelle: PERSONAL
P#
101
102
103
104
P-Name
Müller
Meier
Krause
Schmidt
Tabelle: ABTEILUNG
Abt#
1
2
Abt-Name
Motoren
Karosserie
Abt#
1
2
2
1
Tabelle: PROJEKT
Tabelle: PERSONAL-PROJEKT
Pj#
11
12
13
P#
101
101
102
103
103
103
104
104
Pj-Name
A
B
C
Pj#
11
12
13
11
12
13
11
13
Pj-Std
60
40
100
20
50
30
80
20
2. Übung: Normalisierung
•
•
In der vorliegende Zusammenfassung der Daten zum Personalwesen zeigt die angegebenen Tabelle in der Spalte
QUALI eine Wiederholungsgruppe an. Diese Verschachtelung ist ohne Informationsverlust zu beseitigen.
Außerdem ist die Ausübung des Berufs nicht ohne eine entsprechende Qualifikation möglich. Der eindeutige
Schlüssel wird aus den Attributen ANG_ID und QUALI gebildet.
ANG_ID
NAME
GEBJAHR ABT_ID
JOB_ID
QUALI
A1
Fritz
2.1.1950
OD
SY
SY
A1
Fritz
2.1.1950
OD
SY
PR
A1
Fritz
2.1.1950
OD
SY
OP
A2
Tom
2.3.1951
KO
IN
IN
A2
Tom
2.3.1951
KO
IN
SY
A3
Werner
23.4.1948
OD
PR
PR
A4
Gerd
3.11.1950
VT
KA
KA
A5
Emil
2.3.1960
PA
PR
PR
A6
Uwe
3.4.1952
RZ
OP
OP
A7
Eva
17.11.1955 KO
TA
TA
A8
Rita
02.12.1957 KO
TA
TA
A9
Ute
08.09.1962 OD
SY
SY
A10
Willi
7.7.1956
KO
IN
IN
A11
erna
13.10.1966 OD
KA
KA
A12
Anton
5.7.1948
OD
SY
SY
A13
Josef
2.8.1952
KO
SY
SY
A14
Maria
17.09.1964 PA
KA
KA
Beseitigen sie die funktionalen Abhängigkeiten der vorliegenden Tabelle. Alle Attribute mit Ausnahme von QUALI
sind von einem Schlüsselteil (ANG_ID) funktional determiniert und sollten deshalb in eine eigene Tabelle
aufgenommen werden.
2. Übung: Normalisierung
Lösung1/2
•
•
Tabelle: Abteilung
ABT_ID BEZEICHNUNG
KO
Konstruktion
OD
Organisation und Datenverarbeitung
PA
Personalabteilung
RZ
Rechenzentrum
VT
Vertrieb
Tabelle: ANGESTELLTE
ANG_ID NAME
GEBJAHR
ABT_ID
A1
Fritz
2.1.1950
OD
A2
Tom
2.3.1951
KO
A3
Werner
23.4.1948
OD
A4
Gerd
3.11.1950
VT
A5
Emil
2.3.1960
PA
A6
Uwe
3.4.1952
RZ
A7
Eva
17.11.1955
KO
A8
Rita
02.12.1957
KO
A9
Ute
08.09.1962
OD
A10
Willi
7.7.1956
KO
A11
Erna
13.10.1966
OD
A12
Anton
5.7.1948
OD
A13
Josef
2.8.1952
KO
A14
Maria
17.09.1964
PA
JOB_ID
SY
IN
PR
KA
PR
OP
TA
TA
SY
IN
KA
SY
SY
KA
2. Übung: Normalisierung
Lösung2/2
•
•
Tabelle: JOB
JOB_ID TITEL
KA
Kaufm. Angestellter
TA
Techn. Angestellter
SY
Systemplaner
PR
Programmierer
OP
Operateur
Tabelle: QUALIFIKATION
ANG_ID JOB_ID
A1
SY
A1
PR
A1
OP
A2
IN
A2
SY
A3
PR
A4
KA
A5
PR
A6
OP
A7
TA
A8
IN
A9
SY
A10
IN
A11
KA
A12
SY
A13
IN
A14
KA
GEHALT
1.500 €
1.500€
3.000€
2.500€
2.000€
3. Übung: Normalisierung
•
Lösen sie die folgende Tabelle gemäss der 1. Normalform auf:
Familie
Meier
Mutter
Theres
Vater
Paul
Gantenbein
Noemi
George
Kinder
Erich
Anja
Roman
Lydia
Erich
Mariane
3. Übung: Normalisierung
Lösung
•
Tabelle: Familie
Familie
Meier
Gantenbein
Mutter
Theres
Noemi
Tabelle: Kinder
Familie
Meier
Meier
Meier
Meier
Gantenbein
Gantenbein
Kinder
Erich
Anja
Roman
Lydia
Erich
Marianne
Vater
Erich
George
4. Übung: Normalisierung
•
Lösen sie die folgende Tabelle gemäss der 1. Normalform auf:
CD_ID
4811
Album
Anastacia
4212
Pink Floyd – Wish You Where Here
Titelliste
Not That Kind;
I`m Outta Love;
Cowboys & Kisses
Shine On You Crazy Diamond
4. Übung: Normalisierung
Lösung 1NF
Verletzung der 1NF:
Æ Das Feld Album beinhaltet die Attributwertebereiche Titel und Interpret
Æ Das Feld Titelliste enthält eine Menge von Titeln
CD_ID Albumtitel
4811 Not That kind
4811 Not That kind
4811 Not That kind
4712 Wish You Where Here
Interpret
Anastacia
Anastacia
Anastacia
Pink Floyd
Titel
Not That Kind
I`m Outta Love
Cowboys & Kisses
Shine On You Crazy Diamond
Æ Das Feld Album wird in Felder Albumtitel und Interpret gespalten.
Æ Das Feld Titelliste wird auf mehrere Datensätze aufgeteilt.
4. Übung: Normalisierung
Lösung 2NF
•
•
Eine Relation ist genau dann in der 2NF wenn gilt:
Æ Sie ist in der 1NF.
Æ Für jeden Schlüsselkandidaten (Key Candidate, KC) und jedes Attribut a der Relation gilt:
* a gehört zu KC oder
* a ist nicht von einer Teilmenge von KC abhängig.
Mann sagt: a ist voll funktional abhängig von jedem Schlüsselkandidaten.
(Wobei der Schlüsselkandidat KC auch durch die Kombination mehrer Attribute gebildet wwerden
kann).
CD_ID
4811
4811
4811
4712
Album
Not That Kind
Not That Kind
Not That Kind
Wish You Were Here
Interpret
Anastacia
Anastacia
Anastacia
Pink Floyd
Track
1
2
3
1
Titel
Not That Kind
I`m Outta Love
Cowboys & Kisses
Shine On You Crazy Diamond
Æ Der Primärschlüssel der Relationen ist aus den Feldern CD_ID und Track zusammengesetzt.
Der Felder Album und Interpret sind zwar vom Feld CD_ID abhängig – nicht aber vom Feld Track.
4. Übung: Normalisierung
Lösung 2NF
•
Probleme die sich daraus ergeben:
Die Informationen aus diesen beiden Feldern sind, wie am Beispiel der CD Not That Kind zu
erkennen. Mehrfach vorhanden – d.h. redundant. Dadurch gibt es die Gefahr, dass die Integration
der Daten verletzt wird. So könnte man den Namen der CD für das Lied That Kind ändern ohne
jedoch die passenden Einträge bei den Liedern I`m Outta Love und Cowboys & Kisses zu ändern
(Update-Anomalie).
CD_ID
4811
4811
4811
4712
•
Album
That Kind
Not That Kind
Not That Kind
Wish You Were Here
Interpret
Anastacia
Anastacia
Anastacia
Pink Floyd
Track
1
2
3
1
Titel
Not That Kind
I`m Outta Love
Cowboys & Kisses
Shine On You Crazy Diamond
In diesem Fall ist ein Zustand erreich, den man als Dateninkonsistenz bezeichnet. Über die
komplette Tabelle betrachtet, passen die Daten nicht mehr zusammen.
4. Übung: Normalisierung
Lösung 2NF
•
Lösung: Die Daten in der Tabelle werden in zwei Tabellen aufgeteilt: CD und Lieder.
Tabelle: CD
CD_ID
4811
4712
Album
Interpret
Not That Kind
Anastacia
Wish You Where here Pink Floyd
Tabelle: LIEDER
CD_ID
4811
4811
4811
4712
Track
1
2
3
1
Titel
Not that Kind
I`m Outta Love
Cowboys & Kisses
Shine On You Crazy Diamond
Æ Das Feld CD_ID aus der Tabelle LIEDER bezeichnet man als Fremdschlüssel, der auf den
Primärschlüssel der Tabelle CD verweist.
4. Übung: Normalisierung
Lösung 3NF
•
•
Beispiel:
CD_ID
4811
4713
4712
Album
Not That Kind
Freak of Nature
Wish You Where here
Interpret
Anastacia
Anastacia
Pink Floyd
Gründungsjahr
1999
1999
1965
Verletzung der 3. Normalform:
Æ Offensichtlich lässt sich der Interpret einer CD aus der CD_ID bestimmen, das Gründungsjahr
der Band hängt dagegen vom Interpreten und damit nur transitiv von der CD_ID ab.
Æ Das Problem ist hierbei wieder Datenredundanz. Wird zum Beispiel eine neue CD mit einem
existierenden Interpreten eingeführt, so wird das Gründungsjahr zweimal abgespeichert.
4. Übung: Normalisierung
Lösung 3NF
•
Lösung:
Tabelle: CD
CD_ID
4811
4713
4712
Album
Not That Kind
Freak of Nature
Wish You Where Here
Tabelle: CD/Künstler
CD_ID
I_ID
4811
2423
4713
2423
4712
3433
•
•
Tabelle: BANDINFOS
I_ID
Interpret Gründungsjahr
2423
Anastacia 1999
3433
Pink Floyd 1965
Die Relation wird aufgeteilt, wobei eine Zwischentabelle gebildet wird. Grund: Eine CD kann
mehrere Künstler haben und ein Künstler kann mehrere CD´s machen.
Es werden Redundanzen erzeugt, wenn man keine Zwischentabelle macht, den sobald eine CD
auf den Markt kommt, die mehrere Künstler in sich birgt, taucht die gleiche CD_ID (Primary Key)
mehrmals auf. Bei der Zwischentabelle ist dies zwar auch der Fall, aber die Datensätze insgesamt
sind eindeutig, da beide Attribute „identifizierende Fremdschlüssel“ sind.

Documents pareils