Sie sind auf Seite 1von 24

SS 2019 – IBB4C

Datenmanagement
Fr 17:00 – 18:30
R 1.006

Vorlesung #6

Relationale Entwurfstheorie
SS 2019 – IBB4C
Datenmanagement
Einschub Fr 17:00 – 18:30
R 1.006

 Wegen 99.995% in SLAs gab eine kurze


Unterbrechung
 2 Folien sind übrig geblieben …
 Fangen wir an mit der letzten

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 2


Generalisierung in SS 2019 – IBB4C
Datenmanagement
SQL Developer Data Modeller Fr 17:00 – 18:30
R 1.006

 Angestellte definieren
 Assistenten und Professoren
definieren und Angestellte als
Supertyp wählen

24.04.2020 Vorlesung #5 Überführung ER --> R 3


Generalisierung in SS 2019 – IBB4C
Datenmanagement
SQL Developer Data Modeller Fr 17:00 – 18:30
R 1.006

 aus dem logischen ins


relationale Modell entwickelt

24.04.2020 Vorlesung #5 Überführung ER --> R 4


SS 2019 – IBB4C
Datenmanagement
Fr 17:00 – 18:30
R 1.006

24.04.2020 Vorlesung #5 Überführung ER --> R 5


SS 2019 – IBB4C
Datenmanagement
„Fahrplan“ Fr 17:00 – 18:30
R 1.006

 Nach der Überführung ER  Relational


 Wie gut ist meine relationale Datenbank?
 Klassischer Zugang ... Kemper Kapitel 6?
 Oder intuitiv?
 1. Normalform
 2. Normalform
 3. Normalform
 Verletzungen der Normalformen
 Normalisierung
03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 6
SS 2019 – IBB4C

Wie gut ist mein Entwurf? Datenmanagement


Fr 17:00 – 18:30
R 1.006

 Das relationale Modell bzw. das relationale Schema


wird in einem real existierenden DBMS umgesetzt
 Wie gut ein Modell ist, lässt sich mit Hilfe der
relationalen Entwurfstheorie und der Normalformen
bestimmen
 Wenn das konzeptuelle Schema (ER-Diagramm)
„vernünftig“ ist und die Überführung in das relationale
Schema unter der Beachtung der
Transformationsregeln durchgeführt wurde, ist das
relationale Schema auch „gut“ (meistens in der dritten
Normalform 3NF)
 „gut“ – Im Hinblick auf die relationale Theorie nicht auf
die „Sinnhaftigkeit im Anwendungsfall“
03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 7
SS 2019 – IBB4C

Schlechte Entwurfe Datenmanagement


Fr 17:00 – 18:30
R 1.006

 Jetzt wollen wir aber ein paar schlechte


Entwurfe kennenlernen ...
 !!! Kommen in der Praxis sehr oft vor, z.B. in
Form von „konsolidierten“ Excel-Reports !!!
 Kemper 6.15 - ...

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 8


SS 2019 – IBB4C
Datenmanagement
... Eine Excel-Tabelle ... Fr 17:00 – 18:30
R 1.006

Filialen_ID Filiale Stadt Region Artikel Marke Farben


001 in OEZ München Süd Trikot Deutschland Adidas weiß, rot, schwarz
023 in PEP München Süd Trikot Italien Puma blau, weiß
072 Fußgängerzone München Süd Trikot Frankreich Adidas blau
023 in PEP München Süd Trikot Deutschland Adidas weiß, rot, schwarz
072 Fußgängerzone München Süd Trikot Italien Puma blau, weiß
001 in OEZ München Süd Trikot Frankreich Adidas blau, weiß
072 Fußgängerzone München Süd Trikot Deutschland Adidas weiß, rot, schwarz
072 Fußgängerzone München Süd Trikot Italien Puma blau

 Man möchte wissen, in welchen Filialen weiße Trikots


verfügbar sind  geht nur mit LIKE ‘%weiß%‘, bei vielen
Datensätzen sehr aufwändig, da keine Indizierung möglich
 Alle Informationen zu Trikots müssen vielfach (pro Filiale)
