MUSTERL ¨OSUNG ABDE, BDEF A,BD,DE . . Fc ={ A→BD

Werbung
Gruppe B
Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis
bereit.
PRÜFUNG AUS DATENMODELLIERUNG (181.117) GRUPPE B MUSTERLÖSUNG
Matrikelnr.
Familienname
19. 1. 2011
Vorname
Arbeitszeit: 60 Minuten. Die Aufgaben sind auf den vorgesehenen Blättern zu lösen; Zusatzblätter werden nicht
gewertet.
Aufgabe 1:
(13)
a) Bestimmen Sie für folgendes Relationenschema (R, F ), R = ABCDEF G, alle Schlüssel. Berechnen Sie eine
verlustlose und abhängigkeitstreue Zerlegung in 3NF mit Hilfe des Synthesealgorithmus (F ist schon in kanonischer
Form). Unterstreichen Sie in jeder Relation der Zerlegung einen Schlüssel.
[5]
F = { C→ABDG, BF→A, AC→BG }
RS
R
Schlüssel
CEF . . . . . . .
Zerlegung in 3NF (Einen Schlüssel in jeder Relation unterstreichen)
R1 CABDG . . . . .
R2 BFA . . . . . . .
R5
R6
...........
R3 CEF . . . . . . .
R4
...........
...........
b) Geben Sie für die folgenden Relationenschemata (Ri , Fi ), i ∈ {1, 2}, Ri = ABCDEF G, sämtliche Schlüssel an.
Weiters geben Sie an, welche Normalform sie erfüllen, indem Sie die richtigen Antworten ankreuzen.
[8]
Achtung: pro korrekter Lösung: 1 Punkt, pro falscher Lösung -1 Punkt, insgesamt zumindestens 0 Punkte.
Abhängigkeiten
Schlüssel
3NF
F1 ={ABDE→CFG, DEF→A}
F2 ={B→BEF, DE→AC, A→BDG }
ABDE, BDEF
A,BD,DE . .
ja ×
ja BCNF
nein nein ×
ja ja nein ×
nein ×
Aufgabe 2:
(4)
Gegeben ist ein Relationenschema ABCDEFG und die Menge F von funktionalen Abhängigkeiten. Bestimmen
Sie die kanonische Überdeckung.
F = { BG→F, CG→AE, ABE→D, A→BD, ACEG→AE, CG→D, FG→C }
Fc ={ A→BD, BG→F, CG→AE, FG→C }
Aufgabe 3:
(16)
Eine Reederei bietet ihren Kunden Kreuzfahrten zu den schönsten Orten der Welt an und benötigt dafür eine
Datenbank. Zeichnen Sie aufgrund der vorliegenden Informationen ein ER-Diagramm. Verwenden Sie dabei die
[min,max] Notation. Es sind keine Nullwerte erlaubt.
Jede angebotene Kreuzfahrt wird in der Datenbank vermerkt: Der Name der Kreuzfahrt (NAME) in Kombination mit dem Beginndatum (BEGINN) identifizieren die Kreuzfahrt eindeutig. Zusätzlich ist das Enddatum der
Kreuzfahrtreise (ENDE) bekannt.
Jede Kreuzfahrt besteht aus mehreren Teilstrecken, mindestens allerdings aus drei. Jede Teilstrecke hat eine pro
Kreuzfahrt eindeutige Nummer (NUMMER), welche angibt, um die wievielte Teilstrecke der Kreuzfahrt es sich
handelt. Weiters werden alle angelaufenen Häfen in der Datenbank vermerkt. Von jedem Hafen sind ein eindeutig
identifizierender Name (NAME), der Ort (ORT), das Land (LAND) und der Kontinent (KONTINENT) in dem
sich der Hafen befindet, bekannt. Jede Teilstrecke verläuft von genau einem Hafen zu genau einem anderen Hafen.
Zusätzlich ist bekannt, wann das Schiff ablegt (ABFAHRT) und wann es im Zielhafen ankommt (ANKUNFT).
In der Datenbank speichert man alle Schiffe der Reederei. Ein Schiff hat eine weltweit eindeutige Identifikationsnummer (INO), einen von der Reederei eindeutig vergebenen Namen (NAME), sowie eine bestimmte Klasse
(KLASSE) und ein Ankaufsdatum (ANKAUF). Optional kann zu jedem Schiff ein Schiffsplan (PLAN) gespeichert
werden. Jeder Kreuzfahrt wird genau ein Schiff zugeordnet, mit dem die Fahrt durchgeführt wird. Jedes Schiff bietet zehn bis 600 Kabinen an, welche pro Schiff durch eine Kabinennummer (KNR) eindeutig identifiziert werden.
Zusätzlich sind die Größe der Kabine (GRÖSSE) sowie eine Kabinenbezeichnung (BEZEICHNUNG) bekannt.
Mitarbeiter werden eindeutig identifiziert durch eine ID (MID). Weiters sind Vorname (VORNAME) und Nachname (NACHNAME) bekannt. Man unterscheidet zwischen drei Gruppen von Mitarbeitern: Offizier, Service und
Verwaltung. Bei jeder Kreuzfahrt gibt es mindestens drei Offiziere, die das Schiff steuern sowie beliebig viele
Mitarbeiter aus dem Servicebereich, die auf dem Schiff arbeiten. Pro Kreuzfahrt muss für jeden Offizier bzw.
Servicemitarbeiter gespeichert werden, in welcher Rolle (ROLLE) er auf dieser Kreuzfahrt beschäftigt ist (Ein
Offizier kann beispielsweise als ’Kapitän’, ’Erster Offizier’, ’Steuermann’, ... eingeteilt sein, ein Servicemitarbeiter
als ’Concierge’, ’Koch’, ’Butler’, ...)
In der Datenbank werden alle Buchungen festgehalten: Eine Buchung hat eine eindeutige ID (ID) sowie einen
Gesamtpreis (PREIS) und ein Buchungsdatum (DATUM). Zu jeder Buchung wird genau eine gebuchte Kreuzfahrt
gespeichert.
Reisende werden ebenfalls gespeichert: Diese werden durch ihre Passnummer (PNR) eindeutig identifiziert. Weiters
sind der Vorname (VORNAME), Nachname (NACHNAME) sowie das Geburtsdatum (GEBDAT) bekannt. Pro
Buchung können beliebig viele Reisende beliebig viele Kabinen belegen. Es muss daher in der Datenbank ersichtlich
sein, welcher Reisende bei welcher Buchung welche Kabine belegt.
Aufgabe 4:
Gegeben sind die Relationen R(ABC) mit 8 Tupeln, S(BCD) mit 11 Tupeln und T (CDE) mit 6 Tupeln.
(6)
Geben Sie die minimale bzw. maximale Größe (= Anzahl der Tupel) der durch die folgenden Ausdrücke entstehenden Relationen an:
Ausdruck
R
T
ΠB (ΠBC R ∪ ΠBC S)
ΠD (σA<3 R × S)
min. Ergebnisgröße
max. Ergebnisgröße
8 ..........
8 ..........
0 ..........
48 . . . . . . . .
19 . . . . . . . .
11 . . . . . . . .
Aufgabe 5:
Kreuzen Sie die zuteffende Antwort zu den folgenden Aussagen an.
(6)
1. Es kann in gewissen Relationen vorkommen, dass die Transitivität von Funktionalen Abhängigkeiten (FDs)
nicht gilt. Also es gilt α → β und β → γ, aber nicht α → γ.
wahr falsch ×
2. In SQL werden bei der Vereinigung mittels UNION mehrfach vorkommende Ergebnistupel entfernt.
wahr ×
falsch 3. Um Speicherplatz zu sparen und Redundanzen zu vermeiden, werden immer alle Entitäten bei der Überführung
ins Relationenmodell durch Beziehungen dargestellt.
wahr falsch ×
4. Immer wenn ein Relationenschema in BCNF ist, ist es auch in 3. Normalform.
wahr ×
falsch 5. Der Unterschied zwischen einem Superschlüssel und einem Schlüssel besteht darin, dass der Schlüssel nicht
minimal sein muss.
wahr falsch ×
6. Der Mengendurschnitt R ∩ S lässt sich im Allgemeinen auch wie folgt ausdruecken:
(R × R) ∪ (S × S) R − (S − R) (S × R) − (S × R) R − (R − S) ×
Keine der genannten (Pro korrekter Antwort 1 Punkt, pro inkorrekter Antwort -1 Punkt, pro nicht beantworteter Frage 0 Punkte,
für die gesamte Aufgabe mindestens 0 Punkte)
Gesamtpunkte: 45
Herunterladen