datenbanken unit 6: normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/ss2019/unit6.pdf ·...

70
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung Datenbanken Unit 6: Normalisierung Ronald Ortner 1. IV. 2019 Ronald Ortner

Upload: others

Post on 06-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

DatenbankenUnit 6: Normalisierung

Ronald Ortner

1. IV. 2019

Ronald Ortner

Page 2: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Outline

1 Organisatorisches

2 Zur Erinnerung: Funktionale Abhängigkeit

3 Datenbank-NormalisierungZerlegung von Relationen

4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform

Ronald Ortner

Page 3: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Outline

1 Organisatorisches

2 Zur Erinnerung: Funktionale Abhängigkeit

3 Datenbank-NormalisierungZerlegung von Relationen

4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform

Ronald Ortner

Page 4: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Organisatorisches

Diese Woche Wissensüberprüfung(Stoff: Joins)

D.i. letzte Wissensüberprüfung vor Ostern

Ronald Ortner

Page 5: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Outline

1 Organisatorisches

2 Zur Erinnerung: Funktionale Abhängigkeit

3 Datenbank-NormalisierungZerlegung von Relationen

4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform

Ronald Ortner

Page 6: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Funktionale Abhängigkeit

Definition (funktionale Abhängigkeit)

Gegeben sei ein abstraktes relationales Datenbankschema R,sowie (Mengen von) Attribute(n) α, β in R.Wir sagen, dass β funktional abhängig (FD) von α ist, wenn für alleRealisierungen R of R:Immer wenn zwei Tupel (Zeilen) dieselben Werte für α haben, sohaben sie auch gleiche Werte für β.

Notation: α→ β

Ronald Ortner

Page 7: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Funktionale Abhängigkeit

Beispiel:

A B C

a1 b2 c1a2 b1 c6a3 b3 c4a1 b2 c5a2 b1 c3a4 b2 c7

Ronald Ortner

Page 8: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Outline

1 Organisatorisches

2 Zur Erinnerung: Funktionale Abhängigkeit

3 Datenbank-NormalisierungZerlegung von Relationen

4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform

Ronald Ortner

Page 9: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Datenbankdesign bisher:

zeichne Entitäten, Relationen, und Attribute in ein ER-Diagrammleite aus dem ER-Diagramm ein Datenbankschema ab

Nun beschäftigen wir uns mit einem verfeinerten Zugang(’Normalisierung’).

Ronald Ortner

Page 10: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Zerlegung von Relationen

Idee der Normalisierung:Zerlege Relation R in kleinere Relationen R1, . . .Rn.

Dabei soll die Zerlegung gewisse Eigenschaften erfüllen:Verlustlosigkeit:R kann aus R1, . . .Rn rekonstruiert werden.Erhaltung von FDs:Die funktionalen Abhängigkeiten von R bleiben in R1, . . .Rnerhalten.

Ronald Ortner

Page 11: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit

Betrachten Zerlegung von R in zwei Relationen R1,R2.Um Verlustlosigkeit zu haben, benötigen wir zumindest R = R1 ∪R2.

Darüber hinaus möchten wir:

Definition (Verlustlosigkeit)

Eine Zerlegung von R in R1,R2 ist verlustlos, wenn für RealisierungenR von R (und für entsprechende Zerlegungen R1,R2) gilt:R ist der natürliche Join von R1 und R2, d.h. R = R1 on R2.

Ronald Ortner

Page 12: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Beispiel

Betrachten die folgende Relation/Tabelle:

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

Betrachten folgende Zerlegung:Besucher: {[Gast, Gasthof]}Getränke: {[Gast, Bier]}

Ronald Ortner

Page 13: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Beispiel

Betrachten die folgende Relation/Tabelle:

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

Betrachten folgende Zerlegung:Besucher: {[Gast, Gasthof]}Getränke: {[Gast, Bier]}

Ronald Ortner

Page 14: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Beispiel

Betrachten die folgende Relation/Tabelle:

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

Besucher:

Gast Gasthof

R.Ortner Gösserbräu

F.Huber Zur Post

R.Ortner Zur Post

Ronald Ortner

Page 15: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Beispiel

Betrachten die folgende Relation/Tabelle:

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

Getränke:

Gast Bier

R.Ortner Gösser

F.Huber Gösser

R.Ortner Murauer

Ronald Ortner

Page 16: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Beispiel

