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

27/04/2014© Robert Godin. Tous droits réservés.1 20Données semi- structurées et XML.

Présentations similaires


Présentation au sujet: "27/04/2014© Robert Godin. Tous droits réservés.1 20Données semi- structurées et XML."— Transcription de la présentation:

1 27/04/2014© Robert Godin. Tous droits réservés.1 20Données semi- structurées et XML

2 27/04/2014© Robert Godin. Tous droits réservés.2 Pourquoi XML n HTML – Langage de balisage pour la présentation – Balise définit format n XML (eXtensible Markup Language) – Balisage flexible en fonction de lapplication – Balise peut servir à spécifier structure et sémantique des données n Facilite linterprétation des données (par programme ou humain) – Présentation à part (XSL) – Représentation de données semi-structurées n Conformité optionnelle à un schéma – Facilite le traitement informatique et humain n Format normalisé déchange – couplage faible entre systèmes – SOAP : sérialisation des objets en XML n Schémas – DTD, XML schéma

3 27/04/2014© Robert Godin. Tous droits réservés Introduction à XML

4 27/04/2014© Robert Godin. Tous droits réservés.4 Références

5 27/04/2014© Robert Godin. Tous droits réservés.5 Intégrité dun document XML n Document XML bien formé (well-formed) – entête correcte – un seul élément racine – balises sont correctement imbriquées – éléments non vides doivent avoir une balise de début et de fin (contrairement à HTML) n Document XML valide – respecte sa grammaire

6 27/04/2014© Robert Godin. Tous droits réservés Espace de nom XML (XML namespace)

7 27/04/2014© Robert Godin. Tous droits réservés XML schema n Limites des DTD – Types de base – Intégration faible de la notion despace de noms – Support faible de clé et dintégrité référentielle – Ordre significatif – Le nom dun élément est global – Syntaxe non conforme à XML

8 27/04/2014© Robert Godin. Tous droits réservés.8 Exemple de schéma XML :

9 27/04/2014© Robert Godin. Tous droits réservés.9 Exemple dinstance du schéma :

10 27/04/2014© Robert Godin. Tous droits réservés Langage de requête XPath /CommandesXML/ListeCommandes/Commande[1] /child::CommandesXML/child::ListeCommandes/child::Commande[position()=1]

11 27/04/2014© Robert Godin. Tous droits réservés XPointer

12 27/04/2014© Robert Godin. Tous droits réservés Contraintes de clé

13 27/04/2014© Robert Godin. Tous droits réservés.13 Exemple dinstance valide

14 27/04/2014© Robert Godin. Tous droits réservés Langage de requête XML Query (XQuery) n Contient XPath n Input : ensemble de documents XML n Sources diverses n Peut produire du XML en sortie

15 Expressions XQuery n Expression primaire – litéral, variable, fonction n Séquence – «, » est le constructeur n Expression XPath n Expression FLWOR – FOR, LET, WHERE, ORDER BY, RETURN n Expression conditionnelle, arithmétique, relationnelle, régulière, quantifiée, … 27/04/2014© Robert Godin. Tous droits réservés.15

16 27/04/2014© Robert Godin. Tous droits réservés Traitement dun document XML avec Java API for XML Processing (JAXP) n Interface Document Object Model (DOM) – instance XML -> arbre de Node Java

17 27/04/2014© Robert Godin. Tous droits réservés.17 Java Architecture for XML Binding (JAXB) n n Schéma XML -> classes métier Java – Java binding compiler n Instance XML -> objets métier Java

18 27/04/2014© Robert Godin. Tous droits réservés Système de Gestion de XML n Application centrée donnée – XML = format déchange avec BD n Application centrée document – XML stocké dans SGXML n SGXML natif – Modèle BD = XML n Extension SGBD – Au dessus du modèle relationnel

19 27/04/2014© Robert Godin. Tous droits réservés Oracle et XML : Oracle XML DB n Application centrée données – Mécanismes de transformation SQL XML – XML SQL Utility (XSU) : API Java/JDBC – SQL/XML – Type XMLType avec stockage objet-relationnel n Conversion selon annotations du schéma XML n Application centrée documents (SGXML) – XMLType avec conformité facultative à un schéma XML – Stockage CLOB ou binaire (11g, après parsage) ou hybride n Requêtes sur XMLType – Fonctions SQL pour XPath et XQuery n XML DB repository – Vue des documents sous forme de répertoire hiérarchique n Accès HTTP, FTP, WebDAV n APIs Java/JDBC, PL/SQL,.NET/C#

20 27/04/2014© Robert Godin. Tous droits réservés.20 XML SQL Utility (XSU) : exemple de transformation SQL->XML

21 27/04/2014© Robert Godin. Tous droits réservés.21 Fonctions SQL/XML (SQLX) de génération de XML

22 27/04/2014© Robert Godin. Tous droits réservés.22 Fonctions SGXML Stockage natif CLOB par défaut - requêtes traitées par conversion DOM à la volée

23 27/04/2014© Robert Godin. Tous droits réservés.23 Requête XPath sur XMLType avec extractValue() Instance XMLTypeExpression XPath Fonction qui retourne la valeur de lélément XML sélectionné (conversion en scalaire SQL) SQL> SELECT extractValue(value(C),'/Commande/noCommande') 2 FROM CommandesXML C 3 WHERE extractValue(value(C),'/Commande/noClient') = 10 4 / EXTRACTVALUE(VALUE(C),'/COMMANDE/NOCOMMANDE')

