Übungsblatt 4 Erläuterungen Wintersemester 15/16DBIS1

Preview:

Citation preview

DBIS

Übungsblatt 4Erläuterungen

Wintersemester 15/16 1

DBIS

Aufgabe 1Relationales Datenbankmodell

Wintersemester 15/16 2

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)

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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

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?!

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

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

DBIS

Aufgabe 2Stücklisten

Wintersemester 15/16 19

DBIS

Überführung in relationales Modell

Wintersemester 15/16 20

DBIS

Überführung in relationales Modell

Wintersemester 15/16 21

Bauteil(Bezeichnung, Preis)

Stückliste(Oberteil, Unterteil, Anzahl)

DBIS

Relationsschema und Relationen

Bauteil Bezeichnung Preis

Wintersemester 15/16 22

Stückliste Oberteil Unterteil Anzahl

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

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

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

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

DBIS

Referenzielle Integrität III

• Anwendbarkeit im Beispiel

Wintersemester 15/16 27

DBIS

Aufgabe 3Flüsse

Wintersemester 15/16 28

DBIS

Lösung mit zwei Relationen

Wintersemester 15/16 29

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!

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*)

DBIS

Aufgabe 4Relationen

Wintersemester 15/16 32

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

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

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

Recommended