TU Wien:Datenbanksysteme VU (Hose)/2024-05-04 Prüfung Gedächtnisprotokoll

Aus VoWi
Zur Navigation springen Zur Suche springen

Prüfung am 24. Mai 2024

[Bearbeiten | Quelltext bearbeiten]

Die korrekten Antworten sind fett + unterstrichen gekennzeichnet.

I. SQL (Fortsetzung Aufgabenblock I)

[Bearbeiten | Quelltext bearbeiten]

Finden Sie für jedes Fachgebiet die Gesamtzahl der Termine deren Datum nach dem heutigen Datum liegen. Wenn für ein Fachgebiet keine Termine vorhanden sind, sollte das Fachgebiet nicht in die Ergebnisse aufgenommen werden. Hinweis: Nehmen Sie an, dass Sie auf das heutige Datum mit der Funktion CURRENT_DATE zugreifen können.

SELECT [box 1] AS fachgebietName, [box 2] AS anzahlTermine
FROM termine AS t, [box 3] AS x
WHERE t.[box 4] = [box 5] AND t.datum > CURRENT_DATE
GROUP BY [box 6]
  • x.fachgebiet
  • x.name
  • x.name.fachgebiet
  • x.fachgebiet.name
  • t.arzt
  • t.arzt.fachgebiet
  • t.date
  • MAX(*)
  • COUNT(*)
  • x.termin
  • *
  • t.anzahl
  • x.anzahl
  • SUM(*)
  • warteliste
  • fachgebiet
  • arzt
  • patient
  • termin
  • arzt.svnr
  • patient
  • patient.svnr
  • arzt
  • svnr
  • x.fachgebiet.name
  • x.arzt.svnr
  • x.patient.svnr
  • x.name.fachgebiet
  • x.patient
  • x.svnr
  • x.arzt
  • x.name
  • x.fachgebiet
  • x.patient.svnr
  • x.fachgebiet.name
  • x.fachgebiet
  • x.patient
  • x.name
  • x.name.fachgebiet
  • x.arzt.svnr
  • x.svnr

II. Relationale Algebra (15 Punkte)

[Bearbeiten | Quelltext bearbeiten]

Betrachten Sie noch einmal das relationale Schema von Aufgabenblock I, das wie folgt aussieht.

  • termin(datum, zeit, arzt → arzt.svnr, patient → patient.svnr, beschreibung)
  • warteliste(arzt → arzt.svnr, patient → patient.svnr, vorgesetzter → arzt.svnr)
  • arzt(svnr, name, fachgebiet, hausarzt → fachgebietVon)
  • patient(svnr, name, telefon, unterfachgebietVon)
  • fachgebiet(name, beschreibung, unterfachgebietVon)

Wobei die Primärschlüssel unterstrichen sind und die Fremdschlüssel durch Pfeile dargestellt werden.

Identifizieren Sie die fehlenden Informationen für die folgende Aussage, die in die Felder eingetragen werden müssen, um eine Anfrage für die angeforderten Informationen zu erstellen.

Finden Sie für jedes Fachgebiet die Gesamtzahl der Termine für Daten nach dem '02.06.2020'. Wenn für ein Fachgebiet keine Termine vorhanden sind, sollte das Fachgebiet mit der Anzahl der Termine 0 in die Ergebnisse aufgenommen werden. Hinweis: Datumsangaben haben das folgende Format, z. B. '28.02.2020'.