24 Fonction extract() 27/04/2014© Robert Godin. Tous droits réservés.24 SQL> SELECT extract(value(C),'/Commande/noCommande/text()') 2 FROM CommandesXML C 3 WHERE extract(value(C),'/Commande/noClient/text()').getnumberval() = 10 4 / EXTRACT(VALUE(C),'/COMMANDE/NOCOMMANDE/TEXT()')

25 Fonction existsNode() 27/04/2014© Robert Godin. Tous droits réservés.25 SQL> SELECT extract(value(C),'/Commande/noCommande/text()') 2 FROM CommandesXML C 3 WHERE existsNode(value(C),'/Commande[noClient="10"]') = 1 4 / EXTRACT(VALUE(C),'/COMMANDE/NOCOMMANDE/TEXT()') SQL> SELECT extract(value(C),'/Commande/noCommande') 2 FROM CommandesXML C 3 WHERE existsNode(value(C),'/Commande[noClient="10"]') = 1 4 / EXTRACT(VALUE(C),'/COMMANDE/NOCOMMANDE')

26 Fonction SQL/XML : XMLQuery 27/04/2014© Robert Godin. Tous droits réservés.26 SQL> SELECT XMLQuery('(1,2+3,"ABC", blabla )' RETURNING CONTENT) AS Output FROM DUAL 2 / OUTPUT ABC blabla Séquence XQuery

27 Requête FLWOR 27/04/2014© Robert Godin. Tous droits réservés.27 SQL> SELECT XMLQuery( 2 'for $c in /Commande 3 where $c/noClient = "10" 4 return $c/noCommande' 5 PASSING OBJECT_VALUE RETURNING CONTENT) AS Output 6 FROM CommandesXML 7 / OUTPUT Contexte de la requête est la valeur de lobjet XMLType de la table dobjets La variable $c itère sur chacun des éléments spécifiés par le chemin (ici un seul élément Commande)

28 Itération sur les éléments ligneCommande 27/04/2014© Robert Godin. Tous droits réservés.28 SQL> SELECT XMLQuery( 2 'for $l in /Commande/ligneCommande 3 where $l/noArticle > 20 4 return $l/noArticle' 5 PASSING OBJECT_VALUE RETURNING CONTENT) 6 FROM CommandesXML 7 / XMLQUERY('FOR$LIN/COMMANDE/LIGNECOMMANDEWHERE $L/NOARTICLE>20RETURN$L/NOARTICLE'P

29 Construction explicite de XML en output 27/04/2014© Robert Godin. Tous droits réservés.29 SQL> SELECT XMLQuery( 2 'for $l in /Commande/ligneCommande 3 where $l/noArticle > 20 4 return {$l/noArticle/text()} ' 5 PASSING OBJECT_VALUE RETURNING CONTENT) 6 FROM CommandesXML 7 / XMLQUERY('FOR$LIN/COMMANDE/LIGNECOMMANDEWHERE$L /NOARTICLE>20RETURN

30 Où est lerreur ? 27/04/2014© Robert Godin. Tous droits réservés.30 SQL> SELECT XMLQuery( 2 'for $c in /Commande 3 where $c/ligneCommande/noArticle > 20 4 return $c/ligneCommande/noArticle' 5 PASSING OBJECT_VALUE RETURNING CONTENT) 6 FROM CommandesXML 7 / XMLQUERY('FOR$CIN/COMMANDEWHERE$C/LIGNECOMMANDE/NOA RTICLE>20RETURN$C/LIGNECOMMAN

31 27/04/2014© Robert Godin. Tous droits réservés.31 Indexage avec stockage CLOB ou binaire n Plusieurs types dindex supportés n Indexage sur chemin XPath particulier – create unique index IndexNoCommande on CommandesXML (extractValue(object_value,'/Commande/NoCommande')) – la balise doit être unique dans le document n Indexage systématique de tous les chemins – create index IndexCommandesXML on CommandesXML (object_value) indextype is CTXSYS.CTXXPATH – réécriture en HASPATH/INPATH (voir indexage Context au chap.21) – plus coûteux que sur fonction XPath n Indexage plein texte des valeurs textuelles (voir chap. 21) n 11g : XMLIndex remplace CTXXPATH

32 27/04/2014© Robert Godin. Tous droits réservés.32 Support de schéma XML

33 27/04/2014© Robert Godin. Tous droits réservés.33 Stockage objet-relationnel n Annotations XML pour stockage objet- relationnel n Vue XMLType sur stockage objet-relationnel n Attributs xdb:SQLName, xdb:SQLType dans le schéma XML n Réécriture des requêtes XPath par loptimiseur – Exploitation de loptimiseur relationnel

34 BD de documents n Modèle (clé, document) n API de base – Put(clé, document), Get(clé), Update(clé), Delete(clé) n Document semi-structuré – Sans schéma – Attribut : valeur, XML, JSON, … n Requêtes simples sur le contenu n Support dindex n Scalabilité élastique n Transactions limitées n CouchDB, MongoDB, Simple DB, … 27/04/2014© Robert Godin. Tous droits réservés.34


Télécharger ppt "27/04/2014© Robert Godin. Tous droits réservés.1 20Données semi- structurées et XML."

Présentations similaires


Annonces Google