Ü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