Relationaler Datenbank-Entwurf. Kapitel 7: Normalformen. Schrittweises Vorgehen:

Ähnliche Dokumente
Kapitel 3: Datenbanksysteme

Kapitel 7: Normalformen

Kapitel 7: Normalformen

Kapitel 7: Normalformen

Programmierung und Datenbanken II

Relationale Entwurfstheorie (Teil 2)

Entwurfstheorie relationaler Datenbanken 7. Entwurfstheorie relationaler Datenbanken

Normalisierung II. Ziele

Datenbanken 6: Normalisierung

Datenbanken 6: Normalisierung

Informationssysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Sommersemester

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Datenbanksysteme 2015

Normalformen. Was sind Kriterien eines guten Entwurfs? So wenig Redundanz wie möglich. Keine Einfüge-, Lösch-, Änderungsanomalien

Kapitel 2: Das Relationale Modell

8. Tutorübung zu Grundlagen: Datenbanken

Verfeinerung des relationalen Schemas

Datenbanken Unit 5: Funktionale Abhängigkeit

Design Theorie für relationale Datenbanken

Relationale Entwurfstheorie

Kapitel 3: Datenbanksysteme

Relationale Entwurfstheorie

Funktionale Abhängigkeiten

Wiederholung VU Datenmodellierung

Kapitel 2: Das Relationale Modell

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Kapitel DB:VII. VII. Entwurfstheorie relationaler Datenbanken

Kapitel 7: Formaler Datenbankentwurf

Datenbanksysteme Übungsblatt 1

Relationale Entwurfstheorie

Kapitel 6 Relationale Entwurfstheorie. Funktionale Abhängigkeiten Normalformen Normalisierung durch Dekomposition

Relationale Entwurfstheorie. Kapitel / 510

Kapitel 3: Datenbanksysteme

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Vorlesung Datenbanktheorie. Church-Rosser-Eigenschaft der Verfolgungsjagd. Berechnung von chase(t, t, Σ) Vorlesung vom Mittwoch, 05.

3. Grundlagen relationaler Datenbanksysteme

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

4. Normalisierung von Relationenschemata

Vorlesung Datenbank-Entwurf Klausur

Normalisierung I. Ziele

Informatik 10 Mar Datenbanken: RDM Normalisierung April 2014

Relationale Entwurfstheorie

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

4. Normalformen. Qualitätsanforderungen an Tabellen. Klassische Normalformen (1,. 2., 3.) Spezielle Normalformen

9. Normalformen / Erweiterungen 9.1 Vorbemerkung, Zielsetzung, Inhalt Datenmodellierung und Integritätsaspekte

Grundlagen: Datenbanken WS 15/16

Datenbanken. Rückblick: Datenbank-Entwurfsprozess. Semantische Datenmodellierung (vgl. Kapitel 2)

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Musterlösung zur Finalklausur Datenbanksysteme am

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 18. Juni 2007

Normalformen: Sinn und Zweck

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

5. Normalisierung von Relationen

Datenbanken. Relationale Entwurfstheorie. Ralf Möller, Marc Stelzner Universität zu Lübeck Institut für Informationssysteme

Datenbanken (Übung 12)

Software-Engineering Einführung

Datenbanken: Relationales Datenbankmodell RDM

2. Übungsblatt 3.0 VU Datenmodellierung

Aufgabe 1: Integrität

5. Normalisierung von Relationen

E-R-Modell zu Relationenschema

Teil 9: Einführung in relationale Normalformen

Rückblick: Datenbankentwurf

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

Indexstrukturen in SQL

Grundlagen von Datenbanken SS 2010

Tag 4 Inhaltsverzeichnis

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Tag 4 Inhaltsverzeichnis

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

3. Das Relationale Datenmodell

2. Übungsblatt 3.0 VU Datenmodellierung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

An approximation of Edgar Codd's definition of 3NF:

Kapitel 4: Relationen-Kalkül

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Erstellen von relationalen Datenbanken mit Hilfe der Nomalisierung

D1: Relationale Datenstrukturen (14)

Matthias Schubert. Datenbanken. Theorie, Entwurf und Programmierung relationaler Datenbanken. 2., überarbeitete Auflage. Teubner

Datenbanken. Sommersemester 2010 Probeklausur

Handout zur Unit Datenmodellierung Web-Technologien Datenmodellierung Prof. Dr. rer. nat. Nane Kratzke

Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12

Datenbanken. Zusammenfassung. Datenbanksysteme