γf.name,count(∗)(([box2]⋈[box3]⋈[box4])σt.datum>'02.06.2020'([box7]))

  • a.fachgebiet
  • t.datum
  • *
  • p.name
  • f.name
  • t.patient
  • t.arzt
  • a.name
  • patient
  • ρt(termin)
  • ρfachgebiet(f)
  • fachgebiet
  • ρpatient(p)
  • termin
  • ρarzt(a)
  • arzt
  • ρa(arzt)
  • ρtermin(t)
  • ρp(patient)
  • ρf(fachgebiet)
  • f.name = p.name
  • fachgebiet.name = a.fachgebiet
  • fachgebiet.name = p.name
  • TRUE
  • *
  • f.name = a.name
  • FALSE
  • f.name = a.fachgebiet
  • fachgebiet.name = a.name
  • termin
  • ρtermin(t)
  • ρarzt(a)
  • fachgebiet
  • ρp(patient)
  • ρf(fachgebiet)
  • patient
  • ρt(termin)
  • arzt
  • ρfachgebiet(f)
  • ρpatient(p)
  • ρa(arzt)
  • a.svnr = a.vorgesetzter
  • t.arzt = a.svnr
  • t.patient = p.svnr
  • f.name = f.unterfachgebietVon
  • p.svnr = a.svnr
  • f.name = a.fachgebiet
  • datum
  • termin.zeit
  • zeit
  • t.zeit
  • a.datum
  • a.zeit
  • t.datum
  • termin.datum
  • termin
  • ρarzt(a)
  • ρf(fachgebiet)
  • ρfachgebiet(f)
  • patient
  • ρp(patient)
  • fachgebiet
  • ρpatient(p)
  • arzt
  • ρa(arzt)
  • ρtermin(t)
  • ρt(termin)

III. ER-Modellierung (30 Punkte)

[Bearbeiten | Quelltext bearbeiten]

Betrachten Sie den folgenden Anwendungsfall für eine Event-Ticketing-App, den wir in einem ER-Diagramm modellieren möchten:

  • Jede Veranstaltung wird durch einen Namen, eine eindeutige ID und einen oder mehrere Künstler:innen beschrieben.
  • Jede Veranstaltung kann an verschiedenen Veranstaltungsorten und an verschiedenen Daten stattfinden.
  • Jede Veranstaltung ermöglicht an einem bestimmten Datum den Besuch einer Veranstaltung an einem Veranstaltungsort.
  • Jedes Ticket muss genau einem Datum, genau einer Veranstaltung, genau einem Veranstaltungsort und genau einem Preis zugeordnet sein.
  • Es können an jedem beliebigen Datum keine oder mehrere Veranstaltungen stattfinden.
  • Jeder Veranstaltungsort hat einen Namen, einen Breitengrad und einen Längengrad.
  • Jeder Veranstaltungsort kann ein oder mehrere Veranstaltungen ausrichten.
  • Jede:r Benutzer:in wird durch einen Namen, eine Adresse und eine Telefonnummer beschrieben.
  • Jede:r Künstler:in wird durch einen Namen und eine eindeutige ID beschrieben.
  • Jede:r Künstler:in performt bei einer oder mehreren Veranstaltungen.

Als Beispiel für eine Veranstaltung betrachten Sie die Tour 2020/2021 der Sängerin Yael Naim. Diese Veranstaltung findet an verschiedenen Veranstaltungsorten (z. B. Hoxton Hall in London, Hotel Cecil in Kopenhagen) an verschiedenen Daten (z. B. 6. Oktober, 13. Dezember) statt.

18. Wählen Sie das ER-Diagramm aus, das die oben genannten Informationen am besten widerspiegelt

[Bearbeiten | Quelltext bearbeiten]

(Textuelle Rekonstruktion der vier Diagramm-Varianten; im Original handgezeichnet)

Diagramm (a):

  • Entität Veranstaltung (Name, VeranstaltungID)
  • Entität Datum (Datum) — Beziehung hatD [M Datum : N Veranstaltung]
  • Entität Preis (Preis) — Beziehung hatP [N Ticket : M Preis]
  • Entität Ticket (TicketID) — Beziehung hatV [1 Veranstaltung : N Ticket]
  • Beziehung hatVO [N Ticket : 1 Veranstaltungsort]
  • Entität Veranstaltungsort (Name, Breitengrad, Längengrad)
  • Beziehung kauft [N Ticket : 1 Benutzer:in]
  • Entität Benutzer:in (Name, Adresse, Telefon)
  • Beziehung performt [N Veranstaltung : M Künstler:in]
  • Entität Künstler:in (Name, Künstler:inID)

Diagramm (b):

  • Entität Veranstaltung (Name, VeranstaltungID, mehrwertige Attribute Künstler:inIDs, Künstler:inNamen, Breitengrad, Längengrad)
  • Beziehung besucht [N Veranstaltung : M Benutzer:in] mit Beziehungsattributen Datum, Preis
  • Entität Benutzer:in (Name, Adresse, Telefon)

