XML Data Management Herbst-/Wintersemester Dezember 2007

Ähnliche Dokumente
Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Musterlösung Übungsblatt 14

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

DTD: Syntax-Zusammenfassung

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Musterlösung des Übungsblattes 1

Android will doch nur spielen XML

Document Type Definitions (DTDs)

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Klausur: Internet-Technologien

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Document Type Definition (DTD)

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Datenbanksysteme 2 Frühjahr-/Sommersemester April Darf man in der XML Declaration die Versionsnummer weglassen? (d.h.

2 XML-Basiskonzepte. 2.1 XML-Dokumente

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

DTDs und XML- Schemata

Beschreibung von Dokumenten mit DTDs

XML-Technologien. Tutorium im Sommersemester Mai 2014

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XML Schema 2016 S h_da S Seite 1

PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Strukturierung von Inhalten

XML Schema 2012/2013 S Seite 1 h_da W

Einführung in XML. Seminarunterlage. Version 3.05 vom

Übungsbeispiel 1 Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser.

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

DTDs und XML-Schema. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Datenaustauschformate. Datenaustauschformate - FLV

XML Schema vs. Relax NG

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XML exemplarisch. nach: André Bergholz, Extending Your Markup: An XML Tutorial IEEE Internet Computing, Jul./Aug. 2000, 74 79

<B1>Skript</B1> Skript zur Vorlesung Auszeichnungssprachen Stand: September 2016

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

IT-Zertifikat: Daten- und Metadatenstandards

Logische Dokumentenstruktur mit SGML und XML

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

XML Extensible Markup Language

2. Einführung der NF 2 -Algebra

3.1 Sinn und Zweck von Namensräumen

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

XML Grundlagen Teil I

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

<Trainingsinhalt> XML umsetzen und nutzen

Teil VI. Anwendungen, Teil 1: XML und deterministische reguläre Ausdrücke

XML Datenbanken Quickstart für die Anfragesprachen XPath und XQuery

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

XSL Templates. Mit Templates arbeiten. XSL Templates

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

(a) Erstellen Sie für die Web-Veröffentlichung eines Artikels die Meta-Informationen nach dem Dublin-Core-Standard.

XML und Dokumentenmanagement

Konzeptionelle Modellierung von XML-Dokumenttypen

Erhöhung der Datenqualität in XML-Dokumenten von Desktop Applikationen. Alexander Hilliger von Thile - REI/ID

Kommunikation und Datenhaltung. Übungsblatt D1. (Relationale Algebra & SQL)

Semistrukturierte Datenmodelle. XML Datenmodelle. XML Infoset. OEM Beispielbaum. Document InfoItem. Beispiel

Herbstsemester Januar Datenbanksysteme II

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Vorlesung Datenbanken II SS 2006

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 14. Mai 2007 σ KID= 11a (Schüler) π S Name (σ KID= 11a (Schüler))

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Query Translation from XPath to SQL in the Presence of Recursive DTDs

1 Was ist XML? Hallo XML! Kommentare in XML 52

Einführung in Datenbanken - XML - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Übungen zu XML & Datenbanken

7.2.2 Spezifikation einer Treffermenge

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

Klausur zur Vorlesung Einführung in XML

Kap. 3 Relationenmodell mit relationaler Algebra

Was ist SGML. - welche Auszeichnungen (Mark up) sind erlaubt? - welche Auszeichnungen sind notwendig?

Querysprachen für XML

XSD - XML Schema Definition

XML-Einführung. Entwicklung Begriffe Vorteile/Möglichkeiten von XML Adressen Beispiele. Fachhochschule Nordwestschweiz FHNW Martin Hüsler

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Query Transformation based on XSLT

XML-Praxis. XML Übungen. Jörn Clausen

6. Datenbanken und XML

XML DTD und Schema von Thomas Mangold

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

2a) Rekursion (zugeschnitten auf Anfrage) (C) Prof. E. Rahm Universität Leipzig

mehrwertige Abhängigkeiten

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

extended Markup Language (XML)

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15

