Modèle entité-association 4pts

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

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

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

A QUOI SERVENT LES BASES DE DONNÉES?

TP Contraintes - Triggers

Bases de données avancées Introduction

I4 : Bases de Données

Bases de données relationnelles

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

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

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

Le Langage SQL version Oracle

Les bases de données

Le Langage De Description De Données(LDD)

Langage SQL : créer et interroger une base

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

.../5. Gestion de Bases de Données (J. Wijsen) 27 janvier 2011 NOM + PRENOM : Orientation + Année : Cet examen contient 8 questions. Durée : 2 heures.

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

UML et les Bases de Données

Bases de Données. Plan

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données et sites WEB

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

Création et Gestion des tables

TP Bases de données réparties

Bases de données réparties: Fragmentation et allocation

1 Position du problème

Gestion des transactions et accès concurrents dans les bases de données relationnelles

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

Bases de Données Avancées

1 Introduction et installation

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

Évaluation et optimisation de requêtes

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

SQL Historique

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

INTRODUCTION AU DATA MINING

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

Bases de données élémentaires Maude Manouvrier

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

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

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

CREATION WEB DYNAMIQUE

Intégrité des données

Introduction aux Bases de Données

16H Cours / 18H TD / 20H TP

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

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

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

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

Le langage SQL Rappels

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

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

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

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

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

Intégrité sémantique dans les bases de données relationnelles

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)

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

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

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

BD et XML : Exercices

Vincent Augusto

Encryptions, compression et partitionnement des données

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

Chapitre 10. Architectures des systèmes de gestion de bases de données

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

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

Le langage SQL (première partie) c Olivier Caron

Information utiles. webpage : Google+ : digiusto/

AGRÉGATION «ÉCONOMIE ET GESTION»

OpenPaaS Le réseau social d'entreprise

Compétences Business Objects

Introduction aux SGBDR

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

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Dossier I Découverte de Base d Open Office

Rappel sur les bases de données

Bases de données cours 1

Optimisations des SGBDR. Étude de cas : MySQL

Compte-rendu de projet de Système de gestion de base de données

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Structure fonctionnelle d un SGBD

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

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

Bases de données. PTSI Lycée Eiffel. 28 février 2014

Bases de données - Modèle relationnel

Cours Bases de données

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

II. Modèle conceptuel le modèle entité-association

Transcription:

Examen NFP 107 septembre 2009 Sujet 1 3H documents autorisés Enseignant : Christine Plumejeaud Modèle entité-association 4pts Une agence immobilière voudrait créer une base de données pour la gestion des biens immobiliers mis à sa disposition et pour l exploitation statistique et/ou fiscale des informations accumulées. Pour chaque logement, on possède plusieurs informations : l adresse, le nom du propriétaire, le type (maison/appartement), le nombre de pièces constituant, la superficie habitable, l état d habitation (neuf, bon état, très bon état, mauvais état), prix de mise en vente, la date de disponibilité, la ville. Chaque propriété peut avoir zéro, un ou plusieurs garages, identifés par un numéro. Ces derniers sont caractérisés par le type (box, emplacement numérotés, etc.) et dans certains cas peuvent avoir des adresses différentes de celle de la propriété. Un logement peut être vendu ou acheté par une personne caractérisée par son nom et son adresse de contact. Pour chaque transaction de vente, l agence touche une commission qui correspond à un pourcentage du prix de vente (qui est composé d une valeur fixe de 1000 euros à laquelle on additionne entre 3 et 5% en fonction de la négociation). L agence organise et gère également les visites des propriétés que les acheteurs potentiels (cliens) pourraient réclamer, en conservant les dates des visites. Pour les besoins d exploitation fiscale, l agence souhaite garder la trace du montant total de chaque transaction de vente effectuée (prix de vente) ainsi que la somme des commissions. Question 1) (1 point) Donner une représentation Entité-Association de l agence. On introduira un identifiant unique pour la propriété 2) (1 point) Expliciter les cardinalités entre les entités. 3) (1 point) Définissez un modèle relationnel en intention à partir de ce schéma. 4) (1 point) Soulignez les clés primaires, et indiquez les clés étrangères (en indiquant les attributs et tables référencées) Réponses 1)2) Propriété N prop Adresse Type nbpièces superficie état prixmiseenvente datedispo Ville 1,1 vend 1,N 1,N Visite date 1,N 1,N 1,1 achète prix 1,1 Personne Nom AdresseContact Vente CommissionBase Pourcentage TotalCommission 0,N possède 1,1 Numéro Type adresse Garage

