B. Defude - INT Evry - 2003 1



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

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

Information utiles. webpage : Google+ : digiusto/

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

BASE DE DONNÉES XML NATIVE

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

Bases de données avancées Introduction

BASE DE DONNÉES XML NATIVE

Les bases de données

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Le langage SQL Rappels

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

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

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

Cours Bases de données

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

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Master d Informatique Corrigé du partiel novembre 2010

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

1 Introduction et installation

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

Business Intelligence avec Excel, Power BI et Office 365

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Les structures de données. Rajae El Ouazzani

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Architectures d'intégration de données

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Bases de données cours 1

OCL - Object Constraint Language

UE 8 Systèmes d information de gestion Le programme

Bases de Données. Plan

XML et recherche d information

Programmation Web. Madalina Croitoru IUT Montpellier

Introduction aux Bases de Données

BD et XML : Exercices

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

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

Bases de données élémentaires Maude Manouvrier

Langage SQL : créer et interroger une base

INTRODUCTION : Données structurées et accès simplifié

Dossier I Découverte de Base d Open Office

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Bases de données relationnelles : Introduction


NFE204 Bases de données avancées

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

SQL Server 2012 et SQL Server 2014

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

Business Intelligence

Master Technologies numériques appliquées à l'histoire Deuxième année

A QUOI SERVENT LES BASES DE DONNÉES?

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Présentation du module Base de données spatio-temporelles

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

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

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

1 Modélisation d une base de données pour une société de bourse

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

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

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Bases de données - Modèle relationnel

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Les Entrepôts de Données

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Introduction à la B.I. Avec SQL Server 2008

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

INTRODUCTION AU DATA MINING

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

Catalogue des formations Edition 2015

INTRODUCTION AUX BASES de DONNEES

Table des matières. Avant-propos

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

Interpréteur d algèbre relationnelle

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

Bases de Données Avancées

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

Programmation d application Bases de données avec Java

PROSOP : un système de gestion de bases de données prosopographiques

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)

16H Cours / 18H TD / 20H TP

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Bases de Données Relationnelles. Le Modèle Relationnel

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

TP Bases de données réparties

Adobe Technical Communication Suite 5

Java DataBaseConnectivity

Les technologies du Big Data

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

MANAGEMENT DES SERVICES INFORMATIQUES

Java et les bases de données

Transcription:

Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma de BD Utilisé pour le stockage efficace, la définition et l optimisation de langage de requêtes, la cohérence, Tout doit rentrer dans ce moule Information pas ou peu structurée Structure est implicite et tolérante Pas de schéma des données Pas de langage de requêtes, pas d optimisation, de cohérence Beaucoup de souplesse Intermédiaire entre modèle relationnel (BD) et modèle de fichier Présence d un schéma mais souple Possibilité de langages de requêtes Différentes propositions Modèle OEM XML B. Defude - INT Evry - 2003 1

SQL Modèle relationnel JDBC/ODBC/SQL- CLI Bases de données relationnelles XSLT, XPATH, XQUERY Modèle XPATH DOM et SAX API Document XML Modèle de données et langages de requêtes XML Publication XML de données relationnelles Stockage de documents XML " "#$ " "#$ XPATH (1.0 puis 2.0) langage commun de navigation, sélection, extraction Utilisé dans XSLT, XQUERY, XPOINTER, XSLT 2.0 : XML vers XML, HTML, texte Langage à typage faible, orienté transformation XQUERY 1.0 : XML vers XML Langage fonctionnel à typage fort (entrées et sorties) Orienté accès BD! % B. Defude - INT Evry - 2003 2

" "#$ " "#$ XPATH 2.0 = XPATH 1.0 + Typage XML schema Séquences ordonnées de nœuds typés et de valeurs atomiques For VAR in EXPR EXPR Expression conditionnelles If EXPR then EXPR else EXPR Expressions quantifiées Some every VAR in EXPR satisfies EXPR XQUERY 1.0 = XPATH 2.0 + For-let-where- (FLWR) : SQL like Sort-by Construction de XML Opérateurs sur les types Fonctions définies par le programmeur Typage fort (statique ou dynamique) & ' ()* GuideExotique : <?xml version="1.0" encoding="iso-8859-1"?> <Guide region="exotique" version="2.0"> <Restaurant type="indhou" categorie="**"> <Nom>Le passage Brady</Nom> <Adresse> <No>43</No><Rue>Faubourg Saint-Denis</Rue><Ville>Paris 10</Ville> <Telephone>0142112310</Telephone> </Restaurant> <Restaurant type="thibetain" categorie="**"> <Nom>Le Lhassa</Nom> <Adresse> <No>13</No><Rue>Montagne Sainte-Genevieve</Rue><Ville>Paris 5</Ville> <Telephone>0144122112</Telephone><Manager>Dicky</Manager> </Restaurant> <Epicerie type="egyptienne"> <Nom>Le Caire</Nom> <Telephone>0146134582</Telephone><Manager>Ali Moussa</Manager> <Specialité>falavel</Specialite> </Epicerie> </Guide> BD Guide (2) GuideNormand: <?xml version="1.0" encoding="iso-8859-1"?> <Guide region="normandie" version="2.0"> <Restaurant type="francais" categorie="***"> <Nom>Le Grand Hotel</Nom> <Adresse> <Rue>Promenade M. Proust</Rue><Ville>Cabourg</Ville> <Prix menu="midi">200</prix> <Prix menu="soir">300</prix> </Restaurant> <Restaurant type="francais" categorie="**"> <Nom>L absinthe</nom> <Adresse> <No>10</No><Rue>Quai Quarantaine</Rue><Ville>Honfleur</Ville> <Prix menu="midi">150</prix> <Prix menu="soir">250</prix> <Telephone>0234142189</Telephone> <Specialité>Fruits de Mer</Specialite> </Restaurant> </Guide> B. Defude - INT Evry - 2003 3

