Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.

Ähnliche Präsentationen


Präsentation zum Thema: "SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die."—  Präsentation transkript:

1 SQL/XML

2 © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die Einbettung in SQL SQL/XML = Teil 14 des SQL-Standards: XML- Funktionalität berücksichtigt entsprechende Standards auf XML-Seite (XML Schema, XQuery) Grundgedanke: – Abbildung von SQL-Konzepten auf XML – eigener Datentyp zur Speicherung von XML

3 © Prof. T. Kudraß, HTWK Leipzig 3 3 Abbildung von SQL-Konzepten auf XML- Konzepte Abbildung von Zeichensätzen – XML: Unicode, SQL: US-ASCII – homomorphe Abbildung Abbildung von Namen – XML: nicht alle Zeichen in Namen zugelassen, unbegrenzte Länge – SQL: alle Zeichen zulässig (auch Leerzeichen, bei delimited identifier), begrenzte Länge des Namens – nicht zulässige Zeichen des SQL-Namens (z.B. <, & ) müssen in XML maskiert werden Abbildung von Datentypnamen – grundsätzlich Übereinstimmung (Großbuchstaben) – bei Datentypen mit Parametrisierung werden Parameter dem XML-Typnamen hinzugefügt – Beispiel: VARCHAR(10) => VARCHAR_10 – bei Längenänderung: VARCHAR_10_20 – Parametrisierung auch bei: DECIMAL, FLOAT, TIME, ARRAY

4 © Prof. T. Kudraß, HTWK Leipzig 4 4 Abbildung von SQL-Konzepten auf XML- Konzepte - Datentypen Abbildung von Datentypen – bestmöglicher XML-Datentyp für jeden Standard-SQL-Typ – Angleichung der Wertebereiche über Aspekte (facets) in XML Schema – XML-Schema-Annotationen (optional): exakter SQL-Datentyp, SQL-Zeichensatz, Sortierordnung – alle SQL-Zeichenkettentypen => xs:string (bei fester Länge Aspekt length) – BOOLEAN => xs:boolean – INTEGER, SMALLINT, BIGINT => xs:integer (mit Aspekten maxInclusive und minInclusive) – REAL, DOUBLE PRECISION, FLOAT => xs:float, xs:double – DATE => xs:date

5 © Prof. T. Kudraß, HTWK Leipzig 5 5 Abbildung von SQL-Konzepten auf XML- Konzepte – Datentypen (Beispiel) Abbildung eines Zeichenkettendatentyps Abbildung eines numerischen Datentyps

