Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren Aufgabe 1 10 = 5 + 5 Punkte) DDL Relationenmodell eer-diagramm /10) Gegeben sei das folgende SQL-DDL-Skript zur Generierung eines Oracle-Datenbankschemas: create table ERZEUGNIS FARBE CHAR1), FLOAT8), ALKOHOLGEHALT constraint PK_ERZEUGNIS primary key ) create table REBSORTE SORTEN ANBAUGEBIET CHAR1), TRAUBENFARBE constraint PK_REBSORTE primary key SORTEN, ANBAUGEBIET) create table WEIN SAUREGEHALT QUALITATSSTUFE constraint PK_WEIN primary key ), constraint FK_WEIN_IST2_ERZEUGNI foreign key ) references ERZEUGNIS FLOAT4), VARCHAR216), create table SCHAUMWEIN KOHLENSAUREDRUCK FLOAT4), constraint PK_SCHAUMWEIN primary key ), constraint FK_SCHAUMWE_IST_ERZEUGNI foreign key ) references ERZEUGNIS create table MISCHUNG SORTEN ANBAUGEBIET ANTEIL FLOAT8), constraint PK_MISCHUNG primary key SORTEN, ANBAUGEBIET, ), constraint FK_MISCHUNG_BESTEHT_A_ERZEUGNI foreign key ) references ERZEUGNIS ), constraint FK_MISCHUNG_IST_BESTA_REBSORTE foreign key SORTEN, ANBAUGEBIET) references REBSORTE SORTEN, ANBAUGEBIET) a) Leiten Sie aus dem DDL-Skript das Relationenmodell ab. Kennzeichnen Sie Primär- und Fremdschlüsselspalten. 1 / 6
b) Leiten Sie aus dem Relationenmodell aus a) das eer-diagramm ab. Kennzeichnen Sie Primärschlüsselattribute und beschriften Sie die Beziehungen je nach dem, ob sie referenzierend r) oder identifizierend i) =dependent) sind. 2 / 6
Aufgabe 2 8 = 2 + 2 + 2 + 2 Punkte) referentielle Integrität /8) Kreuzen Sie bei den folgenden Aussagen die richtige Antwort an Mehrfachnennungen sind möglich: a) Ist ein FK-Constraint mit einer on delete cascade-klausel deklariert, so werden beim Löschen aus der referenzierten Tabelle alle referenzierenden Datensätze mitgelöscht, so wird beim Löschen aus der referenzierenden Tabelle der referenzierte Datensatz mitgelöscht, so wird ein kaskadisches Löschen nur dann erlaubt, wenn keine weiteren FK-constraints auf die referenzierte Tabelle exisiteren, die restricted sind. b) Das Löschen einer Tabelle mit einer drop table-anweisung ist immer möglich, wenn zuvor alle referenzierenden Datensätze gelöscht wurden, oder wenn alle FK-constraints auf diese Tabelle als on delete cascade deklariert sind, oder wenn die drop table-anweisung mit einem cascade constraints endet. c) Eine FK-Spalte mit zugehörigem Constraint sichert die Datenintegrität beim Schreiben, beschleunigt den lesenden Zugriff bei einer Join-Operation, darf nur für einen Join auf die referenzierte Tabelle verwendet werden. d) Mit einer truncate table-anweisung können Tabelleninhalte gelöscht werden, auch wenn dadurch die referentielle Integrität möglicherweise verletzt wird, können die gelöschten Dateninhalte nicht wieder durch ein rollback hergestellt werden. 3 / 6
/ 12) Aufgabe 3 12 = 2 + 3 + 3 + 4 Punkte) DML SELECT Die folgenden Teilaufgaben für die SELECT-Anweisungen a), b), c) und d) beziehen sich auf das Datenmodell auf der letzten Seite. a) Erstellen Sie eine Liste Schuljahr, Klassenbez, Anzahl_Kinder) aller Schulklassen der Schuljahre 2010 bis einschließlich) 2014. Sortieren Sie die Liste absteigend nach Schuljahr. b) Erstellen Sie eine Liste aller Lehrer L_Persnr, L_Name), die Klassenlehrer einer Klasse sind und in der gleichen Klasse das Fach Mathematik unterrichten. c) Ermitteln Sie die durchschnittliche Anzahl von Kindern in allen Klassen eines Schuljahres und geben Sie nur diejenigen Schuljahre aus, in denen dieser Durchschnitt größer als 20 war. d) Erstellen Sie eine Liste Nachname, Vorname) aller Schüler, die von einem Lehrer namens Schmidt als Klassenlehrer haben. 4 / 6
Aufgabe 4 10 = 4 + 4 + 2 Punkte) Transaktionsmanagement /10) a) Skizzieren Sie ein Beispielszenario, bei dem ein Konflikt durch Verwendung des Isolationlevel Repeatable Read gem. SQL 92-Standard) auftritt, der beim nächst höheren Isolationlevel nicht mehr auftreten kann. Wie nennt man diesen Konflikt? b) Erklären Sie in Stichworten, wie bei einem Crash-Recovery das Logfile gelesen wird, um durch geeignete REDO- und/oder UNDO-Aktivitäten den aktuellsten Datenbestand wieder herzustellen. c) Beschreiben Sie die aufeinanderfolgenden Operationen zweier Transaktionen, die einen Deadlock unter Oracle MVCC generieren. Welchen Isolation-Level wählen Sie für dieses Sczenario? 5 / 6
Datenmodell Schulverwaltung zu den Aufgaben und 5 Klassenzugehoerigkeit SID Schuljahr Klassenbez CHAR7) CHAR3) <pk,fk1> <pk,fk2> <pk,fk2> SID = SID SID Nachname Vorname GebDatum Abitur Schueler Schuljahr = Schuljahr Klassenbez = Klassenbez History_SID Nachname Vorname GebDatum Abitur History_Schueler Schuljahr Klassenbez Klassenlehrer Klassenraum Anzahl_Kinder Schulklasse CHAR7) CHAR3) VARCHAR26) <fk> L_Persnr = Klassenlehrer L_Persnr L_Name Lehrer Schuljahr = Schuljahr Klassenbez = Klassenbez Schuljahr Klassenbez lfdnr Fachlehrer Fach FachKlassenlehrer CHAR7) CHAR3) <pk,fk1> <pk,fk1> <fk2> L_Persnr = Fachlehrer 6 / 6