XML Vorlesung ETHZ SS 2006 4.7.2006. XML Vorlesung ETHZ, Sommersemester 2006. XML und Datenbanken. http://dret.net/lectures/xml-ss06/



Ähnliche Dokumente
XML Vorlesung ETHZ SS XQuery XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS

Informatik 12 Datenbanken SQL-Einführung

Projektseminar Texttechnologische Informationsmodellierung

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015 SQLX. Christian Senger/Andreas Schmidt Oracle und XML (SQLX) 1/14

Gegeben ist das folgende XML-Dokument.

SQL (Structured Query Language) Schemata Datentypen

Vorlesung Dokumentation und Datenbanken Klausur

5. Programmierschnittstellen für XML

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung OOP

Klausur Interoperabilität

3. Das Relationale Datenmodell

5. Programmierschnittstellen für XML

XSL Templates. Mit Templates arbeiten. XSL Templates

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Anforderungen an die HIS

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Klaus Schild, XML Clearinghouse Namensräume

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Workflow, Business Process Management, 4.Teil

OP-LOG

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Wiederholung: Beginn

Einteilung von Datenbanken

Grammatiken. Einführung

macs Support Ticket System

Universalimport in luxdata

Gesicherte Prozeduren

Architektur des agimatec-validation Frameworks

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Datenübernahme easyjob 3.0 zu easyjob 4.0

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

... MathML XHTML RDF

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

9. Einführung in Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Objektorientierte Programmierung

XML und Datenbanken. Wintersemester 2003/2004. Vorlesung: Dienstag, 13:15-15:00 Uhr IFW A36. Übung: Dienstag, 15:15-16:00 Uhr IFW A36

Content Management System mit INTREXX 2002.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Objektorientierte Programmierung für Anfänger am Beispiel PHP

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

7. Übung - Datenbanken

Business Intelligence Praktikum 1

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 4 -

Inhaltsverzeichnis. Beschreibung. Hintergrund

Allgemeines. veröffentlicht unter lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

Fachhochschule Deggendorf Platzziffer:...

Java und XML 2. Java und XML

Formale Sprachen und Grammatiken

Datenmanagement in Android-Apps. 16. Mai 2013

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Business Intelligence Praktikum 1

Datenbanken. Sommersemester 2010 Probeklausur

Sehr geehrte Faktor-IPS Anwender,

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Theoretische Informatik I

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Refactoring relationaler Datenbank. Shaoke Wu

Vorlesung "Software-Engineering"

ERP Cloud Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Bilanz- und GuV- Berichte erfassen.

1 topologisches Sortieren

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

XML - Extensible Markup Language. Agenda - Oracle XML DB

PRESman. Presentation Manager. Reduzieren Sie nachhaltig die Kosten für das. Erstellen, Verwalten und Verteilen Ihrer

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Planung für Organisation und Technik

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Präsentation zum Thema XML Datenaustausch und Integration

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Übersicht über Datenbanken

Objektrelationale Datenbanken

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

WEBSEITEN ENTWICKELN MIT ASP.NET

1 Mathematische Grundlagen

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Hilfe zur Urlaubsplanung und Zeiterfassung

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Transkript:

XML Vorlesung ETHZ, Sommersemester 2006 XML und Datenbanken Erik Wilde 4.7.2006 http://dret.net/lectures/xml-ss06/ 4.7.2006 XML Vorlesung ETHZ SS 2006 1 Übersicht Sichten auf XML Transfer vs. Datenmodell, XML Support im DBMS XML vs. relationales Modell (ER-Modell) SQL/XML Integration von XML in die Welt von SQL XQuery eine eigene Abfragesprache für XML Datenbanken 4.7.2006 XML Vorlesung ETHZ SS 2006 2 XML und Datenbanken 1

Sichten auf XML verschiedene Sichten sind möglich reine Transfersyntax alles irgendwie auf XML abbilden XML-basiert übertragen beim Empfänger umgekehrtes Mapping XML als Datenmodell XML Daten auf Business-Ebene RDF Beschreibungen der XML-Daten momentan überwiegt (noch) die Transfersicht 4.7.2006 XML Vorlesung ETHZ SS 2006 3 3-Tier und XML-basierter B2B Company A Company B Intranet Applications B2B Applications XML Business Logic RDBMS 4.7.2006 XML Vorlesung ETHZ SS 2006 4 XML und Datenbanken 2

XML Support im DBMS Company A Company B Intranet Applications B2B Applications XML Business Logic RDBMS 4.7.2006 XML Vorlesung ETHZ SS 2006 5 XML-Centric Applications Company A Company B Intranet Applications B2B Applications XML XML Business Logic XDBMS 4.7.2006 XML Vorlesung ETHZ SS 2006 6 XML und Datenbanken 3

