Blatt 13

Werbung
Lehrstuhl für Praktische Informatik III
Prof. Dr. Carl-Christian Kanne
Email: [email protected]
Norman May
B6, 29, Raum C0.05
68131 Mannheim
Telefon: (0621) 181–2517
Email: [email protected]
Datenbanksysteme 1
Sommersemester 06
13. Übungsblatt
Aufgabe 1
relationales Modell
Im folgenden ist ein (unvollständiges) konzeptuelles Schema und ein zugehöriges
(lückehaftes) ER-Diagramm abgebildet. Vervollständigen Sie jedes Schema mit den
Informationen aus dem jeweils anderen Schema.
lückenhaftes relationales Schema:
• B(b1 , b2 , b3 )
• D(c1 , c2 , d1 )
• J(c1 , c2 , j1 , j2 )
• R(c1 , a1 , b1 , r1 )
• T(b1 , c1 , f1 )
lückenhaftes ER-Schema:
a1
a2
A
N
S
f1
c1
c2
C
F
f2
f3
1
Lösung
vollständiges relationales Schema:
• B(b1 , b2 , b3 )
• D(c1 , c2 , d1 )
• J(c1 , c2 , j1 , j2 )
• R(c1 , a1 , b1 , r1 )
• T(b1 , c1 , f1 )
• F(f1 , f2 , f3 )
• A(c1 , a1 , a2 )
volständiges ER-Schema:
a1
r1
a2
N
A
R
b3
B
T
S
1
N
1
C
c2
M
b2
M
N
c1
b1
f1
F
f2
f3
is−a
D
d1
J
j1
j2
Aufgabe 2
SQL
2
In einer Videothek wird eine relationale Datenbank zur Verwaltung der Videokassetten eingesetzt. In der Relation
• Kassette(Nummer, Filmtitel, Leihgebühr)
wird die Nummer der Kassette, der Titel des Films und die Leihgebühr pro Tag
in D-Mark festgehalten.
• Ausleihe(Name, Kassettennummer, Leihdauer)
wird der Name der ausleihenden Person, die ausgeliehenen Kassettennummern
sowie die Anzahl der Tage, die eine Kassette bereits ausgeliehen ist, gespeichert.
• FilmInfo(Filmtitel, Schauspieler)
wird vermerkt, welche Schauspieler in welchem Film mitwirken.
Formulieren Sie folgende Anfragen in SQL:
Aufgabe 2 a)
Geben Sie alle Filmtitel an, die in dieser Videothek geführt werden. Beachten Sie, daß
einige Kassetten mit demselben Filmtitel bespielt sein können.
Lösung
SELECT DISTINCT Filmtitel
FROM Kassette
Aufgabe 2 b)
Geben Sie die Namen aller Kunden an, die eine Kassette schon länger als zehn Tage
ausgeliehen haben.
Lösung
SELECT Name
FROM Ausleihe
WHERE Leihdauer > 10
Aufgabe 2 c)
Geben Sie die Namen aller Kunden an, die sich Filme ausgeliehen haben, in denen
Sharon Stone mitspielt. Geben Sie in dieser Anfrage auch die Kassettennummer sowie
die jeweilige Leihdauer an.
Lösung
3
SELECT a.Name, a.Leihdauer, a.Kassettennummer
FROM Ausleihe a, FilmInfo f, Kassette k
WHERE f.Filmtitel = k.Filmtitel
AND k.Nummer = a.Kasssettennummer
AND f.Schauspieler LIKE ’%Sharon Stone%’
Aufgabe 2 d)
Geben Sie den maximalen täglichen Gesamtumsatz (Summe aller Leihgebühren) an,
der in dieser Videothek erreicht werden kann.
Lösung
SELECT SUM(Leihgebuehr)
FROM Kassette
Aufgabe 2 e)
Geben Sie für alle Kunden die Summe der zu zahlenden Leihgebühren bei Rückgabe
sämtlicher aktuell ausgeliehener Kassetten an. Sortieren Sie die Liste alphabetisch nach
dem Kundennamen.
SELECT a.Name, SUM(a.Leihdauer * k.Leihgebuehr)
FROM Ausleihe a, Kassette k
WHERE k.Nummer = a.Kasssettennummer
GROUP BY a.Name
ORDER BY a.Name
Aufgabe 3
relationale Algebra und Kalkulus
Aufgabe 3 a)
Geben Sie einen äquivalenten Ausdruck zu (R 1R.A=S.B S) 1S.C=T.D T an, der nur
aus Kreuzprodukten und Selektionen besteht.
Lösung
(σS.C=T.D (σR.A=S.B (R × S)) × T )
Aufgabe 3 b)
4
Geben Sie einen äquivalenten Ausdruck zu (R ⋉R.A=S.B S) an, der nur aus Joins und
Projektionen besteht.
Lösung
πR.∗ (R 1R.A=S.B S)
Aufgabe 3 c)
Übersetzen Sie den folgenden Ausdruck des Domänenkalküls in die relationale Algebra.
{a|a ∈ Abteilung ∧ ∃n ∈ Angestellte(a.AbteilNr = n.AbteilNr∧
a.Ort = n.W ohnort)}
Lösung
πa.∗ ((ρa (Abteilung)) ⋉a.AbteilN r=n.AbteilN r∧a.Ort=n.W ohnort (ρn (Angestellte)
Aufgabe 4
relationale Entwurfstheorie
Gegeben sei ein Relationenschema R(A, B, C, D, E, F ) mit funktionalen Abhängigkeiten FR . Lösen Sie in jeder Teilaufgabe folgende Teilprobleme:
• Geben Sie alle Kandidatenschlüssel von R an.
• In welcher höchsten Normalform ist R?
• Zerlegen Sie R verlustlos in Teilrelationen, so dass die Teilrelationen mindestens
in 3. Normanform sind. Wenn R bereits in der 3. Normalform ist, machen Sie
deutlich, daß keine Zerlegung nötig ist.
Aufgabe 4 a)
FR = {A → B; C → D; E → F }.
Lösung
• Kandidatenschlüssel: ACE
• höchste Normalform: 1NF
• Zerlegung in 3NF: (A,B), (C,D), (E,F), (A,C,E)
5
Aufgabe 4 b)
FR = {A, B → C; B, C → D; C, D → E; D, E → F }.
Lösung
• Kandidatenschlüssel: AB
• höchste Normalform: 2NF
• Zerlegung in 3NF: (A,B,C), (B,C,D), (C,D,E), (D,E,F)
Aufgabe 4 c)
FR = {A → B; A, B → C; A, B, C → D; A, B, C, D → E; A, B, C, D, E → F }.
Lösung
• Kandidatenschlüssel: A
• höchste Normalform: 4NF (die letzten 4 FDs sind nicht links-reduziert)
• Zerlegung in 3NF: keine Zerlegung nötig
Aufgabe 4 d)
FR = {A → B, C, D, E, F ; B → C, D, E, F ; C → D, E, F ; D → E, F ; E → F }.
Lösung
• Kandidatenschlüssel: A
• höchste Normalform: 2NF
• Zerlegung in 3NF: (A,B), (B,C), (C,D), (D,E), (E,F)
Aufgabe 5
Fehlerbehandlung
6
Aufgabe 5 a)
Nennen Sie drei Fehlerklassen, die in der Recovery behandelt werden und erläutern
Sie diese kurz.
Lösung
• lokaler Fehler in einer noch nicht festgeschrieben Transaktion
• Fehler mit Hauptspeicherverlust
• Fehler mit Hintergrundspeicherverlust
Aufgabe 5 b)
Erläutern Sie kurz den Unterschied zwischen den Strategien force und ¬ force beim
Einbringen von Änderungen einer Transaktion.
Lösung
Die force-Strategie erzwingt das ausschreiben aller von einer Transaktion geänderten
Seiten, wenn die Transaktion ein commit ausführt, die ¬ force-Strategie erzwingt dies
nicht.
Bei Verwendung der force-Strategie muß niemals ein Redo ausgeführt werden. Somit
müssen auch keine Redo-Informationen protokolliert werden.
Aufgabe 5 c)
Erläutern Sie kurz, was sich hinter dem WAL-Prinzip verbirgt.
Lösung
WAL steht für “write-ahead-logging”. Das WAL verlangt die Einhaltung von 2
Regeln:
1. Bevor eine Transaktion festgeschrieben wird (commit), müssen alle “zu ihr gehörenden” Log-Einträge ausgeschrieben werden.
2. Bevor eine modifizierte Seite ausgekagert werden darf, müssen alle Log-Einträge,
die zu dieser Seite gehören, ausgeschrieben werden.
Aufgabe 5 d)
Welcher Mechanismus der Recovery stellt die Idempotenz der Redo-Phase sicher.
7
Lösung
Auf jeder Seite wird die LSN der letzten Änderung der Seite eingetragen. Alle Änderungen mit kleinerer LSN sind damit auch auf der Seite enthalten. Somit muß ein Redo
noch ausgeführt werden. Änderungen mit größerer LSN sind noch nicht in der Datenbasis. Somit muß kein Redo ausgeführt werden.
Aufgabe 6
Mehrbenutzersynchronisation
Abbildung 1 zeigt die Beziehungen von Historienklassen zueinander. Zeigen Sie,
daß alle Mengen in diesem Diagramm nicht leer sind, d.h. geben Sie Beispiele für die
Historien H1 bis H9 an.
alle Historien
H9
RC
SR
H8
ACA
H7
ST
H6
serielle Historien
H1
H2
H3
H4
H5
Abbildung 1: Beziehungen von Historienklassen zueinander
Lösung
H1 : r8 [x] w8 [x] r8 [y] r9 [y] r9 [x] w9 [y] c9 w8 [y] c8
H2 : r8 [x] w8 [x] r8 [y] r9 [y] r9 [x] w9 [y] w8 [y] c8 c9
H3 : r1 [x] r10 [x] w1 [x] w4 [x] c1 c4 w10 [x] c10
H4 : r6 [x] r6 [y] r7 [y] w6 [x] w6 [y] c6 w7 [y] c7
H5 : r1 [x] w1 [x] c1 r2 [y] w2 [y] c2
8
H6 : r1 [x] w1 [x] r3 [y] c1 w3 [x] c3
H7 : r1 [x] w1 [x] w4 [x] c1 c4 r5 [x] w5 [y] c5
H8 : r1 [x] w1 [x] r5 [x] w5 [y] c1 c5
H9 : r1 [x] w1 [x] r5 [x] w5 [y] c5 c1
9
Herunterladen