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

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

Présentations similaires


Présentation au sujet: "GENIE MULTIMEDIA XML & BDs Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE"— Transcription de la présentation:

1 GENIE MULTIMEDIA XML & BDs Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE christine.vanoirbeek@epfl.ch

2 (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 (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 (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 (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 (6) Document XML centré-donnée ABC Industries 123 Main St. Chicago IL 60609 981215 Turkey wrench: Stainless steel, one-piece construction, lifetime guarantee. 9.95 10 Stuffing separator: Aluminum, one-year guarantee. 13.27 5

7 (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:  Emails,  Messages publicitaires  Manuels d’utilisation

8 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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: http://www.service-architecture.com/products/xml_databases.htmlhttp://www.service-architecture.com/products/xml_databases.html http://www.rpbourret.com/xml/XMLDatabaseProds.htm

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

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

21 (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 (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 (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 65.95 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 (24) XQuery: Expressions FLWR Prend quelques expressions Fait des liens entre eux Y applique des prédicats Et construit un nouveau résultat

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

26 (26) XQuery: Expressions FLWR  Exemple de requête: for $b IN document("http://www.bn.com/bib.xml")/bib/book where $b/publisher/text() = "Addison-Wesley" and $b/@year = "1994" return $b/title  Réponse obtenue de la requête: TCP/IP Illustrated

27 (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 (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 (29) XQuery Result: Jones abc def Smith ghi

30 (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 (31) XQuery Find books whose price is larger than average: LET $a=avg( document("bib.xml") /bib/book/@price) FOR $b in document("bib.xml") /bib/book WHERE $b/@price > $a RETURN $b LET $a=avg( document("bib.xml") /bib/book/@price) FOR $b in document("bib.xml") /bib/book WHERE $b/@price > $a RETURN $b

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

33 (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 (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 (35) Collections dans XQuery What about collections in expressions ?  $b/@price  list of n prices  $b/@price * 0.7  list of n numbers  $b/@price * $b/@quantity  list of n x m numbers ??  $b/@price * ($b/@quant1 + $b/@quant2)  $b/@price * $b/@quant1 + $b/@price * $b/@quant2 !!

36 (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, $b/@price 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, $b/@price SORTBY(price DESCENDING) SORTBY(name)

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

38 (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 (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 (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 (41) Group-By dans Xquery ?? FOR $b IN document("http://www.bn.com")/bib/book, $y IN $b/@year WHERE $b/publisher="Morgan Kaufmann" RETURN GROUPBY $y WHERE count($b) > 10 IN $y FOR $b IN document("http://www.bn.com")/bib/book, $y IN $b/@year 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 (42) Group-By dans Xquery ?? FOR $b IN document("http://www.bn.com")/bib/book, $a IN $b/author, $y IN $b/@year RETURN GROUPBY $a, $y IN $a, $y, count($b) FOR $Tup IN distinct(FOR $b IN document("http://www.bn.com")/bib, $a IN $b/author, $y IN $b/@year RETURN $a $y ), $a IN $Tup/a/node(), $y IN $Tup/y/node() LET $b = document("http://www.bn.com")/bib/book[author=$a,@year=$y] RETURN $a, $y, count($b)  with GROUPBY Without GROUPBY 

43 (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


Télécharger ppt "GENIE MULTIMEDIA XML & BDs Christine Vanoirbeek EPFL – IC – CGC Bâtiment BC (Station 14) 1015 LAUSANNE"

Présentations similaires


Annonces Google