Post on 03-Apr-2015
Cours 3: Base de donnée XML
NGUYEN Tuanloc
Contenu
XML: DTD et Schémas– Introduction– DTD - démo– XML Schéma– Démo XML Spy
XML et les Bases de Données– Introduction– Modèle de données– Langage de requêtes XPATH -démo– Modèles internes
Conclusion
1. Introduction
Un document XML publiable : – Le document XML lui-même – la DTD ou le schéma pour décrire les balises– Une feuille de style pour adapter le format aux
besoins La DTD permet de définir son propre langage basé
sur XML– Vocabulaire– Grammaire
SERVEUR
Classical System
Management data : - Orders,- Customers, - Bills.
Legacy Data
Product Catalog
Geographical Data
Customer Localization
Text Data
IncidentDescriptions
LocalNetwork
Site 2Site 2Site 3Site 3
Site 1Site 1
Site 4Site 4
CLIENT
Site 5
Web Data
Pourquoi XML ?
Exemple XML
Joe’s Bar
Bud 2.50 Miller 3.00
PRICE
BAR
BAR
BARS
NAME . . .
BAR
PRICENAME
BEERBEER
NAME
XML est un méta-langage universel pour les données sur le Web qui permet au développeur de délivrer du contenu depuis les applications à d'autres applications ou aux browsers
XML promet de standardise la manière dont l'information est :– Échangée (XML)– Personnalisée (XSL)– Retrouvée (XQuery)– Sécurisée (Encryption, Signature)– Liée (XLink)
Définition XML
XML
Un standard d'échange– Lisible : texte balisé avec marquage– Clair : séparation du fond et de la forme – Extensible : supporte les évolutions applicatives– Sécurisé : pare-feu, encryption, signature
Développé par le W3C– Pour le Web (Internet, Intranet)– S'étend à l'entreprise et ses partenaires
Supporté par les grands constructeurs– IBM, Microsoft .net, SUN, BEA, etc. – Des outils génériques et ouverts
Forces et faiblesses de XML
Une technologie structurante Clarifie tous les échanges Des standards internes et
externes Transversale à l'entreprise
– Échanges de données– Bureautique– Sites Web– Bases de données– Intégration e-business
Une syntaxe ‘’bavarde’’ Un méta-langage, mais de
nombreux langages Coûteux en CPU
– Parsing Coûteux en mémoire
– Instanciation
Validité des documents
Document bien formé (Well Formed document)– balises correctement imbriquées– Analysable (parsable) et manipulable– pas nécessairement valide par rapport à la DTD
Document valide (Valid document)– bien formé + conforme à la DTD (ou au schéma)
2. DTD
Permet de définir le «vocabulaire» et la structure qui seront utilisés dans le document XML
Grammaire du langage dont les phrases sont des documents XML (instances)
Peut être mise dans un fichier (DTD externe) et être appelée dans le document XML
Déclaration d'élément simple
<! ELEMENT balise (définition) > – Le paramètre définition représente soit un type de donnée
prédéfini, soit un type de données composé, constitué lui même d'éléments
– Types prédéfinis ANY : L'élément peut contenir tout type de donnée EMPTY : L'élément ne contient pas de données spécifiques #PCDATA : L'élément doit contenir une chaîne de caractère
– Exemple <! ELEMENT Nom (#PCDATA)> <Nom>Victor Hugo</Nom>
Exemple de DTD
<!ELEMENT doc (livre* | article+) ><!ELEMENT livre (titre, auteur+) ><!ELEMENT article (titre, auteur*) ><!ELEMENT titre(#PCDATA) ><!ELEMENT auteur(nom, adresse) ><!ATTLIST auteur id ID #REQUIRED ><!ELEMENT nom(prenom?, nomfamille) ><!ELEMENT prenom (#PCDATA) ><!ELEMENT nomfamille (#PCDATA) ><!ELEMENT adresse (ANY) >
3. XML Schéma
Un schéma d'un document définit:– les éléments possibles dans le document– les attributs associés à ces éléments– la structure du document et les types de données
Le schéma est spécifié en XML– pas de nouveau langage– balisage de déclaration– domaine spécifique xsd:
Présente de nombreux avantages– structures de données avec types de données – extensibilité par héritage et ouverture– analysable par un parseur XML standard
Objectifs des schémas
Reprendre les acquis des DTD– Plus riche et complet que les DTD
Permettre de typer les données– Eléments simples et complexes– Attributs simples
Permettre de définir des contraintes– Existence, obligatoire, optionnel– Domaines, cardinalités, références– Patterns, ...
S'intégrer à la galaxie XML– Espace de noms– Infoset (structure d'arbre logique)
Le modèle des schémas
Déclaration des éléments et attributs – Nom– 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)
2. XMLSchema
Un schéma d'un document définit:– les éléments possibles dans le document– les attributs associés à ces éléments– la structure du document et les types de données
Le schéma est spécifié en XML– pas de nouveau langage– balisage de déclaration– domaine xsd: (namespace http://www.w3.org/2001/XMLSchema)
Présente de nombreux avantages– structures de données avec types de données – extensibilité par héritage et ouverture– factorisation des outils et méthodes XML
Diagramme de type (XML Spy)
Séquence Choix Tas
XML et les Bases de Données
1. Introduction
2. Modèle de données
3. Langage de requêtes
4. Conclusion
1. Introduction
Générations de 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 ...
XML s'impose
Intégration des données et méta-données Standard d’échange de données universel Les BD ne peuvent rester indifférentes :
– nécessité de stocker les documents XML– nécessité de pouvoir interroger ces documents– évolution ou révolution ?
Quel modèle de données ? Quel langage d'interrogation ? Quelle intégration avec l'existant ?
Limites de SQL
Mauvais support de l'imbrication– 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– Références pas très claires
Peu adapté à XML– Vision tabulaire– Manipulation par des fonctions (SQL/XML)
SQL à 30 ans !– Inventé en 1970 pour la gestion– XQuery le successeur ?
Exemple de documents
<Guide Version= "2.0">
<Restaurant type="francais" categorie="***">
<Nom>Le Moulin</Nom> <Adresse> <Rue>des
Vignes</Rue>
<Ville>Mougins</Ville> </Adresse>
<Manager>Dupuis</Manager> </Restaurant>
<Restaurant type="francais" categorie ="**">
<Nom>La Licorne</Nom> <Adresse><Rue>Des
Moines</Rue> <Ville>Paris</Ville>
</Adresse><Téléphone>0148253278</Téléphone><Manager>Dupuis</Manager>
</Restaurant> <Bar type = "anglais"> <Nom>Rose and Crown</Nom> </Bar></Guide>
2. Modèle de données
Schémas flexibles et irréguliers– Optionnels, avec ou sans DTD
Données auto-descriptives– Balises et attributs
Modèle de type hypertexte– Support des références
Éléments atomiques ou complexes– Composition par agrégation
Types de données variés et extensibles– Textes, numériques, …, types utilisateur
Diagramme XML Spy
Objectifs BD XML
Types XML SchemaXPath 2
Puissance de SQL
Structured'arbres
Recherche d'information
Langagefonctionnel
Warehouse Diagram
Warehouse
Wrapper Wrapper
Source 1 Source 2
A Mediator
Mediator
Wrapper Wrapper
Source 1 Source 2
User query
Query
Query
QueryQuery
Result
Result
Result
Result
Result
1. Quand appelle-on XML ?
Pull– Explicite– Implicite
Push
2. Comment trouver données dans la base de données ?
Annuaire/Intermédiaire
Appliqué dansl’informatique
2. Comment stocker XML ?
3.
La syntaxe XPATH - démo
Proposé par IBM , MS, AT&T, Data Direct, ... Langage fonctionnel type CAML 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 sélectionnées par des Xpath (document ou collection) Le résultat est une forêt (un ou plusieurs arbres)
Exemple 1 : XPath
(Q1) Noms de tous les restaurants :
– collection(“Restaurants”)/Restaurant/Nom/text()
– collection(“Restaurants”)/Restaurant/Nom
Microsoft
SQL Server 2000– Mapping de XML sur
tables défini par assistants exécuté par procédures
stockées
– Génération de résultats en XML par SELECT … FOR XML
Projet Yukon 2003– SGBD natif ?
SQLSQLServerServer
RowSetRowSet
SQLSQL
XMLXMLFilesFiles
XPathXPathXQueryXQuery
XMLXML
XMLXMLViewView
Microsoft : SQL Server XML
Query ProcessorQuery Processor
Annotated XSD Annotated XSD Mapping SchemasMapping Schemas
XPathXPath
XQueryXQueryQueryQuery
XMLXML
SQL SQL ServerServer
RowsetsRowsets
FOR XML FOR XML
SQLSQLQueriesQueries
FOR FOR XMLXML
QueriesQueries
SQLSQLQueriesQueries
FOR FOR XMLXML
QueriesQueries
FOR XML FOR XML
XMLBulkloadXMLBulkload BCP/SQLBCP/SQLXMLXML
UpdategramsUpdategrams
SQL update/ SQL update/ insert/ insert/ deletedeleteXMLXML
5. Conclusion
XML peut-il changer les bases de données ?– Recherche en BD semi-structurées– Besoin de schémas faibles (XML Schéma)– Langage de requêtes standardisé (XQuery)– L'effet du Web ...
Intégration douce à l'Objet/relationnel– Transformation en tables– Gestion du graphe– Support des textes libres niveau élément
Conclusion
XML fournit un cadre uniforme pour :– échanger des données structurées (DTD, schéma)– échanger des données semi-structurées (graphes)– interroger des documents (XQuery)– intégrer des sources de données hétérogènes (table,
multimédia) Beaucoup de travaux sont en cours
– Gestion efficace au sein d'Oracle, de DB2, etc.– Construction de middlewares pull/push fondés sur XQuery – Construction de SGBD pur XML (Xylème, etc.)