Datenbanken 6: Normalisierung

Ähnliche Dokumente
Datenbanken 6: Normalisierung

Datenbanken Unit 5: Funktionale Abhängigkeit

Datenbanken Unit 7: Normalisierung ctd.

Relationale Entwurfstheorie (Teil 2)

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell

8. Tutorübung zu Grundlagen: Datenbanken

3. Normalform. Redundanz: Land mehrfach gespeichert Anomalien?

Übung 9. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Rückblick: Relationales Modell

Zerlegung einer Relation

Rückblick: Relationale Entwurfstheorie

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

Normalisierung II. Ziele

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

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

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

Datenbanken Unit 11: Erstellen u. Ändern von Datenbanken und Tabellen Verbindung von Java auf Datenbanken

Grundlagen: Datenbanken

Datenbanksysteme 2015

Relationale Entwurfstheorie

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

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

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

Relationale Entwurfstheorie

Relationale Datenbanken

Datenbanken (Übung 12)

Kapitel DB:VII (Fortsetzung)

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

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

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

DBS1: Übungsserie Normalformen und relationale Algebra Structured Query Language (SQL)

Datenmanagement Übung 5

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

Relationale Entwurfstheorie

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

Kapitel 7: Normalformen

Datenbanken Unit 2: Das ER-Modell

2. Übungsblatt 3.0 VU Datenmodellierung

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

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

Relationale Entwurfstheor

Datenbanken 1 Sommersemester 2014/

Datenbanken 1. Relationale Entwurfstheorie. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

Cognitive Interaction Technology Center of Excellence

Wir haben folgende Ausprägung der Relation Studenten:

Datenbanken 1. Relationale Entwurfstheorie. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

Relationale Entwurfstheor

Themenübersicht Relationale Entwurfstheorie. Inhalt

Programmierung und Datenbanken II

S.Müllenbach Datenbanken Informationsanalyse Normalformen- 1. Kurse. Name TNR ...

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

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

Verfeinerung des relationalen Schemas

Relationale Entwurfstheorie

Kapitel 7: Normalformen

2. Übungsblatt 3.0 VU Datenmodellierung

Kapitel 7: Normalformen

Datenbanksysteme Übungsblatt 1

Kapitel 7: Normalformen

Datenbanksysteme und Datenmodellierung

7.1.2 Membership-Test - fortgesetzt

Relationale Entwurfstheorie

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

Entwurfstheorie relationaler Datenbanken 7. Entwurfstheorie relationaler Datenbanken

Kapitel 11. Normalisierung

2. Übungsblatt 3.0 VU Datenmodellierung

Kapitel 3: Datenbanksysteme

Einführung in Datenbanksysteme

Wiederholung VU Datenmodellierung

Kapitel 7: Formaler Datenbankentwurf

Datenbanksysteme 1 Sommersemester Juni 2006

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

Grundlagen: Datenbanken

Kapitel DB:VII. VII. Entwurfstheorie relationaler Datenbanken

Relationale Entwurfstheorie. Kapitel / 510

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Musterlösung zur Finalklausur Datenbanksysteme am

Grundlagen: Datenbanken WS 15/16

Kapitel 6 Relationale Entwurfstheorie. Funktionale Abhängigkeiten Normalformen Synthesealgorithmus Dekomposition Mehrwertige Abhängigkeiten

3. Grundlagen relationaler Datenbanksysteme

Datenbankensysteme Aufgabenblatt 2

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

Eigenschaften von Datenbanken, insbesondere

Vorlesung Datenbank-Entwurf Klausur

Veranstaltung Pr.-Nr.: Normalisierung. Veronika Waue WS 07/08

2. Übungsblatt. 3. Dezember Allgemeines. Deadlines. Tutorengespräch. 3.0 VU Datenmodellierung

4.1 Relationale DB-Entwurfstheorie, Normalformen

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

konzeptionelles DB-Design

Normalformen: Sinn und Zweck

Informatik 10 Mar Datenbanken: RDM Normalisierung April 2014

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

