La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML et les Bases de Données 1. Introduction 2. Modèle de données 3. Langage de requêtes 4.a. Modèles internes 4.b. Principaux produits 5. Conclusion.

Présentations similaires


Présentation au sujet: "XML et les Bases de Données 1. Introduction 2. Modèle de données 3. Langage de requêtes 4.a. Modèles internes 4.b. Principaux produits 5. Conclusion."— Transcription de la présentation:

1 XML et les Bases de Données 1. Introduction 2. Modèle de données 3. Langage de requêtes 4.a. Modèles internes 4.b. Principaux produits 5. Conclusion

2 G. Gardarin VI.2 1. Introduction uGénérations de BD l Réseau et hiérarchique l Relationnel l Objet-Relationnel 90 - … uWeb et BD l un rendez-vous manqué l couplage faible par serveur d'applications l le Web est une vaste BD distribuée l la structuration est faible l plutôt orienté documentaire... Introduction

3 G. Gardarin VI.3 XML s'impose uIntégration des données et méta-données uStandard déchange de données universel uLes BD ne peuvent rester indifférentes : l nécessité de stocker les documents XML l nécessité de pouvoir interroger ces documents l évolution ou révolution ? uQuel modèle de données ? uQuel langage d'interrogation ? uQuelle intégration avec l'existant ? Introduction

4 G. Gardarin VI.4 Limites de SQL uMauvais support de l'imbrication l GROUP BY limités l Généralement dans les éditeurs de rapports uSQL3 trop complexe l Requêtes imbriquées difficiles l Méthodes en qualification coûteuse l Références pas très claires uPeu adapté à XML l Vision tabulaire l Manipulation par des fonctions (SQL/XML) uSQL à 30 ans ! l Inventé en 1970 pour la gestion l XQuery le successeur ?

5 G. Gardarin VI.5 Exemple de documents Le Moulin des Vignes Mougins Dupuis La Licorne Des Moines Paris Dupuis Rose and Crown Modèle semi-structuré

6 G. Gardarin VI.6 2. Modèle de données uSchémas flexibles et irréguliers l Optionnels, avec ou sans DTD uDonnées auto-descriptives l Balises et attributs uModèle de type hypertexte l Support des références uÉléments atomiques ou complexes l Composition par agrégation uTypes de données variés et extensibles l Textes, numériques, …, types utilisateur Modèle semi-structuré

7 G. Gardarin VI.7 Le modèle de données uXQuery Data Model uModèle des schémas et de XPath 2 uUn document est un arbre à nœud étiqueté uChaque nœud possède une identité uExprimé en XML, souvent représenté graphiquement uUne forêt est une collection de documents de même schéma uUne source de données est soit un document, soit une forêt

8 G. Gardarin VI.8 Diagramme XML Spy Modèle semi-structuré

9 G. Gardarin VI.9 Et les documents sans schéma ? uXQuery est un langage fortement typé l Toute expression correctement typée est une requête correcte l Exemple: uCependant : l Le schéma est optionnel l La DTD peut le remplacer l Il peut y avoir ni DTD, ni schéma uSolution l Forêt fermée versus forêt ouverte l Construction et gestion dynamique des schémas l Notion de "document guide" ou DTD généralisée

10 G. Gardarin VI.10 Bilan Modèle de données uUn standard riche l schémas standardisés depuis 3 mai 2001 l Représentation graphique ad-hoc l Génération automatique en cas d'absence uFaut-il un autre modèle que les schémas ? l Doit couvrir les schémas l Doit couvrir les DTD l Doit couvrir l'absence de schéma et DTD l Syntaxe plus simple Modèle semi-structuré

11 G. Gardarin VI Langage de requêtes Langages de requêtes MODELELANGAGE REQUETES HiérarchiqueDML DL1 RéseauDML CODASYL RelationnelSQL: SELECT … ObjetOQL XML???

12 G. Gardarin VI.12 Introduction uXQuery est le langage de requêtes pour XML défini et standardisé par le W3C uXQuery simpose comme le langage de requêtes: l Pour les bases de données XML natives l Pour les documents XML textuels (XQuery Text) l Pour lintégration de données (bases de données virtuelles) uLe besoin dinterroger les bases relationnelles en XQuery existe l Pour lintégration et la publication de données l Compétition avec les extensions de SQL (SQL/XML) Langages de requêtes