Der Join der beiden Relationen Besucher und Getränke enthält zweizusätzliche (falsche) Einträge:

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

R.Ortner Gösserbräu Murauer

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

R.Ortner Zur Post Gösser

Diese Zerlegung ist nicht verlustlos.

Ronald Ortner

Page 17: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Beispiel

Der Join der beiden Relationen Besucher und Getränke enthält zweizusätzliche (falsche) Einträge:

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

R.Ortner Gösserbräu Murauer

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

R.Ortner Zur Post Gösser

Diese Zerlegung ist nicht verlustlos.

Ronald Ortner

Page 18: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Ein Kriterium für Verlustlosigkeit

Man kann ein Kriterium für Verlustlosigkeit über funktionaleAbhängigkeiten(FDs) angeben:

Kriterium für VerlustlosigkeitEine Zerlegung von R mit FDs F in R1,R2 ist verlustlos, wennzumindest eine der beiden folgenden Bedingungen gilt:

(R1 ∩R2)→ R1 ist in F+,(R1 ∩R2)→ R2 ist in F+.

In unserem Beispiel gibt es nur die FD {Gast,Gasthof}→{Bier}, aber esgelten weder {Gast}→{Gasthof} noch {Gast}→{Bier}.

Ronald Ortner

Page 19: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Verlustlosigkeit: Weiteres Beispiel

Betrachten folgende Relation:

Vater Mutter Kind...

......

Die Zerlegung in RelationenVäter: {[Vater, Kind]}Mütter: {[Mutter, Kind]}

ist verlustlos, da beide FDs {Kind}→{Vater} und {Kind}→{Mutter}gelten.

Ronald Ortner

Page 20: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Erhaltung von Abhängigkeiten

Gegeben: Relation R mit FDs F und Zerlegung in R1, . . . ,Rn.

Im Prinzip können FDs auch dann überprüft werden, wenn diese durchdie Zerlegung ’auseinandergerissen’ werden:

Bilde Join der Realisierungen R1, . . .Rn.Überprüfe FDs.

Besser ist allerdings:FDs können in den Relationen R1, . . . ,Rn überprüft werden.

Ronald Ortner

Page 21: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Abhängigkeitserhaltung

D.h., wir hätten gerne:

Definition (Abhängigkeitserhaltung)

Gegeben sei eine Relation R mit FDs F und eine Zerlegung von R inR1, . . . ,Rn, wobei jedes Ri die FDs Fi hat. Diese Zerlegung istabhängigkeitserhaltend , wenn

F ≡ (F1 ∪ . . . ∪ Fn).

Ronald Ortner

Page 22: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 gleichenBundesland.Die PLZ ändert sich nicht innerhalb derselben Straße.Verschiedene Städte haben unterschiedliche PLZ.Städte gehören eindeutig zu einem Bundesland.

Ronald Ortner

Page 23: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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]}Streets: {[PLZ, Straße]}

Diese Zerlegung ist verlustlos, da FD {PLZ}→{Stadt, Bundesland} gilt.

Allerdings, kann die FD {Stadt,Bundesland,Straße}→{PLZ} keiner derneuen Relationen zugeordnet werden. Diese Zerlegung ist nicht abhängigkeitserhaltend.

Ronald Ortner

Page 24: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 Relationenzu zerlegen

Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungs-stufe (1 bis 4).

Ronald Ortner

Page 25: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 Relationenzu zerlegen

Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungs-stufe (1 bis 4).

Ronald Ortner

Page 26: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 Relationenzu zerlegen

Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungs-stufe (1 bis 4).

Ronald Ortner

Page 27: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Normalisierung: Ausblick

Wir hätten gerne:guten Weg, um eine gegebene Relation R in kleinere Relationenzu zerlegen

Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungsstufe(1 bis 4).

Normalisierung erreicht:verlustlose Zerlegungmanchmal auch abhängigkeitserhaltende ZerlegungIn den entstehenden Relationen gibt es nur mehr interessanteFDs zwischen Schlüssel- und Nichtschlüsselattributen.

Ronald Ortner

Page 28: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zerlegung von Relationen

Normalisierung

Alternatives Material zu Normalisierung:

Kapitel 2 vonAndreas Meier: “Relationale und postrelationale Datenbanken”,Springer (innerhalb der MUL frei als pdf zum Download)

Ronald Ortner