Relationale Algebra. Thomas Heimrich. Rel. Algebra. Grundlagen. Beispielrelationen. rel. Algebra. Definition der rel. Algebra.

Rückblick: Relationales Modell

Transkript:

Forschungsgruppe Datenbanken Prof. Dr. Carl-Christian Kanne B6, 29, Raum C0.06 68131 Mannheim Telefon: (0621) 181 2586 Email: kanne@informatik.uni-mannheim.de XML Data Management 11. Übungsblatt Herbst-/Wintersemester 2007 12. Dezember 2007 Aufgabe 1 Gegeben sei das folgende XML-Dokument: <bauplan id="a380"> <gewicht masseinheit="kg">277000</gewicht> <bauteilarten> <bauplan id="fluegel"> <gewicht masseinheit="t">32</gewicht> <bauteilarten> <bauteilart id="triebwerk" href="prattwhitney.com/t72.xml"/> <bauteilart id="tragflaeche" href="airbus.com/w12.xml"/> </bauteilarten> <konstruktion> <verbindung typ="geschraubt" material="spax 17"> <bauteil id="t1" typ="triebwerk" /> <bauteil id="f1" typ="tragflaeche" /> </verbindung> <verbindung typ="geschraubt" material="spax 17"> <bauteil id="t2" typ="triebwerk" /> <bauteilref id="f1"/> <verbindung> </konstruktion> </bauplan> <bauteilart id="rumpf" href="eads.com/c42.xml"/> </bauteilarten> <konstruktion> <verbindung typ="genietet" material="bolt 12"> <bauteil id="r0" typ="rumpf"/> <bauteil id="w0" typ="fluegel"/> </verbindung> <verbindung typ="genietet" material="bolt 12"> <bauteilref id="r0"/> <bauteil id="w1" typ="fluegel"/> </verbindung> </konstruktion> </bauplan> 1

Geben Sie ein XMLSchema für das Dokument an. Die bauteilarten beschreiben dabei die in der konstruktion vorkommenden Arten von Bauteilen. Diese Bauteilarten können entweder durch einen eingebetteten bauplan oder durch einen externen Bauplan (bauteilart) spezifiziert sein. Die konstruktion beschreibt dann, wie oft die Teile benötigt werden und wie sie zusammengebaut werden. Wenn ein Teil an mehreren Verbindungen teilnimmt, wird es nur einmal mit bauteil erzeugt und danach mit bauteilref referenziert. Eine Verbindung enthält mindestens zwei Bauteile, ggf. aber auch mehr. Aufgabe 2 Geben Sie XPath-Ausdrücke für die folgenden Anfragen auf dem Dokument aus Aufgabe 1 an. Aufgabe 2 a) Alle IDs von Bauteilarten. Aufgabe 2 b) Alle verwendeten Masseinheiten für Gewichte aufzählen. Aufgabe 2 c) Alle IDs von Komponenten, die an einer Schraubverbindung beteiligt sind. Aufgabe 2 d) IDs von Komponenten, die nicht an einer Schraubverbindung beteiligt sind. Aufgabe 3 Geben Sie jeweils den Typ und das Ergebnis (bzgl. des Dokuments aus Aufgabe 1) der folgenden Ausdrücke an. Aufgabe 3 a) count(/self::bauplan) Aufgabe 3 b) count(/self::*) Aufgabe 3 c) count(/self::node()) 2

Aufgabe 3 d) //bauplan Aufgabe 3 e) /descendant-or-self::bauplan Aufgabe 3 f) /descendant-or-self::bauplan/descendant-or-self::bauplan Aufgabe 3 g) //bauplan[1] Aufgabe 3 h) /descendant-or-self::bauplan[1] Aufgabe 3 i) //*[(name()= bauteil or name()= bauteilref ) and parent::verbindung/@typ= genietet ]/@id = //*[(name()= bauteil or name()= bauteilref ) and parent::verbindung/@typ= geschraubt ]/@id Aufgabe 4 Verwenden Sie XSLT, um das Dokument aus Aufgabe 1 wie folgt umzuformen: Aufgabe 4 a) Erzeugen Sie eine Version des Dokuments, in der alle Gewichtsangaben in Zentnern angegeben sind. Aufgabe 4 b) Erzeugen Sie eine Version des Dokuments, in der alle bauteil-tags als Inhalt den dazugehörigen Bauplan enthalten, wenn er lokal vorhanden ist. Stellen Sie sicher, das ihr Stylesheet auch bei beliebig tief geschachtelten Bauplänen korrekt arbeitet. Aufgabe 4 c) Erzeugen Sie ein Ausgabedokument, das eine Matrix enthält, die zu jeder Kombina- 3