ER-Modellierung Entities repräsentieren Konzepte reale Dinge wie Personen oder Produkte abstrakte Dinge wie Projekte Relationships verbinden Konzepte kein semantischer Gehalt im Modell verschiedene Kardinalitäten unterstützt ER-Modelle sind beliebt und verbreitet einfache Abbildung auf das relationale Modell einfach zu verstehen und anzuwenden für viele Probleme ausreichend gut 4.7.2006 XML Vorlesung ETHZ SS 2006 7 XML ist hierarchisch Erbe aus der Dokumentenwelt Dokumente sind recht klar hierarchisch aufgebaut bei modularem Aufbau schon weniger klar <!ELEMENT section (content, chapter+) <!ELEMENT chapter (content, subchapter+) <!ELEMENT part (content, part+) relational und hierarchisch gemischt Entities als eigenständige Teile modellieren klar hierarchische Teile als XML-Strukturen auch hier sind Entscheidungen nötig welche Teile sollen wiederverwendbar sein? 4.7.2006 XML Vorlesung ETHZ SS 2006 8 XML und Datenbanken 4

Datenbankhersteller und XML XML als reines Export/Import-Format die Welt wird weiterhin relational modelliert neue APIs für XML-Support XML als Sub-modell in der Datenbank relationale Welt mit XML-orientierten Teilen XML-spezifischer Support in der DB-Engine XML als "Informationsmodell" der Applikation XML-basierte Datenbank komplett neue DDL, DML, und Query-Sprache Unterstützung der generischen Funktionen Backup, Administration, Redundanz, Optimierung,... 4.7.2006 XML Vorlesung ETHZ SS 2006 9 Variante 1a: XML *LOB termin termin inhalt inhalt kurz kurz date date vor vor location location xml xdbms beschreibung <?xml version=1.0?>... <?xml version=1.0?>... vor vor 4.7.2006 XML Vorlesung ETHZ SS 2006 10 XML und Datenbanken 5

Variante 1b: XML Spaltentyp termin termin inhalt inhalt kurz kurz date date location location xdbms beschreibung vor vor vor vor 4.7.2006 XML Vorlesung ETHZ SS 2006 11 Variante 2: XML Shredding termin termin inhalt inhalt kurz kurz date date en vor vor location location Name Vor Email Hassler Urs urs@dret.net Wilde Erik dret@dret.net vor vor 4.7.2006 XML Vorlesung ETHZ SS 2006 12 XML und Datenbanken 6

Variante 3: XML Datenbank termin termin inhalt inhalt kurz kurz date date location location vor vor vor vor 4.7.2006 XML Vorlesung ETHZ SS 2006 13 Relationships in XML XML basiert auf einer Dokumentensicht es gibt eine vorgegebene hierarchische Sicht Verweise in dieser Hierarchie sind möglich XML ist nicht immer ideal auch Dokumente sind oft "modular" aufgebaut Hierarchien definieren Hauptbeziehungen ER-Modelle definieren gleichberechtigte Beziehungen XML modelliert Beziehungen auf zwei Arten Inhalt (beliebig tiefe Verschachtelung) Verweise (von einem Knoten auf einen anderen) 4.7.2006 XML Vorlesung ETHZ SS 2006 14 XML und Datenbanken 7

Referenzen in XML well-formed XML ist ein Baum keine weitergehende Semantik beliebige Semantik durch Schemasprachen möglich valid XML kennt Referenzen im Baum Attribute werden als ID (Typ, nicht Name!) deklariert Wert muss eindeutig sein im gesamten XML Dokument Attribute werden als IDREF(S) deklariert müssen auf existierende(n) IDs verweisen XML Schema verallgemeinert ID/IDREF(S) DTD-Mechanismen oft zu primitiv und einschränkend 4.7.2006 XML Vorlesung ETHZ SS 2006 15 XML Schema Identity Constraints XML Schema berücksichtigt Datentypen Werte mit unrelated Types sind niemals gleich einer Instanz nicht unbedingt anzusehen z.b. gilt xs:integer 2 ist nicht gleich xs:string 2 aber xs:integer 2 ist gleich xs:integer +0002 und xs:string 2 ist nicht gleich xs:string +0002 Identity Constraints sind auf Instanzen definiert, und nicht auf ihren Typen d.h. am besten definiert man eigene Typen z.b. Simple Type als Restriction von xs:integer eigene Types für Key und KeyRef 4.7.2006 XML Vorlesung ETHZ SS 2006 16 XML und Datenbanken 8