Page 29: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Outline

1 Organisatorisches

2 Zur Erinnerung: Funktionale Abhängigkeit

3 Datenbank-NormalisierungZerlegung von Relationen

4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform

Ronald Ortner

Page 30: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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}

Ronald Ortner

Page 31: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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

Ronald Ortner

Page 32: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform

Definition (2NF)Eine Relation ist in 2NF, wenn sie in 1NF ist und jedesNichtschlüsselattribut voll funktional abhängig von jedemKandidatenschlüssel ist.

(Zur Erinnerung:β ist voll funktional abhängig von α, wenn α→ β mit α minimal.)

Intuition: Jedes Attribut im Schlüssel ist wichtig.

Ronald Ortner

Page 33: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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?D.h. welche Werte müssen festgelegt werden, um eine Zeile eindeutigzu identifizieren?

Ronald Ortner

Page 34: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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?D.h. welche Werte müssen festgelegt werden, um eine Zeile eindeutigzu identifizieren?Legt man Matrikelnummer, Lehrveranstaltungsnummer sowie Datumfest, kann es zu den gegebenen Werten nur eine Zeile in der Tabellegeben. {MNr,LvaNr,Datum} bildet (Super-)Schlüssel der Tabelle.

Ronald Ortner

Page 35: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 36: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 37: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 38: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 39: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 40: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 41: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!

Ronald Ortner

Page 42: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

Vname Nname MNr Stkz Studium LvaNr Lva Datum Note

Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen 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!Ronald Ortner

Page 43: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Zweite Normalform

Zweite Normalform – Beispiel

bekommen 2NF, indem Attribute, die von derselben Menge vonSchlüsselattributen abhängen, in einer Tabelle zusammengefasstwerden:

MNr Vname Nname Stkz Studium

LvaNr Lva MNr LvaNr Datum Note

Achtung: Falls es kein Nichtschlüsselattribut gibt, das vom gesamtenSchlüssel abhängt, gibt es eine zusätzliche Tabelle, die nur dieSchlüsselwerte enthält!

Ronald Ortner

Page 44: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 β ⊆ α, d.h. 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 zwischenAttributen gibt, die nicht Teil eines (Kandidaten-/Super-)Schlüsselssind.

Intuition: wollen keine FDs zwischen Nichtschlüsselattributen

Ronald Ortner

Page 45: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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.

Ronald Ortner

Page 46: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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.

Ronald Ortner

Page 47: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Dritte Normalform

Dritte Normalform – Beispiel

Beispiel.Zerlegung, die 3NF erfüllt:

MNr Vname Nname Stkz Stkz Studium

LvaNr Lva MNr LvaNr Datum Note

Ronald Ortner

Page 48: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Dritte Normalform

Synthesealgorithmus für 3NF

Gegeben: Relation R, Menge F von FDsWir wollen: verlustlose und abhängigkeitserhaltende ZerlegungR1, . . . ,Rn, sodass jedes Ri in 3NF ist

Algorithmus:1 Bestimme kanonische Überdeckung Fc von F (siehe Unit 5).2 Lege für jede FD α→ β in Fc 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 einenKandidatenschlüssel κ von R an (mit Fκ = ∅).

4 Lösche Relationen Rα′ , die in anderen Relationen Rα enthaltensind, d.h. Rα′ ⊆ Rα.

Ronald Ortner

Page 49: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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, StudiumStkz→ Studium

LvaNr→ Lva

MNr, LvaNr, Datum→ Note

Ronald Ortner

Page 50: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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, StkzStkz→ Studium

LvaNr→ Lva

MNr, LvaNr, Datum→ Note

Ronald Ortner

Page 51: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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, StkzStkz, StudiumLvaNr, LvaMNr, LvaNr, Datum, Note

Die letzte Tabelle enthält Kandidatenschlüssel der ursprünglichenTabelle, also sind wir fertig.

Ronald Ortner

Page 52: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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, StkzStkz, StudiumLvaNr, LvaMNr, LvaNr, Datum, Note

Die letzte Tabelle enthält Kandidatenschlüssel der ursprünglichenTabelle, also sind wir fertig.

Ronald Ortner

Page 53: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 β ⊆ α, d.h. 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 zwischenNichtschlüsselattributen haben (inkl. Attribute, die Teil einesKandidatenschlüssels sind, aber nicht als Primärschlüssel verwendetwerden).

