TP7 : Gestion de laboratoire
Exercice 9 :
Un laboratoire, associé à un organisme de recherche scientifique, dirige des équipes de chercheurs
travaillant sur des projets de recherche :
• Une équipe de recherche est caractérisée par un numéro et un nom
• Un chercheur est caractérisé par son numéro, son nom, sa spécialité, l'université dans
laquelle il a terminé ses études et l’équipe dans laquelle il est intégré
• Un projet est caractérisé par son numéro, son nom, le chercheur chargé de le diriger et
l’équipe à laquelle il est confié
• Une équipe peut contenir plusieur chercheurs
• Un chercheur apartient à une équipe
• Un projet est réaliser par une équipe
• Une équipe peut travailler sur plusieurs projet
Analysons ce SI avant de passer à la création de la BD. Nous allons tout d’abord, proposer un schéma
conceptuel qui décrit cette BD. (MCD)
L’analyse du problème a permis de construire le schéma suivant :
------Schéma Relationnel
Ce schéma conceptuel a permis de construire le schéma relationnel suivant :
Equipe (NumEquipe, NomEquipe)
Chercheur (NumChercheur, NomChercheur, Specialite, Universite, #NumEquipe)
Projets(NumProjet, NomProjet, #NumEquipe, #NumChercheur)
Travailler (#NumProjet, #NumChercheur, nbJourSem)
La table Equipe :
NumEquipe nomEquipe
e1 Bases de données
e2 Reseaux
e3 Systeme Informations
La table Chercheur
TP7 : Gestion de laboratoire
NumChercheur nomChercheur Specialite Universite numEquipe
c1 Ahmed bd 2 e1
c2 Ameni si 2 e3
c3 Chiheb oo 3 e1
c4 Eya rx 2 e2
c5 Cyrine rx 3 e2
c6 Ghassen oo 1 e3
c7 Mohamed oo 2 e1
c8 Nizar si 3 e3
La table Projet :
NumProjet nomProjet numEquipe numCherResp
p1 objet-relationnel e1 c7
p2 intranet e1 c3
p3 sans fil e2 c4
p4 groupware e3 c2
p5 uml e3 c8
p6 datamining e1
La table Travailler :
NumProjet NumChercheur nbJourSem
p1 c1 1
p2 c1 2
p3 c4 2
p3 c5 1
p4 c2 3
p4 c8 1
p5 c8 3
p5 c2 1
p1 c3 3
p1 c7 3
p2 c7 2
TP7 : Gestion de laboratoire
Travail à faire :
Partie 1 : Création de la base de données
Partie 2 : Modification : données, structure et contraintes
A. Modification de la structure des données
On peut modifier la structure d'une base de données déjà active sans perturber son activité
(indépendance données / traitements).
a. Ajouter les colonnes suivantes dans la table EQUIPE
NB_PROJETS de type entier
NB_CHERCHEURS de type entier
b. Ajouter les colonnes suivantes dans la table CHERCHEUR
NB_JOURS de type entier nombre de jours total par semaine
c. Ajouter les colonnes suivantes dans la table PROJET
NB_CHERCHEURS de type entier nombre de chercheurs affectés
NB_JOURS de type de type entier nombre de jours/chercheurs par semaine
2. Créer une nouvelle table : SPECIALITE
Créer la structure d’une nouvelle table SPECIALITE :
SPECIALITE (SPECIALITE, NOM_SPECIALITE, NB_CHERCHEURS)
SPECIALITE : de type VARCHAR(10) : code de la spécialité {‘bd’,’si’,...} / clé primaire
NOM_SPECIALITE de type VARCHAR(20) : la désignation de la spécialité
NB_CHERCHEURS de type NUMBER(2) : nombre de chercheurs appartenant à la spécialité
3. Modifier les colonnes suivantes :
a. dans la table EQUIPE passer NOM_EQUIPE à VARCHAR(30),
b. dans la table PROJET tenter de passer NOM_PROJET à VARCHAR(15),
B. Modification du contenu de la base de données
1. Remplissage de la nouvelle table SPECIALITE
specialite nom_specialite nb_chercheurs
Bd bases de données
Si système d’information
Oo orientée objet
TP7 : Gestion de laboratoire
Rx Réseaux
Se système d’exploitation
2. Modifier (UPDATE) le contenu des tables :
Modifier le nom de l’équipe n° ‘e3’ par la valeur ‘Réseaux et Communication’.
Affecter les chercheurs ‘c4’ et ‘c7’ a l’équipe n° ‘e3’.
Nomination du chercheur ‘c1’ comme responsable du projet ‘p6’.
Remplacer le chercheur ‘c7’ du projet ‘p2’ par le chercheur ‘c6’.
C. Modification des contraintes d’intégrité
1. Ajout de contraintes dans la table CHERCHEUR
a. Ajouter la contrainte clé étrangère par rapport à la nouvelle table SPECIALITE
b. Penser aussi à mettre la contrainte NOT NULL la colonne specialite.
2. Modification de contraintes
a. Désactiver (Disable) la contrainte de type fils – père entre la table PROJET et
la table EQUIPE. Cette contrainte (FOREIGN KEY) est posée sur la colonne
N_EQUIPE de la table PROJET.
Vérifier dans la table USER_CONSTRAINTS et USER_CONS_COLUMNS du dictionnaire de
données (afficher uniquement les colonnes et les lignes intéressantes).
a. Insérer au moins deux lignes dans la table PROJET avec un numéro d’équipe
erroné.