Professional Documents
Culture Documents
Edb 6
Edb 6
ED
BASES DE DONNEES B6
Partie I : Modélisation Conceptuelle
Exercice I.1
On souhaite mettre en place une Base de données relationnelle assurant la gestion des commandes clients, ainsi que la
gestion de stock des matières premières de l'entreprise Lambda.
- Un client peut passer plusieurs commandes, mais une commande ne concerne qu'un seul client.
- Une commande peut regrouper plusieurs produits, mais un produit peut être référencé dans plusieurs
commandes.
- L'adresse de Livraison est connue au moment de la prise de la commande.
- Les produits finis sont fabriqués à partir de matières premières. La quantité d’une matière première
nécessaire à la fabrication d’un produit fini est définie au niveau du couple Produit fini - Matière première.
- Une matière première peut être délivrée par plusieurs fournisseurs. La quantité en stock matière première est
indépendante des fournisseurs
- Une commande est mise en attente si une des quantités de produits commandés est supérieure à celle du
produit en stock.
Question :
Q1) Déterminer et discuter le modèle conceptuel de données selon les concepts du modèle E-R (Entités – relations).
Exercice I.2
Dans le cadre de mise en œuvre d’une de gestion commerciale, le Concepteur doit définir un Modèle
Conceptuel de Données prenant en compte :
Les deux traitements de référence pour la construction de la base sont la prise de commandes et la
facturation.
Questions
Q1) Compte tenu des règles de gestion, déterminer les entités ainsi que les associations liant les entités entre elles.
Préciser les cardinalités et discuter leurs rôles .
Q2) Proposer pour chaque entité plusieurs attributs (minimum deux) dont un qui doit être l’identifiant de l’entité
Q3) Quels sont les identifiants des associations obtenues en Q1). Justifier la réponse
Question
Q1) Elaborer le schéma relationnel correspondant par application des règles de passage du modèle Conceptuel E-R
au modèle Relationnel. Expliquer la démarche suivie
Exercice II.2
Questions
Q1) Elaborer le schéma relationnel correspondant par application des règles de passage du modèle Conceptuel E-R
au modèle Relationnel.
Pour chaque Relation obtenue, préciser sa clé primaire, sa (ou ses) clé (s) étrangère (s) s’il y a lieu.
2-1) Les clients précisant rarement leur numéro (identifiant) sur les bons de commande. Celui-ci est
recherché à partir de la raison sociale.
Cela vous conduit-il à modifier quelque chose dans le Modèle Conceptuel de Données ? Si oui, quoi ?
Si non , pourquoi ?
Cela vous conduit-il à modifier quelque chose dans les relations du modèle relationnel ? Si oui, quoi ?
Si non , pourquoi ?
2-2) On veut pouvoir éditer, pour une commande donnée, les lignes dans l’ordre de saisie du bon de
commande.
Cela vous conduit-il à modifier quelque chose dans le Modèle Conceptuel de Données ? Si oui, quoi ?
Si non , pourquoi ?
Cela vous conduit-il à modifier quelque chose dans les relations du modèle relationnel ? Si oui, quoi ? Si non ,
pourquoi ?
PROF CLASSE
id_prof id_classe
nb_eleves
nom_prof enseigner
MATIERE
id_MAT
DESIGNATION
Le tableau suivant donne un échantillon représentatif de valeurs observées dans l’association ‘enseigner’.
Questions
Q1) Déterminer les cardinalités minimales et maximales de chaque objet participant à cette association ?
Q2) Déduire le schéma relationnel correspondant à partir du schéma entité-association précédent. Expliquer la
démarche suivie.
Q3) Les relations obtenues précédemment sont-elles toutes en troisième forme normale ? pourquoi ?
dans laquelle
un employé identifié par son numéro ne travaille dans un département (identifié par son numéro) et
n’occupe qu’une fonction,
un employé peut travailler sur plusieurs projets,
plusieurs employés travaillent sur un même projet,
la durée du travail effectué par un employé sur un projet donné doit être toujours multiple de 2 heures,
les employés ayant un âge inférieur ou égal à 30 ans ne peuvent pas occuper la fonction “ conducteur
des travaux ”.
Questions
Q1) Quelles sont les dépendances fonctionnelles existant entre ces attributs ?
Q4) Décomposer la relation R en relations en troisième forme normale (schéma de la base de données) et rappeler
l’intérêt de la normalisation
Questions
Un réseau de voies ferrées est constitué d'un ensemble de lignes identifiées par un numéro (NUMLIGNE). Une ligne
permet de relier une gare de départ (GAREDEP) à une gare terminus (GARETERM). Entre le gare de départ et la gare
terminus plusieurs itinéraires (lignes) sont possibles. Les lignes sont distinguées par la mention "VIA" qui indique la gare
intermédiaire.
Exemples :
- Ligne no. 10 Paris Lyon Via Dijon
- Ligne no. 11 Lyon Paris Via Dijon
- Ligne no. 12 Paris Lyon Via Moulin
- Ligne no.13 Paris Toulouse Via Limoges
- Ligne no. 14 Paris Toulouse Via Capdenac
- …..
Une ligne reliant une gare de départ à une gare terminus dessert également un certain nombre de gares appelées gares de
parcours. A chaque ligne correspond donc une liste de gares parcourues (GAREPARCOURS). Mais comme le réseau est
fortement maillé, une même gare peut se trouver à l'intersection de plusieurs lignes. Par ligne, un numéro d'ordre
(NUMORD) est associé à chaque gare desservie par cette ligne.
Le trafic sur le réseau peut être défini par un ensemble de trains référencés par des numéros (NUMTRAIN) et effectuant
un trajet sur une ligne donnée, avec un horaire déterminé unique : Heure de départ (HEUREDEP) et heure d'arrivée
(HEURE ARR).
Un train circule toujours sur la même ligne. Mais une ligne peut être le trajet de plusieurs trains.
Le même train "physique circule souvent sur la ligne "aller" et sur la ligne "retour", mais au niveau logique il s'agit de
deux trains différents circulant sur deux lignes différentes.
Un train est constitué d'un ensemble de wagons ayant chacun son propre numéro (NUMWAGON), son type
(TYPEWAGON), son poids à vide (POIDSV) et sa capacité (CAPACITE).
Un wagon peut être utilisé dans le temps par plusieurs trains du moment ou sa disponibilité le permet.
(Exemple : le wagon numéro W2456 compose le train T575 avec un départ de Paris à 5h00 et arrivée à Toulouse à 11h00.
Le même wagon compose le train numéro T655 avec un départ de Toulouse à 13h00 et arrivée à Montpellier à 16h00).
Avec
ADI : Adresse d’immeuble
NBETAGES : Nombre d’étages
DATEC : Date (Année) de construction
PROP : Nom du propriétaire
NAP : Numéro d’appartement
TYPE : Type d’appartement (F1, F2, F3,…)
SUPER : Superficie en m2
OCCUP : Nom de l’occupant
ETAGE : Etage de l’appartement
NOM : Nom de personne
AGE : Age
PROF : Profession
ADR : Adresse d’habitation
NAPR : Nom d’appartement d’habitation
NOMEC : Nom d’école
ADEC : Adresse d’école
NBCLASSES : Nombre des classes
DIR : Nom du Directeur
NCL : Numéro de la classe.
MAITRE : Nom du maître
NBEL : Nombre d’élèves
NOMP : Nom de parent
PRENOM : Prénom de l’enfant
AN : Année de naissance de l’enfant
Questions
Q1) Adresses des immeubles ayant plus de 10 étages et construits avant 1970 ?
Q2) Adresses des immeubles possédés par des informaticiens dont l’âge est inférieur à 40 ans,
Q3) Noms des personnes qui ne sont pas propriétaires ?
Q4) Liste des occupants (nom, age, profession) des immeubles possédés par DUPONT,
Q5) Noms des personnes qui habitent dans un immeuble dont ils sont propriétaires,
Q6) Noms et professions des propriétaires d’immeubles où il y a des appartements vides,
Q7) Quels sont les maîtres qui habitent dans le même immeuble qu’au moins u n de leurs élèves (on suppose que les
enfants vivent sous le même toit que leur responsable) ?
Q8) Adresse de l’immeuble, date de construction et types d’appartements et étages où habitent chacun des maîtres des
enfants de DUPONT ?
Q9) Nom et âge des maîtres qui habitent dans un immeuble dont le propriétaire est responsable d’un de leurs élèves ?
Q10) Nom et âge des personnes qui sont propriétaires mais qui ne sont pas ni maître ni directeur d’école ?
NOTA :
Les clés primaires de relations sont soulignées.
Les tables seront représentées dans les requêtes par des lettres (alias) : Oeuvre O, Morceau M, Disque
D, Interprète I, Exécute E.
Questions
select D.*
from D, Total-Disq TD
where D.code-disque = TD.code-disque
and total = (select max(total)
from Total-Disq) ;
A la suite de différents changements, la base de données initialement implantée dans un seul hôpital a évolué et gère
maintenant plusieurs hôpitaux de la région Alsace. Le schéma de la base est devenu le suivant :
Dans ce schéma, le directeur d'un service est un docteur désigné par son numéro. Le numéro de la sale est local à un
service dans un même hôpital (Il y a plusieurs salles numéro 12). Un surveillant de salle est un infirmier désigné par son
numéro. Pour une salle, on connaît son nombre de lits. Docteurs et infirmiers sont des employés. Leur identification en
tant que docteurs ou infirmiers est la même qu'en tant qu'employés.
Questions
Q1 : Exprimez en SQL la requête suivante : "donnez le nom des cardiologues qui ont traités un ou plusieurs patients
hospitalisés dans un service de gérontologie".
Q2: En fait, cette base de données est répartie sur trois sites informatiques correspondant aux valeurs de l'attribut
"hôpital" de la relation Service :
Strasbourg Ambroise-Paré
Colmar Colmar
Proposez et justifiez une bonne décomposition de la base hospitalière sur ces trois sites. Pour cela, utilisez la
décomposition horizontale et/ou verticale ainsi que la réplication, sachant que :
Les sites Strasbourg et Colmar ne gèrent que les hôpitaux correspondants.
Les infirmiers sont employés dans un service donné.
Les docteurs travaillent le plus souvent sur plusieurs hôpitaux ou cliniques.
La gestion des lits d'hôpitaux est locale à chaque hôpital.
On désire regrouper la gestion des frais d'hospitalisation au centre régional.
Pour chaque fragment obtenu, on donnera sa définition sous la forme d'un calcul de l'algèbre relationnelle à partir du
schéma initial (global).
Q3 : Proposez une décomposition et un plan d'exécution répartie possible pour la requête de la question 1.
Q4 : On suppose que l'hôpital de Belfort est attaché à la base de données hospitalières après son implémentation
répartie. L'hôpital de Belfort possède son propre site informatique qui se retrouve donc connecté aux autres sites.
Discutez les problèmes et proposez des solutions pour intégrer la base de Belfort au système réparti déjà défini.
Exercice V-2 :
Une grande entreprise de transactions immobilières a décidé d'implanter son système d'information sur une base de
données relationnelle.
La modélisation du système d'informations a donné le MCD suivant : SECTEUR
0,N
Soumettre
Concerne
Etre
Vente12
0,N
0,N 1,1
CLIENT RECHERCHE
0,1 1,1
0,1 0,N
OFFRE TYPE
1,1 0,N
L'entité "client" concerne les clients ou les prospects de l'entreprise et comporte les propriétés suivantes :
L'entité "recherche" décrit les recherches confiées par les clients à l'entreprise et comporte :
L'entité "secteur" se rapporte aux secteurs géographiques sur lesquels l'entreprise exerce son activité. Elle comporte :
L'entité "Type" concerne les types de recherches ou d'offres (bureaux, magazins, etc.). Elle comporte :
L'association "Concerne" permet de savoir à quels secteurs géographiques correspondent les recherches
Q2.1 Quel schéma de base de données relationnelle proposez-vous ? Justifiez votre réponse en présentant la démarche
suivie.
Q2.2
L'entreprise est organisée en fonction de ses métiers selon les recherches qui peuvent être de plusieurs types :
- bureaux
- magazins
- surfaces industrielles
- habitations en appartement
- habitations en maison
- à Paris Opéra sont gérées les recherches sur les bureaux et les magazins
- au siège sont gérées les recherches sur les surfaces industrielles
- à Paris Clignancourt sont gérées les recherches sur habitations en appartement
- à Versailles sont gérées les recherches sur habitations en maison
- le service études qui s'occupe de la vente et de faire des études de marchés fondées sur les statistiques et les
principaux indicateurs gérés par le système, se trouve à la Défense.
- le service marketing s'occupe de suivre les clients ayant le plus important chiffre d'affaires pour les inviter à
des manifestations de prestige. Ce service ainsi que les autres services de l'entreprise se trouve au siège.
Q2.2.1
Proposez et justifiez une bonne décomposition de la base sur ces différents sites.
Pour cela on pourra utiliser la décomposition (fragmentation horizontale et/ou verticale) ainsi que la réplication.
Pour chaque fragment obtenu, on donnera sa définition sous la forme d'un calcul de l'algèbre relationnelle à partir du
schéma initial (global).
Inversement, on indiquera comment se calcul chaque relation de la base à partir des fragments.
EMP (
idemp CHAR(5) NOT NULL, -- identifiant interne employé
nom CHAR(50) NOT NULL, -- Nom de l’employé
prenom CHAR(50) NULL, -- Prénom de l’employé
danais DATE NOT NULL, -- Date de naissance
villedom CHAR(60) NULL, -- Localité de résidence
salaire NUMBER NULL, -- salaire en cours
datemb DATE NOT NULL, -- date d’embauche
fonction CHAR(15) NULL, -- Fonction dans l’entreprise
idsoc CHAR(5) NOT NULL -- entreprise de rattachement
)
Les clefs primaires sont signalées par des noms de colonne en gras/souligné.
idsoc : Clef étrangère dans la table EMP vers la table SOC.
Questions
Q1) Une requête SQL doit retourner dans un programme le nom de l’employé le plus payé.
a) Parmi les quatre requêtes suivantes, seules deux d’entre elles donnent le résultat souhaité.
Indiquer lesquelles:
1/ select nom from emp where salaire=(select max(salaire) from emp)
2/ select nom,max(salaire) from emp
3/ select nom,max(salaire) group by nom from emp
4/ select nom from emp where salaire >= all (select salaire from emp)
b) Sachant qu’un index a été placé sur la colonne SALAIRE, indiquer parmi les deux requêtes trouvées
dans la question précédente, laquelle est la plus performante.
Justifier votre réponse.
b) Donner l’ordre de création d’une vue permettant de lister les noms d’employés avec le pourcentage de leur
salaire par rapport à la masse salariale globale.
Dans une entreprise du secteur alimentaire, une application de gestion de résultats d'analyses bactériologiques
sur des produits utilise une base de données relationnelle.
Remarques :
Seuls les index des clé primaires sont créés.
Le détail de chaque zone est proposé en annexe.
ADMINISTRATION (lexique)
ANALYSE
- AN-ANNEE : année à laquelle l’analyse a été réalisée,
- AN-NUMERO : numéro d’ordre de l’analyse à l’intérieur d’une année,
- AN-DATE : date à laquelle l’analyse a été réalisée,
- LI-CODE : code du lieu de réalisation de l’analyse,
- PR-CODE : code du produit analysé,
RESULTAT
- AN-ANNEE : année à laquelle l’analyse a été réalisée,
- AN-NUMERO : numéro d’ordre de l’analyse à l’intérieur d’une année,
- CR-CODE : code du critère qui est analysé (ex : BACO1 : bactérie N°1),
- RE-RESULTAT : valeur résultant de l’analyse pour un critère,
- RE-CONCLUSION : conclusion (conforme/non conforme) du résultat en fonction des standards
CRITERE
- CR-CODE : code du critère qui est analysé (ex : BACO1 : bactérie N°1),
- CR-NOM : désignation du critère,
STANDARD
- CR-CODE : code du critère qui est analysé (ex : BACO1 : bactérie N°1),
- PR-CODE : code du produit analysé,
- ST-VALEUR : valeur standard pour un produit et un critère,
LIEU
- LI-CODE : code du lieu de réalisation de l’analyse,
- LI-NOM : désignation du code,
BASE DE DONNEES
Remarque : Tous les programmes travaillant sur la base utilisent des transactions.
Vous venez d'être nommé administrateur de cette base de données. Votre objectif est de résoudre les problèmes
gênant la bonne exploitation de l'application.
Les problèmes perçus par les différents utilisateurs sont les suivants :
Le directeur du laboratoire :
- Un problème matériel sur la machine supportant la base de données a entraîné la perte de jours de saisies car le
redémarrage de la base n'a pu se faire que sur une sauvegarde effectuée en fin de semaine
- Des standards d'analyse ont été modifiés sans l'accord préalable du directeur du laboratoire.
- Le directeur souhaite une accès facile à touts les analyses de la journée en cours, avec leurs résultats.
Le directeur de la qualité :
- Il désire suivre l'évolution de la qualité des produits en listant régulièrement touts les analyses dont la
conclusion est 'NON-CONFORME'.
- Actuellement le directeur de la qualité utilise des requêtes SQL qui lui semblent compliquées et dont il se
plaint de la lenteur.
Les laborantins :
- A chaque édition d'une analyse, il faut ajouter manuellement le numéro de lot du produit sur le listing. Ce
numéro n'est connu qu'au moment où un laborantin effectue l'analyse.
- Le traitement de saisie des résultats faisant appel à toutes les tables par jointure, a de mauvais temps de
réponse.
- Lors de la saisie du résultat d'une analyse, il est possible de saisir par inadvertance un critère qui n'existe pas.
- Tous les vendredis, un programme purge la base des analyses dont la date est antérieure à un AN? Ce
traitement est de plus en plus long.
Q1) Identifiez les problèmes en terme de base de données et proposez une liste (non détaillée) des
actions à mener en les justifiant.
Q2) Pour chaque action proposée précédemment, détaillez leur mise en œuvre, au besoin en utilisant
des ordres SQL.
Exercice VI - 3
Supposons que nous ayons à effectuer la jointure entre les tables R1 (10000 tuples) et R2 (1500 000 tuples)
selon les prédicats R1.A = R2.B où A est la clé primaire de R1 et B est une clé étrangère dans R2. B dans R2
a 5000 valeurs distinctes. Exposer les différentes méthodes d’exécution des jointures pouvant être utilisées
par les SGBDR et illustrer par un calcul simple la méthode que vous jugez la plus efficace (performante).
Exercice VI - 4
Concurrence d'accès :
Deux transactions T1 et T2 s'effectuent sur la base de données pounr modifier des informations contenues sans les tables.
Elles effectuent les opérations suivantes :
TRANSACTION T1 TRANSACTION T2
T11 Lire A T21 Lire B
T12 Lire B T22 Lire A
T13 Lire C T23 Ecrire B = B + A
T14 Ecrire A = B + C
T15 Ecrire C = B
Questions :
Q1) En l'absence d'un mécanisme de contrôle de concurrence d'accès, exposez les situations
d'incohérence pouvant survenir.
Montrez les résultats possibles en prenant l'hypothèse suivante : A=100, B=300 et C=500.
Q2) En cas de panne ou d'annulation d'une transition en cours, présentez un déroulement des
transactions qui mène à une situation incohérente.
Q3) Avec un mécanisme de contrôle de concurrence, quelles sont les valeurs prises par A, B et C
après la complète exécution de ce deux transactions ?
Q4) L'unité d'accès aux bases de données est la 'granule'. A votre avis, qu'elle est la meilleure taille de
cette unité ?
On souhaite gérer le planning d'un centre de formation à l'aide d'une base de données relationnelle.
On dispose des informations suivantes :
Questions :
Q1) Déterminer le schéma relationnel en troisième forme normale de cette base de données et expliquer la
démarche suivie.
Q2) La direction du centre décide de décentraliser la gestion des stages sur trois agences Paris, Lille et
Nantes.
Proposer et justifier une bonne décomposition de cette base de données sur ces trois sites. Pour cela on
pourra utiliser la décomposition horizontale et/ou verticale ainsi que la réplication (duplication),
sachant que :
- L’agence de Lille est responsable de la planification des stages du domaine “Droit International” et de
la synchronisation des interventions des enseignants (un professeur peut intervenir sur plusieurs stages).
pour chaque fragment obtenu, on donnera sa définition sous la forme d’un calcul de l’algèbre relationnelle à
partir du schéma initial (cf. Q1).
Inversement, on indiquera comment se calcule chaque relation de la base à partir des fragments.
Q3) Doit-on définir pour cette base de données des contraintes d'intégrité référentielles ou autres
(déclaratives) ? si oui lesquelles ? Justifier votre réponse.
Q4) Indiquer les index dont la création vous semble indispensable. Justifier votre réponse et détailler le rôle
des index.
Q5) Déceler de ce schéma relationnel les différentes contraintes d’intégrité (déclaratives et référentielle)
devant être prises en compte lors de l’implémentation physique de la base de données. Justifier votre
réponse et expliquer les différentes manières de programmer les contraintes d’intégrité référentielles.