XML-Unterstützung durch MS SQL Server

Click here to load reader

download XML-Unterstützung  durch MS SQL Server

of 27

  • date post

    01-Jan-2016
  • Category

    Documents

  • view

    41
  • download

    0

Embed Size (px)

description

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. Ü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 - PowerPoint PPT Presentation

Transcript of XML-Unterstützung durch MS SQL Server

  • XML-Untersttzung durch MS SQL ServerVortrag Nr. 11 im Seminar XML und Datenbankenim SoSe 2008 (Block: 08./09.05.2008)

    von Mirko Zipfel

  • bersichtXML und SQL Server 2000XML und SQL Server 2005XML als DatentypSchemata und IndexeXQuery und XML-DMLXML und SQL Server 2008Listen und Vereinigungen, Lax ValidationXQuery- und XML-DML-NeuerungenZusammenfassung Quellen

  • XML und SQL Server 2000Interface zum Zugriff auf relationale Daten (Import: OpenXML, Export: FOR XML)also nur Mapping mglichXML in DB: CLOB oder BLOBKeine Untersttzung fr Validierung oder spezielle IndizierungClient-API: SQLXMLUntermenge von XPath 1.0 z.B. keine rekursiven XML-Schemata und Garantie fr Element-Reihenfolge

  • XML und SQL Server 2005XML als DatentypSchemata und IndexeXQuery und XML-DML

  • XML und SQL Server 2005XML als DatentypEinfhrung des Datentyps xmlfr Spalten, Variable und ParameterEigenes internes Format auf Basis von BLOB2 Arten: untyped und typed

  • XML und SQL Server 2005XML als DatentypUntyped XMLan kein Schema gebunden, nur allgemeine Komformittsprfungkann XML-Dokumente, Fragmente und Texte aufnehmenBsp.: Create Table docs ( pk int Primary Key, xCol xml not null)

  • XML und SQL Server 2005XML als Datentyp5 Methoden mit XQuery-Argumenten4 lesende:query(): Extraktion von Teildokumentenvalue(): Extraktion eines Skalarsexists(): Existenzprfung von Knotennodes(): Knotenextraktion1 modifizierende:modify(): nderung von Skalaren, Hinzufgen und Lschen von Teilbumen

  • XML und SQL Server 2005XML als DatentypBsp. 1: SELECT xCol.query( /doc[@id = 123]//section) FROM docs WHERE xCol.exists(/doc[@id=123]) = 1

  • XML und SQL Server 2005XML als DatentypBsp. 2: UPDATE docs SET xCol.modify( insert Background after (/doc//section[@num=1])[1])

  • XML und SQL Server 2005XML als DatentypTyped XMLBindung an Sammlung von XML-Schemata Validierung bei Insert und Update2 Varianten mglich: Document (nur eine Wurzelelement)Content (mehrere Wurzelelemente mglich)Bsp.:Create Table xmlCat ( id int primary key, doc xml(content myColl))

  • XML und SQL Server 2005Schemata und IndexeSchemata fr typed XML ntigAblage in CollectionsMglichkeit nachtrglich Collection um weitere Schemata zu erweiternXML-Indexe: 2 Arten (primr + sekundr)sowohl auf typed wie untyped mglichVolltext-Index (ignoriert MarkUp-Elemente nur Inhalte werden indiziert)

  • XML und SQL Server 2005Schemata und IndexePrimrer XML-IndexGruppierter Index auf Basistabelle ntigB+-Baum mit Eintrgen fr:ElementnamenAttributnamenKnotenwerteTypangabenKnotenreihenfolgePfad- und StrukturangabenTagwerte werden durch Integer substituiertPfadangaben in reverse order (schnelles Auffinden bei vollstndig geg. Pfad)

  • XML und SQL Server 2005Schemata und IndexeSekundre XML-Indexeaufbauend auf primren XML-Index3 Arten fr spezielle AnfragenPATH B+-Baum fr (path, value)PROPERTY B+-Baum fr (PK, path, value)VALUE B+-Baum fr (value, path)Weitere Eigenschaften:Tiefe max. 128 EbenenWerte bis 128 Bytes in Index, sonst interner VerweisCost-Based Optimizer bercksichtigt auch XML-Indexe

  • XML und SQL Server 2005Schemata und IndexeBsp. Primrer XML-Index: Create Primary XML Index idx_xCol on docs (xCol)Bsp. Sekundrer XML-Index: Create XML Index idx_xCol_Path on docs (xCol) USING XML Index idx_xCol FOR PATHBsp. Volltext-Index auf XML-Spalte: Create Fulltext Catalog ft as Default Create Fulltext Index on dbo.docs (xCol) Key Index PK_docs_7F60ED59

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

  • XML und SQL Server 2005XQuery und XML-DMLServer-seitige Untersttzung fr XQuery in T-SQLUntermenge orientiert an Entwurf vom Juli 2004Untermenge von FLWOR vorhandenIteration per FOR (F)Knotenprfung per WHERE (W)Sortierung per ORDER BY (O)Rckgabe der Werte per RETURN (R)

  • XML und SQL Server 2005XQuery und XML-DMLBsp. XQuery mit FLWOR: SELECT pk, xCol.query( FOR $s in /doc[@id = 123]//section WHERE $s/@num >= 3 RETURN {data($s/title)} FROM docs

  • XML und SQL Server 2005XQuery und XML-DMLXQuery-Abfragen mit FLWOR:eigener XQuery-Compilerstellt Unterabfrage-Baum im Abfragebaum der Gesamtabfrage darWHERE-Klausel fr jede Zeile in TabelleNutzung der XML-Datentyp-Methoden und IndexeWenn Bedingung erfllt Sperre auf Zeile und Auswertung der SELECT-KlauselSonst berspringen und zu nchster Zeile

  • XML und SQL Server 2005XQuery und XML-DMLXML-DML als Erweiterung zu XQuery fr ManipulationenEinfgen / Lschen von Teilbumen mit Positionsangaben beim EinfgenEinfgen von Attributen, Elemente und Text-Knoten wird untersttztndern von Skalarwerten

  • XML und SQL Server 2005XQuery und XML-DMLBsp. Preisnderung bei Buch: UPDATE xmlCat SET document.modify ( declare namespace bk = http://myBooks replace value of ( /bk:bookstore/bk:book[ @ISBN=1-861003-11-0]/bk:price)[1] with 49.99)

  • XML und SQL Server 2008Listen und Vereinigungen, Lax ValidationXQuery- und XML-DML-Neuerungen

  • XML und SQL Server 2008Listen und Vereinigungen, Lax ValidationSQL Server 2005: Keine Untersttzung fr Vereinigung von List-TypenGrenangabe 1: S, M, LGrenangabe 2: 22, 24, 26 Validierung erst in SQL Server 2008 mglich von:Vereinigungen von List-TypenListen von Vereinigungstypen

  • XML und SQL Server 2008Listen und Vereinigungen, Lax ValidationLax ValidationSQL 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 bercksichtig

  • XML und SQL Server 2008XQuery- und XML-DML-NeuerungenXQuery: bei FLWOR nun auch LET (L) mglichLET fr VariablenzuweisungBsp.: SELECT @x.query( { for $invoice in /Invoices/Invoice let $count := count($invoice/Items/Item) order by $count return {$invoice/Customer] {$count} } )Einschrnkung: keine Zuweisung von zusammengesetzten Elementen mglich

  • XML und SQL Server 2008XQuery- und XML-DML-NeuerungenXML-DML-Neuerung:Einfgen von Subbumen ber SQL-Variablen mglich (zuvor nur fr Auswertung mglich)Bsp.: Declare @newBike xml Set @newBike =Racing Bike Set @productList.modify( insert sql:variable(@newBike) as last into (/Products)[1])

  • ZusammenfassungSQL Server 2000:Nur Mapping fr Im-/ExportSQL Server 2005:XML-DatentypSubmenge von XQuery (nicht normkonformen bezeichnete Methoden)Einschrnkungen bei SchemataKeine Vereinigungstypen von Listen, SQL Server 2008:Gegenber Version 2005 einige NachbesserungenImmer noch keine Normkomformitt bei:SQL/XML:2006-Typen (nur Untermenge)Nur XQuery-Untermenge und Bezeichnungen wie query statt XMLQUERY,

  • QuellenPal, Fussell, Dolobowsky: Microsoft SQL Server 2005 XML Support in Microsoft SQL Server 2005. Microsoft Corp.: November 2005 (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 2008. Microsoft Corp.: Final Publishing should be in August 2008 (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 2005. SIGMOD 2005, June 14-16, 2005. Baltimore, Maryland, USA.Mller: Verfahren zur Verarbeitung von XML-Werten in SQL-Anfrageergebnissen. Abschnitt 2.12.2 MS SQL Server 2005. Jena, April 2008.