3) Propriété (n prop, adresse, Type, nbpièces, superficie, état, prixmiseenvente, datedispo, Ville, NomVendeur) Personne (Nom, adressecontact) Vente (n prop, NomAcheteur, prix, CommissionBase, Pourcentage, TotalCommission) Garage(n prop, n garage, adresse, type) Visite(n prop, NomVisiteur, date) 4) NomVendeur de la table Propriété est une clé étrangère sur l attribut Nom de la table Personne. NomAcheteur de la table Vente est une clé étrangère sur l attribut Nom de la table Personne. NomVisiteur de la table Visite est une clé étrangère sur l attribut Nom de la table Personne. N prop de la table Vente référence l attribut n prop de la table Propriété N prop de la table Garage référence l attribut n prop de la table Propriété N prop de la table Visite référence l attribut n prop de la table Propriété Algèbre relationnelle et requêtes SQL 7 pts Soit les deux relation EMP et DEPT suivantes : EMP (ENO, ENOM, PROF, DATEEMB, SAL, COMM, DNO) ENO : numéro d employé, clé ENOM : nom de l employé PROF : profession (directeur n est pas une profession) DATEEMB : date d embauche SAL : salaire COMM : commission (un employé peut ne pas avoir de commission) DNO : numéro de département auquel appartient l employé DEPT (DNO, DNOM, DIR, VILLE) DNO : numéro de département, clé DNOM : nom du département DIR : numéro d employé du directeur du département VILLE : lieu du département (ville) A l aide du langage SQL, exprimez les requêtes suivantes : Questions 1) (1 point) Lister les employés ayant des revenus supérieurs à 10000 euros 2) (1 point) Trouver le nom et la profession de l employé numéro 10 3) (1 point) Lister les noms des employés qui travaillent à Paris 4) (1 point) Trouver le nom du directeur du département Commercial. 5) (1 point) Identifier les contraintes d intégrité du schéma (clé primaire et étrangère, NULL AUTORISÉS OU NON, etc.). À votre avis, l insertion ou la mise à jour de tuples dans cette base doit-elle se faire dans une transaction où les contraintes d intégrités seront vérifiées seulement à la fin de l enregistrement (COMMIT), ou bien peuvent-elles être vérifiées tout de suite? Justifier. 6) (2 point) Donner les instructions SQL complètes pour la création des tables EMP et DEPT (contraintes d intégrité incluses). Réponses 1) SELECT ENO, ENOM FROM EMP WHERE SAL > 10000 ; 2) SELECT ENO, ENOM, PROF FROM EMP WHERE ENO=10 ;

3) SELECT ENOM FROM EMP WHERE DNO IN ( SELECT DNO FROM DEPT WHERE VILLE= Paris ) ; 4) SELECT ENOM FROM EMP WHERE ENO = ( SELECT DIR FROM DEPT WHERE DNOM= Commercial ) ; 5) ENO est une clé primaire pour la relation EMP. DNO est une clé étrangère de la relation EMP qui référence l attribut DNO de la table DEPT. DNO est une clé primaire de la table DEPT. DIR est une clé etrangère de la table DEPT qui référence l attribut ENO de la table employé. Il faut que les contraintes d intégrités soient contrôlées seulement à la fin de l enregistrement car il existe une référence cyclique entre les 2 tables. Par exemple, si on insère un employé, il doit référencer un département, qui lui même doit référencer un employé par la clé DIR. Il vaut mieux donc utiliser le mot DEFERRABLE. 6) CREATE TABLE EMP ( ENO NUMBER PRIMARY KEY, ENOM CHAR(30) NOT NULL, PROF CHAR(30) NOT NULL, DATEEMB DATE NOT NULL, SAL NUMBER NOT NULL, COMM NUMBER DEFAULT NULL, DNO NUMBER FOREIGN KEY (DNO) REFERENCES DEPT(DNO) ON INSERT DEFERRABLE ON UPDATE DEFERRABLE ) CREATE TABLE DEPT ( DNO NUMBER PRIMARY KEY, DNOM CHAR(30) NOT NULL, DIR NUMBER, VILLE CHAR(30) NOT NULL, FOREIGN KEY (DIR) REFERENCES EMP(ENO) ON INSERT DEFERRABLE ON UPDATE DEFERRABLE ) Index 2pts Cet index est implanté par un arbre B+ d ordre 2 vu en cours (ordre lexicographique ascendant). Rappel : un arbre d ordre k admet au plus 2k clés dans ses nœuds, et au moins k clés dans ses nœuds (excepté pour la racine qui peut accepter de 1 à 2k clés). Voici la liste des intitulés : Algorithmique, BD, Automates, Programmation, Vari, Réseaux, Architecture, Java, Internet, XML, Théorie, SI, UML, Génie Logiciel, Informatique Industrielle, Informatique Artificielle, Recherche Opérationnelle, Conception Réponse IA Automates, Conception, Internet, Programmation, RO, Théorie Algo Archi Automates BD Conception Génie Logiciel IA II Internet Java Programmation Reseaux RO, SI, Théorie UML Vari, XML

