Télécharger la présentation
Publié parAthenais Puech Modifié depuis plus de 10 années
1
BD XML 1. Introduction 2. XML : Modèle de données
3. Langages de requêtes 4. Aperçu des produits 5. Conclusion
2
1. Introduction Générations de BD Web et BD
Réseau et hiérarchique Relationnel Objet-Relationnel 90 - … Web et BD un rendez-vous manqué couplage faible par serveur d'applications le Web est une vaste BD distribuée la structuration est faible plutôt orienté documentaire ... Introduction
3
XML s'impose Standard d’échange de données universel
Intégration des données et méta-données Les BD ne peuvent rester indifférentes : nécessité de stocker les documents XML variés nécessité de pouvoir interroger ces documents évolution ou révolution ? Quel modèle de données ? Quel langage d'interrogation ? SGBD étendus ou natifs ? Quelle intégration avec l'existant ? Introduction
4
Limites de SQL Mauvais support de l'imbrication SQL3 trop complexe
GROUP BY limités Généralement dans les éditeurs de rapports SQL3 trop complexe Requêtes imbriquées difficiles Méthodes en qualification coûteuse Identifiants pas très claires Peu adapté à XML Vision tabulaire statique Manipulation par des fonctions (SQL/XML) SQL à 30 ans ! Inventé en 1970 pour la gestion XQuery le successeur ? Introduction
5
2. XML : Modèle de données XQuery Data Model
Modèle des schémas et de XPath Un document est un arbre à nœud étiqueté Chaque nœud possède une identité Sérialisé en texte, souvent représenté graphiquement Une forêt est une collection de documents de même schéma Une source de données est soit un document, soit une forêt XML et BD
6
Exemple de documents <?xml version="1.0"?>
<Restaurants region="Normandie" version="2.0"> <Restaurant type="francais" categorie="***"> <Nom>Le Grand Hôtel</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> <Téléphone> </Téléphone> <Manager>Dupont</Manager> <Manager>Durand</Manager> <Menu Prix="12"> Fruits de Mer </Menu> </Restaurant> </Restaurants> XML et BD
7
Caractéristiques du modèle
Schémas flexibles et irréguliers 0, 1, N occurrences d'éléments Données auto-descriptives Éléments balisés et attributs nommés Modèle de document hiérarchique avec hyperliens Arbres avec possibilités de références M-N Éléments atomiques ou complexes Composition par agrégation Types de données riches Entier, réel, texte, url, date, ... et types composés XML et BD
8
Le modèle des schémas Déclaration des éléments et attributs
Typage similaire à l'objet Spécification de types simples Grande variété de types Génération de types complexes Séquence (Sequence) Choix (Choice) Tas (All) XML et BD
9
Diagramme XML Spy XML et BD
10
Exemple de schéma <xsd:element name="commande" type="CommandeType"/> <xsd:element name="commentaire" type="xsd:string"/> <xsd:complexType name="CommandeType"> <xsd:element name="livraison" type="Adresse"/> <xsd:element name="facturation" type="Adresse"/> <xsd:element ref="commentaire" minOccurs="0"/> <xsd:element name="produit" type="produit"/> <xsd:attribute name="comDate" type="xsd:date"/> </xsd:complexType> <xsd:complexType name="Adresse"> <xsd:element name="nom" type="xsd:string"/> <xsd:element name="rue" type="xsd:string"/> <xsd:element name="ville" type="xsd:string"/> <xsd:element name="region" type="xsd:string"/> <xsd:element name="code" type="xsd:decimal"/> <xsd:attribute name="pays" type="xsd:NMTOKEN" fixed="France"/> XML et BD
11
Le schéma est optionnel !
Possibilité de stocker des documents sans schéma Le SGBD génère un schéma (arbre couvrant sans feuilles) Maintenu lors des mises à jour (compteur d'utilité) Schéma de base pour l'interrogation Facilite la conception Dégager des collections de documents apparentés Le SGBD conçoit pour vous ! XML et BD
12
3. Langage de requêtes MODELE LANGAGE REQUETES Hiérarchique DML DL1
Réseau DML CODASYL Relationnel SQL: SELECT … Objet OQL XML ??? Langages de requêtes
13
Qu'est-ce-que XQuery ? XQuery est le langage de requêtes pour XML défini et standardisé par le W3C Proposé par IBM, AT&T, Microsoft, Data Direct, … XQuery s’impose comme le langage de requêtes: Pour les bases de données XML natives Pour les documents XML textuels (XQuery Text) Pour l’intégration de données (BD virtuelles) Interroger les bases relationnelles en XQuery Pour l’intégration et la publication de données en XML Compétition avec les extensions de SQL (SQL/XML) Langages de requêtes
14
Objectifs (Requirements W3C)
Types XML Schema Puissance de SQL Recherche d'information Structure d'arbres Langage fonctionnel Langages de requêtes
15
XPath = un sous-ensemble
Syntaxe pour la navigation en arbre La navigation est définie par des chemins Utilisé par d'autres standards: XSLT, XLink, ... Les chemins sont composés d'étapes / racine ou séparateur entre étapes * joker pour n'importe quel nom @ désigne un attribut // joker pour n'importe quel sous chemin [ ] permet la spécification d'un filtre (prédicat) sur les nœuds courants (peut contenir des chemins) [n] sélectionne le N-ème élément d'une séquence Langages de requêtes
16
Exemples XPath Noms de tous les restaurants : Expression régulière
collection(“Restaurants”)/Restaurant/Nom/text() collection(“Restaurants”)/Restaurant/Nom Expression régulière Menu de tous les restaurants collection(“Restaurants”)//Menu Accès via prédicat à attribut Nom des menus du restaurant "Le Romantique" collection(“Restaurants”)/Restaurant [Nom/text()="Le Langages de requêtes
17
Expression FLWR Forme de requête élémentaire
for $<var> in <forest> [, $<var> in <forest>]+ //itération let $<var> := <subtree> // assignation where <condition> // élagage return <result> // construction Les forêts sont soit des collections, soit sélectionnées par des XPath source document ou collection Le résultat est une forêt un ou plusieurs arbres Langages de requêtes
18
Selection Lister les noms et téléphones des restaurants de Cabourg
<result> <titre>Liste des restaurants de Cabourg</titre> {for $R in document("Guide")/Restaurant where $R//Ville= "Cabourg" return <Restaurant> <Nom>{$R/Nom}</Nom> <Tel>{$R/Téléphone}</Tel> </Restaurant>} </result> Langages de requêtes
19
Jointure Lister le nom des Restaurants avec téléphone dans la rue de l'Hôtel Lutecia: for $R in collection("Guide")/Restaurant, $H in document(Répertoire)/Hotel where $H//Rue = $R//Rue AND $H//Nom= "Le Lutecia" return <Result> <Nom>{$R/Nom}</Nom> <Tel>{$R/Téléphone}</Tel> </Result> Langages de requêtes
20
Agrégat Combien de restaurants y-a-t-il dans les guides ?
<result> <entete>Nombre total de restaurants</entete> {let $R := collection(“Guide”)/Restaurant return <NombreRestaurant > {count ($R)} </NombreRestaurant>} </result> Langages de requêtes
21
Manipulation de chaînes
Trouver 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 doument("document")//book let $e := $b/*[contains(string(.), "Suciu") and ends-with(local-name(.), "or")] where exists($e) return <book> { $b/title } { $e } </book> Langages de requêtes
22
Fonctionnalités XQuery Text
Recherche sur mot-clés Recherche de phrase Support des mots de liaison Recherche sur préfix, suffix, infix Normalisation des mots, accents, capitales, … Recherche par proximité (unité = mots) Spécification de l'ordre des mots Combinaison logique avec AND, OR , NOT Recherche par similarité Tri des résultats par pertinence Langages de requêtes
23
Bilan XQuery Véritable langage de programmation pour XML Très puissant
Sélection Jointure Imbrication Restructuration Agrégation Tri Recherche plein texte Calculs Contrôles Sur des forêts dont les arbres sont des documents Questions ? Langages de requêtes
24
4. Modèle interne et produits
Systèmes natifs Technique spécialisée de stockage et recherche Indexation des arbres XML Gèrent seulement du XML Langage de requêtes XQuery Extensions objet-relationnel De plus en plus intégré aux grands SGBD Deux techniques: colonne « objet XML » mapping 1 document N tables Langage de requêtes hybride SQL étendu avec fonctionnalités XQuery Modèle interne
25
Concurrence, Fiabilité
4.1 SGBD Natif XML SGBD conçu pour XML, stockant les documents entiers sans les décomposer en éléments, utilisant de techniques d'indexation d'arbres spécifiques. XML XQuery XML Stockage XML Recherche XML Noyau SGBD Concurrence, Fiabilité Forêts d'arbres Index Modèle interne
26
Techniques clés Stockage d’arbres Index de structure (arbres)
Index de contenu (mots clés) Algèbre XML Optimisation XQuery Passage à l’échelle Gestion de versions
27
Principaux produits De multiples produits
Software A.G. Tamino X-Hive/Db Coherity IXIA soft XML Global NeoCore Exist (Open source) Modèle interne
28
Xylème Application : Les archives du Monde Modèle interne
29
4.2 Extensions du relationnel
Composant logiciel intégré à un SGBD (objet-relationnel) assurant: le stockage et l'interrogation de documents XML en transformant le XML en tables et les tables en XML XML SQL/XML XML Stockage XML Recherche XML SQL SGBD Tables de lignes Index Modèle interne
30
SQL/XML Intégration de fonctionnalités XQuery à SQL Support à la SQL3
Type de donnée natif XML Type (colonnes XML) Fonctions d’extraction XPath Fonctions de construction de XML (pont relationnel) Insertion et Maj de XML en colonne(s) Exemple de requête SELECT XMLElement("Emp", XMLForest ( e.hire, e.dept AS "department") )AS "result“ FROM EMPLOYEE e WHERE ExtractValue(e.XMLemp, > 200; Intégré à Oracle et DB2
31
Oracle XML/DB Stockage et publication Interrogation
Mapping de XML plat sur une table Mapping de XML imbriqué en tables imbriquées Stockage de XML en colonne (XML Type) Commandes PutXml et GetXml Interrogation Support de SQL/XML Servlet XSQL document XML avec requêtes SQL/XML transformation du résultat des requêtes en XML Modèle interne
32
Microsoft SQL Server 2005 Stockage de XML Interrogation en XML
Modèle Relationnel Modèle XML Stockage de XML Stockage natif comme "XML data type" Mapping de XML en tables défini par assistants exécuté par procédures stockées Stockage en Large OBject varchar et varbinary Interrogation en XML XQuery et XML DML Proposé pour interroger et mettre à jour les données XML (XML data type) Possibilité de définir des vues XML et de les interroger SELECT … FOR XML Retourne du XML à partir de requêtes et permet de définir le format du XML retourné. OpenXML Manipulation de documents XML comme des tables avec T-SQL et des procédures stockées. Modèle interne
33
XQuare Bridge (Open Source)
Extraction XML via XQuery traduite en SQL Stockage XML en base Mapping via schema Accélérateur XTree (Repository) Portable Oracle, SQLServer, PostGres, … Version industrielle Règles de Mapping Scripts XQuery Extractor Mapper API SAX2 API XML/DBC JDBC SGBDR SGBD BD relationnelle Modèle interne
34
Natif versus XOR DBMS Points forts XOR Points forts Natif
pas de nouveau SGBD possibilité de normaliser les données possibilité de stocker comme valeur d’attribut une certaine portabilité multi-SGBD performance pour accès grain fin Points forts Natif un nouveau SGBD fait pour XML jamais de mapping à définir et maintenir intégrité du document recherche plein texte performance pour accès gros grain Modèle interne
35
5. CONCLUSION XML peut-il changer les bases de données ?
Recherche en BD semi-structurées importante Besoin de schémas permissifs (XML Schéma) Langage de requêtes standardisé (XQuery) Intégration douce à l'objet/relationnel Transformation et stockage en tables Gestion du graphe des documents Support des textes libres XML et les BD s'imposent: Archivage des messages échangés Systèmes répartis (Web Services via requêtes) B2B (protocoles de e-commerce) Conclusion
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.