Schémas de données semistructurées. La vision base de données de XML. XML et les bases de données. Bibliographie : Bases de données et XML

Dimension: px
Commencer à balayer dès la page:

Download "Schémas de données semistructurées. La vision base de données de XML. XML et les bases de données. Bibliographie : Bases de données et XML"

Transcription

1 La vision base de données de XML XML et les bases de données Bernd Amann et Philippe Rigaux et CNAM/Paris XI XML permet de représenter des données et des documents (modèle de données semi-structurées ). On veut stocker, gérer et interroger des grands volumes de données XML : Langages d interrogation Schémas de données XML Stockage, optimisation et indexation Données et Web / B. Amann et P. Rigaux p.1/173 Données et Web / B. Amann et P. Rigaux p.5/173 Gestion de Données XML Nous avons deux technologies complémentaires : Bases de Données: interrogation mises-à-jour et transactions Documents XML: publication et échange Bibliographie : Bases de données et XML V. Vianu, A Web Odyssey: from Codd to XML, PODS 2001 S. Abiteboul, P. Buneman, D. Suciu: Data on the Web - from relations to semi-structured data and XML A. Doucet et G. Jomier (eds.), Bases de données et Internet, Hermes. R. Bourret, Ecole d été EDBT 02, Données et Web / B. Amann et P. Rigaux p.2/173 Données et Web / B. Amann et P. Rigaux p.6/173 Données et documents Les données sont structurées, typées, volumineuses, avec une granularité fine. et dans un document, les structures sont plus souples, la notion de type est moins forte, il y beaucoup de texte. Plan Schémas de données XML Grammaires d arbres DTD et XML Schema Langages d interrogation: XQuery Stockage de données XML Données et Web / B. Amann et P. Rigaux p.3/173 Données et Web / B. Amann et P. Rigaux p.7/173 Situations mixtes Dans un serveur Web la séparation données/document n est pas toujours très nette. Un part de description textuelle est de nature «document» Exemple : tout le texte présentant un cinéma, ses activités, etc Une part est contenue dans une base de données Exemple : les films Schémas de données semistructurées (XML) Données et Web / B. Amann et P. Rigaux p.4/173 Données et Web / B. Amann et P. Rigaux p.8/173

