XML-Werte in SQL/XML Von Viktor Folmer. Inhalt Datentyp XML Knotenfunktionen Unter- und Unter(unter)typen Validierung Prädikate Auswahl weiterer Funktionen.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Objekt – Relationales – Modell Tomasz Makowski IN
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
Kapitel 4 Datenstrukturen
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
Das XQuery-Datenmodell. Gliederung Sequenzen Atomare Werte Knoten Knoteneigenschaften Sequenztypen und Knotenzugriffsfunktion Typabfrage Gleichheit von.
Auswertung im GTDS fixe Abläufe für Standard-Aufgaben Mamma-Auswertung
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
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.
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Validating XML Parser Application XML-Datei XML-Datei
Geoinformation III Vorlesung 13b XML-Schema.
Datenintegrität Referentielle Integrität create table
Oracle interMedia Image
Datenbanken 10: Einfügen, Ändern, Löschen
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
2.2 Definition eines Datenbankschemas (SQL-DDL)
objekt-relationale Datenbanken
XML-Unterstützung durch MS SQL Server Vortrag Nr. 11 im Seminar XML und Datenbanken im SoSe 2008 (Block: 08./ ) von Mirko Zipfel.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Relationale Datenbanken III
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Sesame Florian Mayrhuber
Einführung in die Programmiersprache C 4
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Datenbanksysteme für hörer anderer Fachrichtungen
Aggregatsfunktion SQL = Structured Query Language.
XML in relationalen Datenbanken
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
SQLite und XML in PHP 5.
XJustiz XJustiz_XML XJustiz_Schema Fachmodul Wertelisten
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Benutzerdefinierte Datentypen (1)
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Oberseminar Moderne Datenbanken WS03/04
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
XPath Datenmodell und Sequenzen Universität zu Köln – Historisch-Kulturwissenschaftliche Informationsverarbeitung Datenbanktechnologie – Daniel Ebner –
Peter Brezany Institut für Softwarewissenschaften Universität Wien
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 12: XQuery und SQL/XML.
PHPmyadmin Maya Kindler 6c.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
Lukas Kerecz - Edits1 Edits Lukas Kerecz. Lukas Kerecz - Edits2 Gliederung  Einführung  Edits – warum und wofür?  Edits – Definiton  einleitende Beispiele.
Tutorium Software-Engineering SS14 Florian Manghofer.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
 Präsentation transkript:

XML-Werte in SQL/XML Von Viktor Folmer

Inhalt Datentyp XML Knotenfunktionen Unter- und Unter(unter)typen Validierung Prädikate Auswahl weiterer Funktionen

Der Datentyp XML in SQL/XML:2003 Der Datentyp XML in SQL/XML:2003 Seit SQL/XML:2003 Basisdatentyp in SQL  Speicherung von XML-Dokumenten als Wert in einer Tabellenspalte Grund: steigende Praxisrelevanz von XML  … und weiterhin breiter Einsatz relationaler Datenbanken XML-Welt und SQL-Welt zusammenbringen !

Der Datentyp XML Vorher: Speicherung von XML in relationalen DBMS nur mit „Krücken“ ◦varchar / CLOB ◦shredding ◦extender Seit 2003 Basisdatentyp „XML“ basiert auf Infoset

Exkurs : Information Set abstrakte Datenzusammenstellung, die festschreibt, welche Informationen ein XML-Dokument enthält Infoset kann als Baum angesehen werden Ein XML-Dokument hat ein Infoset, wenn : ◦ es wohlgeformt ist und ◦ die Anforderungen der Namensräume erfüllt Auch ein ungültiges XML-Dokument kann ein Infoset besitzen

Werte des Datentyps „XML“ in SQL/XML:2003 Zulässige Werte:  (SQL-)Nullwert  Wohlgeformtes XML-Dokument  Nicht wohlgeformtes XML-Dokument (eingeschränkt) Validität (noch) nicht überprüfbar

Datentyp „XML“ in SQL/XML:2006 Einordnung: Erweiterung von SQL/XML:2003 seit 2006 Teil von SQL:2003 Umstellung des Datentyps auf XQuery – Datenmodell Vorteile:  Unterstützung von Sequenzen  Erweiterung der Datentypen im XML-Dokument