gespeichert werden, statt einmalig

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 9


SS 2019 – IBB4C
Datenmanagement
Normalisierung – 1.NF Fr 17:00 – 18:30
R 1.006

Filialen_ID
Filiale Stadt Region Artikel Marke Farben
Filialen_ID
Filialen_ID
001 in OEZ München Filiale Artikel
Süd Trikot Stadt
Deutschland Adidas Farben
Region
weiß, rot, schwarz Artikel Marke Farben
023 in PEP München Süd Trikot Italien Puma blau, weiß
001
001
072 Trikot
Fußgängerzone München inSüd
OEZ Deutschland
Trikot Frankreich München
Adidas weiß,
blau rot, schwarz
Süd Trikot Deutschland Adidas weiß, rot, schwarz
023 in PEP München Süd Trikot Deutschland Adidas weiß, rot, schwarz
023
023in OEZ München inSüdPEP
072Fußgängerzone München Süd Trikot
Trikot Italien
Italien München
Puma blau, weiß blau,
Süd weiß Trikot Italien Puma blau, weiß
001 Trikot Frankreich Adidas blau, weiß
072
Fußgängerzone München Trikot
Süd TrikotFrankreich
Deutschland Adidas weiß, rot, schwarz blau
072
072
072
Fußgängerzone
Fußgängerzone München Süd
München Süd Trikot Frankreich
Filialen_IDAdidasArtikel blau Farbe
023 Trikot Trikot Italien
Deutschland Puma blau
weiß, rot, schwarz
023 in PEP München Süd Trikot Deutschland 001 Adidas weiß, rot,
Trikot Deutschland schwarz
weiß
072 Trikot Italien blau, weiß
072
001 Fußgängerzone
Trikot Frankreich München blau, Süd weiß Trikot Italien 001 Puma blau, weiß
Trikot Deutschland rot
001
072 in OEZDeutschland
Trikot München weiß,Süd 001 Trikot
Trikot Frankreich Adidas
rot, schwarz Deutschland
blau, weiß schwarz
072
072 Fußgängerzone Trikot Italien München Süd blau Trikot Deutschland Adidas weiß, rot, schwarzblau
023 Trikot Italien
072 Fußgängerzone München Süd 023
Trikot Italien Puma Trikot Italienblau weiß
072 Trikot Frankreich blau
023 Trikot Deutschland weiß
023 Trikot Deutschland rot
023 Trikot Deutschland schwarz
072 Trikot Italien weiß
072 Trikot Italien blau
001 Trikot Frankreich weiß
001 Trikot Frankreich blau
072 Trikot Deutschland weiß
072 Trikot Deutschland rot
072 Trikot Deutschland schwarz
072 Trikot Italien blau

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 10


SS 2019 – IBB4C
Datenmanagement
Normalisierung – 2.NF Fr 17:00 – 18:30
R 1.006

Filialen_ID Filiale Stadt Region Artikel Marke


001 in OEZ München Süd Trikot Deutschland Adidas
023 in PEP München Süd Trikot Italien Puma
072 Fußgängerzone München Süd Trikot Frankreich Adidas
023 in PEP München Süd Trikot Deutschland Adidas
072 Fußgängerzone München Süd Trikot Italien Puma
001 in OEZ München Süd Trikot Frankreich Adidas
072 Fußgängerzone München Süd Trikot Deutschland Adidas
072 Fußgängerzone München Süd Trikot Italien Puma

Filialen_ID Filiale Stadt Region Artikel Marke


001 in OEZ München Süd Trikot Deutschland Adidas
023 in PEP München Süd Trikot Italien Puma
072 Fußgängerzone München Süd Trikot Frankreich Adidas

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 11


SS 2019 – IBB4C
Datenmanagement
Normalisierung – 3.NF Fr 17:00 – 18:30
R 1.006

Filialen_ID Filiale Stadt Region


001 in OEZ München Süd
023 in PEP München Süd
072 Fußgängerzone München Süd

Filialen_ID Filiale Stadt Stadt Region


001 in OEZ München München Süd
023 in PEP München
072 Fußgängerzone München

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 12


