Sie sind auf Seite 1von 5

Umbruch von Rafael

Version 1 10.03.20 SS 2019 06.08.2019


Böhm
Datenbanksysteme
Dauer: 120 min. Lösung: keine Bestanden mit: ? P.
Bemerkung: Bonuspunkte aus SQL­Übung

1 Aufgabe 1: ER-Modellierung (15 Punkte)


a) Gegeben ist das in Abbildung 1 dargestellte ER-Modell. Die Primärschlüssel sind durch
Unterstreichen gekennzeichnet. Die Kardinalitätsangaben sind Teilnehmerkardinalitäten.

Semester ID Name

[1,*] [1,1] [0,*]


Name Dozent hält Lehrveranstaltung
[0,*]
[1,*] [1,*]
Telefon-
nummer
ist
vergibt Voraussetzung
Note
Matrikel- Student [1,*]
nummer

Name
Note

Abbildung 1: Gegebenes ER-Modell für Teilaufgabe a).

Überführen Sie das ER-Modell aus Abbildung 1 kapazitätserhaltend in ein relationales


Modell. Optimieren Sie die Relationen dabei soweit wie möglich mit den in der Vorle-
sung vorgestellten Methoden. Kennzeichnen Sie Primärschlüssel durch Unterstreichen.
Kennzeichnen Sie einen Fremdschlüssel durch einen Pfeil zu dem Schlüssel, auf den
sich der Fremdschlüssel bezieht.
Hinweis: Verwenden Sie die auf dem Antwortblatt vorgegebene Struktur. Dort müssennicht alle Felder
nicht alle Felder ausgefüllt werden. (6 Punkte)
b) Zeichnen Sie ein EER-Diagramm des Entitätstyps Student, welcher die Attribute Na-
me, Matrikelnummer und vorherige Hochschule besitzt. Matrikelnummer ist dabei der
Studenten die Spezi
Primärschlüssel. Vorherige Hochschule ist ein optionales Attribut. Weiterhin gibt es für
Studenten die Spezialisierung Alumnus mit dem Attribut Exmatrikulationsdatum. (2 Punkte)
c) Zeichen Sie jeweils ein EER-Diagramm mit den Entitätstypen Lehrveranstaltung, Vor-
lesung, Seminar und Praktikum. Lehrveranstaltung hat ein Attribut ID, die anderen drei
Entitätstypen haben jeweils ein Attribut Name. Benennen Sie außerdem jeweils die not-
wendige EER-Modellierungstechnik (Typkonstruktor) für die folgenden Sachverhalte:

Diagramm i. Eine Lehrveranstaltung ist immer entweder eine Vorlesung oder ein Semi-
nar oder ein Praktikum (also genau eins von den dreien).
Diagramm ii. Vorlesung, Seminar und Praktikum können eine Lehrveranstaltung sein,
müssen es aber nicht (Beispiele - sollen nicht gezeichnet werden! - sind Vorlesungen
an der Kinder-Uni oder Seminare für die Öffentlichkeit).

Kennzeichnen Sie Primärschlüssel. Es dürfen keine Entitätstypen oder Attribute wegge-


lassen werden.
(4 Punkte)

Datenbanksysteme 1 © fsmi.uni­karlsruhe.de fsmi.kit fsmikit


Böhm SS 2019 E­Mail: info­klausuren@fsmi.uni­karlsruhe.de
d) i. Definieren Sie Fremdschlüsselbedingung.
ii. Was unterscheidet eine totale Partitionierung von der gewöhnlichen Partitionierung?
iii. Welche Kriterien muss ein Schlüsselkandidat erfüllen?
(3 Punkte)
Aufgabe 2 – SQL (13 Punkte)
Die Firma UniCorn stellt Plüsch-Einhörner her. Sie verwaltet ihre Mitarbeiter und deren mo-
natlichen Gehälter mit einer SQL-Datenbank. Ein Ausschnitt aus dem Inhalt der Relationen
folgt:
Gehaltsklassen (GK) Mitarbeiter (MA) Anstellungen (Anst)
ID Gehalt ID VName NName Ort MA ID GK ID seit bis
1 5.000 1 Meredith Grey Seattle 1 2 1.6.19 15.2.22
2 3.000 2 Alex Karev Seattle 2 2 15.1.98 1.9.20
3 1.500 3 Sherlock Holmes London 3 4 1.12.09 31.8.19
4 300 4 Richard Castle New York 4 1 1.11.95 31.6.25

