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
|
|
- Gaston Cousineau
- il y a 8 ans
- Total affichages :
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 1 Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents
Plus en détailXML 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étailBD 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étailThierry 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étailBASE 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étailBases 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étailLangage 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étailA 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étailQuelques 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étailBASE 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étailFaculté 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étailI4 : 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étailExpression 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étailLe 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étailInformation 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étailBases 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étailLes 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étailFaculté 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étailXML 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étail2 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étailLe 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étailLangage 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étailOpenPaaS 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étailA 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étailCours 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étailLes 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étailNFE204 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étailSGBDR. 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étailCours 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étailSystè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étailLangage 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étailMagasins 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étailChapitre 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étailSQL 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étailXML, 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étailExemple 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étailProgrammation 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étailBases 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étailMaster 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étailIntroduction 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étailStructure 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étailOCL - 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étailPartie 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étailMapReduce. 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étailAccè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étail1 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étailModule 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étailCompé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étailBases 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étailLES 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étailIntroduction 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étailIntroduction 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étailBases 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étail4. 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étailUtilisation 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étailTP 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étailCOMMANDES 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étailData 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étailBases 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étailBases 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étailLa 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étailConstruction 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étailMaster 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étailLe 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étailLa 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étailBASES 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étailLa 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étailHervé 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étailet 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étail4. 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étailCours 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étailBases 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étailCours 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étailARBRES 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étailCHAPITRE 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étailProgrammer 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étailUtiliser 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étailBases 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étailPerformances. 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étailNFA 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étailHala 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étailApache 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étailPHP. 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étailLes 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étail3. 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étailBUSINESS 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étailEvolution 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étailBases 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étailCREATION 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étailEcole 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étailSQL 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étailModule 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étailAnalyse 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étailBases 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étailORACLE 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étail1. 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étailIntroduction à 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étaildonné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