Prof. Dr. V. Linnemann Marc Stelzner Universität zu Lübeck Institut für Informationssysteme Lübeck, den 25. November 2013 Nonstandard Datenbanken Wintersemester 2013/2014 6. Übungsblatt Aufgabe 1: Transformation von SQL nach db4o Gegeben seien folgende Anweisungen in SQL 1 2 3 4 CREATE TABLE STUDENTEN ( MatrNr INTEGER NOT NULL PRIMARY KEY, Name VARCHAR( 2 0 ) , Semester INTEGER) ; 5 6 7 8 9 CREATE TABLE VORLESUNGEN ( VorlNr INTEGER NOT NULL PRIMARY KEY, T i t e l VARCHAR( 2 0 ) , SWS INTEGER) ; 10 11 12 13 14 15 16 CREATE TABLE hoeren ( MatrNr INTEGER NOT NULL, VorlNr INTEGER NOT NULL, PRIMARY KEY ( MatrNr , VorlNr ) , FOREIGN KEY ( MatrNr ) REFERENCES STUDENTEN, FOREIGN KEY ( VorlNr ) REFERENCES VORLESUNGEN) 17 18 INSERT INTO STUDENTEN VALUES( 2 4 0 0 2 , ’ Xenokrates ’ , 1 2 ) 19 20 INSERT INTO STUDENTEN VALUES ( 2 5 4 0 3 , ’ Jonas ’ , 12 ) 21 22 INSERT INTO STUDENTEN VALUES ( 2 6 1 2 0 , ’ F i c h t e ’ , 1 0) 23 1/4 24 INSERT INTO VORLESUNGEN VALUES ( 5 0 0 1 , ’ Grundzuege ’ , 3 ) 25 26 INSERT INTO VORLESUNGEN VALUES ( 5 0 4 1 , ’ Ethik ’ , 1 ) 27 28 INSERT INTO VORLESUNGEN VALUES ( 5 0 4 3 , ’ E r k e n n t n i s t h e o r i e ’ , 3) 29 30 INSERT INTO VORLESUNGEN VALUES ( 4 0 5 2 , ’ Logik ’ , 4 ) 31 32 INSERT INTO VORLESUNGEN VALUES ( 5 2 1 6 , ’ B i o e t h i k ’ , 2 ) 33 34 INSERT INTO HOEREN VALUES( 2 5 4 0 3 , 5 0 4 1 ) 35 36 INSERT INTO HOEREN VALUES( 2 5 4 0 3 , 4 0 5 2 ) 37 38 INSERT INTO HOEREN VALUES( 2 6 1 2 0 , 5 0 0 1 ) 39 40 INSERT INTO HOEREN VALUES( 2 6 1 2 0 , 4 0 5 2 ) 41 42 43 44 45 46 SELECT Name FROM STUDENTEN, VORLESUNGEN, HOEREN WHERE HOEREN. MatrNr = STUDENTEN. MatrNr AND HOEREN. VorlNr = VORLESUNGEN. VorlNr AND VORLESUNGEN. T i t e l= ’ Logik ’ 47 48 49 50 UPDATE STUDENTEN SET Semester =13 WHERE Name = ’ Xenokrates ’ 51 52 53 DELETE FROM VORLESUNGEN WHERE T i t e l = ’ E r k e n n t n i s t h e o r i e ’ 54 55 56 57 SELECT ∗ FROM VORLESUNGEN WHERE SWS BETWEEN 2 AND 3 58 59 60 61 62 SELECT ∗ FROM STUDENTEN WHERE Name LIKE ’%s ’ ORDER BY Name 63 64 65 SELECT AVG(SWS) FROM VORLESUNGEN 2/4 a) Übersetzen Sie die gegebenen SQL-Befehle in ein Java-db4o-Programm. Das Programm soll dann in der main-Methode ausgeführt werden. Ergebnisse sollen per System.out ausgegeben werden. (8 Punkte) b) Wie werden SQL Update Anweisungen in db4o umgesetzt? Nennen Sie schrittweise das Vorgehen. (1 Punkt) c) Schreiben Sie eine beliebige weitere Update Anweisung. Der Benutzer soll diese Anweisung auf Nachfrage mittels des Transaktionskonzeptes (Commit, Rollback) explizit persistent machen bzw. zurücknehmen können. (2 Punkte) Hinweis: Der Pfad zur Datenbankdatei soll in einer globalen Konstanten definierbar sein. Senden Sie die Quelldatei der erstellten Java-Klasse per E-Mail an Ihren Übungsgruppenleiter. Aufgabe 2: Objektorientierte - Anfragen Wahllokal Nr #Wahlber. 1..n zugeordnet Wahlbezirk 1 erreicht Jahr 0..n 1 Nr Nr Wahlergebnis Wahlkreis Bezeichnung #Stimmen 1 #Stimmen t von 0..n erhalten Erststimmen Zweitstimmen 0..n 1 1..n Direktkandidat SozialVNr 1..n tretenAn 1 Name Name Formulieren Sie die folgenden Anfragen in OQL: 3/4 Partei 1 #Mitglieder erhalten a) Wieviele Erststimmen hat der Direktkandidat ’Horst Müller’ im Jahre 2004 im Wahlbezirk 17 erhalten? (3 Punkte) b) Welche Parteien haben im Wahlbezirk 17 im Jahre 2004 mehr als 5000 Stimmen erhalten? (3 Punkte) c) In welchen Wahlbezirken war die Wahlbeteiligung 2004 größer als 50%? Bei dieser Aufgabe ist die Wahlbeteiligung mit der Formel AnzahlErstimmen+AnzahlZweitstimmen zu berechnen. 2×AnzahlW ahlberechtigte (3 Punkte) Abgabetermin: Montag, den 2. Dezember 2013 bis 14 Uhr im Institut für Informationssysteme, 2. OG im Gebäude 64 (Raum 2.071, Küche neben Sekretariat) 4/4