Erläuterungen:

• Nehmen Sie sinnvolle Datentypen und Schlüsseldefinitionen an.

• Die Daten in den Tabellen sind exemplarisch, geben Sie für die unten gestellten
Aufgaben aber immer generelle Lösungen an! Alle Aufgaben lassen sich mit SQL-
Konstrukten lösen, die in der Vorlesung vorgestellt wurden.

• Sie dürfen in Ihren Lösungen die jeweils in den Klammern angegebenen Abkürzungen
für die Relationen verwenden.

a) Geben Sie an, wie viele Anstellungsverträge (Relation Anst) im aktuellen Jahr auslaufen,
und welche Gehaltssumme UniCorn dadurch monatlich einspart. Gehen Sie davon aus,
dass keine Verträge verlängert und keine neuen Mitarbeiter eingestellt werden.
(2 Punkte)

b) Geben Sie für jede Gehaltsklasse an, wie viele Angestellte in dieser Gehaltsklasse ange-
stellt sind.
(2,5 Punkte)
c) UniCorn möchte die Gehaltsverteilung pro Ort im Unternehmen analysieren lassen.
Hierfür beauftragt sie einen externen Dienstleister. Aus Datenschutzgründen stellt
UniCorn dem Dienstleister eine privatisierte Sicht auf die Daten zur Verfügung, auf der
der Dienstleister anschließend beliebige Anfragen ausführen darf.

(i) Erstellen Sie eine materialisierte Sicht Private(Ort, Gehalt). Sie enthält für jeden
Mitarbeiter ein Tupel. Zur Privatisierung wird dem Wert des Attributs Gehalt je-
weils eine Laplace-Zufallszahl hinzu addiert. Der Scale der Laplace-Verteilung λ
entspricht der maximalen Gehaltsdifferenz zwischen zwei Gehaltsklassen.
(3,5 Punkte)
Hinweis: Gehen Sie davon aus, dass eine Funktion Lap(λ) existiert, die eine Zufalls-
zahl aus der Laplace-Verteilung mit Scale λ zurückgibt.
(ii) Nehmen Sie an, der Dienstleister führt eine Anfrage auf der Sicht Private aus, die
die monatliche Gehaltssumme je Ort ausgibt. Geben Sie den absoluten Fehler in der
Gehaltssumme im Vergleich zu der wahren Gehaltssumme für jeden Ort aus, der
sich durch die Addition der Zufallszahlen ergibt.
(3,5 Punkte)

Datenbanksysteme 2 © fsmi.uni­karlsruhe.de fsmi.kit fsmikit


Böhm SS 2019 E­Mail: info­klausuren@fsmi.uni­karlsruhe.de
d) Betrachten Sie die folgenden Ausdrücke in relationaler Algebra und Anfragen, und
beantworten Sie die dazu gestellte Frage kurz. Es sind keine Begründungen erforderlich.

(i) Gegeben sei der folgende Ausdruck in relationaler Algebra:


πGK ID (σOrt = ’Seattle’ (MA ⊲⊳MA.ID = Anst.MA ID Anst))
Geben Sie an, welches Ergebnis der Relationale-Algebra-Ausdruck auf obiger
Beispiel-Datenbank zurückliefert.
(0,5 Punkte)
(ii) Gegeben sei die folgende SQL-Anfrage:
SELECT * FROM MA WHERE Ort = ’London’ AND Ort = ’New York’
Wie viele Ergebnistupel liefert die Anfrage auf obiger Beispiel-Datenbank?
(0,5 Punkte)
(iii) Gegeben sei der folgende SQL-Ausdruck:
UPDATE GK SET Gehalt = Gehalt * 0.9
Was leistet dieser Ausdruck?
(0,5 Punkte)
Aufgabe 3 – Relationentheorie (17 Punkte)
a) Gegeben sei die Relation R(A, B, C) mit (0, 0, 0) als einzigem Tupel und der folgenden
Menge an funktionalen Abhängigkeiten:
F = {C → B
B → A}