Diagramm (c):

  • Entität Veranstaltung (Name, VeranstaltungID) — Beziehung hatV [1 Veranstaltung : N Ticket]
  • Entität Ticket (Datum, Preis)
  • Beziehung hatVO [N Ticket : 1 Veranstaltungsort]
  • Entität Veranstaltungsort (Name, Breitengrad, Längengrad)
  • Beziehung performt [1 Veranstaltung : N Künstler:in]
  • Entität Künstler:in (Künstler:inID, Name)
  • Beziehung kauft [N Ticket : 1 Benutzer:in]
  • Entität Benutzer:in (Name, Adresse, Telefon)

Diagramm (d):

  • Entität Veranstaltung (Name, VeranstaltungID)
  • Beziehung kauft [N Veranstaltung : M Veranstaltungsort] mit Beziehungsattributen Datum, Preis; Kardinalität P (partiell) Richtung Benutzer:in
  • Entität Veranstaltungsort (Name, Breitengrad, Längengrad)
  • Beziehung performt [N Veranstaltung : M Künstler:in]
  • Entität Künstler:in (Künstler:inID, Name)
  • Entität Benutzer:in (Telefon, Name, Adresse)

19. Betrachten Sie den Entitätstyp Veranstaltungsort mit den Attributen Name, Breitengrad und Längengrad, wie in den ER-Diagrammen (a), (c) und (d) gezeigt. Welche Attribute sollten als Primärschlüssel verwendet werden? Sie können ein oder mehrere auswählen.

[Bearbeiten | Quelltext bearbeiten]
  • Längengrad
  • Breitengrad
  • Name

20. Welche der folgenden Entitätstypen sollte(n) im ER-Diagramm (c) als schwacher Entitätstyp modelliert werden? Sie können null, einen oder mehrere Entitätstypen auswählen; um null auszuwählen, wählen Sie bitte die Option "(e) Keiner".

[Bearbeiten | Quelltext bearbeiten]
  • Veranstaltung
  • Künstler:in
  • Preis
  • Datum
  • Keiner
  • Veranstaltungsort
  • Benutzer:in
  • Ticket

21. Betrachten Sie das folgende ERD-Fragment

[Bearbeiten | Quelltext bearbeiten]

Das ERD zeigt die Entitäten Veranstaltung (VeranstaltungsID, Name) und Künstler:in (Künstler:inID, Name), die über die Beziehung „performt“ miteinander verbunden sind. Die Teilnahmebedingungen werden durch Kardinalitäten der Form [min,max] auf beiden Seiten beschrieben.

In diesem Fragment wird die [min, max]-Notation verwendet, um Kardinalitätsbeschränkungen festzulegen. Identifizieren Sie die Werte für [minx, maxx] und [miny, maxy], die es ermöglichen, die anfängliche textuelle Beschreibung zu erfassen.

  • [0, *] und [1, *]
  • [0, *] und [0, *]
  • [1, *] und [0, *]
  • [1, *] und [1, *]

22. Betrachten Sie das folgende ERD-Fragment (Veranstaltung [N] – performt – [M] Künstler:in)

[Bearbeiten | Quelltext bearbeiten]

Wie viele Relationen sollten erstellt werden, wenn dieses Fragment in Relationen umgewandelt wird? Gesucht ist ein gutes Design, das Redundanz und Unvollständigkeit minimiert. Das heißt, wie es entstehen würde, wenn der in den Vorlesungen behandelte Ansatz befolgt wird, um die anfängliche textuelle Beschreibung zu erfassen.

  • 4
  • 2
  • 1
  • 3
  • 0

IV. Transaktionen (10 Punkte)

[Bearbeiten | Quelltext bearbeiten]

23. Gegeben sei folgender Schedule

[Bearbeiten | Quelltext bearbeiten]

r1(x)→r2(y)→w2(y)→r3(z)→r1(x)→r3(y)→w3(y)→r4(z)→r3(y)→w3(z)→w1(x)→c1→c2

wobei

  • r1(x) bedeutet, dass T1 das Datenobjekt x liest (w repräsentiert einen Schreibzugriff)
  • c1 bedeutet, dass T1 ein Commit ausführt
  • → die Reihenfolge angibt, in denen die Operationen ausgeführt werden

Welche der folgenden gerichteten Kanten sind Teil des Conflict Graphs? Sie können eine oder mehrere Kanten auswählen.

