Cours 3: Base de donnée XML NGUYEN Tuanloc. Contenu XML: DTD et Schémas – Introduction – DTD -...

Post on 03-Apr-2015

114 views 0 download

Transcript of Cours 3: Base de donnée XML NGUYEN Tuanloc. Contenu XML: DTD et Schémas – Introduction – DTD -...

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.)