Welche der folgenden Tupel können in R mit F eingefügt werden?


(1,1,0) (1,0,1) (0,1,1) (1,1,1)
(2 Punkte)

b) Gegeben sei die Relation R(A, B, C, D, E, F, G, H) mit der folgenden Menge an funk-
tionalen Abhängigkeiten:
F = {BC → F
D→E
G → AH
C → G}
Basierend auf F , sind folgende Aussagen richtig oder falsch? Begründen Sie.

Aussage Antwort Begründung

Für die Teilrelation R1 (B, C, D, E) ist BC


ein Schlüssel-Kandidat.

Die Teilrelation R1 (B, C, D, E) ist in der


zweiten Normalform.

Die Dekomposition von R in


R1 (B, C, D, E), R2 (C, F, H) und
R3 (B, C, D, E, F ) ist verbundtreu.

Die Dekomposition von R in


R1 (B, C, D, E), R2 (C, F, H), R3 (A, G, H)
und R4 (C, G) ist abhängigkeitstreu.

(6 Punkte)
Datenbanksysteme 3 © fsmi.uni­karlsruhe.de fsmi.kit fsmikit
Böhm SS 2019 E­Mail: info­klausuren@fsmi.uni­karlsruhe.de
c) Gegeben sei ein Kalkül K (Ableitungsregeln) zur Berechnung der vollständigen Hülle
von funktionalen Abhängigkeiten:

KR1 : { } A→A
KR2 : {A → B, B → C} A→C
KR3 : {A → BC} A→B

(i) Erweitern Sie den K-Kalkül zu einem nicht minimalen Kalkül, sodass Sie damit
die A-Regel (Akkumulation), {X → Y Z, Z → V W }  X → Y ZV aus dem RAP-
Kalkül ableiten können. Begründen Sie, dass Ihr erweiterter Kalkül nicht minimal
ist.
Hinweis: Minimal heißt in diesem Zusammenhang, dass keine Regel des erweiterten
Kalküls weggelassen werden kann, ohne die Vollständigkeit zu verletzen.
(ii) Geben Sie die Ableitung der A-Regel mit dem erweiterten Kalkül an.

(3 Punkte)

d) Gegeben seien die Relationen R und S. Der Join von R mit S wird nur anhand eines
Attributs durchgeführt, welches dem letzten Attribut von R und dem ersten Attribut
von S entspricht. Die Attribute von R sind daher (a1 , a2 , a3 ) und von S (a3 , a4 ). Q ist
eine weitere Relation mit dem gleichen Schema wie S.

(i) Schreiben Sie in relationaler Algebra einen äquivalenten Ausdruck zu R ⊲⊳ S,


ohne den Join-Operator zu benutzen. Sie können alle anderen Operatoren benutzen
(in dem Fall: kartesisches Produkt ×, Projektion π, Selektion σ, Umbenennung β,
Vereinigung ∪, Durchschnitt ∩, Differenz −).
(ii) Schreiben Sie in relationaler Algebra einen äquivalenten Ausdruck zu Q ∩ S, ohne
den Durchschnitts-Operator zu benutzen. Sie können alle anderen Operatoren
benutzen (in dem Fall: kartesisches Produkt ×, Join ⊲⊳, Projektion π, Selektion σ,
Umbenennung β, Vereinigung ∪, Differenz −).
(iii) Ist die folgende Aussage richtig oder falsch? Begründen Sie Ihre Antwort kurz.
R ⊲⊳ (S ∩ Q) = (R ⊲⊳ S) ∩ (R ⊲⊳ Q)

(6 Punkte)

Aufgabe 4 – Transaktionsverwaltung (15 Punkte)

a) Gegeben sind folgende partielle Historien:


