1 / 128

XML et les BD

GG. 2. 1. Introduction. Gnrations de BDRseau et hirarchique 70 - 80Relationnel 80 - 90Objet-Relationnel 90 - Web et BDun rendez-vous manqucouplage faible par serveur d'applicationsle Web est une vaste BD distribuela structuration est faibleplutt orient documentaire .... Introducti

menefer
Télécharger la présentation

XML et les BD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. XML et les BD 1. Introduction 2. Modle de donnes 3. Langage de requtes 4. Produits 5. Conclusion Indexation et Optimisation

    2. GG 2 1. Introduction Gnrations de BD Rseau et hirarchique 70 - 80 Relationnel 80 - 90 Objet-Relationnel 90 - Web et BD un rendez-vous manqu couplage faible par serveur d'applications le Web est une vaste BD distribue la structuration est faible plutt orient documentaire ...

    3. GG 3 XML s'impose Intgration des donnes et mta-donnes Standard dchange de donnes universel Les BD ne peuvent rester indiffrentes : ncessit de stocker les documents XML ncessit de pouvoir interroger ces documents volution ou rvolution ? Quel modle de donnes ? Quel langage d'interrogation ? Quelle intgration avec l'existant ?

    4. GG 4 Limites de SQL Mauvais support de l'imbrication GROUP BY limits Gnralement dans les diteurs de rapports SQL3 trop complexe Requtes imbriques difficiles Mthodes en qualification coteuse Rfrences pas trs claires Peu adapt XML Vision tabulaire Manipulation par des fonctions (SQL/XML) SQL 30 ans ! Invent en 1970 pour la gestion XQuery le successeur ?

    5. GG 5 Exemple de documents <?xml version="1.0"?> <Restaurants region="Normandie" version="2.0"> <Restaurant type="francais" categorie="***"> <Nom>Le Grand Htel</ Nom> <Adresse> <Rue>Promenade M. Proust </Rue> <Ville>Cabourg</Ville> </Adresse> <Manager>Dupont</Manager> <Menu>Plat du jour</Menu> </Restaurant> <Restaurant type="francais" categorie="**"> <Nom>L'Absinthe</Nom> <Adresse> <No>10</No> <Rue>quai Quarantaine </Rue> <Ville>Honfleur</Ville> </Adresse> <Tlphone>0231893900 </Tlphone> <Manager>Dupont</Manager> <Manager>Durand</Manager> <Menu Prix="12"> Fruits de Mer </Menu> </Restaurant> </Restaurants>

    6. GG 6 2. Modle de donnes Schmas flexibles et irrguliers Optionnels, avec ou sans DTD Donnes auto-descriptives Balises et attributs Modle de type hypertexte Support des rfrences lments atomiques ou complexes Composition par agrgation Types de donnes varis et extensibles Textes, numriques, , types utilisateur

    7. GG 7 Le modle de donnes XQuery Data Model Modle des schmas et de XPath 2 Un document est un arbre nud tiquet Chaque nud possde une identit Exprim en XML, souvent reprsent graphiquement Une fort est une collection de documents de mme schma Une source de donnes est soit un document, soit une fort

    8. GG 8 Diagramme XML Spy

    9. GG 9 Et les documents sans schma ? Possibilit de stocker des documents sans schma Le SGBD gnre un schma (arbre couvrant sans feuilles) Maintenu lors des mises jour (compteur d'utilit) Schma de base pour l'interrogation Facilite la conception Dgager des collections de documents apparents Le SGBD conoit pour vous ! Solution Fort ferme versus fort ouverte Construction et gestion dynamique des schmas Notion de "document guide" ou DTD gnralise Schma faible avec typage string Possibilit dinfrer des types partir des valeurs

    10. GG 10 Bilan Modle de donnes Un standard riche schmas standardiss depuis 3 mai 2001 Reprsentation graphique ad-hoc Gnration automatique en cas d'absence Faut-il un autre modle que les schmas ? Doit couvrir les schmas Doit couvrir les DTD Doit couvrir l'absence de schma et DTD Syntaxe plus simple

    11. GG 11 3. Langage de requtes

    12. GG 12 Quest ce que XQuery ? XQuery est le langage de requtes pour XML dfini et standardis par le W3C XQuery simpose comme le langage de requtes: Pour les bases de donnes XML natives Pour les documents XML textuels (XQuery Text) Pour lintgration de donnes (bases de donnes virtuelles) Le besoin dinterroger les bases relationnelles en XQuery existe Pour lintgration et la publication de donnes Comptition avec les extensions de SQL (SQL/XML)

    13. GG 13 Objectifs

    14. GG 14 La base Propos par IBM , MS, AT&T, Data Direct, ... Langage fonctionnel type CAML Forme de requte lmentaire FOR $<var> in <forest> [, $<var> in <forest>]+ //itration LET $<var> := <subtree> // assignation WHERE <condition> // lagage RETURN <result> // construction Les forts sont slectionnes par des Xpath (document ou collection) Le rsultat est une fort (un ou plusieurs arbres)

    15. GG 15 Exemple 1 : XPath (Q1) Noms de tous les restaurants : collection(Restaurants)/Restaurant/Nom/text() collection(Restaurants)/Restaurant/Nom

    16. GG 16 Exemple 2 et 3 : XPath + Expression rgulire Menu de tous les restaurants collection(Restaurants)//Menu Accs via indice attribut Donnez le nom des menus du premier restaurant collection(Restaurants)/Restaurant[1]/Menu/@Prix

    17. GG 17 Exemple 4 : Slection Lister le nom des restaurants de Cabourg: collection(Restaurants)/Restaurant [Adresse/Ville=Cabourg"] /Nom <resultat> {for $R in collection("Restaurants")/Restaurant where $R/Adresse/Ville = Cabourg return {$R/Nom}} </resultat>

    18. GG 18 Exemple 5 : Jointure Lister le nom des Restaurants avec tlphone dans la rue de l'Htel Lutecia: for $R in collection("Restaurants")/Restaurant, $H in collection("Hotels")/Hotel where $H//Rue = $R//Rue and $H//Nom = "Le Lutecia" return <Result> {$R/Nom} {$R/Tlphone} </Result>

    19. GG 19 Exemple 6 : Restructuration d'arbre Construire une liste de restaurants par Ville for $c in distinct(collection(Restaurants)/Restaurant//Ville) return <Ville>{$c}</Ville> <Restaurants> {for $r in collection(Restaurants)/Restaurant where $r//Ville = $c return {$r}} <Restaurants>

    20. GG 20 Exemple 7 : Imbrication en Where Adresses des hotels dans des villes ayant des restaurants trois toiles for $h in collection(Hotels)/Hotel where $h/Adresse/Ville in for $r in collection(Restaurants)/Restaurant where $r/@categorie = "***" return {$r/Adresse/Ville/text()} return {$h/Adresse}

    21. GG 21 Syntaxe Simplifie (XLive) // Rduite FWR XQuery ::= ForClause [WhereClause] ReturnClause ForClause ::= for VarDef [,VarDef] VarDef ::= $VarName in collection( QuotedText )/XPath WhereClause ::= where CplexCond CplexCond ::= Cond | Cond AND CplexCond | Cond OR Cplex CondCond ::= Expr Op Constant | Expr Op Expr | contains( Expr , Text ) Op ::= = | != | < | <= | > | >= Expr ::= $VarName/XPath ReturnClause ::= return XMLElement* XMLElement ::= <tag>XMLElement</tag>| { XPath}*| { XQuery}* VarName ::= Any variable nameTag ::= XML label QuotedText ::= Any text between quotes " Constant ::= Quoted text or number XPath ::= XPath expression restricted to child and descendant directions

    22. GG 22 Exemple 8 : Agrgat simple Combien de restaurants y-a-t-il en collection ? let $R := collection(Restaurants)/Restaurant return <NombreRestaurant > {count ($R)} </NombreRestaurant>

    23. GG 23 Exemple 9 : Agrgat partitionn Lister le nom de chaque restaurant avec le prix moyens des menus proposs for $r in collection(Restaurants)//Restaurant let $a := collection(Restaurants)// [Restaurant = $r]//Menu/@Prix return <resultat> {$r/Nom} <avgPrix>{AVG($a)}</avgPrix> </resultat>

    24. GG 24 Exemple 10 : recherche textuelle Lister les bons restaurants de Paris for $r in collection(Restaurants)//Restaurant where (contains ($r/Comments, Bon) or contains ($r/Comments, Excellent)) and $r/Adresse/Ville = Paris return {$r/Nom}

    25. GG 25 Exemple 11 : Ordre et dsordre Lister les bons restaurants de Paris par ordre alphabtique for $r in unordered(collection(Restaurants)//Restaurant) where (contains($r/Comments, "Excellent) or contains($r/Comments, "Good)) and $r/Adresse/Ville = Paris return {$r/Nom} orderby ($r/Nom descending)

    26. GG 26 Exemple 12 : Multi-requtes Construire un document avec en-tte, titre, liste restaurants peu chers, titre, liste restaurants chers <XML_document> <Very_Expensive_Restaurants> <Title>List of very expensive restaurants</Title> {for $r in collection("Restaurants)//Restaurant where every $p in $r/Menu/@Prix satisfies ($p>100) return {$r}} </Very_Expensive_Restaurants> <Very_Inexpensive_Restaurants> <Title>List of very inexpensive restaurants</Title> {for $r in collection(Restaurants)//Restaurant where some $p in $r/Menu/@Prix satisfies ($p<10) return {$r}} <Date>{date()}</Date> </Very_Inexpensive_Restaurants> </XML_document>

    27. GG 27 Exemple 13 : String Trouver les livres dans lequel le nom d'un lment se termine par "or" et le mme lment contient la chane "Suciu" quelque part. Pour chaque tel livre, retourner le titre et l'lment qualifiant. for $b in document("document")//book let $e := $b/*[contains(string(.), "Suciu") and ends-with(local-name(.), "or")] where exists($e) return <book> { $b/title } { $e } </book>

    28. GG 28 Fonctionnalits XQuery Text Recherche sur mot-cls Recherche de phrase Support des mots de laiaison Recherche sur prfix, suffix, infix Normalisation des mots, accents, capitales, Recherche par proximit (unit = mots) Spcification de l'ordre des mots Combinaison logic avec AND, OR , NOT Recherche par similarit Tri des rsultats par pertinence

    29. GG 29 Bilan XQuery Vritable langage de programmation Trs puissant Slection Jointure Imbrication Restructuration Agrgation Tri Plein texte Sur des forts dont les arbres sont des documents Questions ?

    30. GG 30 4. Aperu des produits Systmes natifs Technique spcialise de stockage et recherche Extension des techniques documentaires l'lment SGBD relationnels tendus Sparation des lments et du graphe Mapping en tables SGBD objet adapt Utilisation d'une structuration objet (DOM) Un produit : Excelon (Object Store) Racheter par Progress Software

    31. GG 31 4.1 SGBD Natif XML SGBD conu pour XML, stockant les documents en entiers sans les dcomposer en lments, utilisant de techniques d'indexation d'arbres spcifiques.

    32. GG 32 Indexation Plein Texte Utilisation d'un thsaurus au chargement ensemble de termes relis liste des mots importants synonymes et prfrs spcialisations, traductions Standards ISO 2788 et ANSI Z39.19 Stmisation (racine) ou lmisation (prfr) Listes inverses fichiers de mots significatifs pour chaque mot, adresse document (lment+offset)

    33. GG 33 Principaux produits De multiples start-up Software A.G. Tamino http://www.softwareag.com/ X-Hive/Db http://www.x-hive.com/ Coherity http://www.coherity.com/ IXIA soft http://www.ixiasoft.com/ XML Global http://www.xmlglobal.com/ NeoCore http://www.neocore.com/ Xyleme http://www.xyleme.com/ Exist http://exist.sourceforge.net/ Intgration comme type spcialis SGBD OR DB2 XML Extender, Oracle XML DB, SQL Server 2005

    34. GG 34 Xyleme Entrept XML efficace Architecture distribue Cluster de PCs Communication avec Corba Dvelopp sur Linux en C++ Support du langage de requtes XyQL OQL tendu avec des expressions de chemins Recherche plein texte en lments efficace

    35. GG 35 Xyleme Functionnalities

    36. GG 36 Xyleme: Natix Repository Objectifs Minimiser les I/O pour accs directe et balayage Accs direct efficace via index et identifiant Compression des donnes sans pnaliser les accs Stockage efficace darbre Pages de taille fixe classique Enregistrements de taille variable lintrieur Equilibrage des arbres par clatement de pages

    37. GG 37 Xyleme: Architecture Physique

    38. GG 38 Xyleme: Exemple de Requtes Extension de OQL avec XPath Orientation recherche textuelle Select boss/Name, boss/Phone From comp in BusinessDomain, boss in comp//Manager Where comp/Product contains Xyleme

    39. GG 39 Xyleme Indexation Liste inverse standard mot ? documents contenant ce mot Index Xyleme mot ? lments contenant ce mot (document + lment identifier) La plupart des requtes sur mots-cls sont traites en index, sans accs aux documents Possibilit denrichir la requte via un thsaurus avant la recherche en index

    40. GG 40 4.2 Mapping SGBDR Composant logiciel au-dessus d'un SGBDR assurant: le stockage et l'interrogation de documents XML en transformant le XML en tables et les tables en XML

    41. GG 41 Exemple de Mapping

    42. GG 42 SQL/XML Intgration de fonctionnalits XQuery SQL Support la SQL3 Type de donne natif XML Type (colonnes XML) Fonctions dextraction XPath Fonctions de construction de XML (pont relationnel) Insertion et Maj de XML en colonne(s) Exemple de requte SELECT XMLElement("Emp", XMLForest ( e.hire, e.dept AS "department") )AS "result FROM EMPLOYEE e WHERE ExtractValue(e.XMLemp, /emp/@id) > 200; Intgr Oracle et DB2

    43. GG 43 Fonctions SQL/XML

    44. GG 44 Oracle XML/DB Stockage et publication Mapping de XML plat sur une table Mapping de XML imbriqu en tables imbriques Stockage de XML en colonne (XML Type) Commandes PutXml et GetXml Interrogation Support de SQL/XML Servlet XSQL document XML avec requtes SQL/XML transformation du rsultat des requtes en XML

    45. GG 45 Microsoft: SQL Server 2005 Stockage de XML Stockage natif comme "XMLtype" Mapping de XML en tables dfini par assistants excut par procdures stockes Stockage en Large OBject varchar et varbinary Interrogation en XML XQuery et XML DML Propos pour interroger et mettre jour les donnes XML Possibilit de dfinir des vues XML et de les interroger SELECT FOR XML Retourne du XML partir de requtes SQL et permet de dfinir le format du XML retourn OpenXML Manipulation de documents XML comme des tables avec des procdures stockes

    46. GG 46 XQuare Bridge (Open Source) Extraction XML via XQuery traduite en SQL Stockage XML en base Mapping via schema Acclrateur XTree (Repository) Portable Oracle, SQLServer, PostGres, Version industrielle www.datadirect.com

    47. GG 47 Natif versus XORDBMS Points forts XOR pas de nouveau SGBD possibilit de normaliser les donnes possibilit de stocker comme valeur dattribut une certaine portabilit multi-SGBD performance pour accs grain fin Points forts Natif un nouveau SGBD fait pour XML jamais de mapping dfinir et maintenir intgrit du document recherche plein texte performance pour accs gros grain

    48. GG 48 5. Conclusion XML peut-il changer les bases de donnes ? Recherche en BD semi-structures Besoin de schmas faibles (XML Schma) Langage de requtes standardis (XQuery) L'effet du Web ... Intgration douce l'Objet/relationnel Transformation en tables Gestion du graphe Support des textes libres niveau lment

    49. GG 49 Rsum XML fournit un cadre uniforme pour : changer des donnes structures (DTD, schma) changer des donnes semi-structures (graphes) interroger des documents (XQuery) intgrer des sources de donnes htrognes (table, multimdia) Beaucoup de travaux sont en cours Gestion efficace au sein d'Oracle, de DB2, etc. Construction de middlewares pull/push fonds sur XQuery Construction de SGBD pur XML (Xylme, etc.)

    50. Techniques dIndexation XML Objectifs Dataguide et Variation Index Fabric Adaptative Path Index Node Numbering scheme Compact Structural Summary Conclusion

    51. GG 51 Requirements XML Queries involve navigating data using regular path expressions.(e.g., XPath) /Livre//Auteur[@specialite="informatique"]) Accessing all elements with same name string. Ancestor-descendant relationship between elements. Content based access on values included in text.

    52. GG 52 Index Types Structural index Accessing all elements of given name Ancestor-descendant and parent-child relationship between elements Content index Accessing elements containing given keywords Supporting most text search functionalities

    53. GG 53 Classical Content Index Classically based on inverted lists For each term, gives the doc.ID + localization Several variations allows different search types Offset, Relative, Proximity Generally stored in a B+-Tree to optimize search for a given word Size is an important issue Memory and Disk (word, localization) Fixed entry (word repeated) (word, Frequency, (localization)*) Variable length entry

    54. GG 54 Problem with XML Support of element addressing Doc.ID should include NodeId (Xpath) + Offset Index size becomes very large XPath are long Support of typed data Integer, float, simple types of XML schema Requires classical indexes for certain elements Query processing Structural joins Text search Exact search Support of updates Incremental updates would be a plus

    55. GG 55 Evaluation Criteria Identifiers Per node or per document Descendant/Ancestor Search By join algo. By graph traversal By OID comparison Keyword Search By element scan By B-tree traversal Update Incremental Index size Entry number Entry size

    56. GG 56 2-Dataguide and Variation Goldman & Widom VLDB97 Dynamic schemas helps in query formulation Concise and accurate structural summaries Every path in the database has one and only one corresponding path in the DataGuide with the same sequence of labels A legal label path: Restaurant/Name Target set for e=Restaurant/Entree is Ts(e) = {6,10,11}. DocId can be added to identifiers

    57. GG 57 Dataguide Principle To achieve conciseness a DataGuide describes every unique label path of a source exactly once. To ensure accuracy a DataGuide encodes no label path that does not appear in the source. And for convenience a DataGuide itself be an object (OEM or XML).

    58. GG 58 Dataguide Evaluation Identifier One per node Descendant/Ancestor Search By graph traversal Keyword Search By element scan Update Insertion is incremental Deletion is complex Index size Entry number : Linear for tree; can be exponential in number of DB nodes Entry size : number of elements for a path

    59. GG 59 T-Index [Milo & Suciu, LNCS 1997] T-index stands for Template-index A path template t has the form T1 x1 T2 x2 Tn xn where each Ti is either a regular path expression or one of the following two place holders P (any Path) and F (any Formula) //restaurant/ x P y /Address/City z F u A query path q is obtained from t by instantiating: P by any path ; F by any formula

    60. GG 60 Principle T-index indexes all sequences of objects connected by a sequence of path expressions defined by a template. Particular cases : 1-index indexes = template any path P Indexes all objects reachable through an arbitrary path expression P from a root: two nodes are equivalent (same entry) if the set of paths into them from the root is the same. 1-index is a non-deterministic version of the strong data guide 2-index indexes = template P x P all pairs of objects connected by an arbitrary path expression P

    61. GG 61 Building a T-index Group objects into equivalence classes containing objects that are indistinguishable w.r.t to a class of paths defined by a path template Finer equivallence classes are more efficient to construct using bi-simulation Construct a non deterministic automaton states represent the equivalence classes transitions correspond to edges between objects in those classes. T-index can be used to answer queries of more general forms than the template

    62. GG 62 3-Adaptative Path Index (APEX) Adaptative Path Index for XML [Chung et.al. SIGMOD 2002] Summarize paths that appear frequently in query workload Maintain all paths of length 1 Efficient for partial match paths Incremental update of index

    63. GG 63 APEX details Each node has an identifier (nid) Required paths for indexing ({label}+some composed paths) APEX = Graph (structural summary) + hash tree (incoming required paths to nodes of Graph) Hash tree is used to find nodes of graph for given label path, also for incremental update Determine frequently used path from query workload using sequential pattern mining

    64. GG 64 APEX Example

    65. GG 65 APEX Evaluation Identifiers One per node Descendant/Ancestor Search Hash tree access if required or graph traversal or join Keyword Search Not supported Update Insertion is incremental Index size (two structures) Entry number : Linear in number of nodes Entry size : number of elements for a path

    66. GG 66 4-Index Fabric [Cooper et al. .A Fast Index for Semistructured Data.. VLDB, 2001] Extension of dataguide for text search Keeps all label paths starting from the root Encode each label path with data value as a string Use efficient index for strings to store it (Patricia trie) Perform queries on keywords for elements as string search Does not keep information on non-terminal nodes

    67. GG 67 Patricia Tri Tri : Key ? Value A Patricia trie is a simple form of compressed trie which merges single child nodes with their parents More efficient for long keys (non-common postfix in one node)

    68. GG 68 Exemple Doc 1:<invoice> <buyer> <name>ABC Corp</name> <address>1 Industrial Way</address> </buyer> <seller> <name>Acme Inc</name> <address>2 Acme Rd.</address> </seller> <item count=3>saw</item> <item count=2>drill</item> </invoice> Doc 2: <invoice> <buyer> <name>Oracle Inc</name> <phone>555-1212</phone> </buyer> <seller> <name>IBM Corp</name> </seller> <item> <count>4</count> <name>nail</name> </item> </invoice>

    69. GG 69 Patricia Trie

    70. GG 70 Search on Paths Example of queries: /invoice/buyer/name/[ABC Corp] /invoice/buyer//[ABC Corp] A key lookup operator search for the path key corresponding to the path expression. If path expands to infinite number of tags start by using a prefix key lookup operator, then navigate through children to check the rest

    71. GG 71 Fabric Evaluation Identifiers One per document Descendant/Ancestor Search As string search; do not keep order of elements Keyword Search By Patricia trie leaves if expanded; value index otherwise Update Insertion is incremental Deletion is complex Index size (index stored with document) Entry number : Linear for tree Entry size : number of elements for a path

    72. GG 72 5-Node Numbering Scheme Used for indexing elements Node Identifier (NID) ? element The NID aims at replacing structural joins by simple function computation: check parent & ancestor relationships is_parent(NID1,NID2), is_ancestor(NID1,NID2) determine parent & children get_parent(NID1), get_children(NID1)

    73. GG 73 Virtual nodes (1) [Lee & Yoo Digital Libraries 99] Document structure mapped on a k-ary tree Node identifier assigned according to the level-order tree traversal parent(i) = (i-2)/k + 1 child(i,j) = k(i-1) + j + 1

    74. GG 74 Virtual nodes (2) NID can be used to address elements in index of elements Only certain nodes (e.g., leaves) have to be indexed as parent nodes can be determined by computation Problems: arity of tree may be variable and large determination of real existence of parent/child update when arity increases ?

    75. GG 75 XML trees node pre/post numbering [Dietz82] Identification of nodes Identifier = preorder rank||postorder rank X ancestor of Y <=> pre(X) < pre(Y) and post(X) > post(Y) Example 1<5 and 7>3 => (1,7) ancestor (5,3)

    76. GG 76 Interval encoding [Li&Moon VLDB 2001] Identify each node by a pair of numbers <order, size> as follows: For a tree node y of parent x: order(x) < order(y) order(y)+size(y) =< order(x) + size(x) For two sibling nodes x and y, if x is the predecessor of y in preorder traversal then order(x) + size(x) < order(y)

    77. GG 77 Relative Region Coordinates (1) [Kha & Yoshikawa IEEE Data Engin. 2001] A RRC of a node n of an XML tree is a pair [sp-sn,sp-en] of addresses in the region of parent, i.e., relative to parent start

    78. GG 78 Relative Region Coordinates (2) Absolute region coordinate (ARC) Relative to root begin (from byte Nth to Mth) Allow to extract the XML data Can be derived from RRCs of parents and self: Begin = ?(parents?self)s (k-1) End = ?(parents)s +e(self)(k-1) Advantages Updates are kept local to a region To access parent-child efficiently A B-tree like structure is maintained ( la Natix).

    79. GG 79 Xyleme Generate a form of dataguide per cluster Generalized DTD Manage a label and value index (full index) Keep document ID and element ID Two forms of element ID: Bit structured scheme: structure position Prefix-postfix scheme: left-deep traversal Stores XML DOM trees in pages NATIX (Mannheim Univ.) technology

    80. GG 80 Xyleme

    81. GG 81 6-Compact Structural Summary [Bremer & Gertz Tech Report 2003] Compact addressing of words in XML doc. Encode XPath as reference to a path in a document guide (path set, DTD or schema)

    82. GG 82 Managing a Compact Index Nave XML Indexing (Word,docId,(XPath)*) Example book/chapter[2]/resume/section[3] article/author/name Difficulties: Index size ! Processing time ! Intersection of lists Problem: How to memorize the location of a word inside an element ? Solution [Bremer & Gertz 02] Encode the XPath as a reference to a path in a document guide (path sequence or schema)

    83. GG 83 XPath Encoding XPath encoded as a path ID (PID) of structure (N,(p1,p2, ...) N being a node identifier in the guide (p1, p2, ...) being indices for repetitive ancestors from root to N

    84. GG 84 PID Ordering and Encoding PID order : IV,(1))<(V,(1,2)) <(V,(1,3)). Pre-order relationship X Parent Y ? PID(X) < PID(Y) Compact PID encoding Path number Integer (short) Repetitive node log2(n) bits Compact PID Encoding : (V, (1, 3)) /db/article[1]/text/sect[3] Les PID sont ordonns. Ainsi le PID reprsent par (4,(1,2)) < (5,(1,2)). En terme de XPath on remarque facilement que les nuds reprsent par 5 sont obligatoirement contenus dans des nuds 4. Cela permet dviter de stocker trop demplacement pour un terme : si un terme est contenu dans un nud 5 alors on sait quil sera contenu dans ses nuds prcdents. Cela permet dacclrer les recherches pour les positions dun terme. De plus cela permet de calculer la frquence dun terme en recherchant toutes les frquences des nuds fils. Le Document Guide est cre en premier puis les PID sont encod. Il faut reprer pour chaque lment le nombre de bit ncessaire pour encoder le numro de path (2 bits pour un lment qui na jamais plus de 3 fils, etc...). Nud du DG : log(n) bits, ou n reprsente le nombre de nuds du DG. BUT : viter la redondance de stockage dun terme. Les PID sont ordonns. Ainsi le PID reprsent par (4,(1,2)) < (5,(1,2)). En terme de XPath on remarque facilement que les nuds reprsent par 5 sont obligatoirement contenus dans des nuds 4. Cela permet dviter de stocker trop demplacement pour un terme : si un terme est contenu dans un nud 5 alors on sait quil sera contenu dans ses nuds prcdents. Cela permet dacclrer les recherches pour les positions dun terme. De plus cela permet de calculer la frquence dun terme en recherchant toutes les frquences des nuds fils. Le Document Guide est cre en premier puis les PID sont encod. Il faut reprer pour chaque lment le nombre de bit ncessaire pour encoder le numro de path (2 bits pour un lment qui na jamais plus de 3 fils, etc...). Nud du DG : log(n) bits, ou n reprsente le nombre de nuds du DG. BUT : viter la redondance de stockage dun terme.

    85. GG 85 Index Implementation Entry Word (stem) || Address Address is : PID || (offset in element)* Example City (V(1,3); (9, 36))

    86. GG 86 XQuery Text Evaluator Normalize the query through thesaurus Translation Synonyms Conceptualization Access to the text index Intersection, union, difference of PIDs Access to the relevant elements from PIDs Verification of relevance

    87. GG 87 7-Conclusion Various indexing techniques for XML Main dimensions of variations Structural summary Dataguide, Schema guide, Generalized DTD Identification of nodes (NID) Should keep parent-child relationship Should be stable to updates Index of keywords Should be compact Should give NID and offset of instances

    88. GG 88 Classification

    89. GG 89 Index for XQuery Text Facilitate the retrieval of: Non stop words Suffixes, prefixes Location of words in elements Relevant nodes for a search Entries should focus on elements Word [(docId, NID)*]

    90. Implmentation XQuery Introduction Algbre XML Gnration des plans

    91. GG 91 1. Introduction Des techniques en volution Beaucoup de recherche sur XML DB Extension des techniques relationnelles Algbre XML Rcriture de requtes en arbre algbrique Transformation et optimisation des arbres Prise en compte des index de structure et contenu

    92. GG 92 Techniques de base

    93. GG 93 2. Algbres pour XML De multiples algbres Jagadish H.V., Lakshmanan L.V.S., Srivastava D., Thompson K. TAX: A Tree Algebra for XML, Proc. DBPL Conf., Roma Italy, 2001. Fernandez M., Simeon J., Wadler P.. An Algebra for XML Query, In Foundations of Software Technology and Theoretical Computer Science, New Delhi, 2000. Zaniolo C. The Representation and Deductive Retrieval of Complex Objects, Proc 11th VLDB, Stockholm, 1985. Galanis L., Viglas E., DeWitt D.J., Naughton J.F., Maier D. Following the Paths of XML: an Algebraic Framework for XML Query Evaluation, 2001 Tuyet-Tram Dang-Ngoc and Georges Gardarin Federating heterogeneous data sources with xml, IKS 2003

    94. GG 94 XAlgbre Propose et implmente pour un mdiateur XMLMedia, XQuark XLive Besoin dune algbre adapte XQuery XTuples, reprsentation de donnes semi-structures XOprateurs, une extension des oprateurs relationnels, manipulant les XTuples. Pourquoi une algbre adapte a XQuery ? Cette algbre permet la cration dun plan dexcution spcifique XQuery. Nous avons tendu lalgbre relationnelle en ladaptant XQuery. Il fallait donc dfinir une reprsentation pour les donnes semi-structures, et tendre les oprateurs du relationnel pour la manipulation dune telle structure de tuples.Pourquoi une algbre adapte a XQuery ? Cette algbre permet la cration dun plan dexcution spcifique XQuery. Nous avons tendu lalgbre relationnelle en ladaptant XQuery. Il fallait donc dfinir une reprsentation pour les donnes semi-structures, et tendre les oprateurs du relationnel pour la manipulation dune telle structure de tuples.

    95. GG 95 XTuples Pourquoi ce besoin de nouvelle reprsentation? Valeurs nulles Attributs multivalus Extensions Ncessit dune reprsentation adapte aux donnes semi-structures. Motivations dune telle reprsentation : 1) La reprsentation classique occupe une place mmoire pour chaque champ, notamment pour les champs NULL, ce qui donne lieu une perte de place. 2) Les attributs multivalus sont difficilement manipulable au sein dune structure spcifique. 3) Les schma sont totalement figs, on ne peut rajouter un champ pour un tuple seul, il faut le rajouter pour tous les tuples (nouvelle perte de place) Ces inconvnients amnent rflchir une nouvelle reprsentation pour les tuples de donnes semi-structure, plus facilement manipulables, respectant notamment la structure arborescente des donnes XML.Motivations dune telle reprsentation : 1) La reprsentation classique occupe une place mmoire pour chaque champ, notamment pour les champs NULL, ce qui donne lieu une perte de place. 2) Les attributs multivalus sont difficilement manipulable au sein dune structure spcifique. 3) Les schma sont totalement figs, on ne peut rajouter un champ pour un tuple seul, il faut le rajouter pour tous les tuples (nouvelle perte de place) Ces inconvnients amnent rflchir une nouvelle reprsentation pour les tuples de donnes semi-structure, plus facilement manipulables, respectant notamment la structure arborescente des donnes XML.

    96. GG 96 XTuples : reprsentation Un XTuple est compos de un ensemble darbre A un ensemble de rfrences R sur les nuds des arbres A. Ces rfrences sont appeles XAttributs. Les oprations relationnelles se font sur R. Les parcours et recomposition se font sur A. Un ensemble de XTuples du mme type forment une XRelation La solution utilise conserve la structure en arbre des donnes XML. Un XTuple est donc compos dune srie darbres et de rfrences sur les noeuds de ces arbres.La solution utilise conserve la structure en arbre des donnes XML. Un XTuple est donc compos dune srie darbres et de rfrences sur les noeuds de ces arbres.

    97. GG 97 Les XOprateurs Oprateurs tendus du relationnel adapt aux donnes semi-structures. Ils oprent sur les XRelations (composes de XTuples)

    98. GG 98 Construction et Projection XSource construction XAttribut construction fort ordre de la source non-bloquant XProjection destruction de colonnes destruction de (sous-) arbres ordre prserv non-bloquant

    99. GG 99 Filtrage XRestriction destruction de lignes compltes ordre prserv non bloquant

    100. GG 100 Union XUnion ordre prserv en mode bloquant, non prserv sinon bloquant ou non suivant paramtrage

    101. GG 101 Jointure XJointure Jointure des tables et juxtaposition d'arbres ordre prserv en mode bloquant, non prserv sinon bloquant ou non suivant paramtrage XFusion Concatnation d'arbres

    102. GG 102 Algbre XML : Imbrication Oprations dimbrication ncessaire pour calculer les lments multi-valus Exemple : for $r in //restaurant Let $m := $r//menu Return ($r/name, $r/region, count($m)) Solution: introduire les oprateurs Nest/Unest $r.Project(/name, /region, //menu) ?$r1 $r1.Nest(/name,/region, //menu*) En plus court et plus puissant: $r.Project((/name), /region, //menus*) Aussi utile pour les quantifiers (quel que soit = every)

    103. GG 103 Algbre XML: Valeurs nulles Nul en XML deux aspects lment vide <region /> Elment absent XQuery recherche les prdicats vrai (non nuls) Elment en condition obligatoire XQuery permet les lments vides en rsultat Correspond une valeur optionnelle Doit tre pris en compte par lalgbre Les restrictions peuvent liminer les nuls Les jointures sont des (left/right) outer join si le rsultat nest pas soumis condition

    104. GG 104 Annotation des attributs Les attributs des XRelations sont associs un XPath $r/nom, $r/region, $r/offer/menus/menu Chaque attribut peut tre annot style DTD A0 = optional, A1 = mandatory A* = nested optional, A+ = nested mandatory Les attributes peuvent tre la base dun groupe dimbrication (A, B) Exemple ($r/nom1),$r/region0, $r/offer/menus/menu*

    105. GG 105 XAlgebra: Vue densemble Datasource.XSource (Path seq, atomic XQuery) ? XRelation Transform a source in an XRelation of attributes Path sequence XRelation.XRestrict (unary Constraint) ?XRelation select Xtuples satisfying conditions on attribute values XRelation.XProject (Path seq) ?XRelation Remove attributes that are not in path sequence XRelation.XJoin (XRelation, binary Constraint) ? XRelation join of two XRelations on attribute values XRelation.XFusion (Path seq) ? XRelation Remove attributes and merge each XTuple trees in one of given schema XRelation.XReconstruct (Path seq) ? XML Extract XML documents of given schema from the XRelation

    106. GG 106 Implmentation des algorithmes XSlection Par accs index Intrt d'indexer tous les mots Intersection et union des adresses selon critres Filtrage final pour vrifier XJointure Par accs aux index Par produit cartsien Par tri-fusion Par hachage Intrt du pipline

    107. GG 107 3. Techniques de Transformation Notion de modle darbre (Tree Pattern) Jagadish VLDB 2002 Principe des modles darbres gnraliss (GTP) Utilisation des GTP pour XQuery Optimisation & performances

    108. GG 108 TPQ (Tree Pattern Query) TPQ = arbre modlisant une requte. Il est destin tre mapp頻 sur larborescence du document XML cible

    109. GG 109 GTP (Generalized Tree Pattern) Le GTP ajoute au TPQ des arcs en pointills symbolisant des relations optionnelles GTP: G = (T,F) T: arbre F:formule Chaque nud de larbre T est labellis par une variable et possde un numro de groupe. F est une formule boolenne exprimant les prdicats applicables aux nuds. Un ensemble de nuds forment un groupe sils sont relis entre eux par des liens non optionnels.

    110. GG 110 GTP - Exemple

    111. GG 111 Pattern Match Un Pattern Match de larbre G dans une collection darbres C est un sous-arbre h partiel h: G ? C tel que: h contient au moins le groupe 0 de G. h prserve la structure relationnel de G. h vrifie la formule boolenne F de G.

    112. GG 112 Pattern match : Exemple

    113. GG 113 GTP Universel Il permet de modliser les requtes contenant le quantificateur EVERY dans la clause WHERE Un GTP universel est un GTP G=(T, F) tel que plusieurs arcs soient tiquets EVERY Un arc peut tre tiquet EVERY seulement sil pointe sur un nud atteignable par des arcs non optionnels depuis le nud racine

    114. GG 114 GTP Universel : Exemple

    115. GG 115 GTP Requte imbrique

    116. GG 116 GTP Requte imbrique (2)

    117. GG 117 Transformation XQuery en GTP XQuery : FLWR Une expression FLWR : ForClause ::= FOR $fv1 IN E1, , $fvn IN En. (LetClause ::= LET $lv1 := E1, , $lvn := En.) WhereClause ::= WHERE (E1, , En). ReturnClause ::= RETURN {E1} {En}. Ei ::= FLWR (Requtes imbriques) | XPATH.

    118. GG 118 Algorithme de transformation Il prend en entre une expression FLWR et renvoie un GTP Il parse au fur et mesure la requte XQuery en utilisant la rcursivit afin de grer les expressions FLWR imbriques dans une clause FOR par exemple Le parsing dune expression Xpath entrane la cration dun nouveau nud dans le GTP rsultat

    119. GG 119 4. Plan dvaluation La principale motivation derrire les GTP est de fournir une base pour une excution efficace. Pour cela: Supprimer les correspondances rptes pour des TPQ similaires. Retarder la matrialisation des nuds autant que possible.

    120. GG 120 Algbre physique Index Scan ISp(S) : Sort chaque nud satisfaisant le prdicat p en utilisant un index pour les arbres S dentre. Filter Fp(S) : Sort seulement les arbres satisfaisant le prdicat p des arbres S. Lordre est prserv. Sort Sb(S) : Trie la squence dentre des arbres S sur la base de tri b. Value Join Jp(S1,S2) : une comparaison des deux squences d'arbres d'entres, par le prdicat de jointure p. L'ordre de la squence de sortie est bas sur l'ordre de squence d'entre gauche de S1.

    121. GG 121 Algbre physique (2) Structural Join SJr(S1, S2): Les squences d'arbres S1 et S2 doivent tre tries en fonction du noeud id. Loprateur joins S1 et S2 bass sur la relation r entre eux (pc ou ad)pour chaque paire. La sortie est trie sur S1 ou S2 si besoin. Group By Gb(S) : l'entre S est trie sur le group by bas sur le prdicat b. Merge M(S1,,Sn) : Les Sj doivent avoir la mme cardinalit k. Pour chaque 1=i=k, joindre l'arbre i avec chaque entre sous une racine artificielle, et produire l'arbre. L'ordre est prserv.

    122. GG 122 Traduire le GTP en plan physique Utilisation d'un algorithme spcifique pour gnrer le plan physique partir du GTP Obtention d'un plan du type :

    123. GG 123 Optimisation grce aux schmas Principe : les informations contenues dans le schma XML (.xsd) vont permettrent doptimiser les GTP et les plans dexcution physique en rsultant

    124. GG 124 limination des nuds internes a//b//c ? a//c

    125. GG 125 Deux nud pour le mme lment XML FOR $b IN //book WHERE $b/title = Germinal RETURN <x> {$b/title} {$b/year} </x>

    126. GG 126 liminer les nuds inutiles FOR $a IN ./a[b] RETURN {$a/c}

    127. GG 127 Eliminer un GROUP BY du plan physique RETURN {$a/sous-element} Une clause FOR ncessite un GROUP BY du rsultat Mais si le schma spcifie que le sous-lment est unique alors ce GROUP BY devient inutile

    128. GG 128 Performances des GTP La mthode dexcution faisant appel aux GTP surpasse en rapidit les mthodes de parcours classique de larborescence pour lexcution de tous les types de requtes Les auteurs ont effectus ces tests dans lenvironement suivant : TIMBER native XML database, PIII 866MHz, Ms Windows 2000, index sur les principaux lments

    129. GG 129 5. Conclusion Les GTP semblent tre actuellement la mthode la plus efficace pour XQuery Mode opratoire en 3 tapes :

More Related