Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML-Unterstützung durch MS SQL Server Vortrag Nr. 11 im Seminar XML und Datenbanken im SoSe 2008 (Block: 08./09.05.2008) von Mirko Zipfel.

Ähnliche Präsentationen


Präsentation zum Thema: "XML-Unterstützung durch MS SQL Server Vortrag Nr. 11 im Seminar XML und Datenbanken im SoSe 2008 (Block: 08./09.05.2008) von Mirko Zipfel."—  Präsentation transkript:

1 XML-Unterstützung durch MS SQL Server Vortrag Nr. 11 im Seminar XML und Datenbanken im SoSe 2008 (Block: 08./ ) von Mirko Zipfel

2 Übersicht XML und SQL Server 2000 XML und SQL Server 2005 XML als Datentyp Schemata und Indexe XQuery und XML-DML XML und SQL Server 2008 Listen und Vereinigungen, Lax Validation XQuery- und XML-DML-Neuerungen Zusammenfassung Quellen

3 XML und SQL Server 2000 Interface zum Zugriff auf relationale Daten (Import: OpenXML, Export: FOR XML) also nur Mapping möglich XML in DB: CLOB oder BLOB Keine Unterstützung für Validierung oder spezielle Indizierung Client-API: SQLXML Untermenge von XPath 1.0 z.B. keine rekursiven XML-Schemata und Garantie für Element-Reihenfolge

4 XML und SQL Server 2005 XML als Datentyp Schemata und Indexe XQuery und XML-DML

5 XML und SQL Server 2005 XML als Datentyp Einführung des Datentyps xml für Spalten, Variable und Parameter Eigenes internes Format auf Basis von BLOB 2 Arten: untyped und typed

6 XML und SQL Server 2005 XML als Datentyp Untyped XML an kein Schema gebunden, nur allgemeine Komformitätsprüfung kann XML-Dokumente, Fragmente und Texte aufnehmen Bsp.: Create Table docs ( pk int Primary Key, xCol xml not null)

7 XML und SQL Server 2005 XML als Datentyp 5 Methoden mit XQuery-Argumenten 4 lesende: query(): Extraktion von Teildokumenten value(): Extraktion eines Skalars exists(): Existenzprüfung von Knoten nodes(): Knotenextraktion 1 modifizierende: modify(): Änderung von Skalaren, Hinzufügen und Löschen von Teilbäumen

8 XML und SQL Server 2005 XML als Datentyp Bsp. 1: SELECT xCol.query( = 123]//section) FROM docs WHERE = 1

