Klausur - Datenbank- und Informationssysteme
Klausur - Datenbank- und Informationssysteme
Klausur - Datenbank- und Informationssysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
unbedingt vollständig <strong>und</strong> lesbar ausfüllen!<br />
<strong>Klausur</strong><br />
Name: ____________________________ Vorname:_____________________<br />
Matrikelnummer:_____________________ [ ] Informatik DPO 4<br />
FG <strong>Datenbank</strong>- <strong>und</strong> <strong>Informationssysteme</strong><br />
Prof. Dr. Gregor Engels<br />
Gr<strong>und</strong>lagen <strong>Datenbank</strong>en<br />
06. Oktober 2008<br />
Bearbeitungszeit: 120 Minuten<br />
[ ] Informatik Bachelor<br />
[ ] sonstiges:________________<br />
Bitte beachten Sie:<br />
o Lassen Sie die <strong>Klausur</strong> zusammengeheftet! Sollten Sie die <strong>Klausur</strong> trennen, einzelne Seiten<br />
entnehmen bzw. zusätzliche Seiten als Lösung mit abgeben wollen, so muss jeder einzelne<br />
Teil deutlich mit Name <strong>und</strong> Matrikelnummer gekennzeichnet sein.<br />
o Benutzen Sie kein eigenes Papier! Bei Bedarf erhalten Sie zusätzliches Papier bei der<br />
<strong>Klausur</strong>aufsicht.<br />
o Mit Bleistift geschriebene Lösungen werden nicht gewertet.<br />
o Kennzeichnen Sie Ihre Lösung eindeutig! Bei mehreren Lösungen zu einer (Teil-) Aufgabe<br />
wird keine davon gewertet.<br />
o Bei Multiple-Choice Fragen können falsche Antworten zu Punktabzügen führen.<br />
o Benutzen von unerlaubten Hilfsmitteln (z.B. Mobiltelefone), Abschreiben sowie Abschreiben<br />
lassen <strong>und</strong> andere Täuschungen führen zur Bewertung „nicht ausreichend“ (5,0).<br />
o Zugelassene Hilfsmittel: 1 doppelseitig handbeschriebenes Blatt DIN A4, beschriftet mit<br />
Name <strong>und</strong> Matrikelnummer.<br />
o Diese <strong>Klausur</strong> hat 17 Seiten. Die zugehörige Referenz besteht aus zwei Blättern mit drei<br />
bedruckten Seiten. Bitte prüfen Sie Ihre Exemplare auf Vollständigkeit.<br />
Aufgabe 1 2 3 4 5 6 Summe<br />
Erwartete Bearbeitungszeit (in<br />
min) = maximale Punktzahl<br />
Erreichte Punkte<br />
8 16<br />
16<br />
20<br />
25 35 120
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 2<br />
Name: Matrikel-Nr.:<br />
Aufgabe 1: Vermischte Aufgaben [2+6=8 Punkte]<br />
a) Einsatz von <strong>Datenbank</strong>systemen [2 Punkte]<br />
Unter welchen Umständen kann man Datenred<strong>und</strong>anz in einem<br />
<strong>Datenbank</strong>system akzeptieren? (1-2 Sätze)
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 3<br />
Name: Matrikel-Nr.:<br />
b) Vermischte Fragen [6 Punkte]<br />
Bitte entscheiden Sie durch Ankreuzen, ob die folgenden Aussagen richtig oder<br />
falsch sind. Falsche Kreuze führen zu Punktabzügen!<br />
Diese Aussage ist …<br />
Das parallele Arbeiten auf Daten sollte von einem<br />
<strong>Datenbank</strong>system koordiniert werden.<br />
Nutzer eines <strong>Datenbank</strong>systems können auf Basis des<br />
<strong>Datenbank</strong>katalogs für sie wichtige Daten abonnieren.<br />
Jeder dreistellige Beziehungstyp in einem ER-Diagramm<br />
lässt sich kapazitätserhaltend in drei zweistellige<br />
Beziehungstypen umwandeln.<br />
Der relationale Entwurf basiert auf Ergebnissen des<br />
konzeptionellen Entwurfs.<br />
Ein Primärschlüssel besteht aus Attributen.<br />
Die Reihenfolge der Tupel einer Relation ist<br />
bedeutungslos.<br />
SQL-DQL ist relational vollständig.<br />
Bei der Eingabe von SQL-Statements müssen Schlüsselwörter<br />
fettgedruckt sein.<br />
Die SQL-Anfrage SELECT * FROM rel WHERE att LIKE α_β; kann<br />
Tupel der Relation rel zurückliefern, deren Attributwert von att<br />
‘αβ’ ist.<br />
Anfragen in SQL werden im Gegensatz zu Datendefinitionen in<br />
SQL mit einem Fragezeichen (Symbol: ‚?‘) abgeschlossen.<br />
JDBC ist die Java Implementierung von ODBC.<br />
Hibernate ist ein <strong>Datenbank</strong>system.<br />
richtig falsch
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 4<br />
Name: Matrikel-Nr.:<br />
Aufgabe 2: Konzeptioneller Entwurf [8+8=16 Punkte]<br />
a) ER-Diagramm - Semantik [8 Punkte]<br />
Bitte entscheiden Sie durch Ankreuzen, ob die folgenden Aussagen hinsichtlich<br />
des unteren ER-Diagramms richtig oder falsch sind. Falsche Kreuze führen zu<br />
Punktabzügen!<br />
Diese Aussage ist… richtig falsch<br />
Gute Feen haben einen Namen <strong>und</strong> einen Goldschatz.<br />
Ritter kämpfen für mehrere Könige.<br />
Ritter kämpfen mit Drachen.<br />
Es gibt immer mehr Gute Feen als Ritter.<br />
Drachen haben einen eindeutigen Titel.<br />
Wenn der Drachenreiter stirbt, dann stirbt auch der Drache.<br />
Fabelwesen können die Herkunft „Nirgendwo“ haben.<br />
Es gibt mindestens soviele Ritter wie Könige.
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 5<br />
Name: Matrikel-Nr.:<br />
b) ER-Diagramm - Entwurf - Semantik[8 Punkte]<br />
Formalisierung ER-Diagramm:<br />
μ(Person)={p1,…,pn} σ(Person) μ(Person)<br />
μ(Videothek)={v1,…,vn} σ(Videothek) μ(Videothek)<br />
μ(Film)={f1,…,fn} σ(Film) μ(Film)<br />
μ(Genre)={g1,…,gn} σ(Genre) μ(Genre)<br />
μ(leiht_aus)= μ(Person) μ(Videothek) μ(Film)<br />
σ(leiht_aus) σ(Person) σ(Videothek) σ(Film)<br />
σ(gehört_zu):σ(Film)→ σ(Genre)<br />
σ(Name):σ(Person)→μ(String)<br />
σ(Titel):σ(Person)→μ(String) (partielle Funktion!)<br />
σ(Ort):σ(Videothek)→μ(String)<br />
σ(Länge):σ(Film)→μ(Integer)<br />
σ(Bezeichnung):σ(Genre)→μ(String)<br />
σ(TagDerAusleihe):σ(leiht_aus)→μ(Datum)<br />
Geben Sie für die obige Formalisierung eines ER-Diagramms (siehe auch Referenz)<br />
ein passendes ER-Diagramm an!
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 6<br />
Name: Matrikel-Nr.:<br />
Aufgabe 3: Relationales <strong>Datenbank</strong>modell [16 Punkte]<br />
Übersetzung eines ER-Diagramms in ein relationales <strong>Datenbank</strong>schema<br />
Das obige ER-Diagramm (siehe auch Referenz) soll in ein geeignetes relationales<br />
<strong>Datenbank</strong>schema überführt werden. Wenden Sie dazu den Algorithmus aus der<br />
Vorlesung schrittweise an. Dokumentieren Sie nach jedem Schritt die entstandenen<br />
relationalen Schemata, die zugehörigen Schlüssel sowie gegebenenfalls<br />
Fremdschlüsselbeziehungen. Verwenden Sie hierfür die Tabellenvorlagen.<br />
Schritt 1: Transformation der IST-Beziehungstypen <strong>und</strong> zugehörigen Entity-Typen<br />
Schritt 2: Transformation der abhängigen Entity-Typen<br />
Schritt 3: Transformation der übrigen Entity-Typen<br />
Schritt 4: Transformation bei Kardinalitätseinschränkung [1,1]<br />
Schritt 5: Transformation der übrigen Beziehungstypen<br />
Schritt 6: Berücksichtigung der Kardinalitätseinschränkung [0,1]
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 7<br />
Name: Matrikel-Nr.:<br />
Schritt 1: Transformation der IST-Beziehungstypen <strong>und</strong> der zugehörigen Entity-<br />
Typen.<br />
C<br />
Entity-Typ/<br />
Beziehungstyp<br />
Relationenschema Schlüssel Fremdschlüsselbeziehungen<br />
C = {CID<br />
{{CID<br />
Schritt 2: Transformation der abhängigen Entity-Typen<br />
Entity-Typ/<br />
Beziehungstyp<br />
Relationenschema Schlüssel Fremdschlüsselbeziehungen
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 8<br />
Name: Matrikel-Nr.:<br />
Schritt 3: Transformation der übrigen Entity-Typen<br />
Entity-Typ/<br />
Beziehungstyp<br />
Relationenschema Schlüssel Fremdschlüsselbeziehungen<br />
Schritt 4: Transformation bei Kardinalitätseinschränkung [1,1]<br />
Entity-Typ/<br />
Beziehungstyp<br />
Relationenschema Schlüssel Fremdschlüsselbeziehungen
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 9<br />
Name: Matrikel-Nr.:<br />
Schritt 5: Transformation der übrigen Beziehungstypen<br />
Entity-Typ/<br />
Beziehungstyp<br />
Relationenschema Schlüssel Fremdschlüsselbeziehungen<br />
Schritt 6: Berücksichtigung der Kardinalitätseinschränkung [0,1]<br />
Entity-Typ/<br />
Beziehungstyp<br />
Relationenschema Schlüssel Fremdschlüsselbeziehungen
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 10<br />
Name: Matrikel-Nr.:<br />
Aufgabe 4: Relationaler Entwurf [5+15 =20 Punkte]<br />
a) Funktionale Abhängigkeiten [5 Punkte]<br />
Gegeben sind ein Relationenschema R={A,B,C,D} <strong>und</strong> eine Menge funktionaler<br />
Abhängigkeiten F = {A→B, A→D, B→C, B→D, B→CD}. Geben Sie eine Menge<br />
Freduziert an, für die gilt: Freduziert ≡ F <strong>und</strong> ¬ f Freduziert: Freduziert\{f} ≡ Freduziert.<br />
Dokumentieren Sie ihre Zwischenschritte!
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 11<br />
Name: Matrikel-Nr.:<br />
b) Syntheseverfahren [15 Punkte]<br />
Gegeben sind das Relationenschema R = {A, B, C, D, E, F, G, H}, die Menge<br />
funktionaler Abhängigkeiten F = {ADF→BC, AF→DEH, D→E, E→G, G→H, H→E} <strong>und</strong><br />
die Schlüsselmenge K = {{AF}}. Überführen sie das Schema mit Hilfe des<br />
Syntheseverfahrens in die dritte Normalform. Dokumentieren Sie Ihre<br />
Zwischenschritte! Hinweis: Die Menge F ist minimal; sie enthält keine red<strong>und</strong>anten<br />
funktionalen Abhängigkeiten.
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 12<br />
Name: Matrikel-Nr.:<br />
Aufgabe 5: Anfragesprachen [6+5+12+2=25 Punkte]<br />
a) Relationenalgebra [6 Punkte]<br />
Gegeben sind die Relation r sowie die Bedingungen F, F1 <strong>und</strong> F2.<br />
1) Wann gilt: σ[F](r) = σ[F1](σ[F2](r))?<br />
F =<br />
2) Wann gilt: σ[F](r) = r - σ[F1](r)?<br />
F =<br />
3) Wann gilt: σ[F](r) = σ[F1](r) σ[F2](r)?<br />
F =<br />
b) Relationenalgebra <strong>und</strong> Tupelkalkül [5 Punkte]<br />
Transformieren Sie die folgende Anfrage von der Relationenalgebra in das<br />
Tupelkalkül (siehe zugehöriges <strong>Datenbank</strong>schema in der Referenz).<br />
Ergebnis = π[Name](Turnier – R2) mit<br />
R1= β[Preisgeld‘ ← Preisgeld](π[Preisgeld](Turnier))<br />
R2 = π[T_ID, Name, Preisgeld, Land]<br />
Tupelkalkül:<br />
(σ[Preisgeld < Preisgeld‘](Turnier R1))
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 13<br />
Name: Matrikel-Nr.:<br />
c) Relationenalgebra <strong>und</strong> Bereichskalkül [7+5=12 Punkte]<br />
Formulieren Sie die folgende Anfrage im Bereichskalkül <strong>und</strong> in der<br />
Relationenalgebra (siehe zugehöriges <strong>Datenbank</strong>schema in der Referenz).<br />
Welche Golfprofis haben alle Turniere gespielt, die im Land ‚Deutschland‘<br />
ausgetragen wurden? Geben Sie ausschließlich die Namen der Golfprofis aus.<br />
Relationenalgebra:<br />
Bereichskalkül:<br />
d) Sicherheit von Anfragen [2 Punkte]<br />
Geben Sie ein Beispiel für eine unsichere Anfrage im Tupelkalkül an. Beziehen Sie<br />
sich hierbei auf das <strong>Datenbank</strong>schema in der Referenz.
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 14<br />
Name: Matrikel-Nr.:<br />
Aufgabe 6: SQL [10+25=35 Punkte]<br />
a) SQL-DML <strong>und</strong> SQL-DDL [3+4+3=10 Punkte]<br />
1. Formulieren Sie einen SQL-Befehl, um das Preisgeld für das Turnier Paderborn<br />
Classics zu verdreifachen (siehe zugehörige SQL-Schemadefinition in der<br />
Referenz).<br />
2. Für die Attribute Land <strong>und</strong> Heimatland sollen ausschließlich die folgenden fünf<br />
Werte erlaubt sein: Australien, Deutschland, GB, Schottland, USA. Passen Sie<br />
die Tabellendefinitionen mit Hilfe einer Domänendefinition an (siehe zugehörige<br />
SQL-Schemadefinition in der Referenz).<br />
create table Turnier<br />
create table Golfprofi<br />
(T_ID integer primary key,<br />
(G_ID integer primary key,<br />
Name varchar(20),<br />
Name varchar(20),<br />
Preisgeld integer,<br />
Vorname varchar(20),<br />
Land ………………………………………………………<br />
Heimtland ……………………………………………<br />
);<br />
);
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 15<br />
Name: Matrikel-Nr.:<br />
3. Welche Auswirkungen hat die folgende SQL-Anweisung auf die gegebenen<br />
Tabellendefinitionen? Begründen Sie Ihre Antwort kurz (siehe zugehörige SQL-<br />
Schemadefinition in der Referenz).<br />
drop table Turnier cascade;
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 16<br />
Name: Matrikel-Nr.:<br />
b) SQL-DQL [5+6+6+8=25 Punkte]<br />
Formulieren Sie die folgenden Anfragen in SQL-DQL (siehe zugehöriges<br />
<strong>Datenbank</strong>schema in der Referenz).<br />
1. Welche Golfprofis haben im Jahr 2008 mindestens ein Turnier gespielt? Die<br />
Ausgabe soll ausschließlich die Namen der Golfprofis <strong>und</strong> die Namen der<br />
Turniere auflisten <strong>und</strong> dabei keine Duplikate enthalten.<br />
2. Bestimmen Sie die Namen der Golfprofis, die im Jahr 2007 kein Turnier gespielt<br />
haben.
Gr<strong>und</strong>lagen von <strong>Datenbank</strong>en – 6.10.2008 Seite 17<br />
Name: Matrikel-Nr.:<br />
3. Welchen Platz hat ein Golfprofi bei Turnieren durchschnittlich belegt? Die<br />
Ausgabe soll ausschließlich die Namen der Golfprofis <strong>und</strong> die durchschnittliche<br />
Platzierung enthalten sowie absteigend nach der Anzahl der gespielten Turniere<br />
sortiert sein.<br />
4. Welche Golfprofis haben das Turnier mit dem höchsten Preisgeld mehrfach<br />
gewonnen? Die Ausgabe soll ausschließlich die Namen der Golfprofis, den Namen<br />
des Turniers <strong>und</strong> die Anzahl der Siege enthalten.