Examen réparti du 18 décembre 2009



Documents pareils
BD et XML : Exercices

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

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

AdressePostale 1.2 Description d une adresse postale 16/01/2004

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

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

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

Master d Informatique Corrigé du partiel novembre 2010

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

A QUOI SERVENT LES BASES DE DONNÉES?

XML : documents et outils

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

DÉBUTER AVEC LES RÉSEAUX SOCIAUX

Olivier Mondet

TP Bases de données réparties

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

<?xml version="1.0" encoding="iso " standalone="yes"?>

ech-0148 Motifs d annonce Entreprises - taxes de domaine

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

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

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

1 Position du problème

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

PUSH MSISDN MODE MAIL 2 SMS

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

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


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

Bases de données et sites WEB

CxF - Color exchange Format - Format d'échange de teintes. Le langage universel pour communiquer les teintes de manière numérique.

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

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Créer un compte personnel ou professionnel Facebook

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

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

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

CREATION WEB DYNAMIQUE

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Bases de données relationnelles

Gestion de base de données

Gestion Électronique de Documents et XML. Master 2 TSM

Système d Analyse des Commandes : Dispositif Technique

< Atelier 1 /> Démarrer une application web

SYSTÈMES D INFORMATIONS

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

PARTIE NUMERIQUE (18 points)

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)

Le front office (utilisateur client):

A QUOI SERVENT LES BASES DE DONNÉES?

Comment faire son pré-enregistrement en ligne avec Holland America Line

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Développement Web - Object Relational Mapping and Hibernate

2. Gérer son profil : Stage mensuel Février 2013 Page 1 / 9 Partagez vos photos sur le web

MODE D EMPLOI

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

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

ÉTUDE DE CAS. Durée : 5 heures Coefficient : 5 CAS FEFORT ÉLÉMENTS DE CORRECTION

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

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

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

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Structure fonctionnelle d un SGBD

Thème : Gestion commerciale

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Comment obtenir un identifiant PIC? Mode d emploi

Compétences Business Objects

La base de données dans ArtemiS SUITE

Migration des données du site ENKI

CRÉER UNE PAGE FACEBOOK POUR SON INSTITUTION

PHP 5. La base de données MySql. A. Belaïd 1

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

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

Notes de cours : bases de données distribuées et repliquées

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Les Utilisateurs dans SharePoint

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

SQL Historique

Objectifs du TP : Initiation à Access

WDpStats Procédure d installation

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

Gestion des utilisateurs et de leurs droits

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

Je sais utiliser. Création d une galerie photo pour un site Web. Picasa crée les documents. HTML pour insérer une galerie de photos dans un site web

Partie 0 : Gestion des tablespace et des utilisateurs... 3

EXCEL TUTORIEL 2012/2013

Installation d'un serveur FTP géré par une base de données MySQL

SUPPORT DE COURS / PHP PARTIE 3

CAHIER DES CHARGES Version 0.4. Cahier des charges Openvet 0.4 Page 1

SQL Server et Active Directory

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

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Savoir- Faire Offres mé1ers Offres technologiques

Tutoriel d installation de Hibernate avec Eclipse

Transcription:

