Normalisierung - so wahr mit Codd helfe - WebQuest

Werbung
Normalisierung
„So wahr mir Codd helfe“
1999-09-22
© Joachim Röhl 1999
1
Normalisierung - so wahr mit Codd helfe
Ziel der Normalisierung:
Erstellung eines
 realitätsgetreuen und
 transparenten Datenmodells,
das Abfrage-, Lösch- und Änderungsoperationen ohne
Verletzung der Datenkonsistenz erlaubt
Maßnahmen:
 Beseitigung von Redundanzen (doppelten Daten)
 Zergliederung einer komplexen Relation in mehrere
überschaubare Tabellen
Herkunft
 1970 entwickelt von Dr. Edgar F. Codd
1999-09-22
© Joachim Röhl 1999
2
Normalisierung - so wahr mit Codd helfe
Ausgangssituation
Ein Unternehmen erhält drei Kundenbestellungen:
BestellNr KundeNr Kunde BestellDat ArtNr ArtName ArtAnz BestellAnz ArtPreis
100
10 Meyer 1999-09-21
45 Schalter
20
4
7,95
47 Dimmer
18
6
25,95
101
11 Fischer 1999-09-22
46 Schalter
15
5
9,95
45 Schalter
20
5
7,95
102
12 Müller 199-09-23
99 Sirene
7
2
39,95
Zwei Kunden bestellen mehrere Artikel!
1999-09-22
© Joachim Röhl 1999
3
Normalisierung - so wahr mit Codd helfe
1. Normalisierungsschritt: (1NF)
Wiederholungsfelder (Mehrfachgruppen) müssen in eine
gesonderte Tabelle ausgelagert werden .
BestellNr KundeNr Kunde BestellDat ArtNr ArtName ArtAnz BestellAnzArtPreis
101
11 Fischer 1999-09-22 46 Schalter
15
5
9,95
45 Schalter
20
5
7,95
1999-09-22
© Joachim Röhl 1999
4
Normalisierung - so wahr mit Codd helfe
Ergebnis
Eine Tabelle ist dann in der ersten Normalform, wenn in
jeder Zeile und jeder Spalte nur atomare Werte existieren.
BestellNr KundeNr Kunde
100
10 Meyer
101
11 Fischer
102
12 Müller
BestellNr ArtNr
ArtName
100
45 Schalter
100
47 Dimmer
101
46 Schalter
101
45 Schalter
102
99 Sirene
1999-09-22
BestellDat
1999-09-21
1999-09-22
1999-09-23
ArtAnz
© Joachim Röhl 1999
20
18
15
20
7
BestellAnz ArtPreis
4
7,95
6
25,95
5
9,95
5
7,95
2
39,95
5
Normalisierung - so wahr mit Codd helfe
Ergebnis des ersten Normaliserungsschrittes
Die Tabelle, die die Kundendaten enthält, hat einen eindeutigen
(einmalig oder „unique“) Schlüssel: die Auftragsnummer. Ein
solcher eindeutiger Schlüssel, der die Verknüpfung zu einer
anderen Tabelle bildet, wird auch als „Join-Feld“ bezeichnet.
BestellNr KundeNr Kunde
100
10 Meyer
101
11 Fischer
102
12 Müller
1999-09-22
© Joachim Röhl 1999
BestellDat
1999-09-21
1999-09-22
1999-09-23
6
Normalisierung - so wahr mit Codd helfe
Zusammengesetzter Schlüssel
Die zweite Tabelle hat kein eindeutiges Schlüsselfeld. Hier
müssen die Felder „BestellNr“ und „ArtNr“ gemeinsam das
eindeutige Schlüsselfeld bilden.
BestellNr ArtNr
ArtName
100
45 Schalter
100
47 Dimmer
101
46 Schalter
101
45 Schalter
102
99 Sirene
ArtAnz
20
18
15
20
7
BestellAnz ArtPreis
4
7,95
6
25,95
5
9,95
5
7,95
2
39,95
zusammengesetzter
Schlüssel
1999-09-22
© Joachim Röhl 1999
7
Normalisierung - so wahr mit Codd helfe
2. Normalisierungsschritt (2NF):
Felder, die nur von Teilen des Gesamtschlüssels abhängig
sind, werden in eine gesonderte Tabelle ausgelagert.
Von der Bestellnummer sind abhängig:
BestellNr ArtNr
BestellAnz
100
45
4
Von der Artikelnummer sind abhängig:
ArtNr
1999-09-22
ArtName ArtAnz
ArtPreis
45 Schalter
20
7,95
© Joachim Röhl 1999
8
Normalisierung - so wahr mit Codd helfe
Ergebnis des zweiten Normalisierungs-Schrittes:
Es wurden zwei Relationen geschaffen:
Relation Auftragsposition:
Relation Artikel:
ArtNr
45
46
47
99
1999-09-22
BestellNr ArtNr
BestellAnz
100
45
4
100
47
6
101
46
5
101
45
5
102
99
2
ArtName ArtAnz
ArtPreis
Schalter
20
7,95
Schalter
15
9,95
Dimmer
18
25,95
Sirene
7
39,95
© Joachim Röhl 1999
9
Normalisierung - so wahr mit Codd helfe
3. Normalisierungsschritt (3NF):
Eine Tabelle ist dann in der dritten Normalform, wenn zwischen
den Spalten, die nicht den Primärschlüssel bilden, keine
Abhängigkeiten mehr bestehen.
Zur Überführung einer Tabelle in die 3NF ist also nach
„funktionalen Abhängigkeiten“ zu suchen.
BestellNr KundeNr Kunde
100
10 Meyer
101
11 Fischer
102
12 Müller
BestellDat
1999-09-21
1999-09-22
1999-09-23
Die entsprechenden Daten sind in einer gesonderten
Tabelle auszulagern.
1999-09-22
© Joachim Röhl 1999
10
Normalisierung - so wahr mit Codd helfe
Ergebnis nach dem dritten Normalisierungsschritt:
BestellNr KundeNr BestellDat
100
10 1999-09-21
101
11 1999-09-22
102
12 1999-09-23
BestellNr ArtNr
BestellAnz
100
45
4
100
47
6
101
46
5
101
45
5
102
99
2
1999-09-22
KundeNr
10
11
12
ArtNr
45
46
47
99
Kunde
Meyer
Fischer
Müller
ArtName ArtAnz
ArtPreis
Schalter
20
7,95
Schalter
15
9,95
Dimmer
18
25,95
Sirene
7
39,95
© Joachim Röhl 1999
11
Normalisierung - so wahr mit Codd helfe
• Die 3NF ist die Form, in der Daten für die Speicherung in
relationalen Datenbanken in der Regel aufbereitet werden.
Auf dieser Basis läßt sich ein Datenmodell erstellen, das
alle Anforderungen erfüllt.
• Nach Erstellung der Datenbank ergibt sich folgendes Bild:
1999-09-22
© Joachim Röhl 1999
12
Normalisierung - so wahr mit Codd helfe
Vorteile der Normalisierung
 ermöglicht formalisiertes Vorgehen bei der Entwicklung
einer Datenbank
 Gliederung des „Datenhaufens“ in übersichtliche Relationen
 Beseitigung von Datenredundanzen
 Vermeidung von Widersprüchen in der Datenbank
 realitätsnahe Abbildung der Prozesse der Wirklichkeit im
Datenmodell
Problem: Denormalisierung
 bewußtes Einfügen redundanter Datenfelder
 Ziel: Steigerung von Verarbeitungsoperationen
 zusätzliche Sicherungen gegen Inkonsistenzen sind nötig
1999-09-22
© Joachim Röhl 1999
13
Herunterladen