Exkurs: XQuery-Datenmodell Sequenz: Folge von Sequenzeinträgen: ◦ Atomarer Wert ◦ Knoten 7 Knotenarten in Bäumen und Sequenzen ◦ Dokumentknoten ◦ Elementknoten ◦ Attributknoten ◦ Namensraumknoten ◦ Verarbeitungsanweisungsknoten ◦ Kommentarknoten ◦ Textknoten Nach bestimmten Regeln angeordnet

Exkurs: XQuery-Datenmodell EP N E TN VD E TN E TN E A E TN E A E TN V E C

Mehr Funktionen Knotenarten im XQuery-DatenmodellNeue Funktionen in SQL/XML:2006 DokumentknotenXMLDOCUMENT ElementknotenXMLELEMENT AttributknotenXMLATTRUBUTES NamensraumknotenXMLNAMESPACES VerarbeitungsanweisungsknotenXMLPI KommentarknotenXMLCOMMENT TextknotenXMLTEXT Logische Konsequenz: Jede Knotenart benötigt eine Entsprechung in SQL

Mehr Funktionen SELECT XMLELEMENT ( NAME "angestellte", XMLATTRIBUTES (a.Gehalt),ID) AS Geringverdiener FROM Angestellte a WHERE Gehalt < Beispiel:

Untertypen des Datentyps „XML“ SEQUENCE : beliebige Sequenz (Folge von Bäumen und/oder atomaren Werten) CONTENT : nur ein Baum mit einem D-Knoten als Wurzel in der Sequenz erlaubt. Wie viele E-Knoten Kinder des D-Knotens sind ist unwichtig DOCUMENT : wohlgeformte XML-Dokumente, nur ein Baum mit einem D-Knoten als Wurzel und nur ein E-Knoten als Kind

Untertypen des Datentyps „XML“ Die Untertypen besitzen eine Hierarchie: Jeder XML-Wert vom Typ XML(DOCUMENT) ist gleichzeitig auch eine Instanz von XML(CONTENT) Jeder Wert vom Typ XML(CONTENT) ist eine Instanz von XML(SEQUENCE)

Untertypen des Datentyps „XML“ XML(CONTENT) XML(DOCUMENT) XML(SEQUENCE)

Unter(unter)Typen des Datentyps „XML“ Folgende Unter(unter)typen verfeinern die Untertypen XML(CONTENT) und XML(DOCUMENT) :  UNTYPED : nicht validierte XML-Dokumente, E-Knoten sind vom Typ untyped und dessen A-Knoten sind vom Typ untypedAtomic  XMLSCHEMA : gegen ein bestimmtes Schema validiertes XML-Dokument  ANY : der XML-Wert ist entweder gegen ein Schema validiert oder er ist es nicht