6 © Prof. T. Kudraß, HTWK Leipzig 6 6 Abbildung einer SQL-Tabelle Abbildung einer SQL-Tabelle (im Katalog K und im Schema S) auf ein XML-Dokument mit XML-Schemadokument CREATE TABLE Buecher ( " Verlag&Ort" VARCHAR(20), ("Jahr" INTEGER, ( " Titel" VARCHAR(100)); XML-Dokument <BUECHER xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance" xsi:noNamespaceSchemaLocation="XS"> Fachbuchverlag Leipzig 2007 Taschenbuch Datenbanken... </BUECHER

7 © Prof. T. Kudraß, HTWK Leipzig 7 7 Abbildung einer SQL-Tabelle (2) XML-Schemadokument minOccurs="0" maxOccurs="unbounded" />

8 © Prof. T. Kudraß, HTWK Leipzig 8 8 Abbildung einer SQL-Tabelle auf ein XML- Schema (Vollständiges Beispiel) <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqlxml="http://www.iso-standards.org/mra/9075/2001/12/sqlxml" <xsd:import namespace="http://www.iso-standards.org/mra/9075/2001/12/sqlxml" schemaLocation= "http://www.iso-standards.org/mra/9075/2001/12/sqlxml.xsd"... Definition der Basisdatentypen => Fortsetzung nächste Folie

9 © Prof. T. Kudraß, HTWK Leipzig 9 9 Abbildung einer SQL-Tabelle auf ein XML- Schema (Vollständiges Beispiel)... <xsd:element name="Verlag_x0026_Ort" type="VARCHAR_20_40" minOccurs="0" /> <xsd:element name="Jahr" type="INTEGER" minOccurs="0" /> <xsd:element name="Titel" type="VARCHAR_100_200" minOccurs="0" /> minOccurs="0" maxOccurs="unbounded" /> Definition des komplexen Typs für die Tabelle als Sequenz von row -Elementen

10 © Prof. T. Kudraß, HTWK Leipzig 10 Abbildung eines SQL-Schemas oder eine SQL-Katalogs SQL-Schema: enthält mehrere Tabellen weitere Ebene ( S ) im XML-Dokument <S xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance" xsi:noNamespaceSchemaLocation="XS"> Fachbuchverlag Leipzig 2007 Taschenbuch Datenbanken......

11 © Prof. T. Kudraß, HTWK Leipzig 11 Der neue Datentyp XML erlaubte Werte: – XML-Dokument (mit Prolog) – XML-Inhalt gemäß XML 1.0 (einschl. reinem Text, Kommentare und PI?) – NULL keine Vergleichbarkeit möglich (vgl. CLOB in SQL) kein Programmiersprachentyp für Einbindung in SQL vorhanden Standard definiert verschiedene Operatoren, um Übergang zu anderen SQL-Datentypen zu erleichtern

12 © Prof. T. Kudraß, HTWK Leipzig 12 SQL/XML Operatoren Beispiel : SQL-Tabelle Buecher INSERT INTO Buecher VALUES (Fachbuchverlag Leipzig, 2007, Taschenbuch Datenbanken); XMLGEN: erzeugt einen Wert vom Typ XML mittels XQuery-Konstruktor (Variablenverwendung möglich) XMLGEN ( {$c}, Fachbuchverlag AS "v", 2007 AS "j", Taschenbuch Datenbanken AS "c" ) erzeugt Taschenbuch Datenbanken SELECT XMLGEN ( {$Verlag_x0026_Ort}, "Verlag&Ort") FROM Buecher erzeugt Fachbuchverlag Leipzig Mit Bezugnahme auf SQL-Spalte

13 © Prof. T. Kudraß, HTWK Leipzig 13 SQL/XML Operatoren (2) XMLELEMENT: dient zur Konstruktion eines XML-Elements (Name + Attribut + Inhalt) XMLELEMENT (NAME "Buch", XMLATTRIBUTES (Fachbuchverlag AS "Verlag", 2007 AS "Jahr"), Taschenbuch Datenbanken) erzeugt Taschenbuch Datenbanken erzeugt Taschenbuch Datenbanken Mit Referenzen auf existierende Tabellenspalten SELECT XMLELEMENT(NAME "Buch"), XMLATTRIBUTES ("Verlag&Ort" AS "Verlag", "Jahr" ), "Titel" ) FROM Buecher FROM Buecher

14 © Prof. T. Kudraß, HTWK Leipzig 14 SQL/XML Operatoren (3) Schachtelung von Elementen erzeugt im Ergebnis Fachbuchverlag 2007 Taschenbuch Datenbanken SELECT XMLELEMENT(NAME "Buch", XMLELEMENT(NAME "Verlag", "Verlag&Ort"), XMLELEMENT(NAME "Jahr", "Jahr" ) XMLELEMENT(NAME "Titel", "Titel" )) FROM Buecher XMLFOREST: dient der Konstruktion eines Waldes von attributlosen Elementen XMLFOREST(Taschenbuch Datenbanken AS "Titel", 2007 AS "Jahr" ) erzeugt jeweils das XML-Fragment Taschenbuch Datenbanken 2007 oder bei Zugriff auf SQL-Tabelle SELECT XMLFOREST("Titel", "Jahr" ) FROM Buecher

15 © Prof. T. Kudraß, HTWK Leipzig 15 SQL/XML Operatoren (4) XMLAGG: – konkateniert Einzelergebnisse über mehrere Zeilen – Zusammenfassung mehrerer Zeilen der Bezugstabelle zu XML-Wert – hilfreich für geschachtelte Anfragen und Gruppierung oder mittels SQL-Gruppierung SELECT XMLELEMENT(NAME "Abteilung", XMLATTRIBUTES (Abtnr), SELECT XMLAGG(XMLELEMENT( Name "Mitarbeiter", XMLATTRIBUTES (Vorname,Nachname))) FROM Angestellte m WHERE m.Abtnr=a.Abtnr) FROM Abteilungen a SELECT XMLELEMENT(NAME "Abteilung", XMLATTRIBUTES (m.Abtnr), XMLAGG(XMLELEMENT(NAME "Mitarbeiter", XMLATTRIBUTES (Vorname,Nachname))) FROM Angestellte m GROUP BY Abtnr

16 © Prof. T. Kudraß, HTWK Leipzig 16 SQL/XML Operatoren (4) Ergebnis des XMLAGG-Beispiels

17 © Prof. T. Kudraß, HTWK Leipzig 17 Weitere SQL/XML Operatoren XMLCONCAT: fügt mehrere XML-Werte zu einem zusammen XMLCOMMENT: erzeugt einen XML-Kommentar XMLPI: erzeugt eine Verarbeitungsanweisung XMLSERIALIZE: wandelt einen Wert vom Typ XML in eine Zeichenkette um XMLPARSE: konvertiert eine SQL-Zeichenkette, die bezügl. XML wohlgeformt sein muss, in einen Wert des Typs XML

18 © Prof. T. Kudraß, HTWK Leipzig 18 Bewertung von SQL/XML zwei Komponenten: – Datentyp XML zur Speicherung von XML – Funktionen zur Abbildung von relationalen Strukturen auf XML (generisch inhaltsorientiert) Nur Konstruktionsoperatoren – keine Extraktion von Werten oder Suche – aber: Konstruktionsoperatoren beruhen auf XQuery Abbildung von Tabellen, Schemata, Katalogen ignoriert einige Informationen aus dem rel. Schema – UNIQUE – REFERENCES – CHECK Künftige Erweiterungen zu erwarten


Herunterladen ppt "SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die."

Ähnliche Präsentationen


Google-Anzeigen