BDW1 TD45

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

BDW1 - TD 4 & 5

Conception de Bases de Données


UCBL - Département Informatique de Lyon 1 – 2018

L’objectif de ce TD est de vous familiariser avec la notion de modélisation conceptuelle et


de création d’une base de données.

Exercice 1 : Analyse d’un schéma E/A


Soit le schéma Entité/Association représenté en Figure 1 concernant les visites dans un
centre médical.

Figure 1 : Schéma conceptuel des Visites Médicales

Répondez aux questions suivantes en fonction des caractéristiques de ce schéma.


1. Un patient peut-il effectuer plusieurs consultations chez le médecin ?
2. Un médecin peut-il recevoir plusieurs patients dans la même consultation ?
3. Un médecin peut-il ne pas prescrire de médicament lors d’une consultation ?
4. Un médecin peut-il prescrire plusieurs médicaments dans une même consultation ?
5. Un médicament peut-il être distribué par deux laboratoires différents ?
6. Une consultation est obligatoirement remboursée ?
7. Un médecin dispose-t-il d’autant de salle qu’il le souhaite pour effectuer ses consultations ?
8. Une salle est-elle attribuée à un seul médecin ?
9. Peut-il y avoir plusieurs salles numéro 1 dans le centre médical ?
10. Deux médecins différents peuvent-ils prescrire le même médicament ?
11. Quelle serait la conséquence, si l’on changeait la cardinalité 1 :N de l’association ’Distri-
bue’ proche de l’entité ’Laboratoire’ en une cardinalité 0 :1 ?

1
Exercice 2 : Cherchez les incohérences
On souhaite modéliser et interroger une base de données sur les Chercheurs. Le schéma de
la base de données relationnelle est le suivant :

Chercheur(numen, nom, prenom, anneeNaissance, fonction, grade, #codeLabo)


Laboratoire(codeLabo, nom, sigle, anneeCreation, ville, #directeur)
Equipe(sigleEq, #codeLabo, thème, urlSiteWeb)
Projet(idPjt, nom, anneeDebut, duree )
Tutelle(idOrga, nom, type, sigle, ville)
Mission(idMission, dateDepart, #paysDepart, #paysArrivée, dateArrivée, montantFrais)
Pays(Nom, NiveauRisque)
EstMembre(#numen, #sigleEq, #codeLabo)
EstRattaché(#numen, #idOrga, dateEmbauche)
EstSousTutelle(#codeLabo, #idOrga)
AConventionAvec(#idOrga1, #idOrga2, depuis)
TravailSur(#numen, #idPjt)
Effectue(#numen, #idPjt , #idMission)

A noter que la durée des projets est exprimée en mois et qu’un projet renouvelé garde le
même nom mais dispose d’un identifiant différent. Il n’y a pas de projets différents qui sont
homonymes.

Le concepteur de la base de données explique que pour concevoir sa base de données, il a


construit le schéma entité association représenté sur la Figure 2.

Figure 2 : Schéma E/A erroné

Des incohérences apparaissent entre le schéma Entité/Association et le modèle relationnel.


Indiquez les erreurs qui se trouvent dans le schéma entité/association et les modifications qu’il

2
est nécessaire d’appliquer pour rendre le schéma E/A cohérent avec le modèle relationnel.

Exercice 3 : Création d’un schéma E/A


Une bibliothèque souhaite mettre en place une base de données pour gérer son catalogue ainsi
que les informations sur ses adhérents et les emprunts effectués.
Le catalogue de la bibliothèque est composée d’artistes et d’œuvres. Un artiste est identifié
par un entier. Pour chaque artiste, on dispose de son pseudonyme d’artiste si l’artiste en a
un, de son nom de naissance, de son prénom, de sa nationalité, de sa date de naissance et
de sa date de décès si l’artiste est décédé(e). On souhaite également stocker les liens entre les
artistes par exemple un lien de filiation, de fratrie ou autre. Concernant les œuvres, elles sont
identifiées également par un entier. Pour chaque œuvre, on stocke un titre, un sous-titre s’il
y en a un, une catégorie (i.e., Roman, Biographie, Conte, Épopée, Nouvelle, Témoignages...),
une sous-catégorie (i.e., Roman historique, Fantastique, Autobiographie...) 1 et son année de
création. Plusieurs artistes peuvent contribuer à la création d’une œuvre (on parle alors d’œuvre
co-écrite). Il est alors important de stocker l’ordre des co-auteurs.
Une œuvre représente un travail intellectuel qui peu s’exprimer de différentes manières. Ces
expressions (ou éditions) sont identifiées relativement à l’œuvre par un code correspondant à
une chaîne de caractères. Pour chaque expression, on stocke le format, la langue (Dans le cas
d’une expression bilingue les deux langues sont stockées dans la même cellule séparée par une
virgule) et les particularités de l’expression dans un petit descriptif. La réalisation d’un expres-
sion peut résulter de la contribution d’artistes autres que les créateurs de l’œuvre ou pas. Un
artiste peut être l’illustrateur de l’expression, ou un traducteur de l’œuvre...

Une expression se matérialise par une manifestation qui représente le livre papier, le support
média physique. Une manifestation est identifiée relativement à l’expression par un numéro cor-
respondant à un entier. Pour chaque manifestation, on dispose du nombre de page, du type de
reliure et de l’information si la manifestation est en noir&blanc ou en couleur.

La bibliothèque dispose de différents adhérents. Chaque adhérent est identifié par un nu-
méro d’adhérent. On stocke son nom, son prénom, son adresse, son numéro de téléphone.

Une manifestation peut être empruntée par un adhérent de la bibliothèque ou peut être
seulement consultée sur place. Dans les deux cas, on stocke la date et l’heure d’emprunt, la
date limite de rendu et la date de retour réel de la manifestation. Si la date de retour réel est
sans valeur, cela signifie que la manifestation n’a pas encore été rendue par l’emprunteur. Une
manifestation ne peut pas être empruntée plusieurs fois par le même adhérent.

1. A partir du descriptif ci-dessus, proposez un schéma Entité/Association permettant de


modéliser conceptuellement la base de la bibliothèque.
2. A partir du schéma produit à la question précédente, appliquer les règles de transforma-
tion pour produire le modèle relationnel correspondant. Les attributs composant les clés
primaires seront soulignés et les attributs servant de clé étrangère seront préfixés par un
#.

Exercice 4 : Commandes SQL


L’objectif de cet exercice est de définir les commandes permettant de créer votre base de don-
nées à partir du modèle relationnel obtenu à l’exercice 3 question 2.
1. cf https://fr.wikipedia.org/wiki/Genre_littéraire

3
Donner les différentes commandes SQL nécessaires pour :
1. créer les tables correspondant à votre modèle relationnel.
2. ajouter à vos tables les contraintes d’intégrité de clé primaire et de clé étrangère.
3. peupler vos tables avec au moins 3 tuples par table. Vous expliquerez le choix que vous
faites dans l’ordre de tables à peupler (i.e., quelles contraintes vous obligent à peupler
une table avant une autre).
4. ajouter l’attribut ’etatM’ à votre table stockant les manifestations pour préciser l’état
de l’ouvrage.
5. ajouter 10 pages à la première manifestation que vous avez insérée dans la base.
6. effacer la troisième manifestation insérée dans la base.
7. créer une table ’Blacklist’ stockant les identifiants des adhérents ayant rendu en retard
un emprunt.
8. supprimer la table ’Blacklist’.

Vous aimerez peut-être aussi