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

BD XML 1. Introduction 2. XML : Modèle de données

Présentations similaires


Présentation au sujet: "BD XML 1. Introduction 2. XML : Modèle de données"— Transcription de la présentation:

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


Télécharger ppt "BD XML 1. Introduction 2. XML : Modèle de données"

Présentations similaires


Annonces Google