XML-Schema oder DTD XML-Datei XML-Datei XML-Datei XML-Datei XML-Datei Validating XML Parser Application 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-XML2004-07.pdf 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. 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) WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Datentype Mapping SQL CHARACTER, VARCHAR, CLOB INTEGER, SMALLINT, BIGINT NUMERIC, DECIMAL … WS2006/2007 XML xsd:string xsd:integer (maxInclusive und minInclusive) xsd:decimal … 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 WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle SQL/XML Funktionen Reservierte Schlüsselwörter: XML | XMLAGG | XMLATTRIBUTES | XMLBINARY | XMLCONCAT | XMLCOMMENT | XMLELEMENT | XMLFOREST | XMLNAMESPACES | XMLPARSE | XMLPI | XMLROOT | XMLSERIALIZE Funktionen: • XMLELEMENT – Konstruktion eines XMLElements • XMLATTRIBUTES – Erzeugung eines XML-Attributes 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, … 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); 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. 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; WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Was hatten wir bisher? XML WS2006/2007 DBMS 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, … 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 WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Architektur 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! 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 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! 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 XMLDokumente, die in Abhängigkeit ihrer Größe komprimiert werden – “index space” – für die Indizes, die für die Anfragen genutzt werden. Zugriff auf XMLDokumente erst am Ende (wenn nötig) • Die “Spaces” können partitioniert werden. 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 WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Hybrid Database – DB2 UDB Architecture – Native XML data type (server & client side) – XML Capabilities in all database components – Applications combine XML & relational SERVER data CLIENT Client / Customer Client Application Relational Interface XQuery XML Interface Folie übernommen von: George Lapis (IBM) Storage: DB2 Engine Relational XML 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) Storing XML in Shredded Form Folie übernommen von: George Lapis (IBM) Storing XML in a Native XML data type Folie übernommen von: George Lapis (IBM) Summary CLOB SHRED NATIVE 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 Folie übernommen von: George Lapis (IBM) … 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, … • … WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle … sollte in der Bib. sein! Buch-Beschreibung unter: http://portal.acm.org/citation.cfm?id=599754&dl=acm&coll=&CFID=15151515&CFTOKEN=6184618 WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle