35
Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS 1

Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

Embed Size (px)

Citation preview

Page 1: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Übungsblatt 4Erläuterungen

Wintersemester 15/16 1

Page 2: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Aufgabe 1Relationales Datenbankmodell

Wintersemester 15/16 2

Page 3: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS 3

Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen

Wintersemester 15/16

Kunde(KundenNr, Name, Adresse)

Pkw(FahrzeugNr, Farbe, Baujahr)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*, Telefon)

Page 4: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS 4

Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen

Wintersemester 15/16

Kunde(KundenNr, Name, Adresse)

Pkw(FahrzeugNr, Farbe, Baujahr)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*, Telefon)

Problem: Nichtatomare Attribute

Page 5: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 2 – Nichtatomare Attribute auflösen

Wintersemester 15/16 5

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

Page 6: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösen1:1-Beziehungen

Wintersemester 15/16 6

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

Page 7: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösen1:N-Beziehungen

Wintersemester 15/16 7

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

Page 8: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösen1:N-Beziehungen

Wintersemester 15/16 8

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

Page 9: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen

Wintersemester 15/16 9

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

Page 10: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen

Wintersemester 15/16 10

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

Page 11: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen

Wintersemester 15/16 11

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

hasst(KundenNr, HSt)

Page 12: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen

Wintersemester 15/16 12

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

hasst(KundenNr, HSt)

bevorzugt(KundenNr, HSt)

Page 13: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen

Wintersemester 15/16 13

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

hasst(KundenNr, HSt)

bevorzugt(KundenNr, HSt)

beteiligt_an(Mutter,Tochter)

Page 14: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 4 – Logische Prüfung des Modells

Wintersemester 15/16 14

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

hasst(KundenNr, HSt)

bevorzugt(KundenNr, HSt)

beteiligt_an(Mutter,Tochter)

Page 15: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 4 – Logische Prüfung des Modells

Wintersemester 15/16 15

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

hasst(KundenNr, HSt)

bevorzugt(KundenNr, HSt)

beteiligt_an(Mutter,Tochter)

Die KartenNr in PKW?!

Eigene Relation

für Miete semantisch

sinnvoll

Page 16: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen

Wintersemester 15/16 16

Kunde(KundenNr, Name)

hat_Adresse(KundenNr, Strasse, Ort, PLZ)

Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)

Hersteller(Name, Hauptsitz)

Werkstatt(Name, FaxNr*)

hat_telefon(WerkstattName, TelefonNr)

empfiehlt(HSt,WSt)

hasst(KundenNr, HSt)

bevorzugt(KundenNr, HSt)

beteiligt_an(Mutter,Tochter)

Telefonnummern-Sharing?!

Page 17: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 4 – Kardinalitäten durch Optionalität retten

• „Nulloption“ auf der N-Seite in 1:N-Beziehungen bereits

vorhanden

• „Nulloption“ in N:M bereits vorhanden

PKW.KdNr bleibt als sinnvoll übrig

• Weitere Attribute optional vorstellbar (eigenes Modell überprüfen):

• PKW.Farbe?

• Vermietung.KartenNr?

• Attribute in hat_Adresse?

• Hersteller.Hauptsitz?

Wintersemester 15/16 17

Page 18: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung Schritt 5 – Kardinalitäten (und anderes) durch Integritätsbedingungen retten

• In Vermietung darf ein konkreter Kunde nur höchstens dreimal

auftreten

• In beteiligt_an darf ein konkreter Hersteller nicht gleichzeitig als

Mutter und Tochter auftreten (Gewährleistung von Zyklenfreiheit)

• In Werkstatt.Telefon sollte jede Telefonnummer nur einmal

auftreten?!? (und andere Miniwelt-Spezifika)

Wintersemester 15/16 18

Page 19: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Aufgabe 2Stücklisten

Wintersemester 15/16 19

Page 20: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung in relationales Modell

Wintersemester 15/16 20

Page 21: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Überführung in relationales Modell

Wintersemester 15/16 21

Bauteil(Bezeichnung, Preis)

Stückliste(Oberteil, Unterteil, Anzahl)

Page 22: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Relationsschema und Relationen

