Exercices de conception des bases de données
Exercice 1
Un fan de rock souhaite créer un site consacré à ses groupes préférés. Il doit donc tenir l'inventaire
des disques, avec pour chacun d'eux le titre, l'artiste, le label et l'année. En ce qui concerne les
groupes et les musiciens, une analyse fine montre que le problème est redoutable - on se contentera
ici d'une approche simple.
On traitera successivement de deux hypothèses :
1. la discothèque ne comprend aucune compilation de différents artistes
2. la discothèque comprend des compilations
Etablir le MCD et le MLD dans ces deux cas.
Exercice 2
Un comité d'entreprise souhaite gérer les informations concernant les enfants de ses salariés. Un
employé a réalisé le tableau suivant :
Nom et prénom Enfant Âg Enfant Âg Enfant
Adresse Âge
employé 1 e 2 e 3
DURAND Albert 3, rue de la Mare - 03000 Moulins Martin 13
12, boulevard Victor Hugo - 03000
LACOMBE Josette Sylvie 10 Camille 8 Nathan 4
Moulins
MARTIN Roger 64, avenue de la gare - 03400 Yzeure Marc 11 Cindy 9
etc.
Quelles critiques peut-on adresser à cette solution ? Quelles propositions peut-on faire pour adopter
une solution plus adéquate ?
Exercice 3
Une casse automobile souhaite gérer son stock de pièces. Chaque pièce est identifiée par une
référence, une catégorie (carosserie, mécanique, électricité, etc.), une date de récupération et un prix
de vente. On souhaite également pouvoir établir une correspondance entre les pièces et les véhicules
pour lesquels elles conviennent, ces véhicules étant repérés par marque, modèle et année.
Etablir le MCD adéquat dans les deux hypothèses suivantes :
1. toutes les pièces d'une même référence possèdent un prix unique
2. chaque pièce possède un prix propre.
Etablir le MCD et le MLD dans ces deux cas.
Exercice 4
Une bibliothèque de prêt dispose d'un certain nombre d'ouvrages, classés par rayon (Littérature,
Histoire, Géographie, etc.). Chaque ouvrage est l'oeuvre d'un ou plusieurs auteurs, et doit également
être référencé selon un certain nombre de mots-clés.
Chaque adhérent peut emprunter jusqu'à 5 livres en même temps, et dispose d'un certain délai passé
lequel il doit recevoir des relances puis des pénalités.
On se place dans quatre cas successifs, de complexité croissante :
1. la bibliothèque ne possède qu'un seul exemplaire de chaque ouvrage. Elle enregistre
uniquement les emprunts présents (il n'y a pas d'historique des emprunts passés).
2. la bibliothèque ne possède qu'un seul exemplaire de chaque ouvrage, mais elle tient un
historique de tous les emprunts qui ont été effectués.
3. la bibliothèque tient un historique... et elle est maintenant susceptible de posséder plusieurs
exemplaires de certains ouvrages
4. en plus de cela, il existe une bibliothèque centrale et des antennes locales. Chaque antenne
possède un fonds qui lui est propre, et peut de surcroit se procurer certains ouvrages auprès
de la bibliothèque centrale (mais pas d'une autre bibliothèque locale). Tout adhérent peut
automatiquement emprunter des ouvrages dans toutes les antennes locales.
Etablir le MCD et le MLD adéquats dans les quatre cas.
Exercice 5
Un historien souhaite établir des statistiques sur des soldats de la Première Guerre mondiale. Pour
chaque soldat, outre l'état-civil, il souhaite avoir la trace :
• de la date de son décès si celui-ci est survenu suite aux combats
• des blessures reçues (type et date de la blessure, en plus de la bataille où elle a été infligée. Les
batailles seront référencées dans une liste comportant le lieu, les dates de début et de fin)
• des grades obtenus (avec les dates)
• de l'unité de rattachement (avec les dates)
Etablir le MCD et le MLD adéquats.
Exercice 6
Un club sélect désire informatiser le fichier de ses membres. Pour chacun d'eux, outre les informations
d'état-civil ordinaires, on souhaite tenir à jour les commissions de rattachement et en tenir l'historique
(il existe une liste de commissions, et chaque membre peut librement intégrer - et quitter - autant de
commissions qu'il le souhaite).
Par ailleurs, le recrutement du club fonctionne sous forme de parrainage : un membre ordinaire ne
peut le rejoindre que s'il a été parrainé par trois autres membres. On souhaite là aussi conserver
l'historique, et pouvoir retrouver qui a parrainé qui et à quelle date. Certains membres n'ont
cependant jamais été parrainés : ils sont qualifiés de "fondateurs".
Etablir le MCD et le MLD adéquat.
Exercice 7
Un aquarium souhaite gérer ses petites bêtes. Il dispose pour cela de plusieurs bassins, répartis dans
plusieurs pièces. Des animaux de différentes espèces sont achetés, immatriculés, et disposent d'un
suivi médical personnalisé - on garde donc la trace de la date et de la nature des soins dont ils
bénéficient. Les animaux sont mélangés dans les bassins, et il arrive qu'on les déplace - là encore, on
souhaite savoir à quelle date un animal donné a quitté tel bassin pour être placé dans tel autre.
Les biologistes classent les animaux selon une arborescence à quatre niveaux. De plus général au
particulier : ordre, famille, genre, espèce. Il va de soi que chaque animal de l'aquarium doit être
correctement identifié dans cette arborescence.
Etablir le MCD et le MLD adéquats.
Exercice 8 (difficile)
On reprend le problème de la CDthèque, en s'attelant cette fois pour de bon à la question des artistes
ayant signé les disques. Un disque peut avoir été signé par un groupe, par un individu, ou par
plusieurs. Les groupes sont naturellement formés d'individus, dont on note de surcroît quels
instruments ils jouent. Et en plus, sur un CD, il peut y avoir des guest-stars, qui sont venus jouer sans
pour autant être signataires du disque. Pour ajouter à la difficulté, un même individu peut à la même
époque avoir participé à un (ou plusieurs) groupes, et avoir collaboré à un (ou plusieurs) disques en
tant qu'invité. Bref, il faut prévoir toutes les situations posibles et pouvoir restituer toutes les
informations, qu'elles soient relatives aux disques, aux groupes, à leurs membres, à l'historique de
chaque instrumentiste, etc.
Etablir le MCD et le MLD adéquat.
On réalisera deux versions successives de cet exercice. L'une, en plaçant les groupes et les musiciens
dans deux entités distinctes. L'autre, en les réunissant dans une entité unique.
Exercice 9
On veut réaliser le site web d'une boutique de vente de produits audiovisuels. Pour cela, il convient de
référencer chaque produit par un code, une description, un prix et un nombre de produits disponibles
en stock. Les produits doivent tous être rattachés à une (et une seule) catégorie. Attention, il existe
une hiérarchie de catégories, par exemple :
Livres > Romans > En français
La modélisation doit permettre de restituer l'ensemble de ces informations (produits + hiérarchie des
catégories à laquelle il appartient)
Etablir le MCD et le MLD adéquat.
Exercice 10
On cherche à stocker dans une base de données la structure administrative du territoire français.
Celle-ci se décompose en plusieurs étages. Dans l'ordre : la commune, le canton, l'arrondissement, le
département, la région. A chaque fois, un étage ne peut être rattaché qu'à un seul étage supérieur,
tandis que l'étage supérieur contient plusieurs éléments de l'étage inférieur. Chaque étage à partir du
canton possède une commune « capitale », qui est obligatoirement chef de tous les niveaux inférieurs
(on ne peut pas avoir une capitale de région qui ne soit aussi capitale de département,
d'arrondissement et de canton).
On ajoute à cela la question des contiguïtés territoriales des communes : on veut savoir, pour chaque
commune, avec quelles autres communes elle possède une limite commune.
Etablir le MCD et le MLD adéquat.
Exercice 11
Une école veut modéliser ses informations afin de gérer ses étudiants (répartis pour chaque année en
groupes), ses enseignants et ses locaux. On traitera successivement trois hypothèses :
1. Chaque enseignant a en charge chaque année un certain nombre de groupes d'étudiants, et
chaque groupe a toujours cours dans la même salle
2. Au coup par coup, un enseignant prend en charge un groupe et fait cours dans une salle, elle
aussi attribuée au coup par coup.
3. Les enseignants ont en charge chaque année certains groupes, qui ont toujours cours dans les
mêmes salles. Mais sur certains créneaux horaires, les salles servent aussi de lieux de
permanence pour les enseignants.
Exercice 12
Le modèle suivant représente un tournoi de tennis.
En l'examinant pouvez-vous répondre aux questions suivantes ?
1. Peut-on jouer des matchs de double ?
2. Un joueur peut-il gagner un match sans y avoir participé ?
3. Peut-il y avoir deux matchs sur le même terrain à la même heure ?
4. Connaissant un joueur, peut-on savoir sur quels terrains il a joué?
Exercice 13
On vous donne le MCD représentant des visites dans un centre médical.
1. Un patient peut-il effectuer plusieurs consultations ?
2. Un médecin peut-il recevoir plusieurs patients dans la même consultation?
3. Peut-on prescrire plusieurs médicaments dans une même consultation ?
4. Deux médecins différents peuvent-ils prescrire le même médicament ?
Exercice 14
Dans une entreprise, un département est identifié par un nom et caractérisé par une localisation.
Un employé est caractérisé par un numéro, son nom, son grade et le département dans lequel il
travaille.
Le numéro d’un employé est unique dans un département mais pas dans l’entreprise.
Donner le MCD, en précisant les attributs.
Exercice 15
On considère une médiathèque contenant des ouvrages pouvant être empruntés.
Un ouvrage est caractérisé par un numéro unique, un titre, un auteur et un éditeur. En outre, on décrit
un ouvrage par un certain nombre de mots-clés qui indiquent les sujets qui y sont traités. La
médiathèque dispose d’un ou plusieurs exemplaires de chaque ouvrage, L’exemplaire est identifié par
un numéro et caractérisé par sa position dans les rayonnages et sa date d’achat.
Un exemplaire peut être emprunté par un emprunteur. Ces derniers sont identifiés par un numéro
d’emprunteur et possèdent un nom et une adresse
Donner le MCD.
Exercice 16
Une société de transport routier veut installer un système d’information pour rendre plus efficace sa
logistique. Embauché au service informatique de cette compagnie, vous êtes donc chargé de
reprendre le travail déjà effectué (c’est â dire le MCD ci dessous).
Remarque:
Une instance de l’association "Est Livré" met en relation 2 instances de l’entité "Entrepôt". (Une
instance de l’ association "Est Livré" est par exemple la marchandise X (en quantité Q) est livrée par le
camion I32-WS-59 par le conducteur Dupont le 6/11/97 au départ d’un entrepôt de Valenciennes et a
I'arrivée d’un entrepôt de Paris.)
1. Donnez et discutez les cardinalités manquantes de ce MCD ( (a,b) ?, (c,d) ?, (e,f) ?).
2. Un conducteur peut-il avoir plusieurs permis ?
3. Un conducteur peut-il conduire plusieurs camions ?
4. Peut-il y avoir plusieurs conducteurs pour le même camion ?
Écrivez les requêtes SQL qui correspond aux descriptions suivantes :
1. Affichez les billets ESCP reçu par Bernard Pincince (ou un autre élève dans votre base de
données)
2. Affichez le nom et le prénom des élèves qui ont reçu un billet ESCP pour respect
3. Affichez le nom et prénom des élèves du cours ICE4M ( ou un autre cours dans votr base de
donées)
4. On veut afficher le nombre de billets ESCP obtenus par les élèves regroupés par niveau d'étude
(combien en 9e, en 10e, 11e et 12e)
5. Combien il y a d'élève qui ont reçu un billet ESCP pour fierté
Exercice 5 : Modèle E-R : Forum de discution
Créer le design d'une base de données permettant de gérer un forum de discussion. Les utilisateurs,
pours'insrire devront fournir certains renseignement personnel permettant de s'identifier sur le forum
et sans oublier les cas particulier où l'utilisateur aurrait oublié son mot de passe. Il faudrait également
permettre d'enregistrer les personnalisation des couleurs de différents patrons. Il faudrait également
permettre aux utilisateur de créer de nouvelle salle de discussion et aux autres d'y accéder. Le
créateur du forum doit avoir des droits privilégier comme par exemple effacer un commentaire d'un
autre utilisateurs.
Exercice 6 : Modèle E-R : Tournoi de hockey
Votre école organise le tournoi de hockey franco ontarien. Vous êtes dans le comité responsable de la
gestion de l'événements l'enseignant resonsable décide de placer toutes les informations des équipes,
des recontres et des statistiques sur l'Internet au moyen d'une base de données. Votre tâche consiste
à établir un modèle entités-relations de la base de données. Vous n'avez pas à modéliser la structure
des rencontre (finale, demi-finale,...) Vous pouvez considérer le tournoi comme une liste de rencontre.
Définition des besoins et des informations à retenir :
• liste des équipes et des joueurs
• classification des équipes dans les divisions grandes moyenne et petites écoles, et les divisions
garçons et filles
• horaire des rencontres (dates, heures, lieux)
• statistiques des rencontres (buts, passe temps des but, liste des punitions,...)
Exercice 1 : Introduction et PhpMyAdmin
1. Céez une base de données nommée école
2. Faites une table nommée eleve qui contient les informations que l'on voudrait conserver au
sujet des élèves d'une école secondaire.
3. Faites une table nommée cours
Exercice 2 : Requête SQL de base
Écrivez les requêtes SQL qui :
1. Affiche les cotes de tous les cours disponnibles dans l'école
2. Affiche le nom et le prénom des élèves de 9e année
3. Affiche le nom et le prénom des garçons de 10e années
4. Afficher les différents noms de famille des élèves de l'école
5. Afficher le nom et le prénom des enseignants en ordre alphabétique.
Exercice 3 : Base de données relationnelles
1. Ajouter une table ESCP qui permet d'informatisé le système de billet ESCP. Cette table doit
avoir une relation 1 à n avec la table élève, ne tenez pas compte de l'enseignant qui a donné le
billet (un élève peut avoir plusieurs billet ESCP mais un billet est relié qu'à un seul élève). Une
fois la table créée, compléter environ une quinzaine d'enregistrement pour cette table.
2. Ajouter une table suit cours qui permet d'indiquer quels élèves suivent quels cours avec quels
enseignants.
Exercice 4 : Requête SQL de niveau avancé