()* (( BD XML = forêt de documents XML Schéma de BD = Schéma XML si existant Guide de données : Schéma faible généré à partir d un ensemble de documents par union des arbres de structure décrivant tous les cheminements possibles dans la collection et par typage des données en texte Schéma plus flexible que schéma relationnel Guide X Restaurant Epicerie X Nom Adresse Telephone Prix 0,2 Manager X X No Rue Code Ville Nom Manager Telephone Specialite BD Répertoire (1) <?xml version="1.0" encoding="iso-8859-1"?> <Repertoire> <Hotel categorie="***"> <Nom>California</Nom> <Adresse><Num>32</Num> <Rue>Rue des Ecoles</Rue><Code>75005</Code><Ville>Paris</Ville> <Commentaire>Charmant hotel pres du centre</commentaire><prix>150</prix> </Hotel> <Hotel categorie="****"> <Nom>Napoleon</Nom> <Adresse><No>40</No> <Rue>Avenue de Friedland</Rue><Code>75008</Code><Ville>Paris</Ville> <Commentaire>Hotel Art Deco</Commentaire><Prix >500</Prix> </Hotel> <Hotel categorie="***"> <Nom>Le Saint Simon</Nom> <Adresse><No>32</No> <Rue>Rue Saint Simon</Rue><Code>75005</Code><Ville>Paris</Ville> <Commentaire>Proche restaurant celebre</commentaire><prix >300</Prix> </Hotel> </Repertoire> (+ Repertoire X Hotel X Nom Adresse X Commentaire Prix Num Rue Ville Code B. Defude - INT Evry - 2003 4

,-./0.1+2345 Navigation Support XPATH Sélection Jointure Tri Construction Recherche textuelle Fonction Imbrication agrégat Lister les noms des restaurants du guide normand document("http://gnormand.fr")//restaurant/nom/text() Lister les noms des restaurants de la forêt Guide collection("guide")//restaurant/nom/text()! %.1+6/ 16/ for $var in <forêt> [, $var in <forêt>]... // itération let $var := <sous-arbre> // assignation where <condition> // élagage <résultat> // construction For let Liste ordonnée De tuples De variables liées where Liste élaguée De tuples De variables liées Instances XML & ' B. Defude - INT Evry - 2003 5

.1+)*.1+)* Q1 : nom des restaurants de Cabourg (liste triée) where $R/Adresse/Ville="Cabourg" $R/Nom sortby Nom descending Q2 : Nom et adresse des restaurants deux étoiles where $R/@categorie="**" <Restau2E>{$R/Nom} <Adresse>{$R/Adresse//text()} </Restau2E> Q3 : Rechercher toutes les valeurs des attributs des restaurants ayant un manager where $R/Manager <RestauAM> {for $A in $R//@* $A} </RestauAM>.1+)*.1+)* Q4 : Noms et téléphones des restaurants situés dans la même ville que l hotel Napoléon, $H in collection("repertoire")/hotel where $R//Ville=$H//Ville and $H//Nom="Napoleon" <RestauHRN> <Nom>{$R/Nom/text()} </Nom> <Tel> {$R/Telephone/text()} </Tel> </RestauHRN> Q5 : nombre de restaurants dans la collection Guide let $R := collection("guide")/restaurant Return <NbRest> {count($r)}</nbrest> Q6 : noms et adresses des restaurants dont la rue contient la chaine «Quai» where contains($r//rue, "Quai") <Res>$R/Nom <Adr>{$R/Adresse//text()} </Adr> </Res> B. Defude - INT Evry - 2003 6

.1+)*.1+)* Q7 : Noms des restaurants par ville for $V in distinct-values (collection ("Guide") /Restaurant/Ville) <Restauparville> <Ville>$V/text()</Ville> <Restaus> { where $R//Ville=$V $R/Nom } </Restaus> </Restauparville> Q8 : Adresse et deuxième prix des restaurants parisiens (pour ceux qui en ont deux) for $R in (for $S in collection("guide")/restaurant where $S/Prix[2] $S) where $R/Ville="Paris" <AdPrix2>{$R/Adresse}{$R/Prix[2]}</Adprix2>.1+)!*.1+)%* Q9 : Nom de chaque restaurant avec le prix moyen proposé let $A := $R//Prix <res> {$R/Nom} <MoyPrix>{avg($A)}</MoyPrix> </res> Q10 : noms et adresses des restaurants ayant au moins un prix supérieur à 200 where some $P in $R/Prix satisfies (number(200)<$p) <RestC>{$R/Nom}{$R/Adresse}</RestC>! % B. Defude - INT Evry - 2003 7

.1+)&* 3",-./0 Q11 : noms et adresses des restaurants ayant tous les prix inférieurs à 100 where every $P in $R/Prix satisfies (number(100)>$p) <RestPC>{$R/Nom}{$R/Adresse}</RestPC> une algèbre a été définie pour Xquery Permet le support d optimisations Assez complexe (sur-ensemble de l algèbre relationnelle) & ' -234. " + Il manque le support des mises à jour dans XQUERY Il existe une proposition mais basée sur XPATH On peut utiliser DOM ou SAX pour faire les mises à jour (mais pas déclaratif) G. Gardarin; XML des bases de données aux services web, 2002, Dunod M. Fernandez, M. Benedikt, J. Freire, A. Sahuguet; XML and Data Management, Tutorial WWW2002 Conference, Hawai D. Chamberlin; Xquery: An XML Query Language, IBM Systems Journal, Vol41, No4, 2002 B. Defude - INT Evry - 2003 8