tion von Bauteilarten auflistet, welche Verbindungstypen zwischen den Bauteilarten existieren. Falls mehrere Verbindungsarten existieren, soll nur die erste vorkommende aufgelistet werden. <matrix> <header><typ>rumpf</typ><typ>fluegel</typ>...</header> <row><typ>rumpf</typ><verbindung>keine</verbindung> <verbindung>geschraubt</verbindung>...</row> <row><typ>fluegel</typ><verbindung>... </row>... </matrix> Aufgabe 5 Formulieren Sie folgende Anfragen auf dem Dokument aus Aufgabe 1 in XQuery. Aufgabe 5 a) Geben sie zu jedem als bauteil vorkommenden Objekt an, ob ein lokaler Bauplan vorliegt oder ein externer. Verwenden Sie XML-Tags, um das Ergebnis zu strukturieren. Aufgabe 5 b) Geben Sie zu jeder Art von Verbindung die Bauteilarten an, die an einer solchen Verbindung beteiligt sind. Verwenden Sie XML-Tags, um das Ergebnis zu strukturieren. Aufgabe 5 c) Erzeugen Sie ein Ausgabedokument, das eine Matrix enthält, die zu jeder Kombination von Bauteilarten auflistet, welche Verbindungstypen zwischen den Bauteilarten existieren. Falls mehrere Verbindungsarten existieren, soll nur die erste vorkommende aufgelistet werden (siehe Aufgabe 4c). Aufgabe 5 d) Welches Problem taucht auf, wenn man die Zahl der Triebwerke des A380 aus dem Bauplan berechnen will. Geht das in XQuery? Geht das in XSLT? Wenn ja, wie? Aufgabe 6 Geben Sie für die folgenden Aussagen jeweils an, ob Sie wahr oder falsch sind. Begründen Sie Ihre Antwort kurz. Aufgabe 6 a) XML-Attributnamen ohne Prefix gehören keinem Namensraum an. 4

Aufgabe 6 b) XML-Elementnamen ohne Prefix gehören keinem Namensraum an. Aufgabe 6 c) Nur in einem XML-Schema global definierte Elemente dürfen als Wurzelelement eines XML-Dokuments verwendet werden. Aufgabe 6 d) Jeder Typ in XML Schema muss einen Namen haben. Aufgabe 7 Die folgende DTD beschreibt Anfrage-Auswertungsplaene mit Hilfe relationaler Algebraausdruecke. Dabei entsprechen die rekursiv geschachtelten expr-tags den Knoten im relationalen Operatorbaum, und das operator-attribut gibt den jeweiligen Operator an, wobei die Operatoren Selektion, Projektion, Theta-Verbund, Vereinigung, Kreuzprodukt und Zugriff auf Basisrelationen (Scan) möglich sind. <!ELEMENT plan (base*,expr,comment?) > <!ELEMENT expr (rschema?,((expr?) (expr,expr)),pred?,comment?) > <!ATTLIST expr operator (select project join union crossprod scan) #REQUIRED attrs NMTOKENS #IMPLIED baserel IDREF #IMPLIED > <!ELEMENT base (rschema)> <!ATTLIST base id ID #REQUIRED> <!ELEMENT rschema (attr)*> <!ELEMENT attr EMPTY> <!ATTLIST attr name NMTOKEN #REQUIRED domain CDATA #IMPLIED> <!ELEMENT comment (#PCDATA)> <!ELEMENT pred (#PCDATA)> Aufgabe 7 a) Wandeln Sie die DTD in ein XML-Schema-Dokument um. Stellen Sie sicher, dass nur plan-tags als Wurzel eines Dokuments auftreten können. 5