Kapitel 3: Datenbanksysteme

Kommunikation und Datenhaltung

Aufgabe 1: Kanonische Überdeckung

Kapitel 3: Datenbanksysteme

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Einführung in Datenbanken - Wiederholung Normalformen - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Datenmanagement Übung 5

SQL: statische Integrität

Entwurf und Verarbeitung relationaler Datenbanken

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Daten Bank. 5. Vorlesung

Wirtschaftsinformatik

Transkript:

Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2003/2004 Abteilung für Datenbanksysteme 2002 Christian Böhm, UMIT Vorlesung: Christian Böhm Übungen: Karsten Borgwardt, Stefan Brecheisen, Eshref Januzaj, Stefan Schönauer Skript 2003 Christian Böhm http://www.dbs.informatik.uni-muenchen.de/lehre/dbs Bitte zum Übungsbetrieb anmelden! Relationaler Datenbank-Entwurf 2 Schrittweises Vorgehen: Informelle Beschreibung: Pflichtenheft Konzeptioneller Entwurf: E/R-Diagramm Relationaler DB-Entwurf: Relationenschema In diesem Kapitel: Normalisierungstheorie als formale Grundlage für den relationalen DB-Entwurf Zentrale Fragestellungen: Wie können Objekte und deren Beziehungen ins relationale Modell überführt werden Bewertungsgrundlagen zur Unterscheidung zwischen guten und schlechten relationalen DB-Schemata

Motivation Normalisierung Nicht immer liefert das E/R-Modell ein redundanzfreies Datenbankschema: Kunde bestellt Produkt Name AuftrNr Datum Bez Schema: Kunde ( Name,...) Produkt ( Bez,...) bestellt (Name, Bez, AuftrNr, Datum) 3 Redundanz: Kundenauftrag für mehrere Produkte Motivation Normalisierung 4 Tabelleninhalt Bestellt: Name Bez AuftrNr Datum Huber Schraube 01 01.01.02 Huber Nagel 01 01.01.02 Huber Schraube 02 01.02.02 Meier Schraube 03 05.01.02 Hier gibt es offensichtlich einige Redundanzen: Keine zwei verschiedenen Datums zu einem Auftrag Keine zwei verschiedenen Kunden zu einem Auftrag Redundanzen durch funktionale Abhängigkeiten Datum funktional abhängig von AuftrNr Name funktional abhängig von AuftrNr

Weiteres Beispiel Datenbankschema aus Kapitel 3: Kunde Auftrag Lieferant (KName, KAdr, Kto) (KName, Ware, Menge) (LName, LAdr, Ware, Preis) 5 Das Schema Lieferant hat folgende Nachteile: Redundanz für jede Ware wird die Adresse des Lieferanten gespeichert, d.h. die Adresse ist mehrfach vorhanden Insert-/Delete-/Update-Anomalien update: Adressänderung in 1 Tupel insert: Einfügen eines Lieferanten erfordert Ware delete: Löschen der letzten Ware löscht die Adresse Verbesserung 6 Datenbankschema aus Kapitel 3: Kunde Auftrag LiefAdr Angebot Vorteile: keine Redundanz keine Anomalien Nachteil: (KName, KAdr, Kto) (KName, Ware, Menge) (LName, LAdr) (LName, Ware, Preis) Um zu einer Ware die Adressen der Lieferanten zu finden, ist Join nötig (teuer auszuwerten und umständlich zu formulieren)

Ursprüngliche Relation Die ursprüngliche Relation Lieferant kann mit Hilfe einer View simuliert werden: create view Lieferant as select L.LName, LAdr, Ware, Preis from LieferantAdr L, Angebot A where L.LName = A.LName 7 Schema-Zerlegung 8 Anomalien entstehen durch Redundanzen Entwurfsziele: Vermeidung von Redundanzen Vermeidung von Anomalien evtl. Einbeziehung von Effizienzüberlegungen Vorgehen: Schrittweises Zerlegen des gegebenen Schemas (Normalisierung) in ein äquivalentes Schema ohne Redundanz und Anomalien Formalisierung von Redundanz und Anomalien: Funktionale Abhängigkeit