Betriebssicherheit durch Datenbank-Normalisierung. S&Z Z EDV Solutions Hochheim Taunusstraße Mainz Fr.-Naumann

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

Normalisierung (Dekomposition)

Czap, Grundlagen betrieblicher IS - 1. Inhalt

Transkript:

Datenbanken 6: Normalisierung 27 III 2017

Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form

SQL Nachbesprechung Zwischentest korrelierte Subqueries

Nachbesprechung Zwischentest unvollständiges GROUP BY Subquery statt WHERE Bedingungen in Subquery

Datenbankdesign bisher: zeichne Entitäten, Relationen, und Attribute in ein ER-Diagramm leite aus dem ER-Diagramm ein Datenbankschema ab Nun beschäftigen wir uns mit einem verfeinerten Zugang ( Normalisierung ) Die Grundlage dafür ist der Begriff der funktionalen Abhängigkeit

Funktionale Abhängigkeit Zur Erinnerung: Definition (funktionale Abhängigkeit) Gegeben sei ein abstraktes relationales Datenbankschema R sowie (Mengen von) Attribute(n) α, β in R Wir sagen, dass β funktional abhängig von α ist (α β), wenn für alle Realisierungen R of R: Immer wenn zwei Tupel (Zeilen) dieselben Werte für α haben, so haben sie auch gleiche Werte für β Idee: Legt man einen Wert für α fest, so ist auch der Wert für β festgelegt α β bedeutet, dass β durch α eindeutig bestimmt wird

Funktionale Abhängigkeit Zur Erinnerung: Definition (funktionale Abhängigkeit) Gegeben sei ein abstraktes relationales Datenbankschema R sowie (Mengen von) Attribute(n) α, β in R Wir sagen, dass β funktional abhängig von α ist (α β), wenn für alle Realisierungen R of R: Immer wenn zwei Tupel (Zeilen) dieselben Werte für α haben, so haben sie auch gleiche Werte für β Achtung: Für unsere Belange ist nur diese Art von Abhängigkeit relevant Andere Formen von Abhängigkeit (zb Korrelation) spielen keine Rolle und dürfen nicht mit funktionaler Abhängigkeit verwechselt werden!

Anomalien in schlecht designten Datenbankschemata Betrachten das folgende Datenbankschema zum Speichern von Studenteninformation: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4

Anomalien in schlecht designten Datenbankschemata Betrachten das folgende Datenbankschema zum Speichern von Studenteninformation: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4 Das ist ein schlecht designtes Datenbankschema, weil

Update-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Studenteninformation aktualisiert wird, müssen mehrere Zeilen geändert werden: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4

Update-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Studenteninformation aktualisiert wird, müssen mehrere Zeilen geändert werden: M_Nr Name Lva_Nr Lva Note 1335123 Adolf Huber 150420 Datenbanken 2 1335123 Adolf Huber 150111 IT I 4 fehleranfällig schlechtere Performance bei Aktualisierungen speichert redundante Information

Einfüge-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn neue Studenteninformation eingefügt wird, ist keine entsprechende Lehrveranstaltungsinformation verfügbar: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4 1635001 Anna Schmied NULL NULL NULL

Lösch-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Informationen von Studenten gelöscht werden, gehen Informationen über Lehrveranstaltungen verloren und umgekehrt: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4

Lösch-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Informationen von Studenten gelöscht werden, gehen Informationen über Lehrveranstaltungen verloren und umgekehrt: M_Nr Name Lva_Nr Lva Note Das passiert auch, wenn zb Informationen von alten Prüfungen gelöscht werden

Zerlegung von Relationen Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form

Zerlegung von Relationen Zerlegung von Relationen Anomalien treten auf, wenn Informationen, die nicht zusammenpassen, in dieselbe Tabelle/Relation gesteckt werden Idee der Normalisierung: Zerlege Relation R in kleinere Relationen R 1, R n

