Erläuterungen Übungsblatt 4

Werbung
Übungsblatt 4
Erläuterungen
Wintersemester 16/17
DBIS
1
Aufgabe 1
Relationales Datenbankmodell
Wintersemester 16/17
DBIS
2
Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen
Kunde(KundenNr, Name, Adresse)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*, Telefon)
Wintersemester 16/17
DBIS
3
Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen
Kunde(KundenNr, Name, Adresse)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*, Telefon)
Problem: Nichtatomare Attribute
Wintersemester 16/17
DBIS
4
Überführung Schritt 2 – Nichtatomare Attribute auflösen
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
Wintersemester 16/17
DBIS
5
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
1:1-Beziehungen
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
Wintersemester 16/17
DBIS
6
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
1:N-Beziehungen
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
Wintersemester 16/17
DBIS
7
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
1:N-Beziehungen
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)
Wintersemester 16/17
DBIS
8
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
N:M-Beziehungen
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)
Wintersemester 16/17
DBIS
9
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
N:M-Beziehungen
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)
Wintersemester 16/17
DBIS
10
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
N:M-Beziehungen
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)
Wintersemester 16/17
DBIS
11
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
N:M-Beziehungen
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)
Wintersemester 16/17
DBIS
12
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
N:M-Beziehungen
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)
Wintersemester 16/17
DBIS
13
Überführung Schritt 4 – Logische Prüfung des Modells
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)
Wintersemester 16/17
DBIS
14
Überführung Schritt 4 – Logische Prüfung des Modells
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)
Die KartenNr in PKW?!
hasst(KundenNr, HSt)
 Eigene Relation
bevorzugt(KundenNr, HSt)
beteiligt_an(Mutter,Tochter)
für Miete semantisch
sinnvoll
Wintersemester 16/17
DBIS
15
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen
N:M-Beziehungen
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)
Telefonnummern-Sharing?!
bevorzugt(KundenNr, HSt)
beteiligt_an(Mutter,Tochter)
Wintersemester 16/17
DBIS
16
Ü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 16/17
DBIS
17
Ü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 16/17
DBIS
18
Aufgabe 2
Stücklisten
Wintersemester 16/17
DBIS
19
Überführung in relationales Modell
Wintersemester 16/17
DBIS
20
Überführung in relationales Modell
Bauteil(Bezeichnung, Preis)
Stückliste(Oberteil, Unterteil, Anzahl)
Wintersemester 16/17
DBIS
21
Relationsschema und Relationen
Bauteil
Bezeichnung
Wintersemester 16/17
Preis
Stückliste
DBIS
Oberteil Unterteil Anzahl
22
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 16/17
Stückliste
DBIS
Oberteil Unterteil Anzahl
23
Relationsschema und Relationen
Bauteil
Bezeichnung
Preis
Stückliste
Oberteil Unterteil Anzahl
A
1,00
X
A
1
B
2,00
X
B
1
C
3,00
X
Z
1
D
2,00
B
E
7
E
4,00
A
C
4
X
5,00
A
D
8
Y
5,50
A
E
1
Z
9,99
E
Z
3
D
Y
5
C
Y
4
Wintersemester 16/17
DBIS
24
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 16/17
DBIS
25
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 16/17
DBIS
26
Referenzielle Integrität III
• Anwendbarkeit im Beispiel
Wintersemester 16/17
DBIS
27
Aufgabe 3
Flüsse
Wintersemester 16/17
DBIS
28
Lösung mit zwei Relationen
Wintersemester 16/17
DBIS
29
Lösung mit zwei Relationen
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!
Wintersemester 16/17
DBIS
30
Lösung mit einer Relation
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*)
Wintersemester 16/17
DBIS
31
Aufgabe 4
Relationen
Wintersemester 16/17
DBIS
32
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 16/17
DBIS
33
Zu b)
• Die Kombinationsmöglichkeiten berechnen
sich zum Beispiel mit 2n, wobei n die Anzahl
der Elemente des kartesischen Produktes ist.
• 212 = 4096
Wintersemester 16/17
DBIS
34
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 16/17
4711
Informatik
1
79005
Informatik
2
DBIS
35
Herunterladen