Semistrukturierte Daten XML unterstützt semistrukturierte Daten Inhaltsmodelle mit 0- Wiederholungen mehrere Vorn in einem Namen Reihenfolge der Vorn ist wichtig Text gemischt mit Elementen Text vermischt mit strukturiertem Inhalt <p>dieser <i>text</i> benutzt... </p> keine gute Abbildung auf ER-Konstrukte möglich Vermeidung dieser Aspekte im Modell Speicherung als XML-Struktur 4.7.2006 XML Vorlesung ETHZ SS 2006 17 SQL:2003 Datentyp XML neuer Basisdatentyp in SQL:2003 vergleichbar BOOLEAN, INTEGER, CHAR, DATE,... damit im Grundvokabular der Sprache enthalten erlaubte Werte des XML Datentyps NULL XML Content (well-formed XML Entity) XML Documents (well-formed XML Dokument) kann in DDL Statements benutzt werden CREATE TABLE DEMO ( ID INTEGER, TEXT XML) 4.7.2006 XML Vorlesung ETHZ SS 2006 18 XML und Datenbanken 9

Eigenschaften des XML Datentyps keine Ordnung auch die Gleichheit ist nicht definiert offene Fragen der Zeichenkodierung, Infoset vs. XML, usw. lässt sich benutzerspezifisch definieren CREATE ORDERING FOR... potentiell aufwendige Operation Erzeugung von XML aus anderen Werten Auswertung von XQuery Anfragen Konstruktoren für XML Knoten Kombinieren bestehender XML Strukturen 4.7.2006 XML Vorlesung ETHZ SS 2006 19 SQL/XML Funktion XMLGEN basiert auf XQuery noch nicht abgeschlossene Standardisierung erste prototypische Implementierungen Argument ist ein XQuery Ausdruck optional mit einer Liste von Variablen Variablen sind beliebige SQL Wertausdrücke Verwendung im XQuery Resultat ist immer vom Typ XML XQuery wird später näher betrachtet 4.7.2006 XML Vorlesung ETHZ SS 2006 20 XML und Datenbanken 10

SQL/XML Funktion XMLELEMENT Erzeugung eines Elements Name muss angegeben werden optional können Attribute angegeben werden markiert mit XMLATTRIBUTES SELECT XMLELEMENT(NAME "", XMLATTRIBUTES(id AS Nummer), ) AS Kursliste FROM Kurse Kursliste: < Nummer="1">XML</> < Nummer="2">XSLT</> < Nummer="3">XML und Datenbanken</> 4.7.2006 XML Vorlesung ETHZ SS 2006 21 SQL/XML Funktion XMLFOREST Erzeugung eines Waldes von XML Elementen kein umschliessendes Element d.h. für sich betrachtet kein XML Dokument Angabe einer Elementliste als Argumente SELECT XMLFOREST(id AS "Nummer", ) AS Kursliste FROM Kurse Kursliste: <Nummer>1</Nummer><>XML</> <Nummer>2</Nummer><>XSLT</> <Nummer>3</Nummer><>XML und Datenbanken</> 4.7.2006 XML Vorlesung ETHZ SS 2006 22 XML und Datenbanken 11

SQL/XML Funktion XMLCONCAT Zusammenfügen von XML Strukturen Liste von XML-Werten (keine Dokumente) erzeugt einen XML-Wert pro Zeile SELECT XMLCONCAT(XMLELEMENT(NAME "Nummer", id ), XMLELEMENT(NAME "", )) AS Kursliste FROM Kurse Kursliste: <Nummer>1</Nummer><>XML</> <Nummer>2</Nummer><>XSLT</> <Nummer>3</Nummer><>XML und Datenbanken</> 4.7.2006 XML Vorlesung ETHZ SS 2006 23 SQL/XML Funktion XMLAGG aggregiert mehrere XML-Werte funktioniert über Zeilen hinweg Zusammenführen von Results in einem XML-Wert optionale Sortierung kann angegeben werden SELECT XMLELEMENT(NAME "liste", TMP) FROM ( SELECT XMLAGG(XMLELEMENT(NAME "Nummer", id ), XMLELEMENT(NAME "", )) AS TMP FROM Kurse ORDER BY ) <liste> <Nummer>1</Nummer><>XML</> <Nummer>3</Nummer><>XML und Datenbanken</> <Nummer>2</Nummer><>XSLT</> </liste> 4.7.2006 XML Vorlesung ETHZ SS 2006 24 XML und Datenbanken 12

SQL/XML Funktion XMLCOLATTVAL von Oracle vorgeschlagen und implementiert nicht Bestandteil des SQL/XML Standards erzeugt Elemente aus Spalten SELECT XMLELEMENT(NAME "", XMLCOLATTVAL(id, )) AS Kursliste FROM Kurse Kursliste: <> <column ="id">1</column> <column ="">XML</column> </> 4.7.2006 XML Vorlesung ETHZ SS 2006 25 Weitergehende Regeln Abbildungen von Namensräumen SQL und XML haben andere Konventionen u.u. nicht transparente Umwandlung Abbildung von Datentypen SQL und XML Schema Datentypen komplexe SQL Datentypen ergeben XML Strukturen z.b. werden SQL Tupel zu Elementlisten 4.7.2006 XML Vorlesung ETHZ SS 2006 26 XML und Datenbanken 13

