Prof. Dr. Stephan Karczewski Prüfungsleistung Datenbanken 2 05.07.2006 Name:.............................................................. Matrikelnummer:............................................ Aufgabe 1 Max. Pkte. 10 Ihre Pkte. 2 15 3 15 4 15 5 15 Aufgabe 1 Datenschutz und Datensicherheit (10 Punkte) a) Erläutern Sie die ACID-Eigenschaften von Datenbanken A C I D b) Erläutern Sie kurz den Begriff Uncommited Dependency Problem 6 15 Gesamt 90 Prof. Dr. Stephan Karczewski Prüfungsleistung Datenbanken 2 05.07.2006 Name:.............................................................. Matrikelnummer:............................................ Aufgabe 2 Views (15 Punkte) a) Gegeben sei folgende Relation: ANGESTELLTER: ANR 1 2 3 4 NAME Maier Müller Schulze Kirst ORT Wiesbaden Darmstadt Kirst Frankfurt GEHALT 4444 5555 3333 2222 und folgende View-Definition create view V1 as select ANR, NAME, ORT from ANGESTELLTER where GEHALT <any (select GEHALT from ANGESTELLTER) -- any bedeutet “irgend ein” Was liefert die folgende Anfrage: select NAME from V1 where ORT = ´Darmstadt´; b) In einer Datenbank gibt es folgende Relationenschemata: PFERDE: STÄLLE: PNR ZÜCHTERNR NAME ALTER ZÜCHTERNR VATERNR NAME PLZ ORT STRASSE Zu beachten: Die VATERNR in dem Schema PFERDE gibt eine Nummer an, zu der es ein „passendes“ Pferd geben muss. Beantworten Sie folgende Fragen mit SQL: b1) Welche dreijährigen Pferde (auszugeben ist nur der NAME) sind in den Ställen von Frankfurter Züchtern untergebracht? b2) Welche Züchter (auszugeben ist nur der NAME des STALLES) haben in ihren Ställen mindestens 1 Kind von dem VATER mit Namen ´Hermes´? Prof. Dr. Stephan Karczewski Prüfungsleistung Datenbanken 2 05.07.2006 Name:.............................................................. Matrikelnummer:............................................ Aufgabe 3 Netzwerkmodell (15 Punkte) Gegeben sei das folgende ER-Diagramm: KFZ (1,1) (1,*) gehört Kunde (1,*) erteilt (1,1) (0,*) Mechaniker a) (0,*) bearbeitet WerkstattAuftrag Geben Sie zu diesem ER-Diagramm ein äquivalentes Netzwerk-Diagramm an. b) Zeichnen Sie die folgenden Sachverhalte in dem physischen Teil-Netzwerk „Mechaniker bearbeitet Werkstatt-Auftrag“ auf. M1 bearbeitet W1, W2, W3; M2 bearbeitet W2, W4; M3 bearbeitet W3, W4 Prof. Dr. Stephan Karczewski Prüfungsleistung Datenbanken 2 05.07.2006 Name:.............................................................. Matrikelnummer:............................................ Aufgabe 4 PL/SQL – Interpretation (15 Punkte) Gegeben sei die folgende Relation mit den nachfolgenden Inhalten: SNR 1 3 16 21 13 51 55 69 60 59 SNAME Lehmann Friedrich Lahm Metzelder Ballack Buffon Canavaro Zambrotta Totti Toni SALTER 36 27 22 25 29 28 32 29 29 29 SGEHALT 3000 1500 2000 1800 5000 3500 2000 2500 3200 2700 Interpretieren Sie das folgenden PL/SQL-Programm, indem Sie a) in einem Satz beschreiben, was dieses Programm tut: b) die Bildschirmausgabe aufschreiben declare cursor c1 is select sname, salter, sgehalt, mname from spieler; declare cursor c1 is select sname, salter, sgehalt, mname from spieler; Ergebnis a) s_N s_A s_G s_MN spieler.sname%type; spieler.salter%type; spieler.sgehalt%type; spieler.mname%type; ALT GEH ANZ integer; integer; integer; begin open c1; fetch c1 into s_N, s_A, s_G, s_MN; ALT := 0; ANZ := 0; while c1%found loop if s_MN = 'Deutschland' then ALT := ALT + s_A; ANZ := ANZ + 1; dbms_output.put_line('ALT = '||ALT||' ANZ = '||ANZ); Ergebnis b) end if; fetch c1 into s_N, s_A, s_G, s_MN; end loop; close c1; dbms_output.put_line('Erg = '||ALT/ANZ); end; / MNAME Deutschland Deutschland Deutschland Deutschland Deutschland Italien Italien Italien Italien Italien Prof. Dr. Stephan Karczewski Prüfungsleistung Datenbanken 2 05.07.2006 Name:.............................................................. Matrikelnummer:............................................ Aufgabe 5 PL/SQL – Eigenentwicklung (15 Punkte) Die folgende Aufgabe bezieht sich auf das Beispiel aus Aufgabe 4. Formulieren Sie ein PL/SQL-Programm, das als Ausgabe die Differenz der Durchnittsgehälter deutscher und italienischer Spieler ausgibt und geben Sie das entsprechende Ergebnis an: Prof. Dr. Stephan Karczewski Prüfungsleistung Datenbanken 2 05.07.2006 Name:.............................................................. Matrikelnummer:............................................ Aufgabe 6 Objektrelationale Datenbanken (15 Punkte) Gegeben sei die folgende objekt-relationale Definition einer Tabelle: create type adresse_t as object ( PLZ int, Ort varchar(30), Str varchar(30), Hnr int ); create type familie_t as object ( FNR int, Name varchar(30), Adresse adresse_t ); create type sub_t as table of familie_t; create table Familietab ( Familie familie_t, Kinder sub_t ) nested table Kinder store as sub_tab; a) Zeichnen Sie die korrekte Tabellenstruktur auf (zunächst nur das Schema). b) Formulieren Sie einen Insert-Befehl, mit dem Sie eine Familie mit zwei Kindern einfügen (die Werte sollten einigermaßen sinnvoll gewählt werden, z.B. Ihre eigenen Familiendaten ;-) und tragen Sie diese Werte in die Tablle aus a) ein.