Modélisation Avancée des Bases de Données page 1 Examen réparti du 18 décembre 2009 Les documents sont autorisés Durée : 2h. Répondre aux questions sur la feuille prévue à cet effet dans les cadres appropriés. La taille des cadres suggère celle de la réponse attendue. Utiliser le dos de la feuille précédente si la réponse déborde du cadre. Le barème est donné à titre indicatif. La qualité de la rédaction sera prise en compte. Ecrire à l encre bleue ou noire. Ne pas dégrafer le sujet. Exercice 1 : Questions diverses Question 1. Les instructions SQL3 suivantes sont-elles correctes? Si une instruction n est pas correcte, dites laquelle et expliquez pourquoi. create type A as object (C number) ; create type B under A (D number); create table T of A; insert into T values(b(10,20)); select x.d from T x; Question 2. Complétez les instructions SQL3 suivantes en remplissant les pointillés create type A as object (d number); create type C as table of A; create type B as object( a1 number, a2 C); create type D as object( d1 number, d2 B, d3 C); create table T of D. Question 3. Les requêtes R1 à R4 sont effectuées sur le schéma de la question 2. Pour chacune d elle, indiquez si elle est correcte ou incorrecte. Lorsqu une requête n est pas correcte, justifiez votre réponse. R1 : select x.d3.d from T x; R2 : select y.d from T x, table(x.d3) x2; R3 : select x.d2.a1, max(y.d) from T x, table(x.d3) x2 group by x.d1, x.d2.a1; R4 : select x.d2.a1, max(y.d) from T x, table(x.d3) x2 group by x; Question 4. Dans la suite, tout élément dont la définition n est pas précisée, contient (#PCDATA) 1. Répondez par VRAI ou FAUX aux questions suivantes : «Un élément vide n a jamais d attribut». 2. Tout élément x conforme à la définition <!ELEMENT x (a b)*> est aussi conforme à la définition <!ELEMENT x (a?,b?)*> Question 5. 1. Donner le plus petit élément x conforme à la définition <!ELEMENT x ((a,(a? b)+)*, (c (a,b+)?)+)> 2.Donner l élément x, conforme à la définition, qui contient le plus grand nombre d éléments. <!ELEMENT x ((a,((a,a)? b))?, (c (a,b)?)?)>

Lettres initiales du Prénom et du Nom: page 2 Exercice 2 : XSchema Question 1 : Les affirmations suivantes sont-elles exactes? Justifier. 1a) L élément <simple Type= yes /> est de type simple (i.e. simpletype). 1b) Il est impossible de restreindre un type complexe avec une facette. Cette phrase est-elle exacte? Question 2 : Soit la définition suivante : <xs:simpletype name="u"> <xs:restriction base="xs:string"> <xs:enumeration value="ko"/> <xs:enumeration value="mo"/> <xs:enumeration value="go"/> </xs:restriction> </xs:simpletype> <xs:complextype name="t"> <xs:simplecontent> <xs:extension base="xs:negativeinteger"> <xs:attribute name="m" type="u"/> </xs:extension> </xs:simplecontent> </xs:complextype> <xs:element name="a" type="t"/> Donner un exemple d élément XML nommé A et conforme à cette définition. Question 3 : Dans le schéma de XSchema, le terme attribute est défini comme : a) un type simple b) un attribut c) un élément de type complexe d) un élément de type simple e) un type complexe Question 4 : Dans le schéma de XSchema, quelles sont les valeurs des attributs use et default dans la définition de l attribut maxoccurs d un élément element? Question 5 : On donne la DTD suivante : <!ELEMENT base (restau reduc)*> <!ELEMENT restau (menu)*> <!ATTLIST restau num ID #REQUIRED> <!ATTLIST restau nom CDATA #REQUIRED> <!ATTLIST restau ville CDATA #REQUIRED> <!ELEMENT reduc EMPTY> <!ATTLIST reduc restau IDREF #REQUIRED> <!ATTLIST reduc menu CDATA #REQUIRED> <!ATTLIST reduc remise CDATA #REQUIRED> <!ATTLIST reduc code CDATA #REQUIRED> <!ELEMENT menu EMPTY> <!ATTLIST menu num CDATA #REQUIRED> <!ATTLIST menu nom CDATA #REQUIRED> <!ATTLIST menu prix CDATA #REQUIRED> <!ATTLIST menu tva_baisse (oui non) "non"> 5a) Compléter la définition suivante pour déclarer que la clé d un menu est composée du numéro de menu et du numéro de restau. <xs:element name="base" type="basetype"> <xs:key name="idmenu"> <xs:selector xpath=" "/> </xs:key> </xs:element> 5b) Compléter la définition pour définir la contrainte de référence suivante : les bon de réduction concernent un menu existant dans le document. <xs:element name="base" type="basetype"> <xs:keyref name=" " refer =" "> <xs:selector xpath=" "/> </xs:keyref> </xs:element> 5c) Que faut-il modifier dans les définitions ci-dessus pour exprimer que seuls les menus marqués tva en baisse peuvent bénéficier d une réduction?

Lettres initiales du Prénom et du Nom: page 3