SS 2019 – IBB4C
Datenmanagement
Normalisiertes Schema Fr 17:00 – 18:30
R 1.006

Filialen_ID Filiale Stadt Filialen_ID Artikel Farbe


001 in OEZ München 001 Trikot Deutschland weiß
023 in PEP München 001 Trikot Deutschland rot
072 Fußgängerzone München 001 Trikot Deutschland schwarz
023 Trikot Italien blau
023 Trikot Italien weiß
Stadt Region 072 Trikot Frankreich blau
München Süd 023 Trikot Deutschland weiß
023 Trikot Deutschland rot
023 Trikot Deutschland schwarz
072 Trikot Italien weiß
Artikel Marke 072 Trikot Italien blau
Trikot Deutschland Adidas 001 Trikot Frankreich weiß
Trikot Italien Puma 001 Trikot Frankreich blau
Trikot Frankreich Adidas
072 Trikot Deutschland weiß
072 Trikot Deutschland rot
072 Trikot Deutschland schwarz
072 Trikot Italien blau

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 13


SS 2019 – IBB4C
Datenmanagement
Normalisiertes Schema (2) Fr 17:00 – 18:30
R 1.006

 Man möchte den Stadtteil, statt Stadt führen


(Perlach, Moosach usw.)  jetzt nur einmal pro Zeile
(+): Spart Zeit und Arbeit, schließt Fehler aus!!!
 Man möchte wissen in welchen Filialen weiße Trikots
verfügbar sind  geht ohne LIKE aber man muss
joinen

SELECT DISTINCT F.Filiale


FROM Filialen F, Fil_Art_Farb fab
WHERE fab.Farbe = ‘weiss‘
AND F.Filialen_ID = fab.Filialen_ID;

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 14


Nachteile der SS 2019 – IBB4C
Datenmanagement

Normalisierung
Fr 17:00 – 18:30
R 1.006

 Was ist nun, wenn man alle weißen Adidas Trikots in der Region
München sich anschauen möchte?

SELECT DISTINCT F.Filiale


FROM Filialen F, Fil_Art_Farb fab,
Staedte S, Artikel A
WHERE fab.Farbe = ‘weiss‘
AND s.Region = ‘Süd‘
AND A.Marke = ‘Adidas‘
AND A.Artikel_ID = fab.Artikel_ID
AND F.Filialen_ID = fab.Filialen_ID
AND s.Stadt = F.Stadt;

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 15


(bewusste) SS 2019 – IBB4C
Datenmanagement

Denormalisierung
Fr 17:00 – 18:30
R 1.006

Filialen_ID Filiale Filiealenart Stadt Region Artikel Marke weiß rot schwarz blau
001 in OEZ Einkaufszentrum München Süd Trikot Deutschland Adidas X X X
023 in PEP Einkaufszentrum München Süd Trikot Italien Puma X X
072 Fußgängerzone Innenstadt München Süd Trikot Frankreich Adidas X
023 in PEP Einkaufszentrum München Süd Trikot Deutschland Adidas X X X
072 Fußgängerzone Innenstadt München Süd Trikot Italien Puma X X
001 in OEZ Einkaufszentrum München Süd Trikot Frankreich Adidas X X
072 Fußgängerzone Innenstadt München Süd Trikot Deutschland Adidas X X X
072 Fußgängerzone Innenstadt München Süd Trikot Italien Puma X

 Gleiche Abfrage mit Excel-Filtern ... 

Filialen_ID Filiale Filiealenart Stadt Region Artikel Marke weiß rot schwarz blau
001 in OEZ Einkaufszentrum München Süd Trikot Deutschland Adidas X X X
023 in PEP Einkaufszentrum München Süd Trikot Deutschland Adidas X X X
001 in OEZ Einkaufszentrum München Süd Trikot Frankreich Adidas X X
072 Fußgängerzone Innenstadt München Süd Trikot Deutschland Adidas X X X

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 16


SS 2019 – IBB4C
Sinn und Zweck der Datenmanagement
Fr 17:00 – 18:30
Normalisierung R 1.006

 Das Ziel: Update-Anomalien und Daten-Inkonsistenzen