H1 = w1 [x] w2 [x] w3 [x] w2 [x] c2
H2 = w1 [x] r2 [x] c1 w3 [x] c3 w2 [x] c2
H3 = w3 [x] w1 [x] r1 [y] w2 [x] c1 w3 [y] r3 [x] w2 [y] c2
H4 = w3 [x] w1 [x] r1 [y] w2 [x] c1 w3 [y] r3 [x] c3 w2 [y] a2

Geben Sie die Serialisierbarkeitsgraphen SG(H1 ), SG(H2 ), SG(H3 ) und SG(H4 ) an.
Beschriften Sie die Kanten der Serialisierbarkeitsgraphen mit den Objekten der konfli-
gierenden Operationen. Begründen Sie für jede Historie, ob sie serialisierbar ist.
(4 Punkte)

Datenbanksysteme 4 © fsmi.uni­karlsruhe.de fsmi.kit fsmikit


Böhm SS 2019 E­Mail: info­klausuren@fsmi.uni­karlsruhe.de
b) (i) Geben Sie die Definition der Rücksetzbarkeitsklasse STRICT an.
(1 Punkt)
(ii) Gegeben seien die folgenden Transaktionen:

T1 = r1 [x] r1 [y] w1 [x] a1


T2 = w2 [x] w2 [y] r2 [z] w2 [z] a2
T3 = r3 [y] w3 [z] w3 [y] c3

Basierend auf den drei Transaktionen seien folgende Historien definiert:


H1 = w2 [x] w2 [y] r2 [z] w2 [z] r3 [y] a2 w3 [z] w3 [y] c3 r1 [x] r1 [y] w1 [x] a1

H2 = r1 [x] w2 [x] w2 [y] r3 [y] r2 [z] w2 [z] a2 r1 [y] w1 [x] a1 w3 [z] w3 [y] c3

H3 = r3 [y] r1 [x] r1 [y] w1 [x] a1 w2 [x] w2 [y] w3 [z] r2 [z] w2 [z] a2 w3 [y] c3
Alle drei Historien sollen auf Konflikte und Rücksetzbarkeit analysiert werden. Auf
den Antwortblättern ist dafür je eine Tabelle für H1 , H2 und H3 vorgesehen. Gehen
Sie beim Ausfüllen jeder Tabelle wie folgt vor:
• In der ersten Spalte notieren Sie das Konfliktpaar und zwar in der Reihenfolge,
wie die beiden Operationen in der jeweiligen Historie auftreten.
• Geben Sie in der zweiten Spalte an, welche Transaktionsreihenfolge durch das
Konfliktpaar impliziert wird. Verwenden Sie die Notation Ti < Tj , um auszu-
drücken, dass Ti vor Tj erfolgt.
• Notieren Sie in der dritten Spalte, ob das Konfliktpaar gegebenenfalls zu ei-
ner reads-from (RF)-, einer overwrite (OW)-Beziehung oder zu keiner der beiden
Beziehungen (“–”) führt.
• Zum Ausfüllen der drei letzten Spalten sollen die drei Rücksetzbarkeitsbedingun-
gen rücksetzbar (RC), kaskadenfrei-rücksetzbar (ACA) und strikt-rücksetzbar
(S TRICT) betrachtet werden. Überprüfen Sie für jeden Konflikt, ob er die Rücksetzbar-
keitsbedingungen erfüllt. Benutzen Sie die Symbole “X”, wenn eine Bedingung
erfüllt ist und “–” für eine verletzte Bedingung.
(7,5 Punkte)
Welche der Historien H1 , H2 , H3 sind konfliktäquivalent?
(0,5 Punkte)

c) (i) Geben Sie die Definition von prefix-commit-closed an.


(ii) Begründen Sie, warum es wichtig ist, dass die Konflikt-Serialisierbarkeit prefix-
commit-closed ist.
(2 Punkte)

Datenbanksysteme 5 © fsmi.uni­karlsruhe.de fsmi.kit fsmikit


Böhm SS 2019 E­Mail: info­klausuren@fsmi.uni­karlsruhe.de

Das könnte Ihnen auch gefallen