Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer Kennzahl: Kennwort: Herbst 6 6 1 1 6 Arbeitsplatz-Nr.: 2 0 1 5 Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen — Prüfungsaufgaben — Fach: Informatik (vertieft studiert) Einzelprüfung: Datenbanksysteme, Softwaretechnologie Anzahl der gestellten Themen (Aufgaben): 2 Anzahl der Druckseiten dieser Vorlage: 12 Bitte wenden! Herbst 2015 Einzelprüfungsnummer 66116 Seite 2 Thema Nr. 1 Teilaufgabe 1 1. Modellierung Wir wollen eine relationale Datenbankstruktur für ein Online-Auktionshaus modellieren. Das Auktionshaus hat Mitglieder. Diese Mitglieder haben Kundennummern, Namen und Adressen. Sie können Verkäufer und/oder Käufer sein. Verkäufer können eine Laden-URL (eine Subdomain) erhalten, die zu einer Seite mit ihren aktuellen Auktionen führt. Verkäufer können neue Auktionen starten. Die Auktionen eines Verkäufers werden durchnummeriert. Diese Auktionsnummer ist nur je Verkäufer eindeutig. Jede Auktion hat ein Mindestgebot und eine Ablaufzeit. Auf Auktionen können Gebote abgegeben werden. Die Gebote auf eine Auktion werden nach ihrem Eintreffen nummeriert. Diese Nummer ist nur innerhalb einer Auktion eindeutig. Zu einem Gebot werden noch die Zeit des Gebots sowie der gebotene Geldbetrag angegeben. Die Gebote werden von Käufern abgegeben. Jedes Gebot muss einem Käufer zugeordnet sein. Jede Auktion besteht aus einer Menge von Artikeln, aber aus mindestens einem. Artikel haben eine Beschreibung und können und über ihre Artikel-ID identifiziert werden. Zur Katalogisierung der Artikel gibt es Kategorien. Kategorien haben eine eindeutige ID und einen Namen. Jede Kategorie kann Subkategorien besitzen. Auch Subkategorien sind Kategorien (und können damit weitere Subkategorien besitzen). Jeder Artikel kann beliebig vielen Kategorien zugeordnet werden. Entwerfen Sie für das beschriebene Szenario ein ER-Diagramm. Bestimmen Sie hierzu: — die Entity-Typen, die Relationship-Typen und jeweils deren Attribute, — ein passendes ER-Diagramm, — die Primärschlüssel der Entity-Typen, welche Sie anschließend in das ER-Diagramm eintragen, — die Funktionalitäten der Relationship-Typen, welche Sie ebenfalls in das ER-Diagramm eintragen. 2. Normalformen Gegeben sei folgendes verallgemeinerte Relationenschema in 1. Normalform: R:{{[4,B,C,D,E,F,G, H]} Für R soll die folgende Menge FD von funktionalen Abhängigkeiten gelten: eF>E eA—>BD eAE>D eA>EF eAG>H Fortsetzung nächste Seite! Herbst 2015 Einzelprüfungsnummer 66116 Seite 3 Bearbeiten Sie mit diesen Informationen folgende Teilaufgaben. Vergessen Sie dabei nicht Ihr Vorgehen stichpunktartig zu dokumentieren und zu begründen. a) Bestimmen Sie alle Schlüsselkandidaten von R. Begründen Sie stichpunktartig, warum es außer den von Ihnen gefundenen Schlüsselkandidaten keine weiteren geben kann. b) Ist R in 2NF, 3NF? c) Berechnen Sie eine kanonische Überdeckung von FD. Es genügt, wenn Sie für jeden der vier Einzelschritte die Menge der funktionalen Abhängigkeiten als Zwischenergebnis angeben. d) Bestimmen Sie eine Zerlegung von R in 3NF. Wenden Sie hierfür den Synthesealgorithmus an. 3.SQL Gegeben seien folgende Relationen: Mensch(ID, MutterID, VaterID) Mann(ID) Frau(ID) Das zugehörige ER-Modell für dieses relationale Datenbankschema sieht folgendermaßen aus: Disjunkte Spezialisierung Fortsetzung nächste Seite! Herbst 2015 Einzelprüfungsnummer 66116 Seite 4 Bearbeiten Sie folgende Teilaufgaben: a) Finden Sie die Töchter der Frau mit ID 42. b) Gibt es Männer, die ihre eigenen Großväter sind? Formulieren Sie eine geeignete SQL-Anfrage. c) Definieren Sie eine View VaterKind (VaterID; KindID), die allen Vätern (VaterID) ihre Kinder (KinderID) zuordnet. Diese View darf keine NULL-Werte enthalten. d) Verwenden Sie die View aus c), um alle Väter zurückzugeben, absteigend geordnet nach der Anzahl ihrer Kinder. e) Hugo möchte mit folgender Anfrage auf Basis der View aus c) alle kinderlosen Männer erhalten: SELECT VaterID FROM VaterKind GROUP BY VaterID HAVING COUNT(KindID) = 0 i. Was ist das Ergebnis von Hugos Anfrage und warum? ii. Formulieren Sie eine Anfrage, die tatsächlich alle kinderlosen Männer zurückliefert. Hinweis: Denken Sie daran, dass SQL auch Mengenoperationen kennt. Teilaufgabe 2 1. Qualitätsmanagement Gegeben ist die folgende Methode zur Berechnung des größten gemeinsamen Teilers zweier Zahlen m und n: 1 public static int ggt(int m, int n) 2 { 3 if (m <= O [| n <= 0) 4 return -1; 5 else { 6 while (m !=n) { 7 if (mP2 NS. P2>P1| P2 = Et ——— s2] 2 | -2/S1] E ]41[s1] 4 so] El+3 40 E|s2| jeis] [Elso| , „lalsıl °° A Ng a x2 ste] Bin Sif 3 |sı 3 +2 Elso| |E|si +3 \+1 3, 17 $2| 1 S1/E $2|E $2] E}+3/S0/ E E Si, +4 +3 131821 2 +2,13 150 sist} leise) x6 “xe NS > ?? $2] 2 +3 _|S0| 2 3 |S2 “LE |s2 b) Beantworten Sie folgende Fragestellungen und begründen Sie jeweils kurz Ihre Antwort: i) Ist der Startzustand jederzeit direkt oder indirekt wiederherstellbar? ii) Können beide Prozesse ausgehend vom Startzustand alle ihre individuellen Zustände einnehmen? iii) Enthalt das System Verklemmungssituationen (Deadlocks)? iv) Wenn Deadlocks auftreten können, beschreiben Sie kurz die Situation, die jeweils vorliegt. Fortsetzung nächste Seite! Herbst 2015 Einzelprüfungsnummer 66116 Seite 11 c) Nach Analyse des Produktautomaten modelliert jemand das nebenstehende Petri-Netz und behauptet, es zeigt genau das gleiche Verhalten der beiden Prozesse, wenn man die Platzmarkierung als Zustandszeiger und das Schalten einer Transition als Übertragung der gleichnamigen Nachricht interpretiert. Nehmen Sie kurz aber nachvollziehbar Stellung zu dieser Behauptung. Aufgabe 3 „Formale Verifikation“ long doubleFac (long n) { /* P */ long df = 1; for (long x =n; x > 1; x -= 2) { af *= x; } /* QO */ return df; P=n20 2k! für gerade n, dabei sei k = 5 Q:=df=nl:= (2k! | 2 Zr; für ungerade n, dabei sei k = —— Zur Vereinfachung nehmen Sie im Folgenden an, dass die verwendeten Datentypen unbeschrankt sind und daher keine Überläufe auftreten können! a) Welche der folgenden Bedingungen ist eine zum Beweisen der Korrektheit der Methode mittels wp-Kalkül (Floyd-Hoare-Kalkül) sinnvolle Schleifeninvariante? adf=ni-xlax>1i edf=(n-x)!ax21 adf x!=n!Ax20 a(df+xii=niiAx2o0 Fortsetzung nächste Seite! Herbst 2015 Einzelprüfungsnummer 66116 Seite 12 b) Zeigen Sie formal mittels wp-Kalkül, dass die von Ihnen gewählte Bedingung unmittelbar vor Beginn der Schleife gilt, wenn zu Beginn der Methode die Anfangsbedingung P gilt. c) Zeigen Sie formal mittels wp-Kalkül, dass die von Ihnen gewählte Bedingung tatsächlich eine Invariante der Schleife ist. d) Zeigen Sie formal mittels wp-Kalkül, dass am Ende der Methode die Nachbedingung © erfüllt wird. e) Beweisen Sie, dass die Methode immer terminiert. Geben Sie dazu eine Terminierungsfunktion an und begründen Sie kurz Ihre Wahl.