13 G. Gardarin VI.13 Objectifs Types XML Schema XPath 2 Puissance de SQL Structure d'arbres Recherche d'information Langage fonctionnel Langages de requêtes

14 G. Gardarin VI.14 La base uProposé par IBM, MS, AT&T, Data Direct,... uLangage fonctionnel type CAML uForme de requête élémentaire l FOR $ in [, $ in ]+ //itération l LET $ := // assignation l WHERE // élagage l RETURN // construction uLes forêts sont sélectionnées par des Xpath (document ou collection) uLe résultat est une forêt (un ou plusieurs arbres) Langages de requêtes

15 G. Gardarin VI.15 Exemple 1 : XPath u(Q1) Noms de tous les restaurants : l collection(Restaurants)/Restaurant/Nom/text() l collection(Restaurants)/Restaurant/Nom

16 G. Gardarin VI.16 Exemple 2 et 3 : XPath + uExpression régulière l Menu de tous les restaurants l collection(Restaurants)//Menu uAccès via indice à attribut l Donnez le nom des menus du premier restaurant l

17 G. Gardarin VI.17 Exemple 4 : Sélection uLister le nom des restaurants de Cabourg: l collection(Restaurants)/Restaurant [Adresse/Ville= Cabourg"] /Nom l {for $R in collection("Restaurants")/Restaurant where $R/Adresse/Ville = Cabourg return {$R/Nom}} Langages de requêtes

18 G. Gardarin VI.18 Exemple 5 : Jointure uLister le nom des Restaurants avec téléphone dans la rue de l'Hôtel Lutecia: l for $R in collection("Restaurants")/Restaurant, $H in collection("Hotels")/Hotel where $H//Rue = $R//Rue and $H//Nom = "Le Lutecia" return {$R/Nom} {$R/Téléphone}

19 G. Gardarin VI.19 Exemple 6 : Restructuration d'arbre uConstruire une liste de restaurants par Ville l for $c in distinct(collection(Restaurants)/Restaurant//Ville) return {$c} {for $r in collection(Restaurants)/Restaurant where $r//Ville = $c return {$r}}

20 G. Gardarin VI.20 Exemple 7 : Imbrication en Where uAdresses des hotels dans des villes ayant des restaurants trois étoiles l for $h in collection(Hotels)/Hotel where $h/Adresse/Ville in for $r in collection(Restaurants)/Restaurant where = return {$r/Adresse/Ville/text()} return {$h/Adresse}

21 G. Gardarin VI.21 Exemple 8 : Agrégat simple uCombien de restaurants y-a-t-il en collection ? let $R := collection(Restaurants)/Restaurant return {count ($R)}

22 G. Gardarin VI.22 Exemple 9 : Agrégat partitionné uLister le nom de chaque restaurant avec le prix moyens des menus proposés l for $r in collection(Restaurants)//Restaurant let $a := collection(Restaurants)// [Restaurant = return {$r/Nom} {AVG($a)}

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

24 G. Gardarin VI.24 Exemple 11 : Ordre et désordre uLister les bons restaurants de Paris par ordre alphabétique 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)