Unter(unter)Typen des Datentyps „XML“ Syntax Beispiele: ◦ CREATE TABLE Angest ( ID integer, xml_emp_data XML(DOCUMENT(UNTYPED))) ◦ CREATE TABLE Angest ( ID integer, xml_emp_data XML(DOCUMENT(XMLSCHEMA URI ’ ◦ CREATE TABLE Angest ( ID integer, xml_emp_data XML(DOCUMENT(ANY)))

Validierung mit SQL Nicht nur einzelne Dokumente, sondern auch ganze Sequenzen können mit der Funktion XMLVALIDATE gegen ein bestimmtes Schema validiert werden Sequenz wird Baum für Baum überprüft Bei erfolgreicher Validierung werden die Knoten mit Typinformationen angereichert

Validierung mit SQL Einschränkungen: In einer Sequenz dürfen bei der Validierung …  Textknoten  Attributknoten  Namensraumknoten  Atomare Werte nicht vorkommen Einzelne Bäume einer ungültigen Sequenz können über einen „Umweg“ doch validiert werden

Prädikate Zum Test auf bestimmte Eigenschaften von XML- Werten stehen auch neue Prädikate zur Verfügung: ◦ IS DOCUMENT : prüft ob der XML-Wert den Eigenschaften eines XML-Dokuments (validiert oder ungültig) genügt ◦ IS CONTENT : prüft ob der XML-Wert ein Dokument im Sinne des XQuery-Datenmodells ist ◦ IS VALID : prüft ob ein XML-Wert einem bestimmten Schema genügt. Im Gegensatz zu XMLVALIDATE findet hier keine Typanreicherung statt.

Prädikate Für alle diese Prüfungen gilt: Es wird lediglich ein Wahrheitswert zurückgegeben und die Daten bleiben unverändert Sie können z.B. in der WHERE –Klausel verwendet werden um nur Zeilen mit der jeweiligen Gültigkeit zu liefern Beispiel : SELECT * FROM Angest WHERE xml_emp_data IS [NOT] DOCUMENT

Übergabe von Knoten Wird eine Sequenz zur Verarbeitung an eine SQL-Funktion übergeben, muss der Übergabemechanismus spezifiziert werden Dazu gibt es – wie bei Programmiersprachen – zwei unterschiedliche Methoden ◦ BY REF : Die Knoten der Sequenz selbst werden übergeben ◦ BY VALUE : Nur Kopien der Knoten werden übergeben Dazu wird das Konzept der Knotenidentität des XQuery- Datenmodells genutzt. Alle Knoten haben eine Knotenidentität, nutzt man BY VALUE, bekommen die Kopien eine neue Knotenidentität.

XMLQuery Bettet XQuery-Anfragen in SQL ein Kann nach bestimmten Werten einer SQL-Tabelle in XML-Dokumenten suchen Dies geschieht indem ein SQL-Wert an eine globale XQuery-Variable gebunden wird und diese Variable dann im XQuery-Ausdruck verwendet werden kann Die Rückgabe des XQuery-Ausdrucks an SQL erfolgt BY REF oder BY VALUE

XMLQuery Beispiel: SELECT top_price, XMLQUERY ( ´ for $cost in /buyer/contract/item/amount where /buyer/name = $var1 return $cost ´ PASSING BY VALUE "F.Castro", AS var1 RETURNING SEQUENCE BY VALUE ) FROM buyers

XMLTable Referenziert einen XML-Wert als eine Tabelle Im Gegensatz zum shredding keine Speicherung als Tabelle, sondern nur virtuell In SQL-Abfragen lassen sich die Elemente dann als Spalten ansprechen

XMLTable SELECT X.* FROM PurchaseOrders PO, XMLTable ( '//item' PASSING PO.XMLpo COLUMNS "Seqno" FOR ORDINALITY, "Part #" CHAR(6) PATH "ProdName" CHAR(20) PATH 'productName', "Quantity" INTEGER PATH 'quantity', "Price" DECIMAL(9,2) PATH 'USPrice', "Date" DATE PATH 'shipDate' ) AS X WHERE PO.KeyField = 1

XMLTable – virtuelle Tabelle SeqnoPart #ProdNameQuantityPriceDate 1GA-564Kettensäge GA-520Gartenschere Nutzungsmöglichkeiten von XMLTable: Persistente Speicherung des „geshredderten“ XML-Wertes mit INSERT INTO Joins mit anderen Tabellen

XMLCAST Konvertiert Werte von SQL nach XML und umgekehrt existierende CAST-Funktion nicht geeignet, da in vielen Produkten das „Casten“ von/nach XML bereits als Character-String implementiert ist Syntax: XMLCAST ( xml_data AS date) Entweder der Quell- oder der Zieldatentyp (oder auch beide) müssen XML sein Das Schlüsselwort EMPTY kann nach XML gecastet werden, um kinderlose Dokumentenknoten oder leere Sequenzen zu erzeugen XMLCAST (EMPTY AS XML(SEQUENCE))

XMLCAST XML nach XML : ◦Grundsätzlich kann jeder XML-Wert in einen anderen „gecastet“ werden ◦Viele Einschränkungen bezüglich der Datentypen (Bsp.: sequence  document), ◦Knotenidentität und Schemainformationen können verloren gehen SQL nach XML: ◦Cast nach XML(DOCUMENT) oder XML(CONTENT)  Text-Knoten im Dokument ◦Cast nach XML(SEQUENCE) kann auch einen atomic type erzeugen XML nach SQL: ◦Kinder von D-Knoten müssen als Sequenz arrangiert werden ◦Die Sequenz muss atomisiert und in atomic type konvertiert werden ◦Das ganze funktioniert dann nur, wenn die arrangierte Sequenz nur einen Wert hatte

Abschließende Worte zur Norm Entwicklung geht Richtung Ausbau der XML-Unterstützung Die Norm ist kein Gesetz Viele Bereiche sind auch in der Norm „implementation defined“

Vielen Dank