Klausur WS 06/07 - WI

Werbung
Klausur Datenbanksysteme 2
05. Februar 2007
HS Fulda FB AI
Prof. Dr. Peter Peinl
E107, G202
Klausur
Bachelor AI
Modul
Datenbanksysteme 2
Teil
Datenbanksysteme 2
Wintersemester 2006/2007
Datum: 05. Februar 2007
Ort: E107, G202
Name:
.................................................
Vorname:
.................................................
Matrikelnr.:
....................
Unterschrift:
.................................................
Note:
....................
Aufgabe
Erreichte
Punktzahl
Maximale
Punktzahl
1
2
3
4
5
6
Σ
8
12
15
8
8
8
60
Hinweise:
1. Tragen Sie sofort Name, Vorname und Matrikelnummer ein und unterschreiben Sie die
Klausur.
2. Kontrollieren Sie die Vollständigkeit der verteilten Unterlagen:
• Die Klausur besteht aus 9 fortlaufend numerierten Seiten, am Ende befindet sich
ein leeres Blatt (Seite 9).
• Die zweite Aufgabe wird zusätzlich zum Text in der Klausur als loses Blatt verteilt,
um Ihnen das Blättern beim Eintragen der Lösungen zu ersparen.
3. Legen Sie Personalausweis und Studentenausweis zur Kontrolle parat.
4. Die Bearbeitungszeit beträgt 60 Minuten.
5. Tragen Sie die Lösungen in die bei der jeweiligen Aufgabenstellung freigelassenen Räume
ein. Für den Fall, daß der dort vorgesehene Platz nicht ausreichen sollte, setzen Sie die Bearbeitung auf dem leeren Blatt am Ende der Klausur fort. Kennzeichnen Sie deutlich die
Aufgabe, zu der die Lösung gehört. Zusätzliche Blätter gibt es bei den Aufsichtführenden.
6. Es sind keine Hilfsmittel erlaubt, Unleserliches zählt als nicht vorhanden !
7. Aufsuchen der Toilette ist nur nach Absprache gestattet. Die Klausur ist vor dem
Verlassen des Raumes bei dem/der Aufsichtsführenden abzugeben !
Die Mitnahme einer Klausur auf die Toilette stellt einen Täuschungsversuch dar
(Note 5.0).
- 1 -
Klausur Datenbanksysteme 2
05. Februar 2007
Aufgabe 1:
HS Fulda FB AI
Prof. Dr. Peter Peinl
E107, G202
(Information retrieval)
(8 Punkte)
Betrachten Sie die folgenden 6 Dokumente (ein Buchstabe repräsentiert ein Wort).
D1 = {a a a b b b}
D4 = {b c a a a a}
D2 = {e e e e e e}
D5 = {a b c a b c}
D3 = {d d a a b b}
D6 = {a a a d d d}
a) Das Information Retrieval System liefert als Ergebnis auf die Frage „b and c“ die Dokumente D1, D3, D4 und D5 zurück. Ordnen Sie alle 6 Dokumente einer der Kategorien des
folgenden Rasters zu und berechnen Sie Recall und Precision.
(4 Punkte)
Recall:
relevant
nicht relevant
Gefunden
Precision:
nicht gefunden
b) Das Information Retrieval System liefert als Ergebnis auf die Frage „b and c or d“ die Dokumente D1, D3, und D5 zurück. Ordnen Sie alle 6 Dokumente einer der Kategorien des
folgenden Rasters zu und berechnen Sie Recall und Precision.
(4 Punkte)
Recall:
relevant
gefunden
Precision:
nicht gefunden
- 2 -
nicht relevant
Klausur Datenbanksysteme 2
05. Februar 2007
HS Fulda FB AI
Aufgabe 2: (SQL-Anfragen)
Prof. Dr. Peter Peinl
E107, G202
(12 Punkte)
Tragen Sie die Ergebnisse der folgenden SQL-Anfragen in die Tabellengerüste ein.
T
A
1
2
3
4
5
6
7
8
9
10
11
12
B
blau
blau
rosa
orange
orange
orange
orange
magenta
magenta
violett
violett
violett
C
10
40
30
10
20
50
50
50
40
10
20
10
a) SELECT B, COUNT(*) FROM T GROUP BY B HAVING SUM(C) <= 40 (2 Punkte)
b) SELECT B, COUNT(*) FROM T WHERE C > 35
GROUP BY B HAVING COUNT(*) >=2
(2 Punkte)
c) SELECT COUNT(*) FROM T T1, T T2
(1 Punkt)
d) SELECT COUNT(*) FROM T T1, T T2 WHERE T1.A <= 5
AND T2.C = 50
(2 Punkte)
e) SELECT B FROM T
WHERE A = (SELECT C FROM T WHERE C > 30)
(1 Punkt)
f) SELECT LENGTH(B), COUNT(*) FROM T
GROUP BY LENGTH(B)
(1 Punkt)
g) SELECT A FROM T
WHERE (B, C) IN (SELECT B, C FROM T WHERE A IN (1,11))
(1 Punkt)
h) SELECT A FROM T
WHERE B IN (SELECT B FROM T WHERE A IN (1,11))
AND
C IN (SELECT C FROM T WHERE A IN (1,11))
(2 Punkte)
- 3 -
Klausur Datenbanksysteme 2
05. Februar 2007
a)
B
c)
COUNT(*)
f)
B
HS Fulda FB AI
COUNT(*)
Prof. Dr. Peter Peinl
E107, G202
b)
d)
B
COUNT(*)
COUNT(*)
e)
COUNT(*)
g)
h)
A
- 4 -
A
B
Klausur Datenbanksysteme 2
05. Februar 2007
Aufgabe 3:
HS Fulda FB AI
Prof. Dr. Peter Peinl
E107, G202
(SQL-Anfragen )
(15 Punkte)
Tragen Sie die Ergebnisse der folgenden SQL-Anfragen in die Tabellengerüste ein.
(Nullwerte in der Tabelle sind durch einen Bindestrich dargestellt.)
V
A
1
2
3
4
5
6
7
B
4
8
2
3
4
C
100
20
30
10
20
D
100
10
20
0
20
40
a) SELECT A FROM V WHERE (A-B*2) > 0 OR (C*D) = 0
(2 Punkte)
b) SELECT A FROM V WHERE (B*C) >=60 AND (C-D) <= 0
(1 Punkt)
c) SELECT A FROM V WHERE B = NULL OR C IS NULL
(1 Punkt)
d) (SELECT A FROM V) INTERSECT (SELECT B FROM V)
(1 Punkt)
e) SELECT V1.A, V2.A FROM V V1, V V2
WHERE V1.B *5 >= V2.D AND V1.C = V2.D
(5 Punkte)
f) SELECT V1.A, V2.A, V1.C, V2.D FROM V V1, V V2
WHERE V1.C = V2.D (+) AND V1.A NOT IN (4,6,7)
ORDER BY V1.A, V2.A
(5 Punkte)
a)
A
e)
V1.A
b)
V2.A
c)
A
f)
V1.A
- 5 -
d)
A
V2.A
A
V1.C
V2.D
Klausur Datenbanksysteme 2
05. Februar 2007
HS Fulda FB AI
Prof. Dr. Peter Peinl
E107, G202
Aufgabe 4: (Datenkontrolle mit SQL)
(8 Punkte)
Gegeben seien die folgenden Tabellendefinitionen mit Integritätsbedingungen.
CREATE TABLE T1 (A INT, B INT, C INT,
CONSTRAINT T1_PS PRIMARY KEY (A, B),
CONSTRAINT T1_SK UNIQUE (C))
CREATE TABLE T2 (A INT, B INT, C INT, D INT, E INT,
CONSTRAINT T2_PS PRIMARY KEY (A),
CONSTRAINT T2_FS1 FOREIGN KEY (B,C) REFERENCES T1(A,B),
CONSTRAINT T2_FS2 FOREIGN KEY (D) REFERENCES T1(C),
CONSTRAINT T2_E_NN CHECK (E IS NOT NULL),
CONSTRAINT T2_E_13 CHECK (E BETWEEN 1 AND 3))
Die Tabellen T1 und T2 enthalten die folgenden Tupel. Nullwerte werden durch vier Bindestriche (----) dargestellt.
T1
A
1
2
3
4
5
B
1
2
3
4
5
C
5
10
15
20
25
T2
A
100
101
102
103
104
B
---2
2
3
3
C
---2
2
3
3
D
15
25
---10
10
E
1
2
3
3
3
Welche der folgenden INSERT-Anweisungen (jeweils für sich auf dem oben beschriebenen
Datenbestand betrachtet) verletzt / verletzt nicht die definierten Integritätsbedingen ?
Hinweis: Es wird maximal eine Bedingung verletzt.
Tragen Sie den Namen der verletzten Bedingung (Constraint-Name) ein bzw. „keine“, wenn
alle Bedingungen erfüllt sind.
Nr.
1
2
3
4
5
6
7
8
INSERT – Anweisung
INSERT INTO T1 VALUES (1, 2, 5)
INSERT INTO T1 VALUES (1, 2, 30)
INSERT INTO T1 VALUES (1, 1, 50)
INSERT INTO T1 VALUES (1, NULL, NULL)
INSERT INTO T2 VALUES (117, 2, 2, 5, 5)
INSERT INTO T2 VALUES (109, 3, 1, 10, 3)
INSERT INTO T2 VALUES (103, 1, 1, 20, 2)
INSERT INTO T2 VALUES (110, 4, 4, 35, 1)
- 6 -
Verletzte Integritätsbedingung
(Constraint)
Klausur Datenbanksysteme 2
05. Februar 2007
HS Fulda FB AI
Prof. Dr. Peter Peinl
E107, G202
Aufgabe 5: (Datenkontrolle mit SQL -- Trigger)
(8 Punkte)
Gegeben seien die folgenden Tabellen S und U und die Trigger TRIG01, TRIG02, TRIG03
auf den Relationen S und U.
CREATE OR REPLACE TRIGGER TRIG01
AFTER UPDATE OF S3 ON S
FOR EACH ROW
BEGIN
INSERT INTO U VALUES ( 'TRIG01' , :OLD.S1 , :OLD.S2 , :NEW.S3 - :OLD.S3);
END;
CREATE OR REPLACE TRIGGER TRIG02
BEFORE UPDATE OF S3 ON S
BEGIN
INSERT INTO U SELECT 'TRIG02' , NULL, NULL, SUM(S3) FROM S;
END;
CREATE OR REPLACE TRIGGER TRIG03
AFTER UPDATE OF S3 ON S
BEGIN
INSERT INTO U SELECT 'TRIG03' , NULL, NULL, SUM(S3) FROM S;
END;
S
S1
1
2
3
4
5
6
7
S2
Zaphod
Ford
Arthur
Trillian
Marvin
Hotblack
The King
S3
100
200
100
200
300
200
400
Auf der Tabelle S wird nun die folgende Update Anweisung ausgeführt.
UPDATE S
SET S3 = S3 + 50 WHERE S1 < 4
Tragen Sie in die untenstehenden Tabellengerüste von U ein, welche Zeilen die drei Trigger
einfügen. Die Tabelle U sei zu Beginn leer.
U
U1
U2
U3
U4
- 7 -
Klausur Datenbanksysteme 2
05. Februar 2007
HS Fulda FB AI
Prof. Dr. Peter Peinl
E107, G202
Aufgabe 6: (Relationenalgebra)
(9 Punkte)
a) Gegeben seien die Tabellen V und W. Tragen Sie das Ergebnis der Division von V durch
W in das leere Tabellengerüst (V ÷ W) ein.
(4 Punkte)
V
A
1
1
1
2
2
2
2
3
4
4
4
B
Gelb
Grün
Azur
Blau
Gelb
Rot
Grün
Rot
Rot
Gelb
Grün
W
B
Gelb
Grün
Rot
V÷W
b) Formulieren Sie den natürlichen Verbund (natural join) der Tabellen V und W als Folge
von Algebra-Operationen, ohne einen Verbundoperator (außer dem Kartesischen Produkt)
zu benutzen.
(2 Punkte)
c) Ist der Gleichverbund (Equi-Join) der Tabellen V und W verlustfrei (lossless) oder nicht ?
Begründen Sie Ihre Antwort.
(2 Punkte)
d) Wie lautet die Formulierung der folgenden SQL-Anfrage in der Relationenalgebra ?
SELECT * FROM V, W WHERE V.B = 2
(1 Punkt)
- 8 -
Klausur Datenbanksysteme 2
05. Februar 2007
HS Fulda FB AI
(Zur freien Verfügung)
- 9 -
Prof. Dr. Peter Peinl
E107, G202
Herunterladen