XML Schema Constraints XML-Schema gibt die Möglichkeit zur Definition von Typen, allgemeiner als mittels einer DTD, Definition von Bedingungen unique, key, keyref, im folgenden Constraints genannt. Frage: Können Typdefinitionen und Constraints in dem Sinne inkonsistent sein, dass die Menge der gültigen XML-Dokumente leer ist? Falls ja, wie aufwendig ist es, dies zu testen (Konsistenz-Problem)? – p. 1/1 Beispiel 1: DTD: <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT teachers (teacher+)> teacher (name, teach)> teach (subject, subject)> subject (taught_by)> _ _ Constraints: Die DTD zusammen mit der Menge von Constraints ist inkonsistent! – p. 2/1 # $ & # $% & # $ & # $% & !" XML-Baum zu Beispiel 1: – p. 3/1 ( _ ( _ ) ( ' Sei Begründung: ein XML-Baum. Es gilt für die jeweiligen Knotenmengen: jedoch verlangt die DTD: ein Widerspruch. – p. 4/1 Beispiel 2: DTD: <!ELEMENT <!ATTLIST <!ATTLIST <!ATTLIST vehicle ((registr | plate), policy, policy)> registr num CDATA #REQUIRED> plate num CDATA #REQUIRED> policy reference CDATA #REQUIRED> / 1 / / / . + - , * 2 , - , * + 1 - , -, -, .0 + .0 + - , . + - , * , - , * + * + * + Constraints: Die DTD zusammen mit der Menge von Constraints ist inkonsistent! Begründung analog zu Beispiel 1. – p. 5/1 Beispiel 3: DTD: <!ELEMENT seq (clone+)> <!ELEMENT clon (DNA, gene)> <!ELEMENT gene (DNA)> 6 5 4 3 - 0 Constraints: Die DTD zusammen mit der Menge von Constraints ist inkonsistent! Warum? – p. 6/1 :;< :;< :;< 8 8@ A 8 8@ A :;< 8 ?@= > 8 ?@= > 789 XML-Baum zu Beispiel 3: – p. 7/1 Formalisierung D C B ( 4 6 Eine DTD ist ein Tupel wobei 6 B eine endliche Menge von Elementtypen, . F F F F F J E I I I I I I I J , und 6 E ist D B E B Für , I E , das leere Wort und I I I wobei S den Typ string bezeichnet, wie gewohnt. B I I ( G FG H K I E ist ein regulärer Ausdruck , die Elementdefinition von : F C , E E Für jedes B B eine endliche Menge von Attributen, disjunkt zu eine Menge von Attributen aus . ist der Elementtyp der Wurzel. – p. 8/1 6 ' 4 (oder 0 0 * ( - - L ' ' D C eine DTD. Ist valid bzgl. wie folgt charakterisiert werden: B ( 4 ( ' 4 ' Sei ein XML-Baum und sei conforms to), , dann kann wobei ( * * E H - E L ist ein Element vom Typ , sofern ; ein Textknoten, sofern . 6 - * H B L . ( - ist eine Funktion ; ein Attribut, sofern *+ - 6 L ist eine endliche Menge von Knoten, E E L E C 6 O O O P * - P * O O - N *+ O R Q *N M - ist eine Funktion, die für jeden Elementtyp jedes Element vom Typ auf eine Liste , , von Element- und Textknoten in abbildet, so dass enthalten in der regulären Sprache zu . L * *+ * 6 L - / D , ( 0 0 und - ' ist die Wurzel von 0 0 und E E nach string so, dass für jedes . * L * + ( * H - - E ( * - ist eine partielle Funktion von definiert gdw. , oder so, dass für jedes und . B * + - - * / 6 - / L nach L ist eine partielle Funktion von , definiert gdw. . – p. 9/1 eine DTD. ist ein Ausdruck der Form S S C O X X P W C XPath-Ausdrücke. die Felder. P U X P U S O O O N N O X X S W C T wobei und Selektoren des Ausdrucks und die S O O O P N W S S N C ist ein Ausdruck der Form 4 Ein Foreign-Key über O O O U S V P N ist der Selektor des O O O S S C XPath-Ausdrücke. die Felder. T wobei und Ausdrucks und die O P N C 4 Ein Key über D C 6 B ( 4 Sei sind die – p. 10/1 Y] 0 0 0 [ Y] Z Y] * - U S \ ( U S \ Y , , T U U ( - 0 , Z H - 6 , T und jedes . Weiter, O O - . Wenn N Y U 0 [ 0 Y , existiert genau , oder . O O O P N ( S S C ' P S S ' O O O P N C S S erfüllt ' U S \ ( O O O N C ein Key. * U Seien dann ( (b) Y Für jeden Knoten ein Knoten so dass N (a) Y Sei N (1) 0 0 * ( - - - L ' Sei ein XML-Baum. , wenn gilt: , . – p. 11/1 , X P X X W S S N P O O O O O O P N ( ' C O O O P N X W S O O O erfüllt O O O P P O O O S N C ' X X ein Foreign-Key. N W S S N C Sei (2) X X W O O O P N ( ' wenn zunächst U 0 0 ^ Z 0 Y , so dass 0 T 0 [ U X * ( O Y I 0 Y U S \ O Y * , existiert ein Knoten . , Z I U ( H - 6 - Y U ( U S \ ' U , existiert genau , oder . , T und jedes . Weiter, , 0 0 [ Für jedes (b) 0 Für jeden Knoten ein Knoten so dass Y (a) Z und weiter gilt: (1)(a), (2)(a) sind XML-Schema-spezifische Eindeutigkeitsbedingungen; mit diesen Bedingungen reden wir über XML-Schema-Keys, ohne über Normal-Keys. – p. 12/1 Komplexitätsergebnisse für das Konsistenz-Problem: Normal-Keys XML-Schema-Keys beliebige Keys und Foreign-Keys unentscheidbar unentscheidbar unäre Keys und unäre Foreign-Keys NP-complete PSPACE-hart Keys (ohne Foreign-Keys) lineare Zeit NP-hart ohne Keys lineare Zeit lineare Zeit – p. 13/1 Das Konsistenz-Problem ist im Allgemeinen unentscheidbar. Z ( ` _ Z ` _ Sei eine Menge funktionaler Abhängigkeiten und eine Menge Inklusionsabhängigkeiten eines relationalen Datenbankschemas. Sei eine funktionale oder eine Inklusionsabhängigkeit. Das Implikationsproblem ist unentscheidbar. b b a ( ` , b a ` gdw. es existiert eine Instanz des relationalen Schema, so dass , d.h., ist konsistent. b b a ( ` ( a ( a ( a b a Sei eine Menge von Keys und Foreign Keys eines Relationalen Datenbankschemas. Sei ein Key. Das Implikationsproblem ist unentscheidbar; damit auch das komplementäre Problem . Das komplementäre (relationale) Key-Implikationsproblem kann auf das XML-Schema-Konsistenzproblem reduziert werden. – p. 14/1 d D 6 ( e D Md Q D ( b eine Menge von Keys und . D O O O P N ( D Sei R ein relationales Datenbankschema, Foreign Keys über R, ein Key über R. Sei c Reduktion a 4 b Q j /d d B k D c M jQ M j k e / 4 e , /d d e /d h D e /d e 4 B /d e 4 ( h a l U D k D V j U U D I c , wenn I U D , f a M U D , wenn jQ h a i f a " f a g U j U D ( a c 4 Sei eine DTD zusammen mit einer Menge von Key- und Foreign-Key-Constraints eine Kodierung von R, und , wobei wie in der folgenden Abbildung ersichtlich und zusätzlich wie folgt: – p. 15/1 t t t v t v v ¡ \ v ¢ w w £ n w w w n m w n m } " t g t \ " v g v t v t v t v xow o w | ~ z y { uv st st r n g pon pqn m XML-Baum zur Reduktion: – p. 16/1 Das Konsistenz-Problem mit Keys, jedoch ohne Foreign-Keys, ist entscheidbar in linearer Zeit, sofern alle Felder eines Keys Attribute des durch den Selektor des Keys bestimmten Elementtyps sind. Das Konsistenz-Problem ohne Keys und Foreign-Keys kann in linearer Zeit entschieden werden. ' *+ ] ( E ] - ( - * - N * N+ - / ] E 4 - / *+ * ( ]¥- - / N+ * ]¥- * *N * ] - * ] ' ' N 4 N ¤ 4 Sei eine DTD und eine zugehörige Menge von Keys. Sei ein XML-Baum valid zu . Modifiziere zu einem XML-Baum , indem zu so abgeändert wird, dass für je zwei Knoten mit gerade für alle durch dem Elementtyp zugeordneten Attribute . Bemerkung: Sind alle Felder eines Key Attribute, dann ist der Key ein Normal-Key. – p. 17/1 Literatur: Peter Buneman, Susan Davidson, Wenfei Fan, Carmen Hara, Wang-Chiew Tan. Keys for XML. Proceedings WWW10, 2001. Wenfei Fan, Leonid Libkin. On XML Integrity Constraints in the Presence of DTDs. JACM, Vol 49, No. 3, 2002. Marcelo Arenas, Wenfei Fan, Leonid Libkin. What’s Hard about XML Schema Constraints? DEXA 2002, LNCS 2453, Springer Verlag, 2002. Marcelo Arenas, Wenfei Fan, Leonid Libkin. On Verifying Consistency of XML Specifications. Proceedings ACM PODS, 2002. – p. 18/1