08.08.2013 Aufrufe

Klausur - Datenbank- und Informationssysteme

Klausur - Datenbank- und Informationssysteme

Klausur - Datenbank- und Informationssysteme

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!