WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating...

27
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD XML-Datei XML-Datei XML-Datei XML-Datei

Transcript of WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating...

Page 1: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Validating XML Parser

Application

XML-DateiXML-Schema

oderDTD

XML-DateiXML-Datei

XML-DateiXML-Datei

Page 2: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

SQL 2003

• Part 14: XML-Related Specifications (SQL/XML)– “This part of ISO/IEC 9075 defines ways in which Database

Language SQL can be used in conjunction with XML.” (Zitat aus der Einführung der Spezifikation)

– ~ 360 Seiten (Part 14)– Spezifikation kostet Geld

(nur Part 14) ~190 Euro als PDF– Final Committee Draft Version online unter:

http://www.sqlx.org/SQL-XML-documents/5FCD-14-XML-2004-07.pdf

Page 3: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

SQL/XML Mapping-

SQL-to-XML

• Mapping SQL character sets to Unicode.• Mapping SQL <identifier>s to XML Names.• Mapping SQL data types (as used in SQL-schemas to

define SQL-schema objects such as columns) to XML Schema data types.

• Mapping values of SQL data types to values of XML Schema data types.

• Mapping an SQL table to an XML document and an XML Schema document.

• Mapping an SQL schema to an XML document and an XML Schema document.

• Mapping an SQL catalog to an XML document and an XML Schema document.

Page 4: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Modell Mapping

SQL XML

SQL-Character-Sets XML-Unicode

SQL-Identifiers XML-Names

SQL-Datentypen XML-Schema-Datentypen

SQL-Werte XML-Werte

SQL-Tabellen XML-Dokumente (Daten)

SQL-Schemata XML-Schema-Dokumente

SQL-Katalog (Meta-Daten)

Page 5: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Datentype Mapping

SQL XML

CHARACTER,  VARCHAR, CLOB 

xsd:string

INTEGER, SMALLINT, BIGINT

xsd:integer (maxInclusive und minInclusive)

NUMERIC,  DECIMAL xsd:decimal

… …

Page 6: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

SQL/XML Mapping-

XML-to-SQL

• Mapping Unicode to SQL character sets.

• Mapping XML Names to SQL <identifier>s.

Also:SQL/XML konzentriert sich auf das Erzeugen von XML-Daten aus relationalen Datenbanken.

link

Page 7: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

SQL/XML Funktionen

Funktionen:

• XMLELEMENT – Konstruktion eines XML-Elements

• XMLATTRIBUTES – Erzeugung eines XML-Attributes

Reservierte Schlüsselwörter:XML | XMLAGG | XMLATTRIBUTES | XMLBINARY | XMLCONCAT| XMLCOMMENT | XMLELEMENT | XMLFOREST| XMLNAMESPACES | XMLPARSE | XMLPI | XMLROOT | XMLSERIALIZE

Page 8: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

SQL/XML Funktionen

• XMLFOREST – Erzeugung einer Menge von XML-Elementen (Wald)

• XMLAGG – Zusammenfassen von Ergebnissen (Nutzung von Group-By, für 1-n Relationen)

• XMLCONCAT fügt mehrere XML-Werte zusammen

• XMLCOMMENT, XMLPI, …

Page 9: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Neuer Datentype: XML

• Erlaubte Werte sind:– Ein XML-Dokument (mit Prolog), – Ein XML-Inhalt gemäß XML-Standard 1.0, – NULL.

Beispiel:CREATE TABLE StudentXML (

name VARCHAR(35), vorname VARCHAR(30), matrikel INTEGER, details XML);

Page 10: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

… nicht enthalten ist …

• Keine Anfragedefinition auf XML Datentype kann extern über XPath, XQuery, XSLT realisiert werden.

• Keine Festlegung der Abbildung von XML auf SQL-Tabellenstrukturen.

Page 11: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Praxisbeispiel DB2 von IBM

• Datenbanken müssen beim Erstellen auf XML vorbereitet werden.

• Es wird nur UTF-8 unterstützt.

SELECT XMLELEMENT ( NAME "Test",XMLATTRIBUTES (12 AS "Default12"),XMLCONCAT (

XMLELEMENT (NAME "ZUSATZ",XMLFOREST (t.name AS "Vorname", t.ID AS "ID") ),

XMLELEMENT (NAME "ZUSATZ",XMLFOREST (t.name AS "Vorname", t.ID AS "ID") )

)) from KARSTEN.TEST AS t;

Page 12: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

DBMS XML

Was hatten wir bisher?

Page 13: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Native XML DBMS (NXD)

• Definiert ein logisches Model der XML-Dokumente zur Speicherung und Anfrage dieser.– Unterstützt minimal: Elemente, Attribute, PCDATA und die

Dokumentreihenfolge