Zerlegung von Relationen Zerlegung von Relationen Anomalien treten auf, wenn Informationen, die nicht zusammenpassen, in dieselbe Tabelle/Relation gesteckt werden Idee der Normalisierung: Zerlege Relation R in kleinere Relationen R 1, R n Dabei soll die Zerlegung gewisse Eigenschaften erfüllen: Verlustfreiheit: R kann aus R 1, R n rekonstruiert werden Erhaltung von FDs: Die funktionalen Abhängigkeiten von R bleiben in R 1, R n erhalten

Zerlegung von Relationen Verlustfreiheit Betrachten Zerlegung von R in zwei Relationen R 1, R 2 Um Verlustfreiheit zu haben, benötigen wir zumindest R = R 1 R 2 Darüber hinaus möchten wir: Definition (Verlustfreiheit) Die Zerlegung von R in R 1, R 2 ist verlustfrei, wenn für Realisierungen R von R (und für entsprechende Zerlegungen R 1, R 2 ): R ist der natürliche Join von R 1 und R 2, dh R = R 1 R 2

Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer

Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer Betrachten folgende Zerlegung: Besucher: {[Gast, Gasthof]} Getränke: {[Gast, Bier]}

Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer Besucher: Gast ROrtner FHuber ROrtner Gasthof Gösserbräu Zur Post Zur Post

Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer Getränke: Gast ROrtner FHuber ROrtner Bier Gösser Gösser Murauer

Zerlegung von Relationen Verlustfreiheit: Beispiel Der Join der beiden Relationen Besucher und Getränke enthält zwei zusätzliche (falsche) Einträge: Gast Gasthof Bier ROrtner Gösserbräu Gösser ROrtner Gösserbräu Murauer FHuber Zur Post Gösser ROrtner Zur Post Murauer ROrtner Zur Post Gösser

Zerlegung von Relationen Verlustfreiheit: Beispiel Der Join der beiden Relationen Besucher und Getränke enthält zwei zusätzliche (falsche) Einträge: Gast Gasthof Bier ROrtner Gösserbräu Gösser ROrtner Gösserbräu Murauer FHuber Zur Post Gösser ROrtner Zur Post Murauer ROrtner Zur Post Gösser Diese Zerlegung ist nicht verlustfrei

Zerlegung von Relationen Ein Kriterium für Verlustfreiheit Man kann ein Kriterium für Verlustfreiheit über funktionale Abhängigkeiten(FDs) angeben: Kriterium für Verlustfreiheit Eine Zerlegung von R mit FDs F in R 1, R 2 ist verlustlos, wenn zumindest eine der beiden folgenden Bedingungen gilt: (R 1 R 2 ) R 1 ist in F +, (R 1 R 2 ) R 2 ist in F + In unserem Beispiel gibt es nur die FD {Gast} {Gasthof,Bier}, aber es gelten weder {Gast} {Gasthof} noch {Gast} {Bier}

Zerlegung von Relationen Verlustfreiheit: Weiteres Beispiel Betrachten folgende Relation: Vater Mutter Kind Die Zerlegung in Relationen Väter: {[Vater, Kind]} Mütter: {[Mutter, Kind]} ist verlustlos, da beide FDs {Kind} {Vater} und {Kind} {Mutter} gelten

Zerlegung von Relationen Erhaltung von Abhängigkeiten Gegeben: Relation R mit FDs F und Zerlegung in R 1,, R n Im Prinzip können FDs auch dann überprüft werden, wenn diese durch die Zerlegung auseinandergerissen werden: Bilde Join der Realisierungen R 1, R n Überprüfe FDs Besser ist allerdings: FDs können in den Relationen R 1,, R n überprüft werden

Zerlegung von Relationen Abhängigkeitserhaltung Dh, wir hätten gerne: Definition (Abhängigkeitserhaltung) Gegeben sei eine Relation R mit FDs F und eine Zerlegung von R in R 1,, R n, wobei jedes R i die FDs F i hat Diese Zerlegung ist abhängigkeitserhaltend, wenn F (F 1 F n )

