Klausur — Sommersemester 2012 Objektrelationale

Werbung
Hochschule Bonn-Rhein-Sieg
Fachbereich Informatik
Prof. Dr. Peter Becker
University of Applied Sciences
Klausur — Sommersemester 2012
Objektrelationale Datenbanksysteme
27. September 2012
Bevor Sie mit der Bearbeitung dieser Klausur beginnen, lesen Sie bitte folgende Hinweise.
Diese Hinweise sind bei der Bearbeitung zu beachten.
1. Prüfen Sie die Vollständigkeit Ihres Exemplars. Es sollte
• dieses Hinweisblatt und
• sieben Aufgaben zu Objektrelationalen Datenbanksystemen auf sieben Blättern
umfassen.
2. Tragen Sie auf jedem Lösungsblatt oben an den vorgesehenen Stellen Ihren Namen und
Ihre Matrikelnummer ein. Blätter ohne diese Angaben werden nicht bewertet.
3. Hinter den Aufgaben ist jeweils hinreichend Platz für die Lösungen. Reicht der Platz
dennoch nicht aus, benutzen Sie bitte die Rückseiten, wobei die Zuordnung von Lösungen
zu Aufgaben deutlich erkennbar sein muss.
4. Geben Sie dieses Deckblatt zusammen mit den Aufgabenstellungen und den Lösungen
sowie alles weitere beschriebene Papier ab.
5. Mit mindestens 40 Punkten haben Sie die Klausur bestanden.
6. Ergebnis (bitte nichts eintragen):
1 (10) 2 (10) 3 (20)
4 (10) 5 (20) 6 (10)
Viel Erfolg!
7 (10)
P
Auf gaben
(90)
Name:
Matrikel:
Aufgabe 1 (10 Punkte)
(a) Vergleichen Sie kurz die beiden Technologien JDBC und SQLJ. Wo sehen Sie Vorteile,
wo Nachteile der jeweiligen Technologien?
(b) Was versteht man unter einem Cursor und wozu braucht man einen Cursor im Rahmen
der Datenbankprogrammierung.
2
Name:
Matrikel:
Aufgabe 2 (10 Punkte)
Gegeben Sie eine Datenbank mit einer Tabelle, die Nachrichtentexte enthält.
Nachrichten
Id
Datum
Text
1 01.04.2011 Kanzlerin in Washington eingetroffen...
2 11.11.2011 Bayern verlieren in Gladbach...
3 07.01.2012 Kältewelle in Osteuropa...
...
...
(a) In der Veranstaltung haben Sie die Datenbankkonzepte (skalare) User Defined Function
(UDF), Tabellenfunktion und Stored Procedure kennengelernt. Welches dieser Konzepte
würden Sie jeweils zur Implementierung der nachfolgenden Funktionalitäten nutzen?
– Zu einer Nachricht soll eine Häufigkeitstabelle für die Worte “Kanzlerin”, “Merkel”,
“Schuldenkrise” und “Euro” aufgestellt werden.
– Wenn eine neue Nachricht in die Tabelle Nachrichten eingefügt wird, soll automatisch eine eindeutige Id ermittelt und das Datum gesetzt werden.
– Es soll ermittelt werden, wie häufig ein Wort innerhalb einer Nachricht auftritt.
(b) Implementieren Sie eine der Funktionalitäten aus (a) mittels PL/SQL.
3
Name:
Matrikel:
Aufgabe 3 (20 Punkte)
Wir wollen bunte Quadrate in der Ebene verwalten.
(a) Definieren Sie mittels PL/SQL einen Objekttyp für Punkte (zweidimensional).
(b) Definieren Sie einen Objekttyp für bunte Quadrate (Punkt links unten, Seitenlänge, Farbe). Sehen Sie dabei eine Methode vor, mit der der Flächeninhalt des Quadrates bestimmt
werden kann und eine weitere Methode, mit der man überprüfen kann, ob sich zwei Quadrate schneiden.
(c) Definieren Sie eine Tabelle zur Verwaltung von bunten Quadraten.
(d) Geben Sie exemplarisch eine SQL-Anweisung an, um ein buntes Quadrat in die von Ihnen
definierte Tabelle einzufügen.
(e) Geben Sie eine SQL-Anfrage an, um alle Paare von grünen Quadraten zu ermitteln, die
sich schneiden.
4
Name:
Matrikel:
Aufgabe 4 (10 Punkte)
(a) Nach welchen Kriterien kann man Trigger unterscheiden? Erläutern Sie die Unterschiede!
(b) Was versteht man unter einer “transitionalen Integritätsbedingung”? geben Sie ein Beispiel für solch eine Integritätsbedingung an. Mit welcher Triggerart kann man solche
Integritätsbedingungen überprüfen?
5
Name:
Matrikel:
Aufgabe 5 (20 Punkte)
(a) Gegeben sei der folgende B-Baum (k = 2):
19 28 44
3
8 12 15
22 24
29 31 37 42
47 51 55
Fügen Sie in diesen Baum nacheinander die Schlüssel 26, 13 und 35 ein und geben Sie
die B-Bäume an, die hierdurch entstehen.
(b) Gegeben sei der folgende B-Baum (k = 2):
19 28 44
3
8
15
22 24
29 31 37
47 51 55
Löschen Sie aus diesem Baum nacheinander die Schlüssel 15, 44 und 22 und geben Sie
die B-Bäume an, die hierdurch entstehen.
6
Name:
Matrikel:
Aufgabe 6 (10 Punkte)
10
R
O5
O4 R2
5
O3
O2
O1
0,0
R1
5
10
R R1 R2
R1 O1 O2 O3
O4 O5
R2
Der oben dargestellte R-Baum (m = 2, M = 3) wird durch die Objekte
Objekt Rechteck(x, y, Breite, H öhe)
o1
(1, 1, 1, 1)
o2
(3, 3, 1, 1)
o3
(2, 4, 1, 1)
o4
(10, 5, 1, 1)
o5
(11, 7, 1, 1)
erzeugt.
Erläutern Sie den Algorithmus zum Einfügen in einen R-Baum am Beispiel der Objekte o6
mit Rechteck (9, 7, 1, 1) und o7 mit Rechteck (2, 0, 1, 1), die in den oben dargestellten Baum
eingefügt werden. Geben Sie die R-Bäume an, die hierdurch entstehen.
7
Name:
Matrikel:
Aufgabe 7 (10 Punkte)
Das Prüfungsamt verwaltet in einer Datenbank Informationen über Studenten und deren bestandene Prüfungen.
Student{Matrikelnummer, Name, Vorname}
Prüfung{Prüfungsnummer, Matrikelnummer, Note}
(a) Gesucht sind alle Studenten mit dem Vornamen Hans, die eine Prüfung mit der Note 1.0
bestanden haben. Geben Sie hierzu eine SQL-Anfrage an (Ausgabespalten: Matrikelnummer, Name und Prüfungsnummer).
(b) Geben Sie den nicht-optimierten Operatorbaum zu der Anfrage aus (a) an.
(c) Geben Sie einen optimierten Operatorbaum zu der Anfrage aus (a) an.
8
Herunterladen