Bauteil Bezeichnung Preis

Wintersemester 15/16 22

Stückliste Oberteil Unterteil Anzahl

Page 23: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Relationsschema und Relationen

Bauteil Bezeichnung Preis

A 1,00

B 2,00

C 3,00

D 2,00

E 4,00

X 5,00

Y 5,50

Z 9,99

Wintersemester 15/16 23

Stückliste Oberteil Unterteil Anzahl

Page 24: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Relationsschema und Relationen

Bauteil Bezeichnung Preis

A 1,00

B 2,00

C 3,00

D 2,00

E 4,00

X 5,00

Y 5,50

Z 9,99

Wintersemester 15/16 24

Stückliste Oberteil Unterteil Anzahl

X A 1

X B 1

X Z 1

B E 7

A C 4

A D 8

A E 1

E Z 3

D Y 5

C Y 4

Page 25: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Referenzielle Integrität I

• Im Allgemeinen nur solche Instanzen einer Datenbank erlaubt, deren

Relationen die definierten Integritätsbedingungen erfüllen.

• Integritätsbedingungen sind deklarativ: Sie definieren die zulässigen

Instanzen, ohne Aussagen zur konkreten Umsetzung.

• Z.B. Fremdschlüsselbedingungen

• keine defekten Verweise zwischen den Tupeln in den Tabellen

Referentielle Integrität

• Z.B. Trigger

• Regeln für Aktionen zur Gewährleistung der Integrität

• Auch für Behandlung von Verletzungen.

Wintersemester 15/16 25

Page 26: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Referenzielle Integrität II

• „Definition der Umsetzung“ über referential Actions: Mögliche referentielle

Aktionen, wenn das Tupel, auf das sich der Fremdschlüssel bezieht,

gelöscht (ON DELETE) bzw. geändert (ON UPDATE) wird:

Wintersemester 15/16 26

Page 27: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Referenzielle Integrität III

• Anwendbarkeit im Beispiel

Wintersemester 15/16 27

Page 28: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Aufgabe 3Flüsse

Wintersemester 15/16 28

Page 29: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Lösung mit zwei Relationen

Wintersemester 15/16 29

Page 30: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Lösung mit zwei Relationen

Wintersemester 15/16 30

Fluss(Name, Länge)

mündet_in(Hauptfluss, Nebenfluss, Ort)

Sind in dem Modell Flüsse darstellbar, die in keinen anderen Fluss münden?

Nullwerte sind schon wegen der Modellierung nicht erlaubt!

Page 31: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Lösung mit einer Relation

Wintersemester 15/16 31

Fluss(Name, Länge, Einmündungsfluss, Ort)

Sind in dem Modell Flüsse darstellbar, die in keinen anderen Fluss münden?

Fluss(Name, Länge, Einmündungsfluss*, Ort*)

Page 32: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Aufgabe 4Relationen

Wintersemester 15/16 32

Page 33: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS 33

Zu a)

• Kreuzprodukt (kartesisches Produkt) sind alle

Kombinationsmöglichkeiten der Domänenwerte, aus

MatrNr x Fach x Semester

• Summe: 2 * 2 * 3 = 12 Elemente

• Ergebnis:

(4711, Informatik, 1), (4711, Informatik, 2), (4711, Informatik, 3),

(4711, Biologie, 1), (4711, Biologie, 2), (4711, Biologie, 3),

(79005, Informatik, 1), (79005, Informatik, 2), (79005, Informatik, 3),

(79005, Biologie, 1), (79005, Biologie, 2), (79005, Biologie, 3)

Wintersemester 15/16

Page 34: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Zu b)

• Die Kombinationsmöglichkeiten berechnen

sich zum Beispiel mit 2n, wobei n die Anzahl

der Elemente des kartesischen Produktes ist.

• 212 = 4096

Wintersemester 15/16 34

Page 35: Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

DBIS

Zu c)

• MatrNr als Schlüssel MatrNr muss eindeutig sein

• Ein Beispiel in Mengenschreibweise:

R={(4711,Informatik,1), (79005, Informatik,2)}

• Ein Beispiel als Tabelle:

Wintersemester 15/16 35

4711 Informatik 1

79005 Informatik 2