GENIE MULTIMEDIA XML & BDs Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE

Slides:



Advertisements
Présentations similaires
C#3 et le projet Linq Mitsuru FURUTA
Advertisements

Bases de Données XML Natives
Transformation de documents XML
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
L’architecture .net et ASP.net
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
1 Les technologies XML Cours 6 : Quelques langages XML Janvier Version 1.0 -
le langage les éléments
XML et bases de données.
TP 3-4 BD21.
Bases de données orientées-objets
Bases de données orientées-objets
Manipulation d’XML avec XSL
Introduction aux services WEB
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.
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LMD: Langage de Manipulation de Données
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
XML et les Bases de Données
Cours 3: Base de donnée XML
Mitsuru FURUTA Relations techniques développeurs Microsoft France
Contrôles d'accès aux données
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Bases de données et SGBD relationnels
Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013.
Services fournis par le SI et technologies associées
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Xpath XML Path language par Yves Bekkers
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Les concepts et les méthodes des bases de données
GENIE MULTIMEDIA Introduction
Initiation aux bases de données et à la programmation événementielle
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Langages de requêtes XML
BD XML 1. Introduction 2. XML : Modèle de données
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Créer des packages.
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.
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Fonctionnalités et limites d’outils d’indexation et de recherche.
Optimisation de requêtes
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Acquisition d’information sur internet
Module 7 : Utilisation de requêtes élaborées
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Par : Baltagi Bilal Alves Mickael
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.
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Module : Langage XML (21h)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Les vues Une vue: c’est une relation virtuelle. Définie par:
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Dr Mohamed Anis BACH TOBJI
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.
Les bases de données Séance 8 Jointures.
Séance /10/2004 SGBD - Approches & Principes.
Systèmes d'information décisionnels
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Analyse, élaboration et exploitation d’une Base de Données
De Arnault Chazareix :
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

GENIE MULTIMEDIA XML & BDs Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE

(2) Manipulation des documents XML import java.io.*; import java.text.*; import javax.servlet.http.*; public class cvcollection { …………….. Application Parseurs & APIs XML Files Query languages XML DB

(3) «XML, est-il une base de données?»  XML et les technologies qui lui sont associées est une sorte de SGBD  Le stockage (les documents XML),  Des Schémas (DTDs, XML Schemas, RELAX NG, etc.),  Des langages de requêtes (XQuery, XPath, XQL, etc.),  Des interfaces de programmation (SAX, DOM, JDOM)  Mais:  Un stockage efficace,  Les index,  La sécurité,  La gestion des transactions,  L’accès multi-utilisateurs,  Les déclencheurs (triggers),  Les requêtes sur plusieurs documents, etc.

(4) «Comment choisir sa base de données? »  Application e-commerce (XML format de transport)  Données à structure régulière  Données utilisées par des applications non XML  Base de données relationnelle (ou objet) et des techniques de sérialisation  Site Web (documents orientés texte)  Données à structure moins régulière  L’organisation des données est importante (ordre, entités,etc.)  Recherche sur le contenu, structure  Base de données native XML Données ou Documents ?

(5) Document XML centré-données  Documents XML centrés-données :  Utilisés généralement pour le transport et échange de données  Généralement prévus pour une utilisation par machine  Caractérisés par :  Structure régulière,  Données avec une granularité fine,  Absence ou faible nombre d’éléments mixtes,  Ordre des données non significatif.  Exemples :  Ordre d’achats facture,  Plan et horaire de vols,  Données scientifiques.  Peuvent être:  Originaires de la base (Legacy data)  Situés en dehors de la base (exemple: données scientifiques collectées par un système de mesure)

(6) Document XML centré-donnée ABC Industries 123 Main St. Chicago IL Turkey wrench: Stainless steel, one-piece construction, lifetime guarantee Stuffing separator: Aluminum, one-year guarantee

(7) Document XML centré-document  Documents XML centré-documents  Orientés vers une utilisation humaine aussi bien en génération qu’en consultation.  Caractérisés par :  Structure moins régulière,  Granularité plus grande, elle peut même coincider avec les document entier  Eléments mixtes nombreux,  L’ordre des éléments et des données est significatif.  Exemples:  s,  Messages publicitaires  Manuels d’utilisation

(8) Document XML centré-documents The Turkey Wrench from Full Fabrication Labs, Inc. is like a monkey wrench, but not as big. The turkey wrench, which comes in both right- and left- handed versions (skyhook optional), is made of the finest stainless steel. The Readi-grip rubberized handle quickly adapts to your hands, even in the greasiest situations. Adjustment is possible through a variety of custom dials. You can: Order your own turkey wrench Read more about wrenches Download the catalog The turkey wrench costs just $19.99 and, if you order now, comes with a hand-crafted shrimp hammer as a bonus gift.

(9) Où stocker les documents XML ?  Le choix dépend :  Du type des document : data-centric ou document-centric,  De la nature des manipulations à réaliser par la suite,  De la granularité nécessaire XM L Files system XML file Classical DB BLOB Classical DB ? Native XML DB

(10) XML dans des bases de données classiques  Documents centré-documents  La granularité est le document entier  Une application doit recourir au parsing classique par la suite de l’extraction du document XML document BD classique BLOB

(11) XML dans des bases de données classiques  Documents centré-données  La granularité est généralement l’élément ou l’attribut  L’application peut se baser sur l’interrogation pour manipuler les documents XML structuresSchémas de BD Mapping

(12) La correspondance entre schémas de documents et schémas de base de données  La correspondance basé sur des tables/ sur les objets Customers (CustomerID, CompanyName, Phone)

(13) La correspondance entre schémas de documents et schémas de base de données  Base de données avec des interfaces d’édition XML  Le marché propose des frameworks permettant d'assurer la transformation des objets et des données relationnelles en XML. Ces frameworks viennent parfois:  des éditeurs des bases de données (IBM DB2 XML extender, extensions XML de Sybase ASE ou de Microsoft SQL Server…etc)  ou de middlewares transactionnels (Exolab Castor JDO, implémentations JAXB & JAXP, Apache Axis, BEA Weblogic Workshop…etc). Problèmes: «Round-tripping»: perte de l’information, Grand nombre de tables et de colonnes: perte de performance, Grand nombre de jointure: perte de vitesse, Traîtement XSLT et gestion du midleware: généralement coûteux, Maintenance coûteuse (évolution des documents XML), Un document qui obéit à plusieurs schémas?? Un document qui n’obéit pas à un schéma

(14) Base de données natives XML  Terme uniquement « Marketing » proposé par Software AG (Tamino)  Base de donnée native XML :  Doit se baser sur un modèle logique du document,  Le stockage et l’interrogation des documents se base sur ce modèle,  Le modèle doit au moins considérer les éléments, les attributs et l’ordre des éléments.  La mécanique interne de la base de donnée peut être basée sur un modèle relationnel, objet, textuel, etc.

(15) Base de données natives XML  Architecture des bases de données native XML  Base de donnée Native XML basé sur un modèle textuel ­Les documents XML sont stoqués comme texte. ­Des mécanismes d’optimisation appropriés basés sur des modèles interne divers : relationnel, objet, hiérarchique, etc.  Base de donnée native basé sur un modèle documentaire ­Construit un modèle objet du document et le stocke sur la base de ce modèle. ­Comment le modèle est stocké dépend de la base.

(16) Base de données natives XML  Caractéristique d’une BD native XML (1)  Collection de Documents ­Définition de collection de document et lancement d’interrogation sur cette collection.  Langages d’interrogation ­Tous les bases de données native XML implémentent au moins un langage de requête XML ­XPath, XQL, langages propriétaire, … ­Dans un future proche, l’ensemble des BDs native XML vont supporter le langage Xquery.  Gestion des transactions et du vérouillage ­Toutes les BDs native XML supporte la gestion des transactions. ­Généralement le vérouillage se fait sur le document entier. ­Dans le future, le vérouillage sera basé sur les éléments ou les fragments

(17) Base de données natives XML  Caractéristique d’une BD native XML (2)  Application Programming Interfaces : API ­Offre généralement des APIs. ­La majorité sont des APIs propriétaires. ­Possibilité d’interrogation et de réponse via HTTP.  Restitution ­Restitution des documents stockés sans perte d’information. ­Cette fonction est implémentée généralement au niveau des éléments, attributs, éléments textuels et ordre des éléments.  Les Index ­Au niveau de l’élément et l’attribut  Intégration de données distants ­Quelques bases de données natives XML permettent d’intégrer des données distants d’une autres base.

(18) Un exemple: Tamino (Software AG)  Base de donnée XML orienté vers les applications eBusiness  Tamino est une base de données internet permettant de gérer les documents XML de manière native sans passer par des modèle intermédiaires  Caractéristiques: –Format de stockage interne spécifique permettant un accès efficaces aux documents –Stockage et recherche de données via HTTP et TCP/IP –Connexion avec les serveurs Web standards –Intégration de données à partir de BD existantes –Interface avec des outils XML : Schema, Authoring, etc. –Basée sur des standards XML Exemples:

(19) Conclusion  Convergence BD – Documents  XML : une technologie qui commence à être mûre  Des standards existent et les outils suivent

(20) Interrogation des documents XML Lorel HyOQL SGMLQL StruQL W3QL Before XML XMLQL …..XQL Xpath Xquery W3C standard

(21) Xquery : Historique  Requêtes primitives sur SGML (Standard Generalized Markup Language)  1998: propositions XQL et XML-QL  1999: création du XML Query WG (Working Group)  Juin 2001: XQuery 1.0 WD (Working Draft)  Buts du XML Query WG  Modèle de données pour les documents XMLdocuments XML  Des opérateurs de requêtes pour ce modèle de données  Un langage de requêtes basé sur ces opérateurs de requêtes  Compatible avec la syntaxe XML

(22) XQuery: Expressions  Expression de cheminement (XPATH): /a//b[c = 5]  Constructeur d’élément:...  Expressions FLWR: FOR... LET... WHERE... RETURN  Opérateurs et Fonctions: x + y, -z, foo(x, y)  Expressions conditionnelles: IF... THEN... ELSE  Conditions «Some» et «Every»: EVERY var IN expr SATISFIES expr  Variables et constantes : $x, 5  Trie: expr SORTBY (expr ASCENDING,... )  INSERT, REPLACE, DELETE

(23) XQuery: Expressions de cheminement  Trouver les occurrences de figure avec le caption «Tree Frogs» dans le deuxième chapter du document XML «zoo.xml» document("zoo.xml")/chapter[2]//figure[caption = "Tree Frogs"] TCP/IP Illustrated Stevens W. Addison- Wesley document(“bib.xml”) /bib/book/author //author[last=“Stevens” and first=“W.”] /bib/book/author[1 TO 2] //book[ author[last=“Stevens”] BEFORE author[last=“Abiteboul”] ]

(24) XQuery: Expressions FLWR Prend quelques expressions Fait des liens entre eux Y applique des prédicats Et construit un nouveau résultat

(25) XQuery: Expressions FLWR TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in the Unix environment Stevens W. Addison-Wesley 65.95

(26) XQuery: Expressions FLWR  Exemple de requête: for $b IN document(" where $b/publisher/text() = "Addison-Wesley" and = "1994" return $b/title  Réponse obtenue de la requête: TCP/IP Illustrated

(27) XQuery Find all book titles published after 1995: FOR $x IN document("bib.xml") /bib/book WHERE $x/year > 1995 RETURN $x/title FOR $x IN document("bib.xml") /bib/book WHERE $x/year > 1995 RETURN $x/title Result: abc def ghi

(28) XQuery For each author of a book by Morgan Kaufmann, list all books she published: FOR $a IN distinct( document("bib.xml") /bib/book[publisher=“Morgan Kaufmann”]/author) RETURN $a, FOR $t IN /bib/book[author=$a]/title RETURN $t FOR $a IN distinct( document("bib.xml") /bib/book[publisher=“Morgan Kaufmann”]/author) RETURN $a, FOR $t IN /bib/book[author=$a]/title RETURN $t distinct = a function that eliminates duplicates

(29) XQuery Result: Jones abc def Smith ghi

(30) XQuery count = a (aggregate) function that returns the number of elms FOR $p IN distinct(document("bib.xml")//publisher) LET $b := document("bib.xml")/book[publisher = $p] WHERE count($b) > 100 RETURN $p FOR $p IN distinct(document("bib.xml")//publisher) LET $b := document("bib.xml")/book[publisher = $p] WHERE count($b) > 100 RETURN $p

(31) XQuery Find books whose price is larger than average: LET $a=avg( document("bib.xml") FOR $b in document("bib.xml") /bib/book WHERE > $a RETURN $b LET $a=avg( document("bib.xml") FOR $b in document("bib.xml") /bib/book WHERE > $a RETURN $b

(32) XQuery Summary:  FOR-LET-WHERE-RETURN = FLWR FOR/LET Clauses WHERE Clause RETURN Clause List of tuples Instance of Xquery data model

(33) FOR v.s. LET FOR $x IN document("bib.xml") /bib/book RETURN $x FOR $x IN document("bib.xml") /bib/book RETURN $x Returns:... LET $x := document("bib.xml") /bib/book RETURN $x LET $x := document("bib.xml") /bib/book RETURN $x Returns:...

(34) Collections dans XQuery  Ordered and unordered collections  /bib/book/author = an ordered collection  Distinct(/bib/book/author) = an unordered collection  LET $b = /bib/book  $b is a collection  $a = $b/author  a collection (several authors...) RETURN $a/author Returns:...

(35) Collections dans XQuery What about collections in expressions ?   list of n prices  * 0.7  list of n numbers  *  list of n x m numbers ??  * +  * + * !!

(36) Sorting dans XQuery FOR $p IN distinct(document("bib.xml")//publisher) RETURN $p/text(), FOR $b IN document("bib.xml")//book[publisher = $p] RETURN $b/title, SORTBY(price DESCENDING) SORTBY(name) FOR $p IN distinct(document("bib.xml")//publisher) RETURN $p/text(), FOR $b IN document("bib.xml")//book[publisher = $p] RETURN $b/title, SORTBY(price DESCENDING) SORTBY(name)

(37) If-Then-Else FOR $h IN //holding RETURN $h/title, IF = "Journal" THEN $h/editor ELSE $h/author SORTBY (title) FOR $h IN //holding RETURN $h/title, IF = "Journal" THEN $h/editor ELSE $h/author SORTBY (title)

(38) Existential Quantifiers FOR $b IN //book WHERE SOME $p IN $b//para SATISFIES contains($p, "sailing") AND contains($p, "windsurfing") RETURN $b/title FOR $b IN //book WHERE SOME $p IN $b//para SATISFIES contains($p, "sailing") AND contains($p, "windsurfing") RETURN $b/title

(39) Universal Quantifiers FOR $b IN //book WHERE EVERY $p IN $b//para SATISFIES contains($p, "sailing") RETURN $b/title FOR $b IN //book WHERE EVERY $p IN $b//para SATISFIES contains($p, "sailing") RETURN $b/title

(40) Fonctions  “Built-in” fonctions  max(), min(), sum(), count(), avg()  distinct(), empty(), contains()  the normative set has not yet been fixed  “User-defined” fonctions  XQuery syntaxe  recursive  typed FUNCTION depth(ELEMENT $e) RETURNS integer { -- An empty element has depth 1 -- Otherwise, add 1 to max depth of children IF empty($e/*) THEN 1 ELSE max(depth($e/*)) + 1 } depth(document("partlist.xml"))

(41) Group-By dans Xquery ?? FOR $b IN document(" $y IN WHERE $b/publisher="Morgan Kaufmann" RETURN GROUPBY $y WHERE count($b) > 10 IN $y FOR $b IN document(" $y IN WHERE $b/publisher="Morgan Kaufmann" RETURN GROUPBY $y WHERE count($b) > 10 IN $y SELECT year FROM Bib WHERE Bib.publisher="Morgan Kaufmann" GROUPBY year HAVING count(*) > 10 SELECT year FROM Bib WHERE Bib.publisher="Morgan Kaufmann" GROUPBY year HAVING count(*) > 10  with GROUPBY Equivalent SQL 

(42) Group-By dans Xquery ?? FOR $b IN document(" $a IN $b/author, $y IN RETURN GROUPBY $a, $y IN $a, $y, count($b) FOR $Tup IN distinct(FOR $b IN document(" $a IN $b/author, $y IN RETURN $a $y ), $a IN $Tup/a/node(), $y IN $Tup/y/node() LET $b = RETURN $a, $y, count($b)  with GROUPBY Without GROUPBY 

(43) Implémentation de XQuery  La majorité des constructeur commence déjà à proposer des implémentations de Xquery  Intégration dans l’ensemble des BDs avec interface XML  Classique  Native XML  Plusieurs démonstrateurs existent permettant de valider les exemples testes proposés par le W3C