Zusammenfassung SQL/XML einfache Funktionen zur Erzeugung von XML XML Elemente XML Attribute XML Entities (Listen von Elementen) XML Dokumente keine Unterstützung von DML Konstrukten Volltextsuche auf XML Dokumenten 4.7.2006 XML Vorlesung ETHZ SS 2006 27 W3C XQuery/XSLT Working Group Vereinigung von XQuery und XSLT XQuery aufbauend auf Quilt XSLT 2.0 aufbauend auf XSLT 1.1 grosse Arbeitsgruppe mit vielen Teilnehmern alle wichtigen Firmen sind vertreten grosse Wahrscheinlichkeit für Akzeptanz aufwendiger Entwicklungsprozess parallel aktualisierte Requirements Dokumente Parser und Specs automatisch erzeugt aus EBNF aktueller Stand sind einige Last Call WDs (03/05) 4.7.2006 XML Vorlesung ETHZ SS 2006 28 XML und Datenbanken 14

Querying XML: Language Wars? Produkte werden diverse Sprachen anbieten SQL/XML erzeugt XML aus SQL Queries evolutionärer Ansatz auf dem relationalen Datenmodell erlaubt Zugriff auf andere SQL Features Weiterverwendung bestehender SQL Tools/Applikationen XQuery als neue Technologie operiert auf XML als Datenmodell keine DML in der ersten Version, kein Full-Text Support geht von einer XML-zentrierten Anwendung aus XPath als grundlegende Selektionssprache von vielen frühen XML-Datenbanken unterstützt keine echte Query-Sprache, nur einfache Prädikate 4.7.2006 XML Vorlesung ETHZ SS 2006 29 XQuery, XPath und XSLT XSLT als Style Sheet Sprache für XML Transformationsteil als Programmiersprache XPath als Expression Language von XSLT XSLT 1.0 und XPath 1.0 sind recht einfach sehr schwaches Typsystem praktisch keine Typfehler XSLT 2.0 und XPath 2.0 sind viel komplexer XPath 2.0 als gemeinsame Basis für XSLT/XQuery XPath 1.0 kann keine first-order logic XPath 2.0 erweitert XPath 1.0 erheblich 4.7.2006 XML Vorlesung ETHZ SS 2006 30 XML und Datenbanken 15

XQuery Datentypen 5 Arten von Datentypen: Knoten Folgen Schemakomponenten einfache Werte 19 XML Schema Datentypen Fehler ein einziger Fehlertyp alle Wertebereiche (bis auf Fehler) sind unendlich 4.7.2006 XML Vorlesung ETHZ SS 2006 31 XQuery unterstützt Static Typing alle Konstrukte sind typgestützt XML Schema als Voraussetzung statische Typanalyse ist möglich weniger Laufzeitfehler XML Schema und XQuery Code reichen aus XQueries können Typen deklarieren (bessere Tests möglich) statische Typen haben weitere Vorteile bessere Optimierungen sind möglich generell robustere Software bessere Vorhersage der erwarteten Resultattypen 4.7.2006 XML Vorlesung ETHZ SS 2006 32 XML und Datenbanken 16

FLWOR Expressions vergleichbar dem SQL SELECT FROM WHERE vergleichbar mit XSLT Konstrukten FOR xsl:for-each LET xsl:variable WHERE xsl:if ORDER BY xsl:sort deklarative Programmiersprache keine Konstrukte aus prozeduralen Sprachen funktional kein tatsächlicher Unterschied mit XSLT und XQuery sind gleiche Resultate möglich 4.7.2006 XML Vorlesung ETHZ SS 2006 33 Zusammenfassung XQuery XQuery als neue Query-Sprache operiert auf XML als Datenmodell XPath 2.0 als Grundlage von XQuery ebenfalls die Grundlage für XSLT 2.0 wird Grundwissen für XML-Experten werden momentan noch in Entwicklung Syntax kann sich noch ändern stabiler Standard gegen Ende 2005 zu erwarten 4.7.2006 XML Vorlesung ETHZ SS 2006 34 XML und Datenbanken 17

Zusammenfassung XML wird immer wichtiger 1. XML als Transferformat zwischen Anwendungen 2. XML als Schnittstelle zwischen Anwendungen 3. XML als Datenmodell von Anwendungen der Grossteil aller Daten ist in Datenbanken zunehmende Unterstützung von XML Fusion der Datenmodelle viele Daten sind angemessen mit ER modelliert Teile sind u.u. besser in XML modelliert 4.7.2006 XML Vorlesung ETHZ SS 2006 35 XML und Datenbanken 18