9 XML und SQL Server 2005 XML als Datentyp Bsp. 2: UPDATE docs SET xCol.modify( insert Background after

10 XML und SQL Server 2005 XML als Datentyp Typed XML Bindung an Sammlung von XML-Schemata Validierung bei Insert und Update 2 Varianten möglich: Document (nur eine Wurzelelement) Content (mehrere Wurzelelemente möglich) Bsp.:Create Table xmlCat ( id int primary key, doc xml(content myColl))

11 XML und SQL Server 2005 Schemata und Indexe Schemata für typed XML nötig Ablage in Collections Möglichkeit nachträglich Collection um weitere Schemata zu erweitern XML-Indexe: 2 Arten (primär + sekundär) sowohl auf typed wie untyped möglich Volltext-Index (ignoriert MarkUp-Elemente nur Inhalte werden indiziert)

12 XML und SQL Server 2005 Schemata und Indexe Primärer XML-Index Gruppierter Index auf Basistabelle nötig B+-Baum mit Einträgen für: Elementnamen Attributnamen Knotenwerte Typangaben Knotenreihenfolge Pfad- und Strukturangaben Tagwerte werden durch Integer substituiert Pfadangaben in reverse order (schnelles Auffinden bei vollständig geg. Pfad)

13 XML und SQL Server 2005 Schemata und Indexe Sekundäre XML-Indexe aufbauend auf primären XML-Index 3 Arten für spezielle Anfragen PATH B+-Baum für (path, value) PROPERTY B+-Baum für (PK, path, value) VALUE B+-Baum für (value, path) Weitere Eigenschaften: Tiefe max. 128 Ebenen Werte bis 128 Bytes in Index, sonst interner Verweis Cost-Based Optimizer berücksichtigt auch XML-Indexe

14 XML und SQL Server 2005 Schemata und Indexe Bsp. Primärer XML-Index: Create Primary XML Index idx_xCol on docs (xCol) Bsp. Sekundärer XML-Index: Create XML Index idx_xCol_Path on docs (xCol) USING XML Index idx_xCol FOR PATH Bsp. Volltext-Index auf XML-Spalte: Create Fulltext Catalog ft as Default Create Fulltext Index on dbo.docs (xCol) Key Index PK_docs_7F60ED59

15 XML und SQL Server 2005 Schemata und Indexe Bsp. Volltext und XQuery kombiniert: SELECT * FROM docs WHERE CONTAINS(xCol, Secure) AND xCol.exists( /book/title/text() [fn:contains(.,Secure)]) = 1 Secure im Titel (per XQuery) und irgendwo im Text (per VT-Index)

16 XML und SQL Server 2005 XQuery und XML-DML Server-seitige Unterstützung für XQuery in T-SQL Untermenge orientiert an Entwurf vom Juli 2004 Untermenge von FLWOR vorhanden Iteration per FOR (F) Knotenprüfung per WHERE (W) Sortierung per ORDER BY (O) Rückgabe der Werte per RETURN (R)

17 XML und SQL Server 2005 XQuery und XML-DML Bsp. XQuery mit FLWOR: SELECT pk, xCol.query( FOR $s in = 123]//section WHERE >= 3 RETURN {data($s/title)} FROM docs

18 XML und SQL Server 2005 XQuery und XML-DML XQuery-Abfragen mit FLWOR: eigener XQuery-Compiler stellt Unterabfrage-Baum im Abfragebaum der Gesamtabfrage dar WHERE-Klausel für jede Zeile in Tabelle Nutzung der XML-Datentyp-Methoden und Indexe Wenn Bedingung erfüllt Sperre auf Zeile und Auswertung der SELECT-Klausel Sonst überspringen und zu nächster Zeile

19 XML und SQL Server 2005 XQuery und XML-DML XML-DML als Erweiterung zu XQuery für Manipulationen Einfügen / Löschen von Teilbäumen mit Positionsangaben beim Einfügen Einfügen von Attributen, Elemente und Text-Knoten wird unterstützt Ändern von Skalarwerten

20 XML und SQL Server 2005 XQuery und XML-DML Bsp. Preisänderung bei Buch: UPDATE xmlCat SET document.modify ( declare namespace bk = replace value of ( with 49.99)

21 XML und SQL Server 2008 Listen und Vereinigungen, Lax Validation XQuery- und XML-DML-Neuerungen

22 XML und SQL Server 2008 Listen und Vereinigungen, Lax Validation SQL Server 2005: Keine Unterstützung für Vereinigung von List-Typen Größenangabe 1: S, M, L Größenangabe 2: 22, 24, 26 Validierung erst in SQL Server 2008 möglich von: Vereinigungen von List-Typen Listen von Vereinigungstypen

23 XML und SQL Server 2008 Listen und Vereinigungen, Lax Validation Lax Validation SQL Server 2005: Wildcards à la any, anyType, anyAttribute nur durch Angabe skip in Schema validierbar (lax wird nicht verstanden) SQL Server 2008: Angabe lax wird jetzt richtig berücksichtig

24 XML und SQL Server 2008 XQuery- und XML-DML-Neuerungen XQuery: bei FLWOR nun auch LET (L) möglich LET für Variablenzuweisung Bsp.: { for $invoice in /Invoices/Invoice let $count := count($invoice/Items/Item) order by $count return {$invoice/Customer] {$count} } ) Einschränkung: keine Zuweisung von zusammengesetzten Elementen möglich

25 XML und SQL Server 2008 XQuery- und XML-DML-Neuerungen XML-DML-Neuerung: Einfügen von Subbäumen über SQL- Variablen möglich (zuvor nur für Auswertung möglich) Bsp.: xml = Racing Bike insert as last into (/Products)[1])

26 Zusammenfassung SQL Server 2000: Nur Mapping für Im-/Export SQL Server 2005: XML-Datentyp Submenge von XQuery (nicht normkonformen bezeichnete Methoden) Einschränkungen bei Schemata Keine Vereinigungstypen von Listen, … SQL Server 2008: Gegenüber Version 2005 einige Nachbesserungen Immer noch keine Normkomformität bei: SQL/XML:2006-Typen (nur Untermenge) Nur XQuery-Untermenge und Bezeichnungen wie query statt XMLQUERY, …

27 Quellen Pal, Fussell, Dolobowsky: Microsoft SQL Server 2005 – XML Support in Microsoft SQL Server Microsoft Corp.: November 2005 (http://download.microsoft.com/download/f/1/c/ f1cf7b8d-7fb9-4b71-a658-e748e67f9eba /XML_Support_in_SQL.doc)http://download.microsoft.com/download/f/1/c/ f1cf7b8d-7fb9-4b71-a658-e748e67f9eba /XML_Support_in_SQL.doc Malcolm: Microsoft SQL Server 2008 – Whats New for XML in SQL Server Microsoft Corp.: Final Publishing should be in August 2008 (http://download.microsoft.com/download/a/c/d/ acd8e043-d69b-4f09-bc9e-4168b65aaa71 /WhatsNewSQL2008XML.doc)http://download.microsoft.com/download/a/c/d/ acd8e043-d69b-4f09-bc9e-4168b65aaa71 /WhatsNewSQL2008XML.doc Rys: XML and Relational Database Management Systems: Inside Microsoft SQL Server SIGMOD 2005, June 14-16, Baltimore, Maryland, USA. Müller: Verfahren zur Verarbeitung von XML-Werten in SQL- Anfrageergebnissen. Abschnitt – MS SQL Server Jena, April 2008.


Herunterladen ppt "XML-Unterstützung durch MS SQL Server Vortrag Nr. 11 im Seminar XML und Datenbanken im SoSe 2008 (Block: 08./09.05.2008) von Mirko Zipfel."

Ähnliche Präsentationen


Google-Anzeigen