Optimisation 7 pts Dans le cadre de la réforme de la sécurité sociale, le gouvernement veut créer un «dossier médical partagé» qui permettra en quelques minutes au médecin de savoir tous les actes médicaux, tous les traitements mais aussi tous les antécédents d un patient. La gestion de tels dossiers peut être facilitée par un SGBD relationnel avec le schéma simplifié suivant (les attributs clés primaires sont soulignés). - Personne(Noss, Nom, Prenom, Adresse) - Consultation(NoCons, Date, Symptome, NossPat, NossMed) - Prescription(NoCons, NomMed) - Medicament(NomMed, NomSubst, Prix) Une personne (patient ou médecin) a un numéro de sécurité social (Noss), un nom, un prénom, et une adresse. Chaque consultation a un numéro unique (NoCons), une date, le numéro de sécurité sociale du patient et du médecin, ainsi que le symptôme du patient (nous supposons que chaque patient n a qu un seul symptôme au moment d une consultation). Les médicaments prescrits après une consultation sont stockés dans la table Prescription (un traitement est composé de toutes les prescriptions associées à la même consultation). Pour chaque médicament, on connaît son nom, la substance active et le prix. Questions 1) (2 points) On cherche les noms des patients avec une toux sèche et les noms des médicaments prescrits : a. exprimez cette requête en algèbre relationnelle. b. exprimez cette requête en langage SQL 2) (1 point) On cherche les noms des patients qui ont consulté deux médecins différents pour une toux sèche le même jour : exprimez cette requête en langage SQL. 3) (2 points) Donner sous forme arborecente le plan d exécution logique de la requete 1) (noms des patients avec une toux sèche et les noms des médicaments prescrits) si on suppose que chaque table est indexée sur sa clé primaire ou les composantes de sa clé primaire, et expliquez en détails le déroulement du plan. 4) On ajoute un index sur la table Consultation sur l attribut «Symptôme». a. (1 point) Donner la commande permettant de créer cet index en SQL b. (1 point) Préciser le changement dans le plan d exécution par quelques explications. Réponses 1) a) π Nom, NomMed (σ Symptôme = Toux seche c ((Consultation(NoCons = NoCons) * Prescription) (NossPat=Noss)* Personne)) 1) b) SELECT Nom, NomMed FROM Consultation, Prescription, Personne

WHERE Symptome= Toux seche AND NossPat=Noss AND Consultation.NoCons=Prescription.NoCons 2) SELECT P.Nom FROM Consultation A, Consultation B, Personne P WHERE A.Date=B.Date AND A.NossPat=B.NossPat AND A.NossMed<> B.NossMed AND A.Symptome= Toux seche AND B.Symptome= Toux seche and P.Noss = A.NossPat 3) L algorithme est une double boucle impriquée (on a deux jointures). Le système commence par un un parcours séquentiel de la table Consultation pour faire la sélection toux sèche. Pour chaque n-uplet retenu, la valeur de l attribut NossPat est projetée. Elle servira pour la seconde jointure. La valeur de l attribut NoCons sert de clé d accès à l index sur la table Prescription sur l attribut NoCons (première jointure entre Consultation et Prescription). La traversée de l index donne un rowid unique de Prescription. L accès par rowid à la table prescription donne un nuplet. On projète sur l attribut NomMed. Pour chaque n-uplet obtenu, la valeur de l attribut NossPat sert de clé d accès à l index sur Noss de la table Personne (seconde jointure). La traversée de l index donne un rowid de Personne. Le n-uplet de la table Personne est obtenu par accès direct. On projète sur l attribut Nom. Nom, NomMed Projection Jointure NomMed, NossPat Projection adresse Personne jointure NoCons Index Personne(Noss) Symptome= Toux seche selection adresse Prescription séquentiel Consultation NoCons Index Prescription(NoCons)

4) a) CREATE INDEX idx_symptome ON Consultation(Symptome) b) On remplace le premier parcours séquentiel pour sélectionner les consultations avec pour symptôme toux sèche par une traversée d index et un accès direct.