Zerlegung von Relationen Abhängigkeitserhaltung: Beispiel Stadt Bundesland Strasse PLZ Bruck Stmk Mittergasse 8600 Leoben Stmk Franz Josef Straße 8700 Bruck NÖ Hauptstraße 2460 Wir nehmen an: Es gibt keine zwei Städte mit gleichem Namen im gleichen Bundesland Die PLZ ändert sich nicht innerhalb derselben Straße Verschiedene Städte haben unterschiedliche PLZ Städte gehören eindeutig zu einem Bundesland

Zerlegung von Relationen Abhängigkeitserhaltung: Beispiel Stadt Bundesland Straße PLZ Bruck Stmk Mittergasse 8600 Leoben Stmk Franz Josef Straße 8700 Bruck NÖ Hauptstraße 2460 Betrachten folgende Zerlegung: Städte: {[PLZ, Stadt, Bundesland]} Straßen: {[PLZ, Straße]} Diese Zerlegung ist verlustlos, da FD {PLZ} {Stadt, Bundesland} gilt Allerdings, kann die FD {Stadt,Bundesland,Straße} {PLZ} keiner der neuen Relationen zugeordnet werden Diese Zerlegung ist nicht abhängigkeitserhaltend

Zerlegung von Relationen Normalisierung: Ausblick Wir kennen inzwischen: funktionale Abhängigkeiten (FDs) Eigenschaften guter Zerlegungen (Verlustlosigkeit, Abhängigkeitserhaltung)

Zerlegung von Relationen Normalisierung: Ausblick Wir kennen inzwischen: funktionale Abhängigkeiten (FDs) Eigenschaften guter Zerlegungen (Verlustlosigkeit, Abhängigkeitserhaltung) Wir hätten gerne: guten Weg, um eine gegebene Relation R in kleinere Relationen zu zerlegen

Zerlegung von Relationen Normalisierung: Ausblick Wir kennen inzwischen: funktionale Abhängigkeiten (FDs) Eigenschaften guter Zerlegungen (Verlustlosigkeit, Abhängigkeitserhaltung) Wir hätten gerne: guten Weg, um eine gegebene Relation R in kleinere Relationen zu zerlegen Wir machen dies über: Schritt-für-Schritt Normalisierung Mit jedem Schritt erreichen wir eine höhere Normalisierungsstufe (1 bis 4)

Zerlegung von Relationen Normalisierung: Ausblick Wir hätten gerne: guten Weg, um eine gegebene Relation R in kleinere Relationen zu zerlegen Wir machen dies über: Schritt-für-Schritt Normalisierung Mit jedem Schritt erreichen wir eine höhere Normalisierungsstufe (1 bis 4) Normalisierung erreicht: verlustlose Zerlegung manchmal auch abhängigkeitserhaltende Zerlegung In den entstehenden Relationen gibt es nur mehr interessante FDs zwischen Schlüssel- und Nichtschlüsselattributen

Zerlegung von Relationen Normalisierung Alternatives Material zu Normalisierung: Kapitel 2 von Andreas Meier: Relationale und postrelationale Datenbanken, Springer (innerhalb der MUL frei als pdf zum Download)

Erste Normalform Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form

Erste Normalform Erste Normalform Definition (1NF) Eine Relation ist in 1NF, wenn alle Attribute atomar sind Diese Voraussetzung haben wir bereits gemacht Beispiel einer Tabelle/Relation, die nicht in 1NF: Vater Mutter Kinder Karl Maria {Fritz, Franziska} Ronald Elisabeth {Hannes, Kathrin} Andreas Marianne {Sophia}

Erste Normalform Erste Normalform Beispiel Beispiel einer Tabelle/Relation, die nicht in 1NF: Vater Mutter Kinder Karl Maria {Fritz, Franziska} Ronald Elisabeth {Hannes, Kathrin} Andreas Marianne {Sophia} kann leicht in 1NF konvertiert werden: Vater Mutter Kind Karl Maria Fritz Karl Maria Franziska Ronald Elisabeth Hannes Ronald Elisabeth Kathrin Andreas Marianne Sophia

Zweite Normalform Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form

Zweite Normalform Zweite Normalform Definition (2NF) Eine Relation ist in 2NF, wenn sie in 1NF ist und jedes Nichtschlüsselattribut voll funktional abhängig von jedem Kandidatenschlüssel ist (Zur Erinnerung: β ist voll funktional abhängig von α, wenn α β mit α minimal) Intuition: Jedes Attribut im Schlüssel ist wichtig

