Fachhochschule Wedel 24.08.2005 Prof. Dr. Sebastian Iwanowski Aufgaben zur Klausur in Objektorientierte Datenbanken (SS 2005) Zeit: 60 Minuten, erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen Lösungen auf gesonderten Blättern ein. Vergessen Sie nicht, das Deckblatt auszufüllen und zu unterschreiben. Für die Klausur werden insgesamt 34 Bewertungseinheiten (BE) vergeben. Zum Bestehen benötigen Sie mindestens 17 BE. Viel Erfolg ! 1. Aufgabe (4 BE), Thema: Datenmodellierung a) Geben Sie jeweils eine Begründung dafür an, warum für die Softwareentwicklung die objektorientierte Modellierung und für Datenbanken die relationale Modellierung bevorzugt wird! (Schlagworte reichen) b) Erklären Sie das Impedance Mismatch: Welche Anforderungen bezüglich Datenänderungen stehen jeweils bei der Softwareentwicklung und bei Datenbanken im Vordergrund! 2. Aufgabe (3 BE), Thema: ODMG a) Im Bibliotheksbeispiel (siehe Anhang) darf ein Leser mehrere Ausleihen vornehmen. Wie modelliert man in ODMG diesen Sachverhalt? (nur für die Klasse Leser) b) Geben Sie eine Java-Modellierung für die Klasse Leser an und nennen Sie, welcher Aspekt ungenauer als in ODMG spezifiziert ist. 3. Aufgabe (4 BE), Thema: Persistenzkonzepte a) Nennen Sie die drei unterschiedlichen Typen der Persistenz durch Erreichbarkeit bei JDO (mit stichwortartiger Funktionsbeschreibung)! b) Auf welche Weise kann man in JDO den Erreichbarkeitstyp einstellen? (keine genaue Syntax erforderlich) 4. Aufgabe (3 BE) Thema: Transaktionskonzepte Wann werden Lese- und Schreibsperren bei optimistischen Transaktionen vorgenommen? Erklären Sie den Vorteil dieses Konzepts gegenüber pessimistischen Transaktionen! 5. Aufgabe (8 BE), Thema: Anfragesprachen Betrachten Sie eine objektorientierte Modellierung des ER-Modells aus dem Bibliotheksbeispiel: Jede Entity sei als Klasse deklariert mit den dort definierten Attributen, ebenso die Relation Ausleihe. Die Beziehungen seien ebenfalls als Attribute deklariert mit den dort definierten Referenznamen und Kardinalitäten. Außerdem dürfen Sie Variablen verwenden, die den Extent einer Klasse enthalten, z.B. alleBuecher für den (Bitte wenden!) Extent der Klasse Buch. -1- a) Formulieren Sie die jeweiligen OQL- und JDOQL-Aufrufe für die Frage nach allen Lesern, die an der Bibliothek mit Namen „FHWB“ ein Buch mit Titel „JDO“ ausgeliehen haben! (Sie brauchen nur die Frage bzw. den Filter zu formulieren) (6 BE) b) Nennen Sie einen Vorteil von OQL und einen Vorteil von JDOQL im Vergleich zur jeweils anderen Anfragesprache! (2 BE) 6. Aufgabe (6 BE), Thema: Lebenszykluszustände a) Erklären Sie die Bedeutung des Zustands hollow! b) Geben Sie eine typische Situation an, durch die ein Objekt in den Zustand hollow gelangt und eine, durch die ein Objekt den Zustand hollow wieder verlässt! c) Nennen Sie einen Vorteil des Arbeitens mit dem Zustand hollow gegenüber ODMG sowie einen Nachteil gegenüber Hibernate! 7. Aufgabe (2 BE), Thema: Hibernate a) Nennen Sie einen Vorteil und einen Nachteil von JDBC im Vergleich zu objektorientierten Datenbanken! b) Welchen Vorteil bietet einem Hibernate im Vergleich zu JDBC? (Stichwort reicht) 8. Aufgabe (4 BE), Thema: Hibernate a) Nennen Sie die Analoga von HQL und Criteria unter den Anfragesprachen für objektorientierte Datenbanken! b) Nennen Sie einen wesentlichen konzeptionellen Unterschied zwischen HQL und SQL! c) Nennen Sie jeweils einen Vor- und einen Nachteil von Hibernate gegenüber JDO! Bibliotheksbeispiel Titel Name Leser Straße entleiht Buch 1 1 wirdEntliehen n n Buch Person Ausleihdatum Rückgabedatum ISBN-Nr Ausleihe Ort verleiht n 1 Name Bibliothek Straße -2-