D:\Datenbanken\2Entwicklung\4Normalisierung\Einführung\vhs.doc Einführung Datenbanken: Normalisierung Für die Kursverwaltung einer VHS hat der Datenbank-Programmierer ein ER-Modell entworfen: Entitätstyp Entitäten Attribute Attributsausprägungen Kurse Word für Anfänger Englisch 3 Quantenphysik KursNr. Kategorie Zeit Raum 023 EDV Di 17-19 V23 147 Sprachen Do 18-20 F17 251 Technik Mo 17-21 BkT112 Teilnehmer Anja Lukas Katja Müller Sven Schuster TeilnNr. Vorname Nachname Anschrift Alter 4951 Anja Lukas Essen 23 6381 Katja Müller Bottrop 35 8042 Sven Schuster Gelsenkirchen 42 Dozenten Paul Bilk Carl Gärtner Petra Klausen DozentenNr. Vorname Nachname Anschrift Fächer D17 Paul Bilk Bottrop EDV D51 Carl Gärtner Essen Englisch D83 Petra Klausen Bochum Physik Räume Raum V23 Raum F17 Raum BkT112 RaumNr Gebäude Anzahl Plätze TechnikKürzel Technik V23 VHS 12 T Tafel F17 FH 250 B Beamer BkT112 Berufskolleg Technik 70 V, OHP Video, Overheadprojektor D:\Datenbanken\2Entwicklung\4Normalisierung\Einführung\vhs.doc Wendet man die Regeln zur Transformation eines ER-Modells in Tabellen an, erhält man folgendes Ergebnis: Teilnehmer(TeilnNr, Vorname, Nachname, Anschrift, Alter) Kurs(KursNr, Kategorie, Wochentag, Zeit, DozentNr, RaumNr) Dozent(DozentenNr, Vorname, Nachname, Anschrift, Fächer) Raum(RaumNr, Gebäude, Adresse, AnzahlPlätze, TechnikKürzel, Technik) Buchung(HörerNr, KursNr, Datum, GebührBezahlt) Wie eine Tabelle konkret aussieht, zeigt das Beispiel der Raum-Tabelle: Raum-Nr. Gebäudebezeichnung Adresse Anzahl Plätze Technik- Technik kürzel V23 VHS-Gebäude Raum 23 12 FH17 Fachhochschule Hörsaal 17 Berufskolleg für Technik Raum 112 Ebertstr. 5 45881 Gelsenkirchen Neidenburger Str. 3 45897 Gelsenkirchen Overwegstr. 4 45881 Gelsenkirchen T OHP B Tafel Overheadprojektor Beamer T W OHP V Tafel Whiteboard Overheadprojektor Video mit TV BKT112 250 70 Diese Tabelle ist für die Übernahme in eine Datenbank leider noch nicht geeignet: Um zu überprüfen, ob die Tabellen direkt in eine Datenbank übernommen werden können, bedient man sich der Methode der Normalisierung, die folgende Aufgaben hat: • • • Beseitigung mehrfach vorkommender (redundanter) und damit überflüssiger Daten, ohne damit die Aussagekraft der Datenbank zu schwächen. Vereinfachung der Datenpflege, um die damit einhergehenden Probleme zu umgehen (Beseitigung sog. Anomalien), Entwurf eindeutiger Tabellen, die keine versteckten Tabellen als Untertabellen enthalten (Beseitigung sog. transitiver Abhängigkeiten). Das Resultat der Normalisierung sind Tabellen, die direkt in die Datenbank übertragen werden können. Die Zerlegung der Ausgangstabellen erfolgt nach festgelegten Regeln und stufenweise. Mit jedem Schritt werden Redundanzen und Anomalien beseitigt. Von den Normalisierungsschritten, sind die drei ersten die wichtigsten. Die Überführung der Ausgangstabelle in die sog. Dritte Normalform (kurz 3NF) soll am Beispiel demonstriert werden. D:\Datenbanken\2Entwicklung\4Normalisierung\Einführung\vhs.doc 1. Normalform Aufgabe des 1. Normalisierungsschrittes (1. Normalform; kurz 1NF) ist es, die Anzahl der Einträge in einer Datenspalte (Attribut) auf einen einzigen Eintrag zu reduzieren. Die 1. Normalform wird in 3 Teilschritten erreicht Schritt 1: Die Anzahl der Datenspalten (Attribute) wird erhöht, damit in jeder Datenspalte nur noch eine Information enthalten ist. Beispiel: Spalte „Adresse“ aufteilen in Strasse / Haus-Nummer / PLZ / Ort. Allerdings wird man Strasse und Haus-Nr. zusammen belassen, da die Trennung in der Datenbankpraxis nur sinnvoll ist, wenn dadurch ein Vorteil in der Datenverwaltung, z. B. bei Abfragen, erzielt wird. Schritt 2: Einrichtung von Wiederholungszeilen für mehrfache Einträge, die sich auf ein nicht mehr teilbares Attribut beziehen. Für jeden Eintrag des Attributs „Technik“ in einem Datensatz wird jeweils eine neue Zeile verwendet. Raum-Nr. Gebäude Strasse PLZ Ort Anzahl Technik- Technik Plätze kürzel V23 Ebertstr. 5 45881 GE 12 T Tafel Ebertstr. 5 45881 GE 12 OHP Neidenburger Str. 3 45897 GE 250 B Overheadprojektor Beamer Overwegstr. 4 45881 GE 70 T Tafel Overwegstr. 4 45881 GE 70 W Whiteboard Overwegstr. 4 45881 GE 70 OHP Overwegstr. 4 45881 GE 70 V Overheadprojektor Video mit TV V23 FH17 BKT112 BKT112 BKT112 BKT112 VHS-Gebäude Raum 23 VHS-Gebäude Raum 23 Fachhochschule Hörsaal 17 Berufskolleg für Technik Raum 112 Berufskolleg für Technik Raum 112 Berufskolleg für Technik Raum 112 Berufskolleg für Technik Raum 112 Schritt 3: Anschließend wird ein Primärschlüssel eingeführt, mit dem jeder Datensatz eindeutig identifiziert werden kann. Der PS besteht entweder • • aus einer oder mehreren bereits vorhandenen Datenspalten, z. B. Identifikationsnummern, oder aus neuen Datenspalten, die vom Administrator einzurichten sind, z. B. laufende Zähler-Nummern. Weil für die Technik die neuen Zeilen eingerichtet wurden, empfiehlt es sich, den PS aus den Spalten RaumNr. und Technik-Kürzel zusammen zu stellen. Der PS ist an der Unterstreichung zu erkennen. Raum-Nr. Gebäude Strasse PLZ Ort AnzahlPlätze TechnikKürzel Technik D:\Datenbanken\2Entwicklung\4Normalisierung\Einführung\vhs.doc 2. Normalform Aufgabe des 2. Normalisierungsschrittes (2. Normalform; kurz 2NF) ist es, zu prüfen, ob sämtliche Datenspalten (die nicht zum Primärschlüssel zählen) ausschließlich vom Primärschlüssel abhängig sind. Ist eine Datenspalte nicht vom Primärschlüssel oder nur von einem Teil des Primärschlüssels abhängig, ist für diese Datenspalte samt ihrer Schlüsselspalte eine neue Tabelle einzurichten. In diesem Beispiel liegen folgende Abhängigkeiten vor: • Gebäude Raum-Nr. • Strasse Raum-Nr. • PLZ Raum-Nr. • Ort Raum-Nr. • Anzahl Plätze Raum-Nr. • Technik Technik-Kürzel Daraus ergeben sich zunächst folgende Tabellen: (Evtl. auftretende Doppelzeilen sind zu löschen) Tabelle Raum Raum-Nr. Gebäude BKT112 Berufskolleg für Technik Raum 112 FH17 Fachhochschule Hörsaal 17 V23 VHS-Gebäude Raum 23 Tabelle Technik Technik-Kürzel B OHP T V W Strasse Overwegstr. 4 Neidenburger Str. 3 Ebertstr. 5 PLZ 45881 45897 45881 Ort GE GE GE Anzahl Plätze 70 250 12 Technik Beamer Overheadprojektor Tafel Video mit TV Whiteboard Vom Primärschlüssel ist keine Spalte abhängig, so dass der Primärschlüssel als einziges in der Tabelle verbleibt. Sie gibt die Zuordnung von Raum zu Technik wieder. Diese ist die Tabelle für die neue N:MRelation „ausgestattet mit“. Dadurch ist es beispielsweise möglich festzustellen, welcher Raum über einen Beamer zum Anschluss eines Notebooks verfügt. Tabelle: Ausstattung Raum-Nr. Technik-Kürzel V23 T V23 OHP FH17 B BKT112 T BKT112 W BKT112 OHP BKT112 V Wenn man diese Tabellen als ERModell zeichnet, ergibt sich folgendes Gesamtbild: D:\Datenbanken\2Entwicklung\4Normalisierung\Einführung\vhs.doc 3. Normalform Aufgabe des 3. Normalisierungsschrittes (3. Normalform; kurz 3NF) ist es Daten zu eliminieren, die nicht von einem Schlüssel abhängig sind. Das stellt man fest, indem man überprüft, ob Attribute aus den Tabellen der 2NF, die nicht zum Primärschlüssel zählen, untereinander abhängig sind. Diese sog. mittelbare (transitive) Abhängigkeit würde dazu führen, dass in einer Tabelle eine Untertabelle enthalten wäre. Attribute mit transitiver Abhängigkeit werden in eine eigene Tabelle ausgelagert. In der Tabelle Raum gibt es einen Zusammenhang zwischen PLZ und Ort. Die Ortsangabe ist abhängig von der PLZ. Erkennbar ist dieser Zusammenhang an den Wiederholungszeilen in diesen beiden Spalten. PLZ Ort 45881 45897 45881 GE GE GE Die Ortsangabe könnte man in eine eigene Tabelle ausgelagern. Das unabhängige Attribut PLZ ware der Primärschlüssel der neuen Tabelle. Tabelle Raum Raum-Nr. Gebäude BKT112 FH17 V23 Berufskolleg für Technik Raum 112 Fachhochschule Hörsaal 17 VHS-Gebäude Raum 23 Strasse PLZ Anzahl Plätze Overwegstr. 4 Neidenburger Str. 3 Ebertstr. 5 45881 45897 45881 70 250 12 Tabelle Ort PLZ Ort 45881 Gelsenkirchen 45897 Gelsenkirchen Die Verbindung von Tabelle Raum zu Tabelle Ort erfolgt über den Primärschlüssel PLZ, der in der Raumtabelle als Fremdschlüssel verbleibt. Hinweis: In der Praxis wird man allerdings auf diese Aufteilung verzichten, weil die PLZ nicht eindeutig einen Ort identifiziert, denn es gibt verschiedene Orte, die dieselbe PLZ haben.