• Dokumente als logische Struktur (vergleichbar mit Tabellen in RDBMS)

• Unabhängig von der unterliegenden Speicherstruktur.

DBMS, welches für den Umgang mit XML konzipiert wurde und dessen Besonderheiten berücksichtigt

Beispiele: Tamino, eXist, XQuantum, …

Page 14: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Tamino XML Server

• Kommerzielles Tool der Software AG• Online: http://www.softwareag.com/de/products/tamino/default.asp

• Server basiert: Zugriff über HTTP• Bietet DBMS Funktionalitäten:

– Transaktionen, Sicherheit, Mehrbenutzer, Skalierbarkeit, …

• Für Windows, Unix, Linux (Details siehe Web)• Speicherung ohne DTD oder XML Schema

möglich

Page 15: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Architektur

Page 16: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

• Speicherung ohne DTD oder XML Schema möglich (meist bei NXD)– Änderungen, partielle Abhängigkeiten, …

• Speicherung von nicht-XML Objekten (HTML, Bilder, …)

• Zugriff zu externen (relationalen) Datenquellen

• Intern UTF, für Import und Export werden auch andere Encodings unterstützt!

Page 17: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Index– Standard Index: Indizierung der Werte für

einzelne Elemente oder Attribute– Text Index: Indizierung der Werte über

Elemente und Attribute hinweg– Struktur Index: Index über die Pfade, die in

den Dokumenten vorkommen

Page 18: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Probleme bei der Erstellung eines Index

• Auftrennung eines Textes in Wörter (Token) ist nicht trivial! – Zeichensetzung, Umbrüche, Bindestriche, etc.

• Weiterhin werden nicht in jeder Sprache Wörter getrennt geschrieben, Koreanisch, Japanisch, Chinesisch …, – z.B.

この前友達があなたに会ったって言ってたからさ、なんか話した … wird von Tamino unterstützt!

Page 19: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Speicherung

• Speicherung wird aufgeteilt in zwei “Spaces”– “data space” – für die eigentlichen XML-

Dokumente, die in Abhängigkeit ihrer Größe komprimiert werden

– “index space” – für die Indizes, die für die Anfragen genutzt werden. Zugriff auf XML-Dokumente erst am Ende (wenn nötig)

• Die “Spaces” können partitioniert werden.

Page 20: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

eXist

• Open Source• Online unter: http://exist.sourceforge.net/ • Java (1.4 oder höher)• Keine weitere Software nötig (Cocoon /

Jetty als Web Server enthalten aber nicht zwingend nötig)

• Speichert auch nicht XML-Dateien (HTML, XQuery, CSS, …)

• Fact sheet

Page 21: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

Hybrid Database – DB2 UDB Architecture

SERVER

CLIENT SQL

XQuery

DB2 Engine

XMLInterface

RelationalInterface Relational

XML

Storage:

Client /Customer Client Application

– Native XML data type (server & client side) – XML Capabilities in all database components– Applications combine XML & relational data

Folie übernommen von: George Lapis (IBM)

Page 22: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

Choosing database storage for XML data

Storing XML as BLOB or VARCHAR

Shredding XML into relational tables

Storing XML in native format

Folie übernommen von: George Lapis (IBM)

Page 23: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

Storing XML in Shredded Form

Folie übernommen von: George Lapis (IBM)

Page 24: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

Storing XML in a Native XML data type

Folie übernommen von: George Lapis (IBM)

Page 25: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

Schema Flexibility Best Bad Best

XML Search Performance Bad Good Best

Full Document Retrieval Perf Best Bad Good

Partial Document Retrieval Perf Bad Good Best

Insert Performance Best Bad Good

Sub-doc Level Update Perf Bad Good Best

Sub-doc Level Concurrency Bad Good Best

Full Document Delete Best Bad Good

Preserve Doc Structure, Order Best Bad Best

XML Parsing Required at Insert Optional Yes Yes

XML Parsing Required at Query Yes No No

CLOB SHRED NATIVE

Folie übernommen von: George Lapis (IBM)

Summary

Page 26: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

… es gibt weitere Aspekte

• Performance kann schwanken je nach:– Größe der XML-Datei– Aufbau der XML-Datei– Gesamtgröße der Datenbank– Art der Umsetzung

• Wieviel Speicherplatz wird benötigt?• Anfrage-Performance – Wonach wird gesucht?

– Gesamtes Dokument, über Dokumente hinweg, einzelne Komponenten, …

• …

Page 27: WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Validating XML Parser Application XML-Datei XML-Schema oder DTD.

WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle

Buch-Beschreibung unter: http://portal.acm.org/citation.cfm?id=599754&dl=acm&coll=&CFID=15151515&CFTOKEN=6184618

… sollte in der Bib. sein!