Aufgabe 7 b) Diskutieren Sie ausführlich die Alternativen, das Schema mit einem Namensraum zu versehen (berücksichtigen Sie dabei insbesondere die verschiedenen Werte von elementformdefault). Geben Sie mindestens zwei verschiedene durch Namensraum erweiterte Schemadokumente an. Aufgabe 7 c) Kommentare sollen statt einfacher Strings auch in Form von XHTML angegeben werden können, d.h. man soll statt PCDATA auch einen xhtml-tag in Kommentaren verwenden können. Verändern Sie Ihr Schema entsprechend. Der Namensraum von XHTML ist http://www.w3.org/1999/xhtml. Aufgabe 7 d) Erweitern Sie Ihr XML-Schema so, dass es jeweils eigene Untertypen für Ausdrücke mit keinem, einem, und zwei Operanden enthält. Aufgabe 7 e) Verwenden Sie Substitutionsgruppen so, dass die Operatornamen direkt als tag-namen verwendet werden können, dass also z.b. statt <expr operator= select... geschrieben werden kann <select.... Hinweis: Dabei kann die Bedingung aus Teilaufgabe a, dass nur plan als Wurzelelement auftreten kann, nicht mehr aufrechterhalten werden. Aufgabe 7 f) Erzwingen Sie (fuer die Schreibweise aus der vorigen Teilaufgabe), dass jeweils die korrekte Zahl von Operanden verwendet wird (d.h. ein Scan hat keine Operanden, ein Join, die Vereinigung und das Kreuzprodukt zwei, und Selektion und Projektion einen). Aufgabe 8 Das Schema aus der vorigen Aufgabe stellt Ausführungspläne mit Hilfe der relationalen Algebra dar. Die base-elemente beschreiben eine Basisrelation, die jeweils eine ID und ein Schema haben. expr-elemente beschreiben jeweils einen Operator im Ausdruck, dessen 0-2 Operanden geschachtelt werden. attrs verweist auf Attribute, die der Operator aus der Eingabe verwendet. pred beschreibt bei Selektionen und Joins jeweils das Predikat. Für Scans gibt das Attribut baserel an, auf welche Basisrelation zugegriffen wird. Mit rschema kann das Ausgabeschema eines Teilausdrucks beschrieben werden. Beispiel: Gegeben seien die Basisrelationen A(a,b) und B(c) und der Ausdruck σ b>2 (σ a=c (A B)) Ein entsprechendes XML-Dokument ist dann 6

<plan> <base id="a"> <rschema> <attr name="a" /> <attr name="b" /> </rschema> </base> <base id="b"> <rschema> <attr name="c" /> </rschema> </base> <expr operator="select" attrs="b"> <expr operator="select" attrs="a c"> <rschema> <attr name="a" /> <attr name="b" /> <attr name="c" /> </rschema> <expr operator="crossprod"> <expr operator="scan" baserel="a"/> <expr operator="scan" baserel="b"/> </expr> <pred>a=c</pred> </expr> <pred>b>2</pred> </expr> </plan> Aufgabe 8 a) Geben Sie ein XSLT-Stylesheet an, welches die Pläne in eine Funktionsnotation umwandelt, also aus dem obigen Beispieldokument den String select[b>2](select[a=c](crossprod(a,b))) erzeugt. Aufgabe 8 b) Geben Sie ein XSLT-Stylesheet an, welches Selektionen auf Kreuzprodukten in Verbunde umwandelt, und das Dokument sonst unverändert lässt. Im Beispiel soll der Plan σ b>2 (σ a=c (A B)) umgewandelt werden in σ b>2 (A a=c B). Es sollen jeweils ALLE solchen Vorkommen ersetzt werden. Aufgabe 8 c) Geben Sie ein XSLT-Stylesheet an, welches alle Basisrelationen entfernt, die im Alge- 7

braausdruck nicht verwendet werden. 8