Funktionale Abhängigkeit (engl. Functional Dependency, FD) beschreibt Beziehungen zwischen den Attributen einer Relation Schränkt das Auftreten gleicher bzw. ungleicher Attributwerte innerhalb einer Relation ein spezielle Integritätsbedingung (nicht in SQL) Wiederholung Integritätsbedingungen in SQL: 9 Primärschlüssel Fremdschlüssel (referenzielle Integrität) not null check Wiederholung Schlüssel Definition: Eine Teilmenge S der Attribute eines Relationenschemas R heißt Schlüssel, wenn gilt: Eindeutigkeit Keine Ausprägung von R kann zwei verschiedene Tupel enthalten, die sich in allen Attributen von S gleichen. Minimalität Keine echte Teilmenge von S erfüllt bereits die Bedingung der Eindeutigkeit 10

Definition: funktional abhängig Gegeben: Ein Relationenschema R A, B: Zwei Mengen von Attributen von R (A,B R) Definition: B ist von A funktional abhängig (A B) gdw. für alle möglichen Ausprägungen von R gilt: Zu jedem Wert in A exist. genau ein Wert von B. 11 Beispiel Lieferant (LName, LAdr, Ware, Preis): {LName} {LAdr} {LName, LAdr} {Ware} {LName, LAdr} {Preis} üblicherweise schreibt man keine Klammern Vergleich mit Schlüssel 12 Gemeinsamkeiten zwischen dem Schlüssel im relationalen Modell und Funktionaler Abhängigkeit: Definitionen ähnlich Für alle Schlüsselkandidaten S = {A,B,...} gilt: Alle Attribute der Rel. sind von S funktional abhängig: {A,B,...} R Unterschied: Aber es gibt u.u. weitere funktionale Abhängigkeiten: Ein Attribut B kann z.b. auch funktional abhängig sein von Nicht-Schlüssel-Attributen von nur einem Teil des Schlüssels (nicht vom gesamten Schlüssel) FD ist Verallgemeinerung des Schlüssel-Konzepts

Vergleich mit Schlüssel Wie der Schlüssel ist auch die funktionale Abh. eine semantische Eigenschaft des Schemas: FD nicht aus aktueller DB-Ausprägung entscheidbar sondern muss für alle möglichen Ausprägungen gelten Triviale funktionale Abhängigkeit: Ein Attribut ist immer funktional abhängig: von sich selbst und von jeder Obermenge von sich selbst Solche Abhängigkeiten bezeichnet man als trivial 13 Partielle und volle FD 14 Ist ein Attribut B funktional von A abhängig, dann auch von jeder Obermenge von A. Man ist interessiert, minimale Mengen zu finden, von denen B abhängt (vgl. Schlüsseldefinition) Definition: Gegeben: Eine funktionale Abhängigkeit A B Wenn es keine echte Teilmenge A A gibt, von der B ebenfalls funktional abhängt, dann heißt A B eine volle funktionale Abhängigkeit andernfalls eine partielle funktionale Abhängigkeit

Partielle und volle FD Beispiele: LName LAdr LName, Ware LAdr Ware? Preis LName, Ware Preis Prime Attribute voll funktional abhängig partiell funktional abhängig nicht funktional abhängig voll funktional abhängig Definition: Ein Attribut heißt prim, wenn es Teil eines Schlüsselkandidaten ist 15 Normalisierung In einem Relationenschema sollen also möglichst keine funktionalen Abhängigkeiten bestehen, außer vom gesamten Schlüssel Verschiedene Normalformen beseitigen unterschiedliche Arten von funktionalen Abhängigkeiten bzw. Redundanzen/Anomalien 1. Normalform 2. Normalform 3. Normalform Boyce-Codd-Normalform Herstellung einer Normalform durch verlustlose Zerlegung des Relationenschemas 16

1. Normalform 17 Keine Einschränkung bezüglich der FDs Ein Relationenschema ist in erster Normalform, wenn alle Attributwerte atomar sind In relationalen Datenbankem sind nicht-atomare Attribute ohnehin nicht möglich Nicht-atomare Attribute z.b. durch group by A B C D 3 4 1 2 4 5 2 3 3 4 4 5 3 3 6 7 nested relation non first normal form In SQL nur temporär erlaubt 2. Normalform 18 Motivation: Man möchte verhindern, daß Attribute nicht vom gesamten Schlüssel voll funktional abhängig sind, sondern nur von einem Teil davon. Beispiel: Lieferant ( LName, LAdr, Ware, Preis) Bäcker Ibk Brot 3,00 Bäcker Ibk Semmel 0,30 Bäcker Ibk Breze 0,40 Metzger Hall Filet 5,00 Metzger Hall Wurst 4,00 Anomalien? Konsequenz: In den abhängigen Attributen muß dieselbe Information immer wiederholt werden

