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

41
Cours 3: Base de donnée XML NGUYEN Tuanloc

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

Page 1: 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.

Cours 3: Base de donnée XML

NGUYEN Tuanloc

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

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 ?

Page 5: 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.

Exemple XML

Joe’s Bar

Bud 2.50 Miller 3.00

PRICE

BAR

BAR

BARS

NAME . . .

BAR

PRICENAME

BEERBEER

NAME

Page 6: 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.

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

Page 7: 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.

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

Page 8: 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.

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

Page 9: 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.

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)

Page 10: 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.

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

Page 11: 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.

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>

Page 12: 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.

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

Page 13: 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.

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

Page 14: 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.

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)

Page 15: 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.

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)

Page 16: 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.

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

Page 17: 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.

Diagramme de type (XML Spy)

Séquence Choix Tas

Page 18: 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.

XML et les Bases de Données

1. Introduction

2. Modèle de données

3. Langage de requêtes

4. Conclusion

Page 19: 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.

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

Page 20: 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.

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 ?

Page 21: 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.

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 ?

Page 22: 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.

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>

Page 23: 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.

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

Page 24: 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.

Diagramme XML Spy

Page 25: 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.

Objectifs BD XML

Types XML SchemaXPath 2

Puissance de SQL

Structured'arbres

Recherche d'information

Langagefonctionnel

Page 26: 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.

Warehouse Diagram

Warehouse

Wrapper Wrapper

Source 1 Source 2

Page 27: 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.

A Mediator

Mediator

Wrapper Wrapper

Source 1 Source 2

User query

Query

Query

QueryQuery

Result

Result

Result

Result

Result

Page 28: 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.
Page 29: 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.
Page 30: 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.

1. Quand appelle-on XML ?

Pull– Explicite– Implicite

Push

Page 31: 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.

2. Comment trouver données dans la base de données ?

Annuaire/Intermédiaire

Appliqué dansl’informatique

Page 32: 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.

2. Comment stocker XML ?

Page 33: 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.

3.

Page 34: 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.
Page 35: 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.

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)

Page 36: 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.

Exemple 1 : XPath

(Q1) Noms de tous les restaurants :

– collection(“Restaurants”)/Restaurant/Nom/text()

– collection(“Restaurants”)/Restaurant/Nom

Page 37: 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.

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

Page 38: 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.

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

Page 39: 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.

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

Page 40: 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.
Page 41: 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.

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