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