2. Normalform Dies fordert man vorerst nur für Nicht-Schlüssel- Attribute (für die anderen z.t. schwieriger) Definition Ein Schema ist in zweiter Normalform, wenn jedes Attribut voll funktional abhängig von allen Schlüsselkandidaten oder prim ist 19 Beobachtung: Zweite Normalform kann nur verletzt sein, wenn......ein Schlüssel(-Kandidat) zusammengesetzt ist 2. Normalform 20 Zur Transformation in 2. Normalform spaltet man das Relationenschema auf: Attribute, die voll funktional abhängig vom Schlüssel sind, bleiben in der Ursprungsrelation R Für alle Abhängigkeiten A i B i von einem Teil eines Schlüssels (A i S) geht man folgendermaßen vor: Lösche die Attribute B i aus R Gruppiere die Abhängigkeiten nach gleichen linken Seiten A i Für jede Gruppe führe eine neue Relation ein mit allen enthaltenen Attributen aus A i und B i A i wird Schlüssel in der neuen Relation

21 2. Normalform einzige partielle Beispiel: Abhängigkeit Lieferant (LName, LAdr, Ware, Preis) Vorgehen: LAdr wird aus Lieferant gelöscht Gruppierung: Nur eine Gruppe mit LName auf der linken Seite es könnten aber noch weitere Attribute von LName abhängig sein (selbe Gruppe) es könnten Attribute von Ware abh. (2. Gruppe) Erzeugen einer Relation mit LName und LAdr Ergebnis: Lieferant (LName, Ware, Preis) LieferAdr (LName, LAdr) Grafische Darstellung Schlüssel Schlüssel A A B 22 (nach Heuer, Saake, Sattler) A B

3. Normalform Motivation: Man möchte zusätzlich verhindern, daß Attribute von nicht-primen Attributen funktional abhängen. Beispiel: Bestellung (AuftrNr, Datum, KName,KAdresse) 001 24.04.02 Meier Innsbruck 002 25.04.02 Meier Innsbruck 003 25.04.02 Huber Hall 004 25.04.02 Huber Hall 005 26.04.02 Huber Hall Redundanz: Kundenadresse mehrfach gespeichert Anomalien? 23 3. Normalform Abhängigkeit von Nicht-Schlüssel-Attribut bezeichnet man häufig auch als transitive Abhängigkeit vom Primärschlüssel weil Abhängigkeit über ein drittes Attribut besteht: AuftrNr KName KAdr Definition: Ein Relationenschema ist in 3. Normalform, wenn für jede nichttriviale Abhängigkeit X A gilt: X enthält einen Schlüsselkandidaten oder A ist prim 24 Beobachtung: 2. Normalform ist mit impliziert

3. Normalform 25 Transformation in 3. Normalform wie vorher Attribute, die voll funktional abhängig vom Schlüssel sind, und nicht abhängig von Nicht-Schlüssel- Attributen sind, bleiben in der Ursprungsrelation R Für alle Abhängigkeiten A i B i von einem Teil eines Schlüssels (A i S) oder von Nicht-Schlüssel-Attribut: Lösche die Attribute B i aus R Gruppiere die Abhängigkeiten nach gleichen linken Seiten A i Für jede Gruppe führe eine neue Relation ein mit allen enthaltenen Attributen aus A i und B i A i wird Schlüssel in der neuen Relation Grafische Darstellung Schlüssel Schlüssel X X A 26 (nach Heuer, Saake, Sattler) X A

Boyce-Codd-Normalform 27 Welche Abhängigkeiten können in der dritten Normalform noch auftreten? Abhängigkeiten unter Attributen, die prim sind, aber noch nicht vollständig einen Schlüssel bilden Beispiel: Autoverzeichnis (Hersteller, HerstellerNr, ModellNr) es gilt 1:1-Beziehung zw. Hersteller und HerstellerNr: Hersteller HerstellerNr HerstellerNr Hersteller Schlüsselkandidaten sind deshalb: {Hersteller, ModellNr} {HerstellerNr, ModellNr} Schema in 3. NF, da alle Attribute prim sind. Boyce-Codd-Normalform Trotzdem können auch hier Anomalien auftreten 28 Definition: Ein Schema R ist in Boyce-Codd-Normalform, wenn für alle nichttrivialen Abhängigkeiten X A gilt: X enthält einen Schlüsselkandidaten von R Die Zerlegung ist teilweise schwieriger. Man muß auf die Verlustlosigkeit achten. Verlustlose Zerlegung nicht immer möglich.

