Klausur vom Januar 2001

Werbung
Name: ____________________________________________
Seite 1 von 7
Klausur Datenbanken 1
Matrikel-Nr.: ____________________
17.1.2001
Punktzahl: __________
Note: _________
(Eine Note von 4,0 oder besser gilt als bestanden.)
Studiengang: ________________________
Dauer: 90 Minuten , es sind keine Hilfsmittel (Skript etc.) zugelassen
Bitte schreiben Sie leserlich !! Es ist Platz gelassen für die Antwort. Sie können die Rückseiten
mit benutzen, falls Ihnen der Platz nicht ausreicht.
Aufgabe 1 ( 2 Punkte )
Verbessern Sie das Programmstück so, dass Sie nur eine Select-Anweisung benutzen müssen
(Sie können durchstreichen und ergänzen, um nicht alles neu schreiben zu müssen).
...
try
{
Statement stmt = con.createStatement() ;
ResultSet rsLiefert = stmt.executeQuery(
"SELECT * FROM Liefert WHERE Preis < " + limit ) ;
while (rsLiefert.next())
{
String wer = rsLiefert.getString("Lieferant") ;
Statement stmt2 = con.createStatement() ;
ResultSet rs2 = stmt.executeQuery(
"SELECT Ort FROM Lieferant WHERE Lieferant = ´" + wer +“´“) ;
while (rs2.next())
{
System.out.println( rsLiefert.getString("Ort") ) ;
}
rs2.close() ;
stmt2.close() ;
}
rsLiefert.close() ;
stmt.close() ;
}
catch (Exception e)
{
ausgabe += "\nFehler bei Anfrage an die Datenbank:\n" + e ;
}
Name: ____________________________________________
Seite 2 von 7
Klausur Datenbanken 1
17.1.2001
Name: ____________________________________________
Seite 3 von 7
Klausur Datenbanken 1
17.1.2001
Aufgabe 2 (Anfrageoptimierung) ( 2+(1+2) Punkte )
In folgenden Teilaufgaben steht PA für die Projektion auf ein Attribute A
und SA , SB bzw. S(A und B) für Selektionen mit Selektionsbedingungen A , B bzw. (A und B) .
2.1. Geben Sie ein Beispiel zu folgender Ungleichung:
(Das Beispiel soll zeigen, warum die linke und die rechte Seite tatsächlich verschieden sein können.)
PA ( R1 ) - PA ( R2 )
/ PA ( R1 – R2 )
2.2. Angenommen wir habe Relationen R1 und R2 mit folgenden Kennzahlen
| R1 | = 1.000.000 | R2 | = 500.000
Die Selektivität | SA ( R1 ) | / | R1 | = 0,2
Die Selektivität | SB ( SA ( R1 ) x R2 ) | / | SA ( R1 ) x R2 | = 0,05
Führen Sie für folgende Anfrage die logische Anfrageoptimierung durch und zeichnen Sie den
optimierten Anfragebaum auf, und bestimmen Sie für jeden Knoten die Größe des erzeugten
Zwischenergebnisses.
S(A und
B)
( R1 x R2 )
Name: ____________________________________________
Seite 4 von 7
Klausur Datenbanken 1
17.1.2001
Aufgabe 3 (Prolog) ( 2 + 4 Punkte )
Gegeben sind die Tabellen
% liefert( Wer
, Teil , Preis , Zeit )
liefert( vobis , pc500 , 2000 , 4
)
...
% lieferant( Wer
, Ort )
lieferant( vobis , ulm )
...
Schreiben Sie folgende Anfragen in Prolog (Es ist egal, ob die Namen der betreffenden Lieferanten
einmal oder mehrfach ausgegeben werden):
3.1. Wer bietet in Ulm (mindestens) einen pc500 an?
3.2. Wer bietet in Ulm den billigsten pc500 an?
(Falls es mehrere Lieferanten mit Ort Ulm gibt, die am billigsten sind, sollen alle genannt werden.)
Name: ____________________________________________
Seite 5 von 7
Klausur Datenbanken 1
17.1.2001
Aufgabe 4 (Deduktive Datenbanken) ( 2 + 2 + 1 + 1 Punkte )
Gegeben ist das folgende Regelsystem
sg( X, Y ) :- flat( X,Y ) .
sg( X, Y ) :- up( X, U ) , sg( U, V ) , down( V, Y ) .
down( X, U ) :- up( U, X ) .
mit folgenden extensionalen Relationen:
flat( 11 , 22 ) . flat( 2, 3 ) .
up(
up(
up(
up(
1 , 11 ) .
11 , 111 ) .
2 , 22 ) .
22 , 222 ) .
4.1. Welche Ergebnisse liefert die Anfrage:
Ergebnisse:
?- sg( X , Y ) .
X | Y
-----+----|
4.2. Wie sieht das magic-Regelsystem aus für Anfragen an die rekursive Relation sg, bei denen das
erste Argument gebunden ist und das zweite eine Variable ist (z.B. für ?- sg( 1, Y ) ) . Schreiben Sie
das aus dem oben gegebenen System erzeugte magic-Regelsystem auf.
4.3. Begründen Sie an dem Beispiel der Anfrage ?- sg( 1, Y ) für beliebig große Relationen up und
flat: Worin liegt die Optimierung bzw. der Vorteil des Magic-Set-Verfahrens gegenüber dem naiven
Auswertungsverfahren für deduktive Datenbanken (1-2 Sätze)
4.4. Nennen Sie eine Optimierung bzw. einen Optimierungsvorteil des Magic-Set-Verfahrens
gegenüber Prolog? (es gibt mehrere – entscheiden Sie sich für eine davon)
Name: ____________________________________________
Seite 6 von 7
Klausur Datenbanken 1
17.1.2001
Aufgabe 5 Validierung ( 3 Punkte )
Geben Sie ein Beispiel für eine Historie, die einen zyklenfreien Serialisierbarkeitsgraphen hat, bei der
aber (mindestens) eine der beteiligten Transaktionen abgebrochen wird, wenn Validierung als
Synchronisierungsverfahren eingesetzt wird. Nennen Sie (oder zeichnen Sie eindeutig lesbar) die
zeitliche Reihenfolge aller relevanten Operationen bzw. Transaktionszeitpunkte, die zum Abbruch
einer Transaktion führen.
Aufgabe 6 (Sperr-Synchronisation) (2+2 Punkte)
Angenommen, wir bezeichnen Transaktionen mit Ti, Tj, ... und zugegriffene Objekte mit Oa, Ob, ...,
Sperranforderungen einer Transaktion Ti auf einem Objekt Oa mit lock(Ti,Oa) und Sperrfreigaben mit
unlock(Ti,Oa) sowie die Anordnungsrelation einer Historie mit <H.
Wie lautet (mit diesen Symbolen geschrieben) die Formel für die 2-Phasigkeit einer Transaktion ?
Eine Transaktion _______
heißt 2-phasig, genau dann , wenn
Wie lautet (mit diesen Symbolen geschrieben) die Formel für die Sperr-Regel ?
Name: ____________________________________________
Seite 7 von 7
Klausur Datenbanken 1
17.1.2001
Aufgabe 7: (Recovery) ( 1+1+1 Punkte )
7.1. Warum will man verhindern, dass eine Transaktion T2 Daten überschreibt, die von einer
Transaktion T1 in die Datenbank geschrieben wurden, solange T1 noch nicht mit Commit oder
Abort beendet wurde?
Um die Frage zu beantworten, beschreiben Sie bitte, was man dann nicht mehr machen könnte, wenn
ein Scheduler erlaubt, dass eine Transaktion T2 Daten überschreibt, die von einer Transaktion T1 in
die Datenbank geschrieben wurden, solange T1 noch nicht mit Commit oder Abort beendet wurde (1
Satz).
7.2. Warum will man verhindern, dass eine Transaktion T2 Daten liest, die von einer Transaktion T1
in die Datenbank geschrieben wurden, solange T1 noch nicht mit Commit oder Abort beendet
wurde?
Um die Frage zu beantworten, beschreiben Sie bitte, welche unerwünschte Eigenschaft von Historien
man dann nicht mehr verhindern könnte, wenn ein Scheduler erlaubt, dass eine Transaktion T2
Daten liest, die von einer Transaktion T1 in die Datenbank geschrieben wurden, solange T1 noch
nicht mit Commit oder Abort beendet wurde (1 Satz).
7.3. Wie verhindert der Scheduler, dass eine Transaktion T2 Daten liest oder überschreibt, die von
einer Transaktion T1 in die Datenbank geschrieben wurden, solange T1 noch nicht mit Commit
oder Abort beendet wurde? ( 1 Satz )
Herunterladen