[dbis logo]

.Lehre.Semesterübersicht
[Institut fuer Informatik] [Leerraum] [Humboldt-Universitaet zu Berlin]

XML, XPath, XQuery – Aufgabenblatt 4

Abgabetermin

Montag, 4.2.

Allgemeine Hinweise

Die zu lösenden Aufgaben sind nicht obligatorisch. Sie sollten jedoch die Gelegenheit nutzen, sich in die praktischen Aspekte des Vorlesungsstoffs zu vertiefen. Ein Feedback zu Lösungen und Problemen kann nur bei zeitgerechter Abgabe stattfinden. Die Ergebnisse der Aufgabenbearbeitung werden in den Übungseinheiten besprochen.

 

Übung-Foliensatz-04, Übung-Beispiele-04, Bibliothek Datenbank

Abgabemodus

Die Abgabe der Lösungen erfolgt als ein tar-gz-Archiv mit vorgegebener Inhaltsstruktur. Für die Aufgabe geben Sie bitte das Archiv "Aufgabe-4.tar.gz" mit den Dateien "Bibliothek.trans.sql-xml" sowie "Bibliothek.query.sql-xml" ab. Senden Sie dazu bitte eine Email mit entsprechendem Anhang an kost@informatik.hu-berlin.de.

Aufgabe 5

Das Thema dieser Aufgabe betrifft wieder das Abbilden von DB-Inhalten nach XML/XML-Schema. In Aufgabe 4 haben Sie bereits aus einem gegebenen Datenbankschema ein XML-Schema erstellt, welches die Daten einer Beispieldatenbank abbildet. Dabei wurden Methoden zum Generieren von XML-Dokumenten aus einer relationalen Datenbank verwendet wie sie in der Vorlesung vorgestellt und im Praktikum beispielhaft angewandt wurden. Diesmal behandeln wir nicht die Struktur der Datenbank sondern deren Instanz. Aufbauend auf dem in der Aufgabe 4 erstellten XML-Schema sollen jetzt die Daten der Datenbank mithilfe von SQL/XML in XML-Dokumente transformiert werden.

Aufgabenstellung

Vervollständigen Sie den Prozess der Abbildung für die Beispieldatenbank einer Bibliothek (mit der die Leihvorgänge von Kunden erfasst werden) aus Aufgabe 4. Neben der vollständigen strukturellen Abbildung auf das XML-Schema "Bibliothek.xsd" sollen jetzt auch die Daten der Datenbank transformiert werden.

 

Sie bekommen als Vorgabe das Archiv Bibliothek Datenbank mit den Dateien "readme.txt" (Beschreibung wie Sie auf die Datenbank auf unserem Server zugreifen bzw. sich ihre eigene erzeugen und wie Sie die Skripte ausführen können), "Bibliothek.ddl" (Skript zum Erzeugen eines eigenen Datenbankschemas für zu Hause und Füllen mit Werten), "Bibliothek.sql" (Beispiel-SQL-Anweisungen zum Zugriff auf die Bibliothek) und "Bibliothek.sql-xml" (Beispiele aus den Folien zur Extraktion von XML-Elementen aus der Bibliothek). Als Startpunkt eignet sich die Beispieltransformation einer Relation aus der Laender-Datenbank, welche in der Übung vorgestellt wurde (s. Beispiele - Skripte).

 

Im ersten Teil der Aufgabe erstellen Sie ein Skript "Bibliothek.trans.sql-xml" mit SQL/XML-Anweisungen, welches den gesamten Inhalt der Bibliothek-Datenbank mithilfe von SQL/XML in ein XML-Dokument transformiert. Das zu erstellende XML-Dokument soll dabei dem in Aufgabe 4 definierten Schema entsprechen und dieses lokal referenzieren.

 

Im zweiten Teil erstellen Sie ein weiteres Skript "Bibliothek.query.sql-xml" um zusätzliche Fragestellungen zu beantworten, die am Ende der Aufgabenstellung aufgeführt werden und in Form eines weiteren XML-Dokuments abgelegt werden können.

 

Im Folgenden finden Sie die (an DB2 angepassten) Tabellenbeschreibungen und Fremdschlüsselbeziehungen für das Datenbankschema der Bibliothek.

Buecher
Name
Typ
Nullwerte
Schlüssel
unique
Länge
ISBN
CHAR
nein
ja
ja
13
Titel
VARCHAR
ja
nein
nein
100
Erscheinungsjahr
INTEGER
ja
nein
nein
Auflage
INTEGER
ja
nein
nein

 

Abschnitte
Name
Typ
Nullwerte
Schlüssel
unique
Länge
BuchISBN
CHAR
nein
ja
u1
13
AbschnittID
INTEGER
nein
ja
u1
Typ *
VARCHAR
nein
nein
nein
15
Reihenfolge
INTEGER
nein
nein
nein
parentID **
INTEGER
ja
nein
nein
Titel ***
VARCHAR
ja
nein
nein
50
Text
VARCHAR
ja
nein
nein
3000