Ronald Ortner

Page 54: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

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 } einKandidatenschlüssel ist.Wir haben FDs:

{Semester}→{Semesterabk} und{Semesterabk}→{Semester}

Weder Semster noch Semesterabk ist Superschlüssel, nochsind die FDs trivial. Tabelle ist nicht in BCNF

Ronald Ortner

Page 55: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Boyce-Codd Normal Form

Boyce-Codd Normalform – Beispiel

Lösung: neue Tabelle für Semester

MNr LvaNr Semesterabk Datum Note

Semesterabk Semester

Ronald Ortner

Page 56: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Boyce-Codd Normal Form

Dekompositionsalgorithmus für BCNF

Gegeben: Relation R, Menge F von FDsWir wollen: Zerlegung R1, . . . ,Rn in BCNF

Dekompositionsalgorithmus:Initialisiere Z := {R};while (es gibt Ri in Z , das nicht in BCNF) do

1 Finde FD α→ β in Ri mit α ∩ β = ∅ und α 6→ Ri .2 Zerlege Ri in Ri1 := α ∪ β und Ri2 := Ri − β.3 Ersetze Ri in Z durch Ri1 und Ri2, d.h.

Z := (Z − {Ri}) ∪ {Ri1,Ri2}.

Ronald Ortner

Page 57: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Boyce-Codd Normal Form

3NF vs. BCNF

Der Synthesealgorithmus garantiert Zerlegung, dieverlustlos,abhängigkeitserhaltend undin 3NF ist.

Der Dekompositionsalgorithmus garantiert Zerlegung, dieverlustlos undin BCNF ist.

Unglücklicherweise gilt:In einigen Fällen ist eine BCNF Zerlegung nichtabhängigkeitserhaltend. In diesen Fällen gibt man sich mit 3NF zufrieden.

Ronald Ortner

Page 58: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Boyce-Codd Normal Form

3NF vs. BCNF

Der Synthesealgorithmus garantiert Zerlegung, dieverlustlos,abhängigkeitserhaltend undin 3NF ist.

Der Dekompositionsalgorithmus garantiert Zerlegung, dieverlustlos undin BCNF ist.

Unglücklicherweise gilt:In einigen Fällen ist eine BCNF Zerlegung nichtabhängigkeitserhaltend. In diesen Fällen gibt man sich mit 3NF zufrieden.

Ronald Ortner

Page 59: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform und mehrwertige Abhängigkeiten

Beispiel:möchten gerne Sprach- und Sportkurse für Studierende in Tabellespeichern:

MNr Sprachkurs Sportkurs

1335335 Italienisch Schifahren

1335335 Spanisch Fechten

1335335 NULL Fußball

Es ist offensichtlich keine gute Idee, zwei (oder mehr) voneinanderunabhängige N : M Relationen in einer Tabelle zu speichern.

Ronald Ortner

Page 60: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform – Beispiel

Beispiel.Offenbar ist es besser, die beiden Relationen zu trennen:

MNr Sprachkurs

1335335 Italienisch

1335335 Spanisch

MNr Sportkurs

1335335 Schifahren

1335335 Fechten

1335335 Fußball

Ronald Ortner

Page 61: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform – Beispiel

Ein Join der beiden Relationen gibt für jeden Studenten alleKombinationen von Sport- und Sprachkursen.

MNr Sprachkurs Sportkurs

1335335 Italienisch Schifahren

1335335 Italienisch Fechten

1335335 Italienisch Fußball

1335335 Spanisch Schifahren

1335335 Spanisch Fechten

1335335 Spanisch Fußball

Aufgrund der Verlustlosigkeitsbedingung müssen wir verlangen,dass beim Speichern von mehreren N : M Relationen in einer Tabellejeweils alle Kombinationen von Werten abgelegt werden.

Ronald Ortner

Page 62: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform – Beispiel

Ein Join der beiden Relationen gibt für jeden Studenten alleKombinationen von Sport- und Sprachkursen.

MNr Sprachkurs Sportkurs

1335335 Italienisch Schifahren

1335335 Italienisch Fechten

1335335 Italienisch Fußball

1335335 Spanisch Schifahren

1335335 Spanisch Fechten

1335335 Spanisch Fußball

Aufgrund der Verlustlosigkeitsbedingung müssen wir verlangen,dass beim Speichern von mehreren N : M Relationen in einer Tabellejeweils alle Kombinationen von Werten abgelegt werden.

