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

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

Informatique appliquée à la gestion Bases de données www. labri
Bases de Données XML Natives
Transformation de documents XML
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
T ravail E tude R echerche COUREUX Éric DUCK Christian ZENGERLÉ Olivier COUREUX Éric DUCK Christian ZENGERLÉ Olivier EncadrantsEncadrants M. Crescenzo.
Cours Web sémantique Langage SPARQL
Fonctionnalités des SGBD
Le Modèle Logique de Données
Algèbre relationnelle
Intégrer vos données avec.
XML et bases de données.
TP 3-4 BD21.
Optimisation de Requêtes
Gestion de la persistance des objets
Manipulation d’XML avec XSL
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
20 Données semi-structurées et XML
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Développement d’applications web
XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple
XML et les Bases de Données
Cours 3: Base de donnée XML
Contrôles d'accès aux données
L’utilisation des bases de données
Les structures de données arborescentes
Principes de persistance dans les applications orienté objet
Chap 4 Les bases de données et le modèle relationnel
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
SYSTEMES D’INFORMATION
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Xpath XML Path language par Yves Bekkers
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Cours de Base de Données & Langage SQL
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Les concepts et les méthodes des bases de données
Chapitre 3 Syntaxe et sémantique.
Initiation aux bases de données et à la programmation événementielle
Projet de Master première année 2007 / 2008
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Langages de requêtes XML
Limiter et trier des données
Introduction.
PHP & My SQL.
BD Relationnelles versus BD Objets Fariza Tahi
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
Présentation Session RPSI
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Optimisation de requêtes
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
Indexation et Optimisation
XML fortement adopté en tant que format indépendant d’échange de données. Utilisation de XML pour la modélisation de données structurées et non structurées.
Soutenance du mémoire de synthèse
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Module : Langage XML (21h)
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
Séance /10/2004 SGBD - Approches & Principes.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Transcription de la présentation:

BD XML 1. Introduction 2. XML : Modèle de données 3. Langages de requêtes 4. Aperçu des produits 5. Conclusion

1. Introduction Générations de BD Web et BD Réseau et hiérarchique 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 distribuée la structuration est faible plutôt orienté documentaire ... Introduction

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

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

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

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>0231893900 </Téléphone> <Manager>Dupont</Manager> <Manager>Durand</Manager> <Menu Prix="12"> Fruits de Mer </Menu> </Restaurant> </Restaurants> XML et BD

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

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

Diagramme XML Spy XML et BD

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

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

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

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

Objectifs (Requirements W3C) Types XML Schema Puissance de SQL Recherche d'information Structure d'arbres Langage fonctionnel Langages de requêtes

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

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 Romantique"]/Menu/@Nom Langages de requêtes

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

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

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

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

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

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

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

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

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

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

Principaux produits De multiples produits 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/ Exist (Open source) http://exist.sourceforge.net/index.html Modèle interne

Xylème Application : Les archives du Monde Modèle interne

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

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, /emp/@id) > 200; Intégré à Oracle et DB2

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

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

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 www.datadirect.com Règles de Mapping Scripts XQuery Extractor Mapper API SAX2 API XML/DBC JDBC SGBDR SGBD BD relationnelle Modèle interne

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

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