* mögliche Werte: "Kapitel", "Unterkapitel", "Absatz"
** verpflichtend nur für Unterkapitel und Absatz (Hierarchie: Kapitel - Unterkapitel - Absatz, also 3-stufig)
*** nur bei Kapitel und Unterkapitel möglich

Kunden
Name
Typ
Nullwerte
Schlüssel
unique
Länge
Kundennummer
INTEGER
nein
ja
ja
PersonVerweis
INTEGER
nein
nein
ja
Eintrittsdatum
date
ja
nein
nein

 

Leihvorgaenge
Name
Typ
Nullwerte
Schlüssel
unique
Länge
BuchISBN
CHAR
nein
ja
u1
13
Kundennummer
INTEGER
nein
ja
u1
Ausleihdatum
date
ja
nein
nein

 

Autoren
Name
Typ
Nullwerte
Schlüssel
unique
Länge
ID
INTEGER
nein
ja
ja
Kontakt
VARCHAR
ja
nein
nein
50
Homepage
VARCHAR
ja
nein
nein
100
PersonVerweis
INTEGER
nein
nein
ja

 

ZuweisungBuchAutor
Name
Typ
Nullwerte
Schlüssel
unique
Länge
BuchISBN
CHAR
nein
nein
nein
13
AutorenID
INTEGER
nein
nein
nein

 

Personen
Name
Typ
Nullwerte
Schlüssel
unique
Länge
ID
INTEGER
nein
ja
ja
Name
VARCHAR
ja
nein
nein
50
Vorname
VARCHAR
ja
nein
nein
50
Anrede
VARCHAR
ja
nein
nein
10
Titel
VARCHAR
ja
nein
nein
25
Straße
VARCHAR
ja
nein
nein
100
Hausnummer
VARCHAR
ja
nein
nein
10
PLZ
VARCHAR
ja
nein
nein
10
Stadt
VARCHAR
ja
nein
nein
50
Land
VARCHAR
ja
nein
nein
50
Telefon
VARCHAR
ja
nein
nein
50
email
VARCHAR
ja
nein
nein
50
Geburtstag
date
ja
nein
nein

 

Fremdschlüsselbeziehungen

Die folgenden Fragestellungen sind mithilfe des zu erstellenden Skripts "Bibliothek.query.sql-xml" zu beantworten. Verwenden Sie eine gemeinsame Wurzel für alle Antworten:

  • Geben Sie zu allen Büchern (inkl. ISBN und Buchtitel) die Autoren an, welche im Text referenziert werden. Eine Referenz auf Autoren soll im Text der folgenden Form genügen: "$Nachname $Vorname" oder "$Vorname $Nachname" oder "[$Nachname]"
  • Geben Sie alle "thematischen" Verbindungen zwischen den Büchern an. Eine Verbindung liegt vor, wenn ein Wort (außer "der", "die", "das", "dass", "ein", "eine", "und", "aber", "sowie" und mit jeweils erstem großen Buchstaben) aus dem Text oder Titel eines Buches im Titel oder Text eines anderen Buches auftaucht.
  • Geben Sie die Email-Adressen aller Kunden aus, welche Bücher lesen in denen es mehr als zwei Kapitel mit jeweils mindestens drei Unterkapiteln gibt.
  • Geben Sie die Anzahl der Kunden für alle Bücher aus, wobei die Kunden das Buch lesen und das Buch zwei Kapitel mit jeweils null oder zwei Unterkapiteln besitzt.


[Punkt]  Sommersemester 2019

[Punkt]  Wintersemester 2018/19

[Punkt]  Sommersemester 2018

[Punkt]  Wintersemester 2017/18

[Punkt]  Sommersemester 2017

[Punkt]  Sommersemester 2016

[Punkt]  Wintersemester 2015/16

[Punkt]  Sommersemester 2015

[Punkt]  Wintersemester 2014/15

[Punkt]  Sommersemester 2014

[Punkt]  Wintersemester 2013/14

[Punkt]  Sommersemester 2013

[Punkt]  Wintersemester 2012/13

[Punkt]  Sommersemester 2012

[Punkt]  Wintersemester 2011/12

[Punkt]  Sommersemester 2011

[Punkt]  Wintersemester 2010/11

[Punkt]  Sommersemester 2010

[Punkt]  Wintersemester 2009/10

[Punkt]  Sommersemester 2009

[Punkt]  Wintersemester 2008/09

[Punkt]  Sommersemester 2008

[aktiver Punkt]  Wintersemester 2007/08

[Punkt]  Sommersemester 2007

[Punkt]  Wintersemester 2006/07

[Punkt]  Sommersemester 2006

[Punkt]  Wintersemester 2005/06

[Punkt]  Sommersemester 2005

[Punkt]  Wintersemester 2004/05



Ansprechpartner

+49 30 2093-3025