2 Les besoins de schémas Dans la gestion de données XML, un schéma est utile pour naviguer et interroger, créer et modifier, l optimisation de requêtes, et le stockage des données. Dans la gestion de documents XML, un schéma est utile pour créer et modifier (éditeurs structurés), l échange (vérification) Grammaires d arbres Une grammaire d arbres (régulière) est un quadruple, où est un ensemble fini de non-terminaux, est un ensemble fini de terminaux, est un sous-ensemble de, est un ensemble fini de règles de production ou, où, et est une expression régulière sur ( est appelé le modèle de contenu de ). Grammaires d arbre/ B. Amann p.9/173 Grammaires d arbre/ B. Amann p.13/173 Exemple: Interrogation et Optimisation DTD : 1 <!ELEMENT Personnes (Etudiant Prof)*> 2 <!ELEMENT Etudiant Nom> 3 <!ELEMENT Prof (Nom, Salaire)> Requête XQuery : for $a in Personnes/* return $a/salaire Version optimisée : for $a in Personnes/Prof return $a/salaire Grammaire d arbre: Exemple 1 Grammaire d arbres : 1 N = {Doc, Section, Titre, Para, Pcdata} 2 T = {doc, section, titre, para, pcdata} 3 S = {Doc} 4 Doc -> doc (Titre, Section+) 5 Titre -> titre (Pcdata) 6 Section -> section (Titre, Para*) 7 Para -> para (Pcdata) 8 Pcdata -> pcdata Normalisation : Il n existe pas deux règles et. Grammaires d arbre/ B. Amann p.10/173 Grammaires d arbre/ B. Amann p.14/173 Exemple: Stockage d un document XML dans une Base de Grammaire Données d arbre: Exemple 2 DTD : 1 <!ELEMENT Cours (Titre, NomProf, (Etudiant)* > 2 <!ELEMENT Etudiant NomEt > 3 <!ELEMENT Prof (NomProf, Salaire) > Schéma relationnel : Cours(titre, nomprof) Etudiant(nomEt, titre) Prof(nomProf, salaire) Grammaire d arbres : 1 N = {Doc, Para1, Para2, Pcdata} 2 T = {doc, para, pcdata} 3 S = {Doc} 4 Doc -> doc (Para1, Para2*) 5 Para1 -> para (Pcdata) 6 Para2 -> para (Pcdata) 7 Pcdata -> pcdata Grammaires d arbre/ B. Amann p.11/173 Grammaires d arbre/ B. Amann p.15/173 Interpretation Grammaires d arbre Une interpretation d un arbre vers une grammaire d arbres est une mapping de chaque noeud, noté, dans vers un non-terminal tel que : est un symbole dans, et pour chaque noeud et ses enfants, il existe une règle de production telle que (1), (2) le terminal (étiquette) de est, et (3) est dans. Grammaires d arbre/ B. Amann p.12/173 Grammaires d arbre/ B. Amann p.16/173

3 Géneration d arbres et langages Un arbre est généré par une grammaire d arbres s il existe une interprétation de dans. Un langage d arbres régulier est l ensemble des arbres générés par une grammaire d arbres régulièrs. Grammaires avec concurrence restreinte Une grammaire avec concurrence restreinte est une grammaire régulière telle que pour chaque règle de production, le modèle de contenu restreint la concurrence entre ses non-terminaux et les non-terminaux dans ne sont pas concurrents. La grammaire précédente est une grammaire avec concurrence restreinte. Grammaires d arbre/ B. Amann p.17/173 Grammaires d arbre/ B. Amann p.21/173 Grammaires locales Deux non-terminaux et différents sont concurrents entre eux s il existe deux règles de production et. Une grammaire locale est une grammaire régulière sans non-terminaux concurrents. La grammaire précédente n est pas une grammaire locale. Expressivité Dans une grammaire locale, tous les éléments d un type sont associés à la même règle de production à types uniques, tous les fils de type d un élément sont associés à la même règle de production avec concurrence restreinte, il est possible d identifier pour chaque élément une seule règle de production à partir de son parent et de ses frères de gauche. locale type unique concurrence restreinte Grammaires d arbre/ B. Amann p.18/173 Grammaires d arbre/ B. Amann p.22/173 Grammaires à types uniques Une grammaire à types uniques est une grammaire régulière telle que pour chaque règle de production, les non-terminaux dans son modèle de contenu ne sont pas concurrents et les symboles dans ne sont pas concurrents. Clôture les grammaires d arbres régulières sont fermés sous l union, l intersection et la différence. les grammaires locales, à types uniques et avec concurrence restreinte sont uniquement fermées sous l intersection. La grammaire précédente n est pas une grammaire à types uniques. Grammaires d arbre/ B. Amann p.19/173 Grammaires d arbre/ B. Amann p.23/173 Non-terminaux concurrents Un modèle de contenu restreint la concurrence entre deux non-terminaux et concurrents s il n existe pas de séquences de non-terminaux,, et telles que génère et. Exemple : Le modèle de contenu de Doc -> doc (Para1* Para2*) ne restreint pas la concurrence entre Para1 et Para2. Parsing et Validation On distingue entre deux modèles de parsing (validation) : modèle d arbre : le parseur crée un arbre dans la mémoire (DOM). modèle par évènements : le parseur crée des évènements qui correspondent à des entrées et sorties des noeuds dans un parcours de l arbre de gauche à droite en profondeur (SAX). Ce parcours correspond à une lecture sequentielle d un fichier XML sans mémoire. Grammaires d arbre/ B. Amann p.20/173 Grammaires d arbre/ B. Amann p.24/173

4 Validation Les grammaires d arbres régulières permettent la validation par évènement. Exemple : Grammaires à types uniques 1. entrée d un noeud de type on cherche une règle : (a) noeud = racine : il existe au maximum une règle de production (b) noeud <> racine : soit la règle de production du parent de ; on cherche la règle tel que apparaît dans 2. sortie d un noeud : on compare la séquence des étiquettes des enfants de avec. Grammaires d arbre/ B. Amann p.25/173 XML: Syntaxe pour Transfert de Données Problème: DTD sont trop pauvres pour représenter des modèles de données plus riches : la relation élément/sous-élément n a pas de sémantique précise (part-of, instance-of, subclass-of,...) un ensemble limité de types atomiques une DTD n est pas un document XML Grammaires d arbre/ B. Amann p.29/173 Langage de typage XML DTD: grammaire locale XML Schéma: grammaire à types uniques DSD, XDuce, Relax Core, Trex: grammaire régulière sans restriction XML Schéma versus DTD Un schéma XML est lui même un document XML. Les types des éléménts (OfficielType) peuvent être déclarés indépendamment des éléments (officiel) : plusieurs éléments peuvent partager le même type. types complexes, abstraits et anonymes sous-typage par extension et restriction contraintes d intégrité (clés, clés étrangères) Grammaires d arbre/ B. Amann p.26/173 Grammaires d arbre/ B. Amann p.30/173 DTD comme grammaire d arbre : Exemple DTD: officiel.dtd <!ELEMENT officiel (#PCDATA cinéma film)*> <!ELEMENT cinéma (nom, adresse, (séance)*)> Grammaire d arbres : Officiel -> officiel OfficielType OfficielType -> (Cinema Film Pcdata)* Cinema -> cinema CinemaType Film -> film CinemaType Constructeurs de type Le type (complexe) CinemaType est une séquence d éléments (constructeur de type séquence): nom de type string adresse de type AdresseType séances de type SéanceType Grammaires d arbre/ B. Amann p.27/173 Grammaires d arbre/ B. Amann p.31/173 Exemple de type XML Schema Type XML Schema : <xsd:complextype name= CinemaType > <xsd:sequence> <xsd:element name= nom type= xsd:string /> <xsd:element name= adresse type= AdresseType /> <xsd:element name= séance type= SéanceType minoccurs= 0 maxoccurs= unbounded /> </xsd:sequence> </xsd:complextype> Expression d arbre : CinemaType -> Nom Adresse (Séance)* Nom -> nom String Adresse -> adresse AdresseType Séance -> séance SéanceType Grammaires d arbre/ B. Amann p.28/173 Grammaires d arbre/ B. Amann p.32/173

5 Types Simples DTD: un seul type simple (#PCDATA) et 10 types d attributs Schéma XML: 43 types simples xsd:string, xsd:byte,... xsd:integer, xsd:long, xsd:float, xsd:double,... xsd:boolean xsd:time, xsd:timeduration, xsd:date, xsd:year, xsd:month,... xsd:language, xsd:urireference xsd:id, xsd:idref, xsd:nmtoken,... Listes de Valeurs de Type Simple Grammaire : listenumtél -> (numtél)* Schéma : <xsd:simpletype name= listenumtél > <xsd:list itemtype= numtél /> </xsd:simpletype> Grammaires d arbre/ B. Amann p.33/173 Grammaires d arbre/ B. Amann p.37/173 Restriction de Types Simples L année d un film est un entier entre 1900 et DTD: #PCDATA XML schéma : Restriction de type <xsd:simpletype name= annéefilm > <xsd:restriction base= xsd:integer > <xsd:mininclusive value= 1900 /> <xsd:maxinclusive value= 2002 /> </xsd:restriction> </xsd:simpletype> Liste avec 5 numéros de téléphone Grammaire : cinqnumtél -> (numtél, numtél, numtél, numtél, numtél) Schéma : <xsd:simpletype name= cinqnumtél > <xsd:restriction base= listnumtél > <xsd:length value= 5 /> </xsd:restriction> </xsd:simpletype> Grammaires d arbre/ B. Amann p.34/173 Grammaires d arbre/ B. Amann p.38/173 Restrictions de Types Simples On peut restreindre les types simples par leur longueur (length, minlength, maxlength) (chaînes de caractères ou listes) par des motifs (chaînes de caractères), par énumération, par des intervalles (maxinclusive, maxexclusive, mininclusive, minexclusive) et autres (precision, scale, encoding, period, duration). Union de Types Simples Grammaire : euronumtél -> franctél gertél beltél... Schéma : <xsd:simpletype name= euronumtél > <xsd:union membertypes= franctél gertél beltél... /> </xsd:simpletype> Grammaires d arbre/ B. Amann p.35/173 Grammaires d arbre/ B. Amann p.39/173 Restriction de Types Simples par Motifs Numéro de téléphone: +33-(0) DTD: #PCDATA Schéma XML: Similaire aux expressions régulières de Perl <xsd:simpletype name= numtél > <xsd:restriction base= xsd:string > <xsd:pattern value= +33-(0)-\d(-\d{2}){3} /> </xsd:restriction> </xsd:simpletype> Eléments Déclaration d éléments: <xsd:element name type contraintes [value]/> ou <xsd:element ref contraintes/> Contraintes: minoccurs, maxoccurs, fixed Exemple: <xsd:element name= nom type= xsd:string minoccurs= 0 maxoccurs= 2 /> Grammaires d arbre/ B. Amann p.36/173 Grammaires d arbre/ B. Amann p.40/173

6 Attributs Déclaration d attributs: <xsd:attribute name use [value]/> Use : required, optional, fixed, prohibited Exemple: <xsd:attribute name= langue type= xsd:language optional= true /> Groupes: Exemple DTD: ((B C)*,D)+ XML schéma: <xsd:complextype> <xsd:group minoccurs= 1 maxoccurs= unbounded > <xsd:sequence> <xsd:group minoccurs= 0 maxoccurs= unbounded > <xsd:choice> <xsd:element name= B xsd:type= xsd:string /> <xsd:element name= C xsd:type= xsd:string /> </xsd:choice> </xsd:sequence> </xsd:group> <xsd:complextype> Grammaires d arbre/ B. Amann p.41/173 Grammaires d arbre/ B. Amann p.45/173 Types Complexes Trois constructeurs de type: xsd:sequence: séquence ordonnée d éléménts xsd:all: séquence non-ordonnée d éléménts xsd:choice: choix d éléménts (DTD: ) xsd:group: regroupement (DTD: (...) ). Groupes d Attributs L adresse d un cinéma ou d une personne est composée des mêmes attributs (partage) : <xsd:element name= cinema > <xsd:attributegroup ref= Adresse /> </xsd:element> <xsd:element name= personne > <xsd:attributegroup ref= Adresse /> </xsd:element> <xsd:attributegroup name= Adresse > <xsd:attribute name= ville type= xsd:string /> <xsd:attribute name= rue type= xsd:string /> <xsd:attribute name= numéro type= xsd:decimal /> </xsd:attribute> Grammaires d arbre/ B. Amann p.42/173 Grammaires d arbre/ B. Amann p.46/173 Type Complexe: Exemple Modèle de contenu DTD: (titre, année) XML Schéma: <xsd:complextype name= FilmType > <xsd:sequence> <xsd:element name= titre type= xsd:string /> <xsd:element name= année type= xsd:year /> </xsd:sequence> </xsd:complextype> Grammaire : FilmType -> Titre Année Titre -> titre String Année -> année xsd:year Valeurs Nulles On distingue entre les éléments vides et les éléments avec un contenu inconnu : Schéma XML: <xsd:element name= heurefilm type= xsd:time nullable= true /> Élément XML: <heurefilm xsi:null= true /> xsi:null est défini dans l espace de noms pour des instances ( XMLSchema-instance). Grammaires d arbre/ B. Amann p.43/173 Grammaires d arbre/ B. Amann p.47/173 Contenu Mélangé (mixed) DTD: (#PCDATA cinéma film)* Schéma XML : <xsd:complextype name= OfficielType mixed= true > <xsd:choice minoccurs= 0 maxoccurs= unbounded > <xsd:element name= cinema type= CinemaType /> <xsd:element name= film type= FilmType /> </xsd:choice> </xsd:complextype> Extension de Types Complexes Cinémas avec un site Web et un pays (fichier webcountry.xsd): <complextype name= cybercinematype > <complexcontent> <extension base= officiel:cinematype > <sequence> <element name= url type= xsd:string /> </sequence> </extension> </complexcontent> </complextype> Grammaire d abres : CybercinemaType -> Nom Adresse (Seance)* Url, Nom -> nom String, Url -> url String,... Grammaires d arbre/ B. Amann p.44/173 Grammaires d arbre/ B. Amann p.48/173

7 Extension de Types Complexes Chaque occurrence de CinemaType dans le modèle de contenu d une règle est remplacée par (CinemaType CybercinemaType) Le remplacement automatique peut être empeché par les attributs block et final. Ces deux attributs peuvent prendre comme valeurs #all ou une liste contenant les valeurs restriction, extension et/ou substitution : <xsd:complextype name= CinemaType block= restriction >... </xsd:complextype> Groupes de substitution Substitution d éléments par d autres éléments: XML schéma: <element name= movietheatre type= cinematype substitutiongroup= cinéma /> L élément movietheatre peut être utilisé à la place de cinéma. Grammaires d arbre/ B. Amann p.49/173 Grammaires d arbre/ B. Amann p.53/173 Utilisation de Types Étendus On indique explicitement la règle de production pour le type : <cinema xsi:type= CybercinemaType > <nom>st André des Arts</nom> <officiel:adresse> <ville> Paris </ville> <rue> rue St. André des Arts </rue> <numéro> 13 </numéro> </officiel:adresse> <url> </cinema> Valeur unique L attribut film_id d un film doit être unique: <unique name= toto > <selector>film</selector> <field>@film_id</field> </unique> Les valeurs des element <selector> et <field> sont des expressions XPath. La valeur de <field> doit être unique à l intérieur de chaque élément sélectionné par le sélecteur. Grammaires d arbre/ B. Amann p.50/173 Grammaires d arbre/ B. Amann p.54/173 Utilisation de Types Étendus Par défaut, les éléments cinema sont de type cinematype. Le type d un élément est indiqué explicitement avec l attribut xsi:type. XML Schéma permet de définir des grammaires sans concurrence restreinte l attribut xsi:type indique la règle de production à choisir Clés et Références Une clé est unique (filmcli = clé): <key name= filmclé > <selector>film</selector> <field>@film_id</field> </key> Référence (filmref = clé etrangère): <keyref name= filmref refer= filmclé > <selector>séance</selector> <field>@ref_film</field> </keyref> Grammaires d arbre/ B. Amann p.51/173 Grammaires d arbre/ B. Amann p.55/173 Restriction de Types Complexes On définit un type spécifique pour les cinémas avec une à trois séances (fichier seance.xsd): <complextype name= séanceobligtype > <complexcontent> <restriction base= cinematype > <complextype content= elementonly > <sequence minoccurs= 1 maxoccurs= 3 > <element ref= seance /> </sequence> <element name= nom type= string /> <element ref= adresse /> </complextype> </complexcontent> </complextype> Bibliographie: Typage XML M. Makoto, Taxonomy of XML Schema Languages using Formal Language Theory J. Siméon et P. Wadler, The Essence of XML Site W3C: Grammaires d arbre/ B. Amann p.52/173 Grammaires d arbre/ B. Amann p.56/173

8 Exemple Base 1 Base 1 : : :, Exemple : Deux Bases de données Inférence de type Base 1: Base 2: &1 &2 &4 &5 "Toto" "Lulu" &3 &6 123 &a &b &c "Toto" &d "Lulu" Grammaires d arbre/ B. Amann p.57/173 Grammaires d arbre/ B. Amann p.61/173 Exemple: Inférence de type avec Datalog Etant donné un graphe de données et un graphe de schéma (type) on peut se poser deux questions : Est-ce que est conforme à? (validation) Quel noeud dans appartient à quelle classe dans? (classification) Point-fixe maximal Le résultat des règles précédentes est vide dans les deux cas si on applique la sémantique du point fixe minimal (Nom, Sal, Personne, Employe et Root sont vides au départ) Point fixe maximal: : chaque prédicat intensionel (type) contient tous les faits (objets) de la base ; contient tous les faits qui peuvent être dérivé de Grammaires d arbre/ B. Amann p.58/173 Grammaires d arbre/ B. Amann p.62/173 Exemple: Classification avec Datalog Règles : Si est le fils d un élément de type Personne et de type string, alors est de type Nom; Si est le fils d un élément de type Employé et de type integer, alors est de type Sal; Si a des fils de type Nom, alors élément de type Personne; est un Si a des fils de type Nom et de type Salaire alors est un élément de type Employé. : = (point fixe),,,,,,,...,, Grammaires d arbre/ B. Amann p.59/173 Grammaires d arbre/ B. Amann p.63/173 Exemple: Règles Datalog Exemple Base 2 Schéma ; Nom(x) :- Personne(y), parent(x,y), string(x); Sal(x) :- Personne(y), parent(x,y), integer(x); Personne(x) :- Nom(y), parent(y,x); Employe(x) :- Nom(y), parent(y,x), Sal(z), parent(y,z); Root(x):- Personne(y), parent(y,x); Root(x):- Employe(y), parent(y,x); Base 2 : :,, :,,, :,,, :,,, : = (point fixe) le noeud n a pas pu être typé,,...,, Grammaires d arbre/ B. Amann p.60/173 Grammaires d arbre/ B. Amann p.64/173

9 Simulation Schémas et données sont des graphes avec des arcs étiquettés : Une relation est une simulation de dans ( ) si pour chaque arc dans et chaque pair, il existe un arc dans, tel que et. Comparaison de schémas On veut vérifier si toutes les bases de données qui sont conforme à un schéma, sont aussi conforme à un schéma? ( subsume/inclue ) : Si et, alors où. S il existe une simulation de vers, et est conforme à, alors est conforme à. Grammaires d arbre/ B. Amann p.65/173 Grammaires d arbre/ B. Amann p.69/173 Simulation: Données data &p1 person employee &r1 company &c1 employee person &p2 works_for name position name address name position Bibliographie S. Abiteboul, P. Buneman, D. Suciu, Data on the Web S. Nestorov, S. Abiteboul, R. Motwani, Inferring Structure in Semistructured Data &s0 &s1 &s2 &s3 &s4 &s5 Grammaires d arbre/ B. Amann p.66/173 Grammaires d arbre/ B. Amann p.70/173 Simulation: Schéma et Simulation schema Root person company employee Person works_for Company addr position name name String String String &r1 Root Simulation &p1 Person &c1 Company &p2 Person &s0 String &s1 String &s2 String &s3 String &s4 String &s5 String Interroger XML: XQuery 1.0 Grammaires d arbre/ B. Amann p.67/173 XQuery/ B. Amann p.71/173 Simulation: Exemple Interrogation de documents XML Il peut y avoir plusieurs simulation de dans Si et, alors : il existe toujours une simulation maximale de vers Un objet appartient à un concept, si où est la simulation maximale de dans Remarque : le calcul de la simulation maximale est similaire au calcul du point fixe maximal du programme Datalog. :. Comment interroger des documents XML? Solutions : SQL : il faut stocker XML dans une BD relationnel expressions XPath : extraction de fragments règles XSLT : extraction + transformation (règles) XQuery : vrai langage de requêtes pour XML Grammaires d arbre/ B. Amann p.68/173 XQuery/ B. Amann p.72/173

10 La place de XQuery dans le monde XML Exemples de valeurs Modèles et Langages: XQuery XML Schema XPath (Don Chamberlin) Groupes de travail: XQuery XSLT XML Schema XPath toto <a/> (1, 2, 3) (47, <a/>, toto ) un document XML () : liste vide ERROR : valeur d erreur XQuery/ B. Amann p.73/173 XQuery/ B. Amann p.77/173 Modèle abstrait d un traitement XML Valeurs Document XML Schéma XML XML PSV Parseur XML Validateur Infoset Infoset Remplacement entités Insertion de valeurs par défaut Document bien formé Document valide PSV: Post schema validated Infoset (avec annotations de types) XQuery Modèle de données Résultat XQuery ne fait pas la distinction entre un item et une séquence de longueur 1 Il n existe pas de séquence imbriqués Il n existe pas de valeur nulle Une séquence peut être vide Une séquence peut contenir des valeurs hétérogènes Toutes les séquences sont triées XQuery/ B. Amann p.74/173 XQuery/ B. Amann p.78/173 Modèle de données de XQuery Noeuds On a besoin d un modèle de données pour définir le sens (la sémantique) des expressions XQuery: Requête qex: document("bib.xml")/bib//book[1]/(editor union author) Modèle de données : Une valeur est une séquence ordonnée de zéro ou plus d items. Un item est un noeud ou une valeur atomique. Chaque noeud a une identité Les éléments et les attributs sont annotés par un type (XMLSchema) Chaque noeud a une valeur typée: une séquence de valeurs atomiques (ou ERROR) de type inconnu ( anysimpletype ) Les noeuds sont triés dans l ordre du document XQuery/ B. Amann p.75/173 XQuery/ B. Amann p.79/173 Noeuds et Valeurs Atomiques XQuery est un langage fortement typé : types de noeuds XML: document élément, attribut text commentaire, instruction de traitement, espace de nom types atomiques XML Schéma: xsd:string, xsd:int,... Exemples de valeurs Chaque valeur a un type : 47 xsd:int (1, 2, 3) (47, toto ) <a/> <a>toto</a> () ERROR () xsd:int, xsd:int, xsd:int element a {()} xsd:int, xsd:string element a {text} XQuery/ B. Amann p.76/173 XQuery/ B. Amann p.80/173

11 XQuery: Langage Fonctionnel XQuery est un langage fonctionnel : une requête XQuery est une composition d expressions il existe 21 sortes d expressions chaque expression a une valeur les expressions n ont pas d effets de bord les expressions peuvent être composées librement la valeur ERROR est propagée (exception) XQuery/ B. Amann p.81/173 Document Exemple: bib.xml <bib> <book title="comprendre XSLT"> <author><la>amann</la><fi>b.</fi></author> <author><la>rigaux</la><fi>p.</fi></author> <publisher>o Reilly</publisher> <price>28.95</price> </book> <book year="2001" title="spatial Databases"> <author><la>rigaux</la><fi>p.</fi></author> <author><la>scholl</la><fi>m.</fi></author> <author><la>voisard</la><fi>a.</fi></author> <publisher>morgan Kaufmann Publishers</publisher> <price>35.00</price> </book> <book year="2000" title="data on the Web"> <author><la>abiteboul</la><fi>s.</fi></author> <author><la>buneman</la><fi>p.</fi></author> <author><la>suciu</la><fi>d.</fi></author> <publisher>morgan Kaufmann Publishers</publisher> <price>39.95</price> </book> </bib> XQuery/ B. Amann p.85/173 Expressions XQuery litéraux (valeurs atomiques): 46, Salut valeurs construites: true(), date( ) variables: $x, $y,... opérateurs arithmétiques: + - * div mod séquences: (1,2), (1, toto, <toto/>) union, intersection, différence de séquences de noeuds Expressions simples Requête qar: Requête qel: (1, (2, 6), "toto", <toto/>) 1, 2, 6, toto, <toto/> XQuery/ B. Amann p.82/173 XQuery/ B. Amann p.86/173 Expressions XQuery (suite) expressions de chemins: XPath 2.0 opérateurs de comparaison pour valeurs atomiques, noeuds et séquences expressions logiques: and or not() appels de fonctions constructeurs de noeuds boucles (for-let-where-return) tests (if-then-return-else-return) Expressions de chemins Requête q1: document("bib.xml")//author <author><la>amann</la><fi>b.</fi></author>, <author><la>rigaux</la><fi>p.</fi></author>, <author><la>rigaux</la><fi>p.</fi></author>, <author><la>scholl</la><fi>m.</fi></author>, <author><la>voisard</la><fi>a.</fi></author>, <author><la>abiteboul</la><fi>s.</fi></author>, <author><la>buneman</la><fi>p.</fi></author>, <author><la>suciu</la><fi>d.</fi></author> Nous supposons la connaissance de XPath XQuery/ B. Amann p.83/173 XQuery/ B. Amann p.87/173 DTD Exemple: bib.dtd <!ELEMENT bib (book* )> <!ELEMENT book (author+ editor+ ), publisher, price )> <!ATTLIST book year CDATA #IMPLIED title CDATA #REQUIRED> <!ELEMENT author (la, fi )> <!ELEMENT title (#PCDATA )> <!ELEMENT la (#PCDATA )> <!ELEMENT fi (#PCDATA )> <!ELEMENT affiliation (#PCDATA )> <!ELEMENT publisher (#PCDATA )> <!ELEMENT price (#PCDATA )> Expressions de chemins: XPath 2.0 Dans XPath 2.0, chaque étape est une expression XQuery ( XPath 1.0) : //book[1]/author //book[1]/publisher //book[1]/(author,publisher) (!) //book[author/la= Scholl ] //book[author/la= Suciu ]/publisher //book[position() lt last()] XQuery/ B. Amann p.84/173 XQuery/ B. Amann p.88/173

12 Construction de noeuds XML (1) Union de séquences de noeuds Nom et contenu connu: Requête q2a: <livre auteur="l. Carroll"> <titre>alice au Pays de Merveilles</titre> </livre> Requête q3: <Livre> Les auteurs et le prix du premier livre: { document("bib.xml")//book[1]/(author union price) } </Livre> <Livre> Les auteurs et le prix du premier livre: <livre auteur="l. Carroll"><titre>Alice au Pays de Merveilles</titre></livre> <author><la>amann</la><fi>b.</fi></author> <author><la>rigaux</la><fi>p.</fi></author> <price>28.95</price> </Livre> Les trois opérateurs union, intersect et except éliminent les duplicats. XQuery/ B. Amann p.89/173 XQuery/ B. Amann p.93/173 Construction de noeuds XML (2) Nom connu, contenu calculé: { expr } Requête q2: <auteurs> { document("bib.xml")//author/la } </auteurs> <?xml version="1.0"?> <auteurs> <la>amann</la> <la>rigaux</la> <la>rigaux</la> <la>scholl</la> <la>voisard</la> <la>abiteboul</la> <la>buneman</la> <la>suciu</la> </auteurs> XQuery/ B. Amann p.90/173 Différence de séquences de noeuds Requête q4: <livre> Tous les sous-elements sauf les auteurs: { document("bib.xml")//book[1]/(* except author) } </livre> <livre> Tous les sous-elements sauf les auteurs: <publisher>o Reilly</publisher> <price>28.95</price> </livre> XQuery/ B. Amann p.94/173 Construction de noeuds XML (3) Construction de séquences Nom et contenu calculé: element { expr-nom } { expr-contenu } attribute { expr-nom } { expr-contenu } Requête q2b: element {concat("a_",string(1+4))} {9+3} <a_5>12</a_5> Requête q5a: <livre> Le prix suivi des auteurs: { document("bib.xml")//book[1]/(price,author) } </livre> <livre> Le prix suivi des auteurs: <price>28.95</price> <author><la>amann</la><fi>b.</fi></author> <author><la>rigaux</la><fi>p.</fi></author> </livre> On a changé l ordre des noeuds ( union)... XQuery/ B. Amann p.91/173 XQuery/ B. Amann p.95/173 Construction de noeuds XML (4) Requête q2c: element livre { attribute {concat("auteur_", string(1+2))} { "toto" } } <livre auteur_3="toto"/> Opérateurs arithmétiques opérateurs unaires : + - opérateurs binaires : + - * div mod Requête qari: document("bib.xml")//book[1]/price * E1 XQuery/ B. Amann p.92/173 XQuery/ B. Amann p.96/173

13 Transformation noeud valeur Comparaisons de noeuds Requête q6: <auteurs> { document("bib.xml")//book[2]/author/la } <noms> { document("bib.xml")//book[2]/author/xf:string(la) } </noms> </auteurs> <auteurs> <la>rigaux</la> <la>scholl</la> <la>voisard</la> <noms>rigaux Scholl Voisard</noms> </auteurs> Comparaison de l identité de deux noeuds : si est identique à. Requête qis: is document("bib.xml")//book[author[2] is author[last()]] <book title="comprendre XSLT"> <author><la>amann</la><fi>b.</fi></author> <author><la>rigaux</la><fi>p.</fi></author> <publisher>o Reilly</publisher> <price>28.95</price> </book> XQuery/ B. Amann p.97/173 XQuery/ B. Amann p.101/173 Expressions de Comparaisons Comparaison de valeurs atomiques: eq ne gt ge lt le Comparaison de séquences de valeurs avec quantificateur éxistentiel: =!= > >= < <= Comparaison de noeuds: is isnot Comparaison de noeuds par rapport à leur position dans le document: << >> XQuery/ B. Amann p.98/173 Comparaisons par la position Comparaison de la positition de deux noeuds : << ( << ) si apparaît avant (après) dans le document. Requête qord: document("bib.xml")//book[author[la="abiteboul"] << author[la="suciu"]] <book year="2000" title="data on the Web"> <author><la>abiteboul</la><fi>s.</fi></author> <author><la>buneman</la><fi>p.</fi></author> <author><la>suciu</la><fi>d.</fi></author> <publisher>morgan Kaufmann Publishers</publisher> <price>39.95</price> </book> XQuery/ B. Amann p.102/173 Comparaison de valeurs atomiques Requête qeq: distinct-values(document("bib.xml")// book/author[la eq "Rigaux"]) <author><la>rigaux</la><fi>p.</fi></author> Requête qeqerror: document("bib.xml")//book[author/la eq "Rigaux"] ERROR L expression author/la dans le prédicat ne retourne pas une valeur atomique. Boucles: for-return La clause for $var in exp affecte la variable $var succéssivement avec chaque item dans la séquence retournée par exp. Requête qfor: for $a in document("bib.xml")//author[la eq "Voisard"] return $a <author><la>voisard</la><fi>a.</fi></author> XQuery/ B. Amann p.99/173 XQuery/ B. Amann p.103/173 Comparaison de séquences Comparaison de séquences : = s il existe au moins un élément dans qui est égal à un élément dans. Requête qeqex: document("bib.xml")//book[author/la = "Scholl"] <book year="2001" title="spatial Databases"> <author><la>rigaux</la><fi>p.</fi></author> <author><la>scholl</la><fi>m.</fi></author> <author><la>voisard</la><fi>a.</fi></author> <publisher>morgan Kaufmann Publishers</publisher> <price>35.00</price> </book> Boucles: for-where-return La clause where exp permet de filtrer le résultat par rapport au résultat booléen de l expression exp (= prédicat dans l expression de chemin). Requête qforwhere: for $a in document("bib.xml")//author where $a/la eq "Abiteboul" return $a <?xml version="1.0"?> <author> <la>abiteboul</la> <fi>s.</fi> </author> XQuery/ B. Amann p.100/173 XQuery/ B. Amann p.104/173

14 Boucles: for-let-where-return La clause let $var := exp affecte la variable $var avec la séquence entière retournée par exp. Requête qlet: for $b in document("bib.xml")//book[1] let $al := $b/author return <livre nb_auteurs="{count($al)}"> { $al } </livre> <livre nb_auteurs="2"> <author><la>amann</la><fi>b.</fi></author> <author><la>rigaux</la><fi>p.</fi></author> </livre> Construction d éléments Requête quel: for $b in document("bib.xml")//book[2] return element livre { element annee { string($b/@year) }, for $e in $b/@* where name($e)!= "year" return element {name($e)} {string($e)} } <?xml version="1.0"?> <livre> <annee>2001</annee> <title>spatial Databases</title> </livre> XQuery/ B. Amann p.105/173 XQuery/ B. Amann p.109/173 Tests: if-then-else Requête qif: <livres> { for $b in document("bib.xml")//book where $b/author/la = "Rigaux" return if ($b/author[1]/la eq "Rigaux") then <livre prem="true"> {$b/@title} </livre> else <livre> {$b/@title} </livre> } </livres> <?xml version="1.0"?> <livres> <livre title="comprendre XSLT"/> <livre prem="true" title="spatial Databases"/> </livres> Construction d attributs Requête quatr: <livres> { for $t in document("bib.xml")//book/@title return element livre {attribute titre {string($t)}} } </livres> <livres> <livre titre="comprendre XSLT"/> <livre titre="spatial Databases"/> <livre titre="data on the Web"/> </livres> XQuery/ B. Amann p.106/173 XQuery/ B. Amann p.110/173 Quantification existentielle some $var in expr1 satisfies expr2 Retourne true s il existe au moins un nœud retourné par l expression expr1 qui satisfait l expression expr2. Requête quantex: for $b in document("bib.xml")//book where some $a in $b/author satisfies $a/la = "Amann" return <livre>{$b/@title}</livre> <livre title="comprendre XSLT"/> Trier avec sortby Expr1 sortby Expr2 (ascending descending)?: trier les éléments de la séquence retournée par l expression Expr1 par les valeurs retournées par Expr2. Requête qtri: <livres>{ for $b in document("bib.xml")//book return <livre>{ $b/@title }</livre> sort by(@year) } </livres> <livres> <livre title="comprendre XSLT"/> <livre title="spatial Databases"/> <livre title="data on the Web"/> </livres> XQuery/ B. Amann p.107/173 XQuery/ B. Amann p.111/173 Quantification universelle every $var in expr satisfies expr Retourne true ssi tous les nœuds retournés par l expression expr1 satisfont l expression expr2 Requête quantun: for $a in document("bib.xml")//author where every $b in document("bib.xml")//book[author/la = $a/la] satisfies $b/publisher="o Reilly" return $a <author><la>amann</la><fi>b.</fi></author> Jointure Fichier d adresses: <addresses> <person> <name>amann</name> <country>france</country> <institution>cnam</institution> </person> <person> <name>scholl</name> <country>france</country> <institution>cnam</institution> </person> <person> <name>voisard</name> <country>germany</country> <institution>fu Berlin</institution> </person> </addresses> XQuery/ B. Amann p.108/173 XQuery/ B. Amann p.112/173

15 Jointure: Requête Requête qjoin: for $b in document("bib.xml")//book return element livre { attribute titre {$b/@title}, for $a in $b/author return element auteur { attribute nom {$a/la}, for $p in document("addr.xml")//person where $a/la = $p/name return attribute institut {$p/institution} } } Exemple : Fonction avg Requête qavg: for $p in distinct-values(document("bib.xml")//publisher) let $l := document("bib.xml")//book[publisher = $p] return element publisher { attribute name {string($p)}, attribute avg_price { $l/data(price) }} Résultat : <publisher name="o Reilly" avg_price="28.95"/>, <publisher name="morgan Kaufmann Publishers" avg_price="37.48"/> XQuery/ B. Amann p.113/173 XQuery/ B. Amann p.117/173 Jointure: Résultat <livre titre="comprendre XSLT"> <auteur nom="amann" institut="cnam"/> <auteur nom="rigaux"/> </livre>, <livre titre="spatial Databases"> <auteur nom="rigaux"/> <auteur nom="scholl" institut="cnam"/> <auteur nom="voisard" institut="fu Berlin"/> </livre>, <livre titre="data on the Web"> <auteur nom="abiteboul"/> <auteur nom="buneman"/> <auteur nom="suciu"/> </livre> Quelques fonctions pour les séquences distinct-nodes(item* Seq1) => item* : élimination de duplicats en comparant l identité des noeuds distinct-values(item* Seq1) => item* : élimination de duplicats en comparant la valeur index-of(item* Seq, Item Search) => unsignedint* : retourne les positions des nœuds ou des valeurs dont la valeur est identique au paramètre Search XQuery/ B. Amann p.114/173 XQuery/ B. Amann p.118/173 Fonctions et opérateurs Les nombreux fonctions et opérateurs permettent : l accès au type et le nom d un noeud la construction, comparaison et la transformation de valeurs l aggrégation des valeurs d une séquence la transformation du type d une valeur (cast) Exemple: index-of Requête qindexof: <books> { let $bl := document("bib.xml")//book for $b in $bl return <book> { $b/@title, attribute no {index-of($bl, $b)}} </book> } </books> <?xml version="1.0"?> <books> <book title="comprendre XSLT" no="1"/> <book title="spatial Databases" no="2"/> <book title="data on the Web" no="3"/> </books> XQuery/ B. Amann p.115/173 XQuery/ B. Amann p.119/173 Fonctions et opérateurs Les fonctions et opérateurs sont typées (XML schema) et manipulent des séquences et des valeurs typées (XML schema) : entier, chaîne de caractères, dates,... Définition de Fonctions XQuery permet à l utilisateur de définir ses propres fonctions. define function NombreAuteurs(book $b) returns xsd:integer { return count($b/author) } Le résultat est de type xsd:float. XQuery/ B. Amann p.116/173 XQuery/ B. Amann p.120/173

16 Bibliographie: Interrogation de documents XML Site du W3C sur XQuery: P. Wadler, XQuery: a typed functional language for querying XML Données XML structurées Dépendances père/fils sont importantes Ordre moins important Requêtes select-projet-join Tri, régroupement, transformation Requêtes OLAP et data-mining XQuery/ B. Amann p.121/173 Stockage de données XML/ B. Amann p.125/173 Données XML mixtes (documents XML) Stockage de données XML Fragments texte de taille importante Requêtes plein-texte Ordre est important Semi-structurées (exceptions) Requêtes select-project (table de contenu) Stockage de données XML/ B. Amann p.122/173 Stockage de données XML/ B. Amann p.126/173 Stockage de données XML Problèmes liés au stockage : Temps d exécution de requêtes Compléxité des mises-à-jour Taille des données stockées Maintenance des relations/dépendances entre les entités (éléments) du document Enrichissement des données? Flux de données Données temporelles indépendantes Requêtes de filtrage Déclenchement d évènements (requêtes continues) Beaucoup de petits fragments Stockage de données XML/ B. Amann p.123/173 Stockage de données XML/ B. Amann p.127/173 Types de données XML Modèle abstrait d un traitement XML Données XML : typiquement export d une base de données Documents XML (données mixtes) : texte + données Flux de données : par exemple service SOAP Document XML Schéma XML XML PSV Parseur XML Infoset Validateur Infoset Remplacement entités Insertion de valeurs par défaut Document bien formé Document valide PSV: Post schema validated Infoset (avec annotations de types) XQuery Modèle de données Résultat Stockage de données XML/ B. Amann p.124/173 Stockage de données XML/ B. Amann p.128/173

17 Stockage de XML Importation : générique : indépendante de la DTD/du schéma XML guidé par la DTD/le schéma XML Interrogation et mise-à-jour Accès uniform : schéma de stockage transparent pour l utilisateur Exportation : il doit être possible de trouver le document d origine Techniques de stockage natives (suite) langages : API, XPath, XQuery + mises-à-jours + chargement Stockage de données XML/ B. Amann p.129/173 Stockage de données XML/ B. Amann p.133/173 Critères de Comparaison espace utilisé temps de chargement temps de reconstruction d un document XML temps de mis-à-jour temps d exécution d une requête Techniques de stockage natives: Systèmes Tamino de Software AG Xyleme/Natix de l Université de Manheim Xindice: Apache Software Foundation 4Suite de FourThought problème d optimisation Stockage de données XML/ B. Amann p.130/173 Stockage de données XML/ B. Amann p.134/173 Techniques de stockage: Fichiers Fichiers plats ou structurés : petits documents modèle de document structuré langage de requêtes : grep, index plein texte + temps de chargement/reconstruction Techniques de stockage base de données étendu SGBD (objet-) relationnel étendu avec des outils pour le traitement de documents XML : gros documents (structurés) modèle logique relationnel (pas hiérarchique) importation générique/guidé par le schéma langages: SQL + interrogation Stockage de données XML/ B. Amann p.131/173 Stockage de données XML/ B. Amann p.135/173 Techniques de stockage natives Native XML database (NXD) : conçu spécifiquement pour XML; définit un modèle logique pour le stockage et l accès à un document XML le document XML est l unité centrale de la base (comme une relation dans une BD relationnelle) gros documents modèle de données hiéarchique avec ordre Techniques de stockage BD : Systèmes Oracle XML/SQL utility IBM DB2 XML Extender Microsoft OpenXML Stockage de données XML/ B. Amann p.132/173 Stockage de données XML/ B. Amann p.136/173

18 Stockage dans une BD relationnelle Arbre XML Avantages : on peut traiter en même temps des données XML et des tables classiques passage doux vers XML Contraintes : définir un mapping XML relationnel (import) et relationnel XML (export) satisfaire les contraintes de la BD : exemple : le nombre d attributs par table titre, livre, auteur, "Germinal" "E. Zola" biblio, titre, "Comprendre XSLT" livre, auteur, "B. Amann" auteur, editeur, "P. Rigaux" "O Reilly" Stockage de données XML/ B. Amann p.137/173 Stockage de données XML/ B. Amann p.141/173 XML vs. relationnelle Relation d arcs parent/enfant XML : données hiérarchiques, éléments imbriqués arbre ordonné schéma optionnel Relationnel : données ensemblistes stockées dans des tables absence d ordre schéma obligatoire R: S: Parent Pos Label Type Enfant 1 biblio ref 1 livre ref 2 livre ref 1 titre cdata 2 auteur cdata 1 titre cdate 2 auteur cdata 3 auteur cdata 4 editeur cdata Noeud Valeur Germinal E. Zola Comprendre XSLT B. Amann P. Rigaux O Reilly Stockage de données XML/ B. Amann p.138/173 Stockage de données XML/ B. Amann p.142/173 Stocker un arbre dans une BD relationnelle Requête Solutions : une table binaire pour stocker l ordre et la relation parent/enfant, une table unaire pour les valeurs. une table binaire pour chaque type de chemin (Monet) stockage guidé par la DTD Oracle : attributs de type BLOB/CLOB (binary/character large objects) table objet/relationnel select t from biblio.livre l, l.titre t, l.auteur a where a = "E. Zola" Stockage de données XML/ B. Amann p.139/173 Stockage de données XML/ B. Amann p.143/173 Document XML <?xml version= 1.0?> <biblio> <livre> <titre>germinal</titre> <auteur>e. Zola</auteur> </livre> <livre> <titre>comprendre XSLT</titre> <auteur>b. Amann</auteur> <auteur>p. Rigaux</auteur> <editeur>o Reilly</editeur> </livre> </biblio> Relation d arcs parent/enfant Avantages : Format de stockage générique Espace utilisée est faible Inconvénients : Scan sur une seule grande table Beaucoup de jointures Stockage de données XML/ B. Amann p.140/173 Stockage de données XML/ B. Amann p.144/173

19 Basic inlining Créer une ou plusieurs relations pour chaque type d élément : Extraire le sous-graphe qui contient tous les noeuds qu on peut atteindre à partir du type d élément. Créer récursivement les tables à partir de ce sous-graphe : une table pour la racine. une table pour chaque noeuds cible d un arc Les autres noeuds sont transformés en attributs. Stockage de données XML/ B. Amann p.149/173 Monet: Exemple DTD Exemple Le modèle Monet Fragmentation avec classification des noeuds (classe = type de chemin) : Chaque type de chemin correspond à une table binaire Types d associations (fragmentation binaire complète) : noeud/noeud noeud/attribut noeud/rang Stockage de données XML/ B. Amann p.145/173 select t from biblio.livre l, l.titre t, l.auteur a where a = "E. Zola" <!ELEMENT livre (titre, auteur*, editeur?) > <!ELEMENT article (titre, auteur*) > <!ELEMENT titre #PCDATA > <!ELEMENT auteur #PCDATA > <!ELEMENT editeur #PCDATA > <!ATTLIST editeur livres IDREFS > livre * titre * auteur * article? editeur Stockage de données XML/ B. Amann p.146/173 Stockage de données XML/ B. Amann p.150/173 Monet: Analyse Simplification de DTD Avantages : Requêtes avec expressions de chemins Exceptions sont traitées naturellement (petites relations) Classification des noeuds Inconvénients : Le nombre des relations est linéaire dans la taille du document Unnest définitions imbriquées : Simplification : Regroupement :,... Stockage de données XML/ B. Amann p.147/173 Stockage de données XML/ B. Amann p.151/173 Stockage guidé par la DTD: Inlining Principe : Utiliser la DTD pour créer le schéma. Décider quand un élément est mis dans la table de son parent ( inlining ) et quand il faut créer une table séparée. Types d éléments peuvent être partagés Redondance Trois approches: basic, shared and hybrid Basic Inlining : Exemple livre * titre =livre(id, parid, titre, editeur), =livre.auteur(id, parid, auteur), =article(id, parid, titre), =article.auteur(id, parid, auteur), =editeur(id, parid, editeur), =editeur.livre(id, parid, titre, editeur), =titre(id,titre), =auteur(id, parid, auteur) * auteur * article? editeur Stockage de données XML/ B. Amann p.148/173 Stockage de données XML/ B. Amann p.152/173

20 Stockage physique Une page est de taille fixe et contient plusieurs enregistrements de taille variable Un enregistrement est un espace de mémoire continu qui peut se déplacer à l intérieur d une page et entre les pages. Un enregistrement ne peut pas dépasser la taille d une page. Stockage de données XML/ B. Amann p.160/173 Stockage natif: Natix Niveau logique : arbre XML Niveau physique : arbre construit à partir de l abre XML + noeuds supplémentaires Stockage de données XML/ B. Amann p.159/173 Hybrid Inlining Similaire à Shared Inlining sauf que les types d éléments partagés qui ne sont pas récursifs ou sur un chemin avec * sont transformés en attributs. titre, titre Stockage de données XML/ B. Amann p.158/173 Shared Inlining : Exemple On a moins de tables : Livres de Zola : Noms des auteurs : Stockage de données XML/ B. Amann p.157/173 Shared Inlining : Exemple livre auteur * article * titre editeur? * Chaque relation contient comme attributs les types d éléments qui peuvent être atteints sans traversant un type d élément qui a été transformé en relation. Stockage de données XML/ B. Amann p.156/173 Shared inlining Basic inlining: trop de tables... Créer une rélation pour chaque type d élément avec degré d entrée = 0 ou > 1: livre, article, titre cibles d un arc * : auteur degré d entrée = 1 et mutuellement récursive avec un autre type élément avec degré d entrée = 1 (e.g. A::=B, B::=A créer une table ou une table ) Stockage de données XML/ B. Amann p.155/173 Basic Inlining : Exemple Noms des auteurs : select a from auteur a Stockage de données XML/ B. Amann p.154/173 Basic Inlining : Exemple Livres de Zola : select t from livre l, l.titre t, l.auteur a where a = "E. Zola" _ Stockage de données XML/ B. Amann p.153/173

21 Natix: Enregistrement = sous-arbre Natix : un enregistrement stocke un sous-arbre d un document XML Enregistrement = le seuil de passage entre la représentation plate et la représentation structurée d un fragment XML Les enregistrements/sous-arbres sont reliés par des noeuds proxy Natix : Split Matrix Une matrice à deux dimensions qui exprime le comportement de regroupement entre les parents et leurs enfants : dimensions = types d éléments : séparer et si possible : garder et dans le me enregistrement si possible : le système décide Stockage de données XML/ B. Amann p.161/173 Stockage de données XML/ B. Amann p.165/173 Exemple d un arbre Natix La solution d Oracle9i r2 r3 proxy:r7 r1 r4 proxy:r8 r5 r6 Solution hybride : attributs de type CLOB (requêtes plein texte) mapping canonique dans une table objet-relationnel r7 r8 Les opérations de modification sont similaire aux opérations sur un arbre B comment trouver le séparateur dans un arbre Stockage de données XML/ B. Amann p.162/173 Stockage de données XML/ B. Amann p.166/173 Eclatement d un enregistrement Natix f2 L f1 f6 f11 f12 f3 f4 f5 f7 f10 f13 f14 le noeud f8 f9 d définit une coupure S séparateur = les noeuds de la racine jusqu à comment trouver de le l arbre : descendre dans le milieu R Attibuts de types CLOB: XMLType d Oracle 9i SQL> create table PURCHASEORDER (PODOCUMENT sys.xmltype); Table created. SQL> insert into PURCHASEORDER (PODOCUMENT) values ( 2 sys.xmltype.createxml( 3 4 <PurchaseOrder> 5 <Refernce>2365</Reference> 6 <Actions> 7 <Action> 8 <User>KING</User> 9 <Date>12/11/02</DATE> 10 </Action> 11 </Actions> 12 </PurchaseOrder> 13 )); Stockage de données XML/ B. Amann p.163/173 Stockage de données XML/ B. Amann p.167/173 Assemblage Requêtes SQL et XMLType p1 f1 f6 p4 Requête : SQL> select p.podocument.getclobval() 1 from purchaseorder p 5 / f3 f2 f4 p2 f5 p3 f8 h1 f7 f10 f9 h2 f11 f12 f13 f14 P.PODOCUMENT.GETCLOBVAL() <PurchaseOrder> <Reference>2365</Reference> <Actions> <Action> <User>KING</User> <Date>12/11/02</DATE> </Action> </Actions> </PurchaseOrder> Stockage de données XML/ B. Amann p.164/173 Stockage de données XML/ B. Amann p.168/173

22 Requêtes SQL avec extraction XPath Requête : SQL> select P.PODOCUMENT.extract( 2 /PurchaseOrder//User).getClobVal() 3 from PURCHASEORDER P 4 where P.PODOCUMENT.extract( 5 /PurchaseOrder//Date/text() 6 ).getstringval() = 7 12/11/02 P.PODOCUMENT.EXTRACT( /PurchaseOrder//User ).GETCLOBVAL() <User>KING</User> Bibliographie Stockage XML (suite) Suciu, et.al, Storing semistructured data with STORED Kanne, Stockage XML natif dans Natix ToX: The Toronto XML Engine. S. Munch, Building Oracle XML Applications Stockage de données XML/ B. Amann p.169/173 Stockage de données XML/ B. Amann p.173/173 Mapping canonique XML: SQL: <row> <Person> <Name>Toto</Name> <Addr> <City>...</City> <Street>...</Street> </Addr> </Person> </row> create type AddrType as OBJECT ( City VARCHAR2(32) Street VARCHAR2(32) ); create table Person ( Name VARCHAR2(32) Addr AddrType ); Stockage de données XML/ B. Amann p.170/173 Mapping canonique Avantages : Interrogation directe avec SQL Vue objet-relationnel de données XML Transformation dans la forme canonique avec XSLT Inconvénients : Difficile à mettre en oeuvre sur des documents irrégulière SQL n a pas la puissance de XPath pour les expressions de chemin Stockage de données XML/ B. Amann p.171/173 Bibliographie Stockage XML Sihem Amer-Yahia et Mary Fernandez, Overview of Existing XML Storage Techniques, Sigmod Record 2002 Sihem Amer-Yahia, Techniques for Storing XML, tutorial ICDE 2002 Florescu, Kossman, A Performance Evaluation of Alternative Mapping Schemes for Storing XML Data in a RDBMS Albrecht Schmid, et.al., Efficient Relational Storage and Retrieval of XML Documents Stockage de données XML/ B. Amann p.172/173

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr Module BDWEB Maîtrise d informatique Cours 9 - Xquery Anne Doucet anne.doucet@lip6.fr 1 Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents

Plus en détail

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

BD et XML : Exercices

BD et XML : Exercices BD et XML : Exercices 1 Stockage XML Voici un arbre XML : A B E C F C F C F D C C D D D 1.1 Stockage générique Exercice 1.1.1 : Définissez un schéma de stockage relationnel générique (sans prendre en compte

Plus en détail

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition XML par la pratique Bases indispensables Concepts et cas pratiques 3 ième édition Nouvelle édition Thierry BOULANGER Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante

Plus en détail

BASE DE DONNÉES XML NATIVE

BASE DE DONNÉES XML NATIVE BASE DE DONNÉES XML NATIVE NXDB - exist - XQuery IvMad, 2011-2012 2 1. exist exist-db Open Source Native XML Database Ce cours s inspire, reprend, modifie et enrichi des supports disponibles sur Internet

Plus en détail

Bases de données avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

BASE DE DONNÉES XML NATIVE

BASE DE DONNÉES XML NATIVE BASE DE DONNÉES XML NATIVE Ivan Madjarov NXDB - exist - XQuery IvMad, 2011-2013 2 1. exist exist-db Open Source Native XML Database Ce cours s inspire, reprend, modifie et enrichi des supports disponibles

Plus en détail

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML Faculté Polytechnique de Mons Johnny TSHEKE SHELE Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML Travail de fin d études présenté en vue de l obtention du grade

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch Faculté de Génie Chaire industrielle en infrastructures de communication La technologie XML Wajdi Elleuch Octobre 2004 SOMMAIRE Content : - XML : Définition - XML : Solution pour des applications réparties

Plus en détail

XML et Bases de données. Les bases de données XML natives.

XML et Bases de données. Les bases de données XML natives. XML et Bases de données. Les bases de données XML natives. Introduction. Une définition de l'expression «Base de données XML Native» : Une base de données XML native définit un modèle (logique) de document

Plus en détail

2 Serveurs OLAP et introduction au Data Mining

2 Serveurs OLAP et introduction au Data Mining 2-1 2 Serveurs OLAP et introduction au Data Mining 2-2 Création et consultation des cubes en mode client-serveur Serveur OLAP Clients OLAP Clients OLAP 2-3 Intérêt Systèmes serveurs et clients Fonctionnalité

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

NFE204 Bases de données avancées

NFE204 Bases de données avancées NFE204 Bases de données avancées Bases de données documentaires et NOSQL Philippe Rigaux, Nicolas Travers Conservatoire National des Arts et Métiers October 8, 2013 WebDam (CNAM) NFE204 Bases de données

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Systèmes d information et bases de données (niveau 1)

Systèmes d information et bases de données (niveau 1) Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Définition (G. Gardarin) Entrepôt : ensemble de données historisées variant

Plus en détail

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données (data integration) est de permettre un accès cohérent à des données d origine, de structuration

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Programmation des Applications Réparties. Parsers XML DOM et SAX

Programmation des Applications Réparties. Parsers XML DOM et SAX Programmation des Applications Réparties Parsers XML DOM et SAX Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Steffenel Programmation des Applications Réparties Master M1-2007-2008 1 Comment

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Master d Informatique Corrigé du partiel novembre 2010

Master d Informatique Corrigé du partiel novembre 2010 Universités d Aix-Marseille I & II Technologies XML Master d Informatique Corrigé du partiel novembre 2010 Année 2010-11 Documents autorisés Exercice 1 : Documents XML et Applications XML (4 points) Georges,

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Partie II Cours 3 (suite) : Sécurité de bases de données

Partie II Cours 3 (suite) : Sécurité de bases de données Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Accès à l'information XML par des requêtes XQuery au travers de son XSchema Rapport projet de fin d étude ASR Accès à l'information XML par des requêtes XQuery au travers de son XSchema Réalisé par : DAB Marwa MGARRECH Oussama Encadré par : Mme LOPES GANCARSKI Alda 2011/2012 Remerciements

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Introduction au Système de Gestion de Base de Données et aux Base de Données

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Introduction aux bases de données

Introduction aux bases de données Introduction aux bases de données Références bibliographiques Jeff Ullman,Jennifer Widom, «A First Course in Database systems», Prentice-Hall, 3rd Edition, 2008 Hector Garcia-Molina, Jeff Ullman, Jennifer

Plus en détail

Bases de données relationnelles : Introduction

Bases de données relationnelles : Introduction Bases de données relationnelles : Introduction historique et principes V. Benzaken Département d informatique LRI UMR 8623 CNRS Université Paris Sud veronique.benzaken@u-psud.fr https://www.lri.fr/ benzaken/

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Data Mining. Vincent Augusto 2012-2013. École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

Data Mining. Vincent Augusto 2012-2013. École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto. des des Data Mining Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2012-2013 1/65 des des 1 2 des des 3 4 Post-traitement 5 représentation : 6 2/65 des des Définition générale Le

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/62 Bases de Données Avancées Introduction & Rappel Conception et Modélisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création Construction d un EDD avec SQL 2008 R2 Plan Analyse du DW construit Construction de la base DW dans SQL 2008 Construction des tables de faits et dimensions Injection des données Étapes de l injection des

Plus en détail

Master I Génie Logiciel

Master I Génie Logiciel 1. Introduction Master I Génie Logiciel Dr. Imed Bouchrika Dept de Mathematique & Informatique Université de Souk-Ahras imed@imed.ws Amira Hakim, Mariem Sari, Sara Khelifi & Imed Bouchrika University of

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre La problématique de la Préservation des Bases de Données Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre Définition des bases de données Terme du langage courant base de données Utilisé pour désigner

Plus en détail

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES BASES DE DONNÉES CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98 J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES III. LES SYSTÈMES RÉSEAU IV. LES SYSTÈMES RELATIONNELS V. LE LANGAGE

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Hervé Couturier EVP, SAP Technology Development

Hervé Couturier EVP, SAP Technology Development Hervé Couturier EVP, SAP Technology Development Hervé Biausser Directeur de l Ecole Centrale Paris Bernard Liautaud Fondateur de Business Objects Questions à: Hervé Couturier Hervé Biausser Bernard Liautaud

Plus en détail

et les Systèmes Multidimensionnels

et les Systèmes Multidimensionnels Le Data Warehouse et les Systèmes Multidimensionnels 1 1. Définition d un Datawarehouse (DW) Le Datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Utiliser Améliorer Prêcher. Introduction à LDAP

Utiliser Améliorer Prêcher. Introduction à LDAP Introduction à LDAP Introduction à LDAP Sommaire 2 Sommaire Historique rapide Les concepts LDAP et la gestion d identité Démonstration Autre ressources 2 Historique Historique Historique rapide 4 Historique

Plus en détail

Bases de données - Modèle relationnel

Bases de données - Modèle relationnel Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,

Plus en détail

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Hala Skaf-Molli. Nancy-Université skaf@loria.fr 14 mai 2007

Hala Skaf-Molli. Nancy-Université skaf@loria.fr 14 mai 2007 Bases de données avancées Hala Skaf-Molli Maître de Conférence Nancy-Université skaf@loria.fr 14 mai 2007 1 Introduction Dans ce cours, nous allons étudier les bases de données Orienté objets, bases de

Plus en détail

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011 Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB

Plus en détail

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

BUSINESS INTELLIGENCE

BUSINESS INTELLIGENCE GUIDE COMPARATIF BUSINESS INTELLIGENCE www.viseo.com Table des matières Business Intelligence :... 2 Contexte et objectifs... 2 Une architecture spécifique... 2 Les outils de Business intelligence... 3

Plus en détail

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht. Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.fr 1 MVC et le web 27/05/14 2 L'évolution des systèmes informatiques

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales Ecole des Hautes Etudes Commerciales HEC Alger Évolution des SGBDs par Amina GACEM Module Informatique 1ière Année Master Sciences Commerciales Evolution des SGBDs Pour toute remarque, question, commentaire

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail