Übungsblatt 11 Abgabe bis 28. 1. 2007, 12:00 Uhr
Transcrição
Übungsblatt 11 Abgabe bis 28. 1. 2007, 12:00 Uhr
Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Datenbanksysteme - Winter 2007/08 Dipl.-Inform. Sascha Kriewel, LF 137 [email protected] Übungsblatt 11 Aufgabe 26: Abgabe bis 28. 1. 2007, 12:00 Uhr Web-Services (a) Vervollständige den UniVerwaltung-Web-Service aus der Vorlesung, so dass (i ) Studenten sich für Vorlesungen einschreiben, (ii ) ihre (und nur ihre eigenen) Noten abfragen und (iii ) eine Vorlesungsliste zum Namen einen Professors erhalten können Dazu gilt es, die wsdl-Datei um die nötigen Operationen zu erweitern. Zusätzlich müssen in Java implementierte Methoden für die Abfragen bzw. Änderungen an die Datenbank bereitgestellt und die beiden Klassen UniVerwaltungSOAPBindungImpl.java und Client.java angepasst werden. (b) Erörtere kurz die Sicherheitsproblematik und mache Vorschläge, wie sich angemessene Sicherheit realisieren lieÿe. 25 Punkte Aufgabe 27: XML-Datenbanken I IBM DB2 in der am Lehrstuhl benutzten und auf shirley.is.inf.uni-due.de installierten Version V8.1 bietet eine Reihe von XML-Erweiterungen. Benutze für diese und die folgende Aufgabe die Lehrstuhl-Installation mit den Verbindungsparametern 'db2user' (a) Die Funktion und 'database'. rec2xml erlaubt es, Ergebnisse von SQL-Anfragen als XML zu formatieren. Finde heraus (z.B. durch Suche im WWW), wie die Funktion funktioniert, also insbesondere welche Parameter sie erwartet. (b) Schreibe eine SQL-Anfrage unter Nutzung von rec2xml, die aus der Ta- belle Bahnhoefe eine Liste von Städten mit der Anzahl dort bendlicher Bahnhöfe erstellt. Das Ergebnis sollte etwa so aussehen: Bahnhoefe pro Stadt --------------------------------------------<Stadt><column name="name">Dortmund</column> <column name="anzahl">1</column></Stadt> <Stadt><column name="name">Duisburg</column> <column name="anzahl">3</column></Stadt> Übungsblatt 11 Seite 1 von 2 Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr (c) Erweitere die Anfrage nun um eine Liste der Bahnhofsnamen pro Stadt unter Benutzung von XMLELEMENT, XMLATTRIBUTES und XMLAGGR, um das Ergebnis zu formatieren. (Diese beiden Funktionen werden von der installierten DB2-Version nicht unterstützt, daher kann diese Aufgabe nicht praktisch ausprobiert werden.) 10 Punkte Aufgabe 28: XML-Datenbanken II Der DB2 XML Extender ist eine Komponente von DB2, die Datentypen und Funktionen zum Arbeiten mit semistruktierten XML-Dokumenten anbietet. DB2 kann XML-Dokumente in speziell vorbereiteten Tabellen speichern und erlaubt dabei den Zugri auf einzelne XML-Elemente z.B. über XPath. In der System-Tabelle DB2XML.DTD_REF nden sich die in der Datenbank ver- wendeten DTDs. Betrachte die in der folgenden Aufgabe benutzte DTD mit dem Befehl: SELECT content FROM db2xml.dtd_ref WHERE dtdid='staff.dtd' (a) DB2 benutzt zur Arbeit mit XML-Dateien unter anderem sogenannte DADs und Side Tables. Die in dieser Aufgabe benutzte DAD kann man mit dem Befehl SELECT dtdid, dad FROM db2xml.xml_usage erhalten. Sie bezieht sich auf die Tabelle DB2USER.MITARBEITER. Versuche herauszunden, was man unter einer DAD bzw. einer Side Table versteht und erkläre die Begrie mit eigenen Worten am Beispiel. (b) Füge einen neuen Eintrag in die Tabelle MITARBEITER mit Deiner Matrikelnummer als id und einem gültigen, DTD-konformen XML-String als data ein. Wie wirkt sich das auf die Side Table aus? (c) Erweitere die DAD, um mindestens drei weitere Elemente oder Attribute aus den XML-Daten auszulesen (d) Mit der Funktion DB2XML.UPDATE(Spalte, ) XPath, Wert lässt sich das in einer Tabelle gespeicherte XML direkt manipulieren, und mit der Funktion DB2XML.EXTRACTVARCHAR(Spalte, ) XPath lässt sich ein Wert aus dem XML auslesen. Zum Beispiel versetzt das Statement UPDATE mitarbeiter SET data=db2xml.Modify(data,'/staffmember//room','LF 230') WHERE db2xml.ExtractVarchar(data,'/staffmember//room')='LF 137' Euren Übungsleiter in ein neues Büro. Schreibt ein Statement, um (i ) für Euren neueingefügten Mitarbeiter eine Job-Beschreibung einzufügen oder zu ändern, (ii ) alle Mitarbeiternamen mit Telefonnummern auszugeben. 15 Punkte Übungsblatt 11 Seite 2 von 2