Verlustlose Zerlegung 29 Eine Zerlegung von R in R 1,..., R n ist verlustlos, falls sich jede mögliche Ausprägung r von R durch den natürlichen Join der Ausprägungen r 1,...,r n rekonstruieren läßt: r = r 1... r n Beispiel für eine nicht-verlustlose Zerlegung: In der Relation Einkauf wird beschrieben, welche Waren ein Kunde (exklusiv) bei welchem Anbieter bezieht (d.h. es gelte Kunde, Ware Anbieter): Einkauf Anbieter Meier Meier Bauer Ware Eier Milch Milch Kunde Schmidt Huber Schmidt Verlustlose Zerlegung Eine mögliche Zerlegung in die Relationen Lieferant und Bedarf ergibt: Lieferant Anbieter Meier Meier Bauer Kunde Schmidt Huber Schmidt Bedarf Ware Eier Milch Milch Kunde Schmidt Huber Schmidt Diese Zerlegung ist nicht verlustlos, da die Rekonstruktion von Einkauf als natürlicher Join von Lieferant und Bedarf mißlingt, d.h. Lieferant Bedarf Einkauf 30

Verlustlose Zerlegung Im konkreten Beispiel erhält man zusätzliche (unerwünschte) Tupel: Lieferant Bedarf Anbieter Ware Kunde Meier Meier Meier Bauer Bauer Eier Milch Milch Milch Eier Schmidt Schmidt Huber Schmidt Schmidt 31 Verlustlose Zerlegung 32 Hinreichendes Kriterium für Verlustlosigkeit: Eine (binäre) Zerlegung von R mit den funktionalen Abhängigkeiten F in R 1 und R 2 ist verlustlos, wenn mindestens eine der folgenden funktionalen Abhängigkeiten auf der Basis von F herleitbar ist: R 1 R 2 R 1 R 1 R 2 R 2 Im Beispiel gilt nur die nicht-triviale Abhängigkeit Kunde, Ware Anbieter nicht aber eine der beiden Abhängigkeiten, welche die Verlustlosigkeit garantieren würden: Kunde Anbieter Kunde Ware

Abhängigkeitserhalt. Zerlegung Eine Zerlegung von R in R 1,...,R n ist abhängigkeitserhaltend, wenn die Überprüfung aller funktionalen Abhängigkeiten F auf R lokal auf den R i erfolgen kann, ohne daß Joins berechnet werden müssen. Es gibt dann keine übergreifenden Abhängigkeiten F über die lokalen F i hinaus und für die Menge der funktionalen Abhängigkeiten F auf R gilt: F = F 1... F n 33 Abhängigkeitserhalt. Zerlegung 34 Beispiel: Bank (Filiale, Kunde, Betreuer) Funktionale Abhängigkeiten: Betreuer Filiale Kunde, Filiale Betreuer Schema ist nicht in BCNF, da das Attribut Betreuer keinen Schlüssel enthält. Zerlegung in BCNF: Personal (Filiale, Betreuer) Kunde (Kunde, Betreuer) Diese Zerlegung ist... - verlustlos (d.h. Personal Kunden = Bank), da Betreuer Betreuer, Filiale gilt. - nicht abhängigkeitserhaltend, da Kunde, Filiale Betreuer verlorengegangen ist.

Synthesealgorithmus für 3NF Synthesealgorithmus für 3NF Der sogenannte Synthesealgorithmus ermittelt zu einem gegebenen Relationenschema R mit funktionalen Abhängigkeiten F eine Zerlegung in Relationen R 1,, R n, die folgende Kriterien erfüllt: R 1,, R n ist eine verlustlose Zerlegung von R. Die Zerlegung ist abhängigkeitserhaltend. AlleR i (1 i n) sind in dritter Normalform. 35 Synthesealgorithmus für 3NF Der Synthese-Algorithmus arbeitet in 4 Schritten: 1. Bestimme die kanonische Überdeckung F c zu F, d.h. eine minimale Menge von FDs, die die selben (partiellen und transitiven) Abhängigkeiten wie F beschreiben 2. Erzeugung eines neuen Relationenschemas aus F c 3. Rekonstruktion eines Schlüsselkandidaten 4. Elimination überflüssiger Relationen 36