Zweite Normalform Zweite Normalform Beispiel Betrachten folgende Tabelle mit Studenteninformationen: (Annahme: nur ein Studium pro Student) Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Wie sieht Schlüssel in dieser Tabelle aus? Dh welche Werte müssen festgelegt werden, um eine Zeile eindeutig zu identifizieren?

Zweite Normalform Zweite Normalform Beispiel Betrachten folgende Tabelle mit Studenteninformationen: (Annahme: nur ein Studium pro Student) Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Wie sieht Schlüssel in dieser Tabelle aus? Dh welche Werte müssen festgelegt werden, um eine Zeile eindeutig zu identifizieren? Legt man Matrikelnummer, Lehrveranstaltungsnummer sowie Datum fest, kann es zu den gegebenen Werten nur eine Zeile in der Tabelle geben {MNr,LvaNr,Datum} bildet (Super-)Schlüssel der Tabelle

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: Nname: Stkz: Studium: Lva: Note:

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: Stkz: Studium: Lva: Note:

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: Studium: Lva: Note:

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: Lva: Note:

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: Note:

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: LvaNr Note:

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: LvaNr Note: MNr, LvaNr, Datum

Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: LvaNr Note: MNr, LvaNr, Datum Diese Tabelle ist nicht in 2NF!

Zweite Normalform Zweite Normalform Beispiel bekommen 2NF, indem Attribute, die von derselben Menge von Schlüsselattributen abhängen, in einer Tabelle zusammengefasst werden: MNr Vname Nname Stkz Studium LvaNr Lva MNr LvaNr Datum Note Falls es kein Nichtschlüsselattribut gibt, das vom gesamten Schlüssel abhängt, gibt es eine zusätzliche Tabelle, die nur die Schlüsselwerte enthält!

Dritte Normalform Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form

Dritte Normalform Dritte Normalform Definition (3NF) Eine Relation ist in 3NF, wenn sie in 1NF ist und für jede FD α β mindestens eine der folgenden Bedingungen gilt: 1 β α, dh die FD α β ist trivial, 2 β ist in einem Kandidatenschlüssel enthalten, 3 α ist ein Superschlüssel Insbesondere ist eine Relation nicht in 3NF, wenn es FDs zwischen Attributen gibt, die nicht Teil eines (Kandidaten-/Super-)Schlüssels sind Intuition: wollen keine FDs zwischen Nichtschlüsselattributen

Dritte Normalform Dritte Normalform Beispiel Beispiel MNr Vname Nname Stkz Studium LvaNr Lva MNr LvaNr Datum Note

Dritte Normalform Dritte Normalform Beispiel Beispiel MNr Vname Nname Stkz Studium LvaNr Lva MNr LvaNr Datum Note Die FD Stkz Studium erfüllt keine der Bedingungen zur 3NF

Dritte Normalform Dritte Normalform Beispiel Beispiel Zerlegung, die 3NF erfüllt: MNr Vname Nname Stkz Stkz Studium LvaNr Lva MNr LvaNr Datum Note

Dritte Normalform Synthesealgorithmus für 3NF Gegeben: Relation R, Menge F von FDs Wir wollen: verlustlose und abhängigkeitserhaltende Zerlegung R 1,, R n, sodass jedes R i in 3NF ist Algorithmus: 1 Bestimme kanonische Überdeckung F c von F (siehe Unit 5) 2 Lege für jede FD α β in F c eine Relation R α := α β an (und bestimme entsprechende Menge von FDs F α ) 3 Wenn eine der Relationen R α einen Kandidatenschlüssel von R enthält, sind wir fertig Ansonsten lege weitere Relation R κ für einen Kandidatenschlüssel κ von R an (mit F κ = ) 4 Lösche Relationen R α, die in anderen Relationen R α enthalten sind, dh R α R α

Dritte Normalform Synthesealgorithmus Beispiel Betrachten folgende Tabelle mit Studenteninformationen: (Annahme: nur ein Studium pro Student) Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Funktionale Abhängigkeiten: MNr Vname, Nname, Stkz, Studium Stkz Studium LvaNr Lva MNr, LvaNr, Datum Note

Dritte Normalform Synthesealgorithmus Beispiel Betrachten folgende Tabelle mit Studenteninformationen: (Annahme: nur ein Studium pro Student) Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Kanonische funktionale Abhängigkeiten: MNr Vname, Nname, Stkz Stkz Studium LvaNr Lva MNr, LvaNr, Datum Note

Dritte Normalform Synthesealgorithmus Beispiel Betrachten folgende Tabelle mit Studenteninformationen: (Annahme: nur ein Studium pro Student) Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Tabellen: MNr, Vname, Nname, Stkz Stkz, Studium LvaNr, Lva MNr, LvaNr, Datum, Note

Dritte Normalform Synthesealgorithmus Beispiel Betrachten folgende Tabelle mit Studenteninformationen: (Annahme: nur ein Studium pro Student) Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Tabellen: MNr, Vname, Nname, Stkz Stkz, Studium LvaNr, Lva MNr, LvaNr, Datum, Note Die letzte Tabelle enthält Kandidatenschlüssel der ursprünglichen Tabelle, also sind wir fertig

Boyce-Codd Normal Form Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form

Boyce-Codd Normal Form Boyce-Codd Normalform Definition (BCNF) Eine Relation ist in BCNF, wenn sie in 1NF ist und für jede FD α β mindestens eine der folgenden eine der folgenden Bedingungen gilt: 1 β α, dh die FD α β ist trivial, 2 α ist ein Superschlüssel Unterschied zu 3NF: β darf nicht mehr Teil eines Kandidatenschlüssels sein Intuition: Wie für 3NF wollen wir für BCNF keine FDs zwischen Nichtschlüsselattributen haben (inkl Attribute, die Teil eines Kandidatenschlüssels sind, aber nicht als Primärschlüssel verwendet werden)

Boyce-Codd Normal Form Boyce-Codd Normalform Beispiel Beispiel MNr LvaNr Semester Semesterabk Datum Note WS 2015/16 W15 Die Relation zwischen Semester und Semesterabk ist 1:1, sodass { MNr, LvaNr, Semester, Datum } ein Kandidatenschlüssel ist Wir haben FDs: {Semester} {Semesterabk} und {Semesterabk} {Semester} Weder Semster noch Semesterabk ist Superschlüssel, noch sind die FDs trivial Tabelle ist nicht in BCNF

Boyce-Codd Normal Form Boyce-Codd Normalform Beispiel Lösung: neue Tabelle für Semester MNr LvaNr Semesterabk Datum Note Semesterabk Semester

Boyce-Codd Normal Form Dekompositionsalgorithmus für BCNF Gegeben: Wir wollen: Relation R, Menge F von FDs Zerlegung R 1,, R n in BCNF Dekompositionsalgorithmus: Initialisiere Z := {R}; while (es gibt R i in Z, das nicht in BCNF) do 1 Finde FD α β in R i mit α β = und α R i 2 Zerlege R i in R i1 := α β und R i2 := R i β 3 Ersetze R i in Z durch R i1 und R i2, dh Z := (Z {R i }) {R i1, R i2 }

Boyce-Codd Normal Form 3NF vs BCNF Der Synthesealgorithmus garantiert Zerlegung, die verlustlos, abhängigkeitserhaltend und in 3NF ist Der Dekompositionsalgorithmus garantiert Zerlegung, die verlustlos und in BCNF ist

Boyce-Codd Normal Form 3NF vs BCNF Der Synthesealgorithmus garantiert Zerlegung, die verlustlos, abhängigkeitserhaltend und in 3NF ist Der Dekompositionsalgorithmus garantiert Zerlegung, die verlustlos und in BCNF ist Unglücklicherweise gilt: In einigen Fällen ist eine BCNF Zerlegung nicht abhängigkeitserhaltend In diesen Fällen gibt man sich mit 3NF zufrieden