vermeiden
 Update-Anomalien und Daten-Inkonsistenzen sind die
Folge von unkontrollierten Redundanzen
 Man bemüht sich, Informationen möglichst einmalig zu
speichern
 Ausfallssicherheit und Performance werden durch
kontrollierte Redundanzen (Mehrfachspeicherung) zu
realisieren (Bsp. RAID, Materialisierte Sichten, Star-
Schemata, Replikationen usw.)
 Normalformen sind das Mittel, die Güte eines
relationalen Modells zu bestimmen, sind aber auch auf
andere (nicht relationale Modelle) anwendbar
03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 17
SS 2019 – IBB4C
Datenmanagement
Erste Normalform 1NF Fr 17:00 – 18:30
R 1.006

 Ein „Datensatz“ bzw. Tabellen-Zeile bzw. Tupel darf


nicht ein Attribut enthalten, das aus mehreren
Attributen zusammengesetzt ist bzw. alle Attribute
müssen atomar sein
 Nicht erlaubt sind zusammengesetzte Attribute wie
string x string x integer sondern lediglich atomare wie
string oder integer
 Im relationalen Modell ist es per Definition der Fall
 Kein „Einnisten“ oder „Vererben“ weiterer Attribute in
einem Attribute, wie bei der Objekt-Orientierung

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 18


SS 2019 – IBB4C
Datenmanagement
Erste Nomalform 1NF - Beispiel Fr 17:00 – 18:30
R 1.006

Eltern
Vater Mutter Kinder
Nicht in 1 NF
Johann Martha {Else, Lucie}
Johann Maria {Theo, Josef}
Heinz Martha {Cleo}

Eltern
Vater Mutter Kind
1 NF Johann Martha Else
Johann Martha Lucie
Johann Maria Theo
Johann Maria Josef
Heinz Martha Cleo

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 19


SS 2019 – IBB4C
Datenmanagement
Zweite Normalform 2NF Fr 17:00 – 18:30
R 1.006

 Kommt nur in Frage, wenn wir es mit


zusammengesetzten Schlüsseln zu tun haben!
 2 NF ist dann verletzt, wenn ein Teil des
zusammengesetzten Schlüssels ein Nichtschlüssel-
Attribut bestimmt
 Kemper‘s Beispiel: Studentenbelegungen (Studenten
und Vorlesungen „zusammengemischt“, daher
MatrNr,VorlNr zusammengesetzter Schlüssel)
 MatrNr alleine bestimmt Name  Verstoß gegen 2
NF

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 20


SS 2019 – IBB4C
Datenmanagement
Dritte Normalform 3NF Fr 17:00 – 18:30
R 1.006

 Bei der 2 NF ging es um Attribute die zu


einem zusammengesetzten Schlüssel
gehören
 Bei der 3 NF geht es um Nicht-Schlüssel-
Attribute
 Ein Verstoß gegen die 3NF liegt dann vor,
wenn ein Nicht-Schlüssel-Attribute ein
anderes Nicht-Schlüssel-Attribut bestimmt

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 21


SS 2019 – IBB4C
Datenmanagement
Vierte und Fünfte Normalform Fr 17:00 – 18:30
R 1.006

 Es geht um zusammengesetzte Schlüssen


 Der Sinn: Anzahl der Attribute verringern, die
einen zusammengesetzten Schlüssel
ausmachen

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 22


SS 2019 – IBB4C

Ausblick Vorlesung #7
Datenmanagement
Fr 17:00 – 18:30
R 1.006

 Vertiefung der Relationalen Entwurfstheorie


 Dekomposition
 Verlustlosigkeit
 Abhängigkeitserhaltung
 Normalformen formell
 Synthese-Algorithmus (formale Überführung in die
3. NF)
 Weitere Normalformen und mehrwertige
Abhängigkeiten

03.05.2019 Vorlesung #6 – Relationale Entwurfstheorie 23


SS 2019 – IBB4C
Datenmanagement
Fr 17:00 – 18:30
R 1.006

Vorlesung #6

Ende

Das könnte Ihnen auch gefallen