Synthesealgorithmus für 3NF 37 Bestimmung der kanonischen Überdeckung der Menge der funktionalen Abhängigkeiten: 1. Linksreduktion der FDs A B, um partielle Abhängigkeiten zu entfernen: Für jedes α A, ersetze die Abhängigkeit A B durch (A α) B, falls α auf der linken Seite überflüssig ist, d.h. falls B schon durch (A α) determiniert ist. 2. Rechtsreduktion der (verbliebenen) FDs A B zur Entfernung transitiver Abhängigkeiten: Für jedes β B, ersetze die Abhängigkeit A (B-β) durch, falls β auf der rechten Seite überflüssig ist, d.h. falls β schon durch andere Abhängigkeiten determiniert ist. 3. Entfernung von rechts-leeren funktionalen Abhängigkeiten A, die bei der Rechtsreduktion möglicherweise entstanden sind. 4. Zusammenfassen von Abhängigkeiten mit gleichen linken Seiten, so daß jede linke Seite nur einmal vorkommt: Ersetze die Abhängigkeiten A B 1,, A B m durch A (B 1 B m ). Synthesealgorithmus für 3NF 38 2. Erzeugung eines neuen Relationenschemas aus F c : Erzeuge ein Relationenschema R A = (A B) Ordne dem Schema R A die FDs F A = {(A B ) F c A B R A } zu. 3. Rekonstruktion eines Schlüsselkandidaten: Falls eines der in Schritt 2. erzeugten Schemata R A einen Schlüsselkandidaten von R enthält, sind wir fertig. Ansonsten wähle einen Schlüsselkandidaten κ R aus und erzeuge das zusätzliche Schema R A = κ mit F A =. 4. Elimination überflüssiger Relationen: Eliminiere diejenigen Schemata R A die in einem anderen Schema R A enthalten sind: R A R A

Synthesealgorithmus für 3NF 39 Beispiel: Einkauf (Anbieter, Ware, WGruppe, Kunde, KOrt, KLand, Kaufdatum) Schritte des Synthesealgorithmus: 1. Kanonische Überdeckung F c der funktionalen Abhängigkeiten: Kunde, WGruppe Anbieter Anbieter WGruppe Ware WGruppe Kunde KOrt KOrt KLand 2. Erzeugen der neuen Relationenschemata und ihrer FDs: Bezugsquelle (Kunde, WGruppe, Anbieter) {} Lieferant (Anbieter, WGruppe) {Anbieter WGruppe} Produkt (Ware, WGruppe) {Ware WGruppe} Adresse (Kunde, KOrt) {Kunde KOrt} Land (KOrt, KLand) {KOrt KLand} 3. Da keine dieser Relationen einen Schlüsselkandidaten der ursprünglichen Relation enthält, muß noch eine eigene Relation mit dem ursprünglichen Schlüssel angelegt werden: Einkauf (Ware, Kunde, Kaufdatum) 4. Da die Relation Lieferant in Bezugsquelle enthalten ist, können wir Lieferant wieder streichen. Schlussbemerkungen Ein gut durchdachtes E/R-Diagramm liefert bereits weitgehend normalisierte Tabellen Normalisierung ist in gewisser Weise eine Alternative zum E/R-Diagramm Extrem-Ansatz: Universal Relation Assumption: Modelliere alles zunächst in einer Tabelle Ermittle die funktionalen Abhängigkeiten Zerlege das Relationenschema entsprechend (der letzte Schritt kann auch automatisiert werden: Synthesealgorithmus für die 3. Normalform) 40

Schlussbemerkungen 41 Normalisierung kann schädlich für die Performanz sein, weil Joins sehr teuer auszuwerten sind Nicht jede FD berücksichtigen: Abhängigkeiten zw. Wohnort, Vorwahl, Postleitzahl Man kann SQL-Integritätsbedingungen formulieren, um Anomalien zu vermeiden (Trigger, siehe später) Aber es gibt auch Konzepte, Relationen so abzuspeichern, dass Join auf bestimmten Attributen unterstützt wird ORACLE-Cluster Zusammenfassung 42 Implikation 1. Normalform: Alle Attribute atomar 2. Normalform: Keine funktionale Abhängigkeit eines Nicht- Schlüssel-Attributs von Teil eines Schlüssels 3. Normalform: Zusätzlich keine nichttriviale funktionale Abhängigkeit eines Nicht-Schlüssel-Attributs von Nicht-Schlüssel-Attributen Boyce-Codd-Normalform: Zusätzlich keine nichttriviale funktionale Abhängigkeit unter den Schlüssel-Attributen