(Knoten: T1, T2, T3, T4)

  • (T3, T1)
  • (T1, T2)
  • (T2, T4)
  • (T4, T1)
  • (T1, T3)
  • (T3, T2)
  • (T3, T4)
  • (T2, T3)
  • (T2, T1)
  • (T4, T3)
  • (T1, T4)
  • (T4, T2)

24. Gegeben seien die folgenden Conflict Graphs für Schedules. Identifizieren Sie jene Schedules, die (conflict) serializable sind. Sie können einen oder mehrere Graphen auswählen.

[Bearbeiten | Quelltext bearbeiten]

Hinweis: Die vier Graphen (a)–(d) bestehen jeweils aus den Transaktionsknoten T1–T9 (in drei Ebenen: T1–T3, T4–T6, T7–T9) mit gerichteten Kanten zwischen den Ebenen. Die genaue Kantenstruktur jedes einzelnen Graphen lässt sich aus der vorliegenden Fotoaufnahme nicht mit ausreichender Sicherheit 1:1 rekonstruieren – für die exakten Pfeile bitte das Originaldokument konsultieren. Gesucht sind jene Graphen, die azyklisch sind (= conflict serializable).

  • Graph (a) — T1,T2,T3 / T4,T5,T6 / T7,T8,T9
  • Graph (b) — T1,T2,T3 / T4,T5,T6 / T7,T8,T9
  • Graph (c) — T1,T2,T3 / T4,T5,T6 / T7,T8,T9
  • Graph (d) — T1,T2,T3 / T4,T5,T6 / T7,T8,T9

V. Entwurfstheorie (20 Punkte)

[Bearbeiten | Quelltext bearbeiten]

25. Funktionale Abhängigkeiten

[Bearbeiten | Quelltext bearbeiten]

Gegeben sei die folgende Tabelle:

mid title year country genre actor director
8371 A Night to Remember 1942 USA Comedy Sidney Toler Randall Wallace
8371 A Night to Remember 1942 USA Mystery Sidney Toler Randall Wallace
8371 A Night to Remember 1942 USA Romance Sidney Toler Randall Wallace
16676 Dark Alibi 1946 USA Crime Sidney Toler Phil Karlson
16676 Dark Alibi 1946 USA Drama Sidney Toler Phil Karlson
16676 Dark Alibi 1946 USA Mystery Sidney Toler Phil Karlson
16676 Dark Alibi 1946 USA Thriller Sidney Toler Phil Karlson
15696 Coney Island 1943 USA Comedy Yakima Canutt Tracy Casper Lang
15696 Coney Island 1943 USA Musical Yakima Canutt Tracy Casper Lang

Bestimmen Sie, welche der folgenden funktionalen Abhängigkeiten in dieser Tabelle erfüllt sind. Sie können eine oder mehrere funktionale Abhängigkeiten auswählen.

  • {title} → {actor}
  • {year, actor} → {title}
  • {title} → {year, actor}
  • {actor} → {title}

Für die nächsten drei Fragen gelten das relationale Schema

ℛ={[A,B,C,D,E]}

und die folgende Menge F an funktionalen Abhängigkeiten:

{A}→{B,D}

{B}→{A,C,E}

{A,C}→{B}

{B,E}→{D}

26. Welche der folgenden Attributmengen sind Superschlüssel? Sie können eine oder mehrere Attributmengen auswählen.

[Bearbeiten | Quelltext bearbeiten]
  • {C, E}
  • {B, C}
  • {A, B}
  • {C}
  • {B}
  • {A, C}
  • {E}
  • {A, E}
  • {A}
  • {B, E}

27. Welche der folgenden Attributmengen sind Schlüsselkandidaten? Sie können eine oder mehrere Attributmengen auswählen.

[Bearbeiten | Quelltext bearbeiten]
  • {A, B}
  • {C, E}
  • {B, C}
  • {A, C}
  • {B, E}
  • {B}
  • {E}
  • {A}
  • {A, E}
  • {C}

27. Welche der folgenden Aussagen bezüglich der gegebenen funktionalen Abhängigkeiten und Normalformen sind wahr? [MC]

[Bearbeiten | Quelltext bearbeiten]
  • (R, F) erfüllt BCNF
  • (R, F) erfüllt 3NF
  • (R, F) erfüllt nicht BCNF
  • (R, F) erfüllt nicht 3NF