25 G. Gardarin VI.25 Exemple 12 : Multi-requêtes uConstruire un document avec en-tête, titre, liste restaurants peu chers, titre, liste restaurants chers List of very expensive restaurants {for $r in collection("Restaurants)//Restaurant where every $p in satisfies return {$r}} List of very inexpensive restaurants {for $r in collection(Restaurants)//Restaurant where some $p in satisfies return {$r}} {date()}

26 G. Gardarin VI.26 Exemple 13 : String uTrouver les livres dans lequel le nom d'un élément se termine par "or" et le même élément contient la chaîne "Suciu" quelque part. Pour chaque tel livre, retourner le titre et l'élément qualifiant. for $b in document("document")//book let $e := $b/*[contains(string(.), "Suciu") and ends-with(local-name(.), "or")] where exists($e) return { $b/title } { $e } Langages de requêtes

27 G. Gardarin VI.27 Fonctionnalités XQuery Text uRecherche sur mot-clés uRecherche de phrase uSupport des mots de laiaison uRecherche sur préfix, suffix, infix uNormalisation des mots, accents, capitales, … uRecherche par proximité (unité = mots) uSpécification de l'ordre des mots uCombinaison logic avec AND, OR, NOT uRecherche par similarité uTri des résultats par pertinence Langages de requêtes

28 G. Gardarin VI.28 Bilan XQuery uVéritable langage de programmation uTrès puissant l Sélection l Jointure l Imbrication l Restructuration l Agrégation l Tri l Plein texte l … uSur des forêts dont les arbres sont des documents uQuestions ? Langages de requêtes

29 G. Gardarin VI Aperçu des produits uSystèmes natifs l Technique spécialisée de stockage et recherche l Extension des techniques documentaires à l'élément uSGBD relationnels étendus l Séparation des éléments et du graphe l Mapping en tables uSGBD objet adapté l Utilisation d'une structuration objet (DOM) l Un produit : Excelon (Object Store) uRacheter par Progress Software

30 G. Gardarin VI SGBD Natif XML uSGBD l conçu pour XML, l stockant les documents en entiers sans les décomposer en éléments, l utilisant de techniques d'indexation d'arbres spécifiques. Forêts d'arbres Stockage XML Recherche XML RequêteXML Index Noyau SGBD Concurrence, Fiabilité

31 G. Gardarin VI.31 Indexation Plein Texte uUtilisation d'un thésaurus au chargement l ensemble de termes reliés l liste des mots importants l synonymes et préférés l spécialisations, traductions l Standards ISO 2788 et ANSI Z39.19 uStemisation (racine) ou lemmisation (préféré) uListes inverses l fichiers de mots significatifs l pour chaque mot, adresse document (élément+offset)

32 G. Gardarin VI.32 Principaux produits uDe multiples start-up l Software A.G. Tamino l X-Hive/Db l Coherity l IXIA soft l XML Global l NeoCorehttp://www.neocore.com/http://www.neocore.com/ l Xylemehttp://www.xyleme.com/http://www.xyleme.com/ uIntégration comme type spécialisé à SGBD OR l DB2 XML Extender uStockage en BLOB, Fonctins d'accès Xpath intégrées à SQL/XML l Oracle 9.i XML DB uSupport XMLType, Interrogation via SQL/XML

33 G. Gardarin VI.33 Xyleme uEfficient XML warehouse uDistributed architecture l Cluster of PCs l Communicating with Corba uDeveloped with Linux and C++ uCurrently support XyQL l Extended OQL with path expressions l Efficient full text search in elements

34 G. Gardarin VI.34 Xyleme Functionnalities

35 G. Gardarin VI.35 Xyleme: Natix Repository uGoal l minimize I/O for direct access and scanning l efficient direct accesses using indexing l good compaction but not at the cost of access uEfficient storage of trees l use fixed length storage pages l variable length records inside a page uTree balancing achieved by a splitting algorithm

36 G. Gardarin VI.36 Xyleme: Physical Architecture Global Query Manager Local Query Manager Loader/Indexer Repository Context XyIndex Local Query Manager Loader/Indexer Repository Context XyIndex xyIndex XyQuery

37 G. Gardarin VI.37 Xyleme: Query Example l Extension of OQL with XPath l Text search queries l Select boss/Name, boss/Phone From comp in BusinessDomain, boss in comp//Manager Where comp/Product contains Xyleme

38 G. Gardarin VI.38 Xyleme Indexing uStandard inverted index l word documents that contain this word uXyleme index l word elements that contain this word (document + element identifier) uMost text retrieval queries done without data access uPossibility of adding query enrichment based on a thesaurus before index search

39 G. Gardarin VI Mapping SGBDR uComposant logiciel au- dessus d'un SGBDR assurant: l le stockage et l'interrogation de documents XML l en transformant le XML en tables l et les tables en XML SQL SGBD Tables de lignes Stockage XML Recherche XML XQueryXML Index

40 G. Gardarin VI.40 Oracle : XSU uStockage et publication l Mapping de XML plat sur une table l Mapping de XML imbriqué en tables imbriquées l Balises spéciales et l Commandes PutXml et GetXml l Passage par iFS et XSL possible uInterrogation l Servlet XSQL udocument XML avec requêtes SQL utransformation naïve du résultat des requêtes

41 G. Gardarin VI.41 Oracle : XML DB uIntègre XSU (mapping) et type natif XMLType uInterrogation via SQL étendu (SQL/XML) avec des fonctions FonctionRôle XMLAggprend en argument une collection de fragments et retourne un document XML agrégé ; XMLConcatreçoit en argument une série dinstances XMLType correspondant aux valeurs dune colonne pour les lignes dune table et retourne les instances concaténées ; XMLElementprend en argument un nom délément, une collection dattributs optionnels, un contenu délément et retourne une instance XMLType ; XMLForestconvertit la suite de ses argument en XML et retourne un fragment XML concaténation des arguments convertis ; XMLColAttValconverti une valeur de colonne en XML ; XMLSequencetransforme une suite de lignes référencées par un curseur en séquence XML ; XMLTransformapplique une feuille de style XSL à une instance XMLType et retourne une instance XMLType ; ExtractValue.reçoit en argument une instance XMLType et une expression XPath et retourne la valeur scalaire des nœuds sélectionnés ExtractXMLreçoit en argument une instance XMLType et une expression XPath et retourne une instance XML représentant les nœuds sélectionnés.

42 G. Gardarin VI.42 Microsoft uSQL Server 2000 l Mapping de XML sur tables udéfini par assistants uexécuté par procédures stockées l Génération de résultats en XML upar SELECT … FOR XML uProjet Yukon 2003 l SGBD natif ? SQLServer RowSet SQL XMLFiles XPathXQuery XML XMLView

43 G. Gardarin VI.43 Microsoft : SQL Server XML Query Processor Annotated XSD Mapping Schemas XPath XQuery Query XML SQL Server SQL Server Rowsets FOR XML SQLQueries Queries SQLQueries Queries XMLBulkload BCP/SQLXML Updategrams SQL update/ insert/ delete XML

44 G. Gardarin VI.44 IBM XPeranto : Architecture uVues XML au- dessus de SGBDR (DB2) uTraducteur et optimiseur de XQuery en SQL uIntégré à DB2 dans une future version Requête sur une vue XML Résultat XML Analyseur de requête (Query parser) Réécriture de requête (optim) (Query Rewrite) Traduction SQL (SQL Translation) Tagging XML Requête SQL Résultat relationnel Système de bases de données relationnelles

45 G. Gardarin VI.45 XQuark : Open Source XMLizer uExtraction XML l via XQuery traduit en SQL uStockage XML en base l Mapping via schema uIndépendant du SGBD l MySQL, Oracle, l SQLServer, Sybase, … Extractor Mapper JDBC BD relationnelle Scripts XQuery Règles de Mapping SGBDR

46 G. Gardarin VI.46 Natif versus Middleware uPoints forts Middleware l pas de nouveau SGBD l possibilité de normaliser les données l portabilité multi-SGBD l performance pour accès grain fin l Centré vers le structuré uPoints forts Natif l un nouveau SGBD l fait pour XML l intégrité du document l pas de mapping à maintenir l performance pour accès gros grain l centré vers le textuel

47 G. Gardarin VI Conclusion uXML peut-il changer les bases de données ? l Recherche en BD semi-structurées l Besoin de schémas faibles (XML Schéma) l Langage de requêtes standardisé (XQuery) l L'effet du Web... uIntégration douce à l'Objet/relationnel l Transformation en tables l Gestion du graphe l Support des textes libres niveau élément

48 G. Gardarin VI.48 Résumé uXML fournit un cadre uniforme pour : l échanger des données structurées (DTD, schéma) l échanger des données semi-structurées (graphes) l interroger des documents (XQuery) l intégrer des sources de données hétérogènes (table, multimédia) uBeaucoup de travaux sont en cours l Gestion efficace au sein d'Oracle, de DB2, etc. l Construction de middlewares pull/push fondés sur XQuery l Construction de SGBD pur XML (Xylème, etc.)


Télécharger ppt "XML et les Bases de Données 1. Introduction 2. Modèle de données 3. Langage de requêtes 4.a. Modèles internes 4.b. Principaux produits 5. Conclusion."

Présentations similaires


Annonces Google