270 likes | 371 Views
XML-Datei. XML-Datei. XML-Datei. XML-Schema oder DTD. XML-Datei. XML-Datei. Validating XML Parser. Application. SQL 2003. Part 14: XML-Related Specifications ( SQL/XML )
E N D
XML-Datei XML-Datei XML-Datei XML-SchemaoderDTD XML-Datei XML-Datei Validating XML Parser Application
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
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.
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
SQL/XML Funktionen Reservierte Schlüsselwörter: XML | XMLAGG | XMLATTRIBUTES | XMLBINARY | XMLCONCAT | XMLCOMMENT | XMLELEMENT | XMLFOREST | XMLNAMESPACES | XMLPARSE | XMLPI | XMLROOT | XMLSERIALIZE Funktionen: • XMLELEMENT – Konstruktion eines XML-Elements • XMLATTRIBUTES – Erzeugung eines XML-Attributes
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, …
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);
… 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.
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;
Was hatten wir bisher? DBMS XML
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, …
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
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!
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
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!
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.
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
Relational XML Hybrid Database – DB2 UDB Architecture • Native XML data type (server & client side) • XML Capabilities in all database components • Applications combine XML & relational data SERVER CLIENT Storage: SQL Relational Interface Client / Customer Client Application DB2 Engine XQuery XML Interface Folie übernommen von: George Lapis (IBM)
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 CLOBSHREDNATIVE 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, … • …
Buch-Beschreibung unter: http://portal.acm.org/citation.cfm?id=599754&dl=acm&coll=&CFID=15151515&CFTOKEN=6184618 … sollte in der Bib. sein!