Ronald Ortner

Page 63: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Mehrwertige Abhängigkeiten

Die Abhängigkeiten{MNr}→→ {Sprachkurs} und{MNr}→→ {Sportkurs}

sind sogenannte mehrwertige Abhängigkeiten (MVDs).

Idee: Bei FD α→ β bestimmt gegebener Wert für α eindeutig einenWert für β. Bei MVD α→→ β bestimmt gegebener Wert für α eindeutigeine Menge von Werten für β.

Definition (MVD)β ist mehrwertig abhängig von α (Notation: α→→ β), wenn es für alleTupel mit identischen α-Werten mehrere Tupel mit vertauschtenβ-Werten gibt.

(MVDs sind eine Verallgemeinerung von FDs.)Ronald Ortner

Page 64: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Mehrwertige Abhängigkeiten

Definition (MVD)β ist mehrwertig abhängig von α (Notation: α→→ β), wenn es für alleTupel mit identischen α-Werten mehrere Tupel mit vertauschtenβ-Werten gibt.

Im Beispiel:Wenn es Zeilen

1335335, Italienisch, Fechten und1335335, Spanisch, Fußball

gibt, dann auch Zeilen1335335, Spanisch, Fechten und1335335, Italienisch, Fußball.

Ronald Ortner

Page 65: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform

Idee: Keine Tabelle enthält mehr als eine mehrwertige Relation.

Definition (4NF)Eine Relation R ist in 4NF, wenn sie in 1NF ist und für jede MVDα→→ β mindestens eine der folgenden Bedingungen gilt:

1 die MVD α→→ β ist trivial, d.h. entweder β ⊆ α oder β = R− α,2 α ist ein Superschlüssel von R.

Anmerkung: Jede Relation in 4NF ist auch in BCNF.

Ronald Ortner

Page 66: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform – Beispiel

MNr Sprachkurs Sportkurs

1335335 Italienisch Schifahren

1335335 Italienisch Fechten

1335335 Italienisch Fußball

1335335 Spanisch Schifahren

1335335 Spanisch Fechten

1335335 Spanisch Fußball

MVDs: {MNr}→→ {Sprachkurs} und{MNr}→→ {Sportkurs}

Tabelle nicht in 4NF

Ronald Ortner

Page 67: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Vierte Normalform – Beispiel

Beispiel.

MNr Sprachkurs

1335335 Italienisch

1335335 Spanisch

MNr Sportkurs

1335335 Schifahren

1335335 Fechten

1335335 Fußball

ist in 4NF, weil MVDs {MNr}→→ {Sprachkurs} und{MNr}→→ {Sportkurs} in den beiden Tabellen R1 und R2 trivial:{Sprachkurs} = R1 − {MNr} und{Sportkurs} = R2 − {MNr}

Ronald Ortner

Page 68: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

4NF: Beispiel

Achtung!Folgende Tabelle ist in 4NF.

Gast Gasthof Bier

R.Ortner Gösserbräu Gösser

F.Huber Zur Post Gösser

R.Ortner Zur Post Murauer

Ronald Ortner

Page 69: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

Verallgemeinerter Dekompositionsalgorithmus für 4NF

Gegeben: Relation R, Menge F von MVDsWir wollen: Zerlegung R1, . . . ,Rn in 4NF

Verallgemeinerter Dekompositionsalgorithmus:Initialisiere Z := {R};while (es gibt Ri in Z , das nicht in 4NF) do

1 Finde MVD α→→ β in Ri mit α ∩ β = ∅ und α 6→ Ri .2 Zerlege Ri in Ri1 := α ∪ β und Ri2 := Ri − β.3 Ersetze Ri in Z durch Ri1 und Ri2, d.h.

Z := (Z − {Ri}) ∪ {Ri1,Ri2}.

(Nachdem jede Relation in 4NF auch in BCNF ist, gibt es Fälle, woeine 4NF Zerlegung nicht abhängigkeitserhaltend ist.)

Ronald Ortner

Page 70: Datenbanken Unit 6: Normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/SS2019/Unit6.pdf · 2019-04-09 · OrganisatorischesZur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung

Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung

Vierte Normalform

SQL: Korrelierte Subqueries

Heute:

Korrelierte Subqueries

Ronald Ortner