Lettres initiales du Prénom et du Nom: page 4 Exercice 3 : XPath On considère les fichiers facebook.dtd et facebook.xml suivants : Facebook.dtd <?xml version="1.0" encoding="iso-8859-1"?> <!ELEMENT facebook (users)> <!ELEMENT users (user*)> <!ELEMENT user (name, friends?, albums?)> <!ATTLIST user id ID #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT friends (friend*)> <!ELEMENT friend (details?)> <!ATTLIST friend user IDREF #REQUIRED> <!ELEMENT details (#PCDATA)> <!ELEMENT albums (album*)> <!ELEMENT album (name, location, photos)> <!ATTLIST album id CDATA #REQUIRED> <!ELEMENT location (#PCDATA)> <!ELEMENT photos (photo*)> <!ELEMENT photo (name, tags?)> <!ATTLIST photo id CDATA #REQUIRED> <!ELEMENT tags (tag*)> <!ELEMENT tag EMPTY> <!ATTLIST tag user IDREF #REQUIRED>?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE facebook (View Source for full doctype...)> <facebook> <users> <user id="u1"> <name>bernd Amann</name> <friends> <friend user="u3" /> <friend user="u2" /> <albums> <album id="21"> <name>vacances</name> <location>vienne</location> <photos> <photo id="31"> <name>00001.jpg</name> <tags> <tag user="u3" /> <tag user="u4" /> <photo id="33"> <name>00003.jpg</name> <tags> <tag user="u3" /> </photos> </album> </albums> - <user id="u2"> <name>anne Doucet</name> - <friends> <friend user="u4" /> - <user id="u3"> <name>stéphane Gançarski</name> - <friends> <friend user="u1" /> <friend user="u4" /> - <albums> - <album id="20"> <name>lycée</name> <location>paris</location> - <photos> - <photo id="50"> <name>00201.jpg</name> - <tags> <tag user="u3" /> - <photo id="51"> <name>00202.jpg</name> - <tags> - <photo id="53"> <name>00203.jpg</name> - <tags> </photos> </album> </albums> - <user id="u4"> <name>hubert Naacke</name> - <friends> <friend user="u3" /> <friend user="u1" /> </users> </facebook>

Modélisation Avancée des Bases de Données page 5 Ecrivez en XPath les requêtes suivantes : On précise Que la relation friend n est pas symétrique. On dit que A est ami de B si A figure dans l éléments <friends> de B Les photos sont toutes tagguées par leur propriétaire On rappelle la définition de la fonction id() : Si un élément A (resp. B) possède un attribut @att1 de type IDREF (resp. @att2 de type ID), id(@att1) renvoie l élément A tel que @att1=@att2. 1. Nom des Amis en commun entre Stéphane et Hubert (réponse Bernd) 2. Quel(s) collègue(s) de Bernd n'est pas ami avec Bernd (réponse Hubert) 3. Qui a taggué au moins un ami (réponse Bernd) 4. Qui a été taggue par au moins un ami (réponse : Stéphane et Hubert) 5. Combien de photos ont été prises par les amis de Bernd (réponse : 3) Exercice 4 : XQuery Exprimez en XQuery les requêtes suivantes sur le fichier facebook.xml. 1. Pour chaque personne, donner son nom et le nom de ses amis. Le résultat doit être : <user name="bernd Amann"> <ami><name>stéphane Gançarski</name></ami> <ami><name>anne Doucet</name></ami> <user name="anne Doucet"><ami><name>Hubert Naacke</name></ami> <user name="stéphane Gançarski"> <ami><name>bernd Amann</name></ami> <ami><name>hubert Naacke</name></ami> <user name="hubert Naacke"> <ami><name>stéphane Gançarski</name></ami> <ami><name>bernd Amann</name></ami> 2. Pour chaque photo, lister le nom des personnes tagguées. Le résultat doit être : <photo id="31"> <tag name="stéphane Gançarski"></tag> <tag name="hubert Naacke"></tag> <photo id="33">

Lettres initiales du Prénom et du Nom: page 6 <tag name="stéphane Gançarski"></tag> <tag name="anne Doucet"></tag> <photo id="50"> <tag name="anne Doucet"></tag> <tag name="stéphane Gançarski"></tag> <photo id="51"><tag name="anne Doucet"></tag> <photo id="53"><tag name="anne Doucet"></tag> 3. Liste des photos avec leur id, le nom de leur album et le nom de l'utilisateur qui possède la photo. Le résultat doit être : <photo id="31" album="vacances"> <owner nom="bernd Amann"></owner> <photo id="33" album="vacances"> <owner nom="bernd Amann"></owner> <photo id="50" album="lycée"> <owner nom="stéphane Gançarski"></owner> <photo id="51" album="lycée"> <owner nom="stéphane Gançarski"></owner> <photo id="53" album="lycée"> < owner nom="stéphane Gançarski"></owner> 4. Lister le nom des personnes tagguées sur plus de deux photos. Le résultat soit être : <user nom="anne Doucet"> <user nom="stéphane Gançarski">