You are on page 1of 18

CONSERVATOIRE NATIONAL DES ARTS ET METIERS

Filière Informatique d’Entreprise

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.

On dispose des informations suivantes :

1- Numéro client (NOCLI)


2- Raison sociale client (RSCLI)
3- Adresse de livraison (ADRLIV)
4- Numéro commande (NOCDE)
5- Date de la commande (DATCDE)
6- Numéro produit fini (NOPRD) = produit faisant l'objet des commandes clients.
7- Libellé du produit fini (LIBPRD)
8- Code matière première (CODMP)
9- Libellé matière première (LIBMP)
10- Quantité en stock matière première (QTEMP)
11- Quantité matière première nécessaire à la fabrication de produits finis (QTFAB)
12- Numéro fournisseur (NOFRS)
13- Raison sociale fournisseur ( RSFRS)
14- Adresse fournisseur (ADRFRS)
15- Quantité commandée par le client pour un produit donné (QTECDE)
16- Quantité en stock produit fini (QTEPRD)

Les informations ci-après sont à prendre en compte :

- 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 :

a) les règles de gestion suivantes :

- Un Client peut passer plusieurs commandes.


- Une commande correspond à un client et un seul.
- Une commande peut avoir plusieurs lignes, chaque ligne faisant partie référence à un produit
différent.
- Un article peut être référencé dans plusieurs commandes.
- Une facture est établie pour une commande et une seule.
- A une commande correspond obligatoirement une et une seule condition de paiement.

b) et les besoins applicatifs suivants :

Les deux traitements de référence pour la construction de la base sont la prise de commandes et la
facturation.

ED Base de données - B6 – CNAM – page 2


- Dans le cas de la prise de commandes, on saisira l’ensemble des lignes de commandes, et, s’il n’y
a pas d’erreur, on imprimera la commande.
- Dans le cas de la facturation, on recherche les commandes pour le client, on édite les factures.

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

ED Base de données - B6 – CNAM – page 3


Partie II : Du Modèle E-R au modèle Relationnel
Exercice II.1

Reprendre l’exercice I-1

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

Reprendre l’exercice I-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.

Q2) Evolution des modèles :

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 ?

ED Base de données - B6 – CNAM – page 4


Exercice II.3

Soit le schéma Entité-Relation suivant :

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’.

Id_prof Id_Classe Id_Mat


Dupont 10 Math
Martin 10 Info
Durand 30 Math
Louvier 40 Phys

avec les valeurs suivantes pour chacune des entités

Id_Prof = {Louis, Martin,Dupont,Durand,Louvier}


Id_Classe = {10, 30, 40}
Id_Mat = {Math, Info, Phys, Chimie}

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 ?

ED Base de données - B6 – CNAM – page 5


Partie III : Dépendances fonctionnelles
Exercice III.1

Soit la relation universelle suivante :

R(NO_EMP, NOM_EMP, AGE, FONCT, NO_DEPT, NOM_DEPT, NO_PROJET, NOM_PROJET,


DUREE)

dans laquelle

NO_EMP est le matricule de l’employé,


NOM_EMP est le nom de l’employé,
AGE est l’âge de l’employé,
FONCT est la fonction de l’employé,
NO_DEPT est le numéro du département de l’entreprise dans lequel l’employé travaille,
NOM_DEPT est le nom du département,
NO_PROJET est le numéro du projet,
NOM_PROJET est le nom du projet,
DUREE représente le temps passé exprimé en heures par employé pour un projet donné.

On admet les règles suivantes :

 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 ?

Q2) Donner le graphe de ces dépendances fonctionnelles et expliquer la démarche suivie


En déduire la clé de la relation R.

Q3) Expliquer les inconvénients de la relation R en cas d'une création, modification,


suppression d'une occurrence (ou Tuple ou Ligne) de R.

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

ED Base de données - B6 – CNAM – page 6


Partie IV : Mise en oeuvre
Exercice IV-1 : Arbres algébriques

Reprendre l’exercice III-1

Questions

Q1) Construire l’arbre algébrique des requêtes suivantes :


a) Donner les noms des employés ayant travaillés sur tous les projet
b) Donner les noms des employés ayant travaillés sur au moins un projet

Exercice IV-2 : Graphe des dépendances fonctionnelles et arbres algébriques

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.

Exemple : Ligne no. 10


Paris NUMORD = 0 à Gare de départ
Dijon NUMORD = 1 à Via
Mâcon NUMORD = 2
Lyon NUMORD = 3 à Gare de Terminus

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).

Dans chaque train, un wagon occupe une position particulière (POSITION).

ED Base de données - B6 – CNAM – page 7


Questions :
Q1)
a) Déterminer les constituants (attributs) de la relation universelle représentant cet univers selon les concepts
du modèle relationnel.
b) Déterminer la clé de cette relation. Justifiez votre réponse.
c) Expliquez les inconvénients d'une telle relation avec des exemples simples, pour les trois opérations
d'insertion, de modification et de suppression.
Q2)
a) Déterminer les dépendances fonctionnelles et tracer le graphe de celles-ci.
b) Donner le schéma relationnel correspondant à cette base de données. Justifiez votre réponse en
précisant la démarche suivie.

Exercice IV-3 : SQL

Soit le schéma relationnel suivant :

IMMEUBLE (ADI, NBETAGES, DATEC, PROP)


APPIM (ADI, NAP, TYPE, SUPER, OCCUP, ETAGE)
PERSONNE (NOM, AGE, PROF, ADR, NAPR)
ECOLE (NOMEC, ADEC, NBCLASSES, DIR)
CLASSE (NOMEC, NCL, MAITRE, NBEL)
ENFANT (NOMP, PRENOM, AN, NOMEC, NCL)

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 ?

ED Base de données - B6 – CNAM – page 8


Exercice IV-4 : Interprétation des ordres SQL

On considère le schéma relationnel suivant :

Oeuvre (Code-oeuvre, titre)


Morceau (Code-morceau, durée, code-disque, code-oeuvre)
Disque (Code-disque, marque, type)
Interprète (Nom, prénom, adresse)
Exécute (Code-morceau, nom, prénom)

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

Exprimer en français les requêtes SQL suivantes :

Q1) select nom, prénom, count(code-morceau)


from E
group by nom, prénom ;

Q2) Create View Total-Disq (code-disque, total)


as select code-disque, sum(durée)
from M
group by code-disque ;

select D.*
from D, Total-Disq TD
where D.code-disque = TD.code-disque
and total = (select max(total)
from Total-Disq) ;

Q3) select code-oeuvre,titre


from O, M
where O.code-oeuvre = M.code-oeuvre
group by code-oeuvre, titre
having count(code-disque) >=2 ;

Q4) select I.*


from I
where not exists
(select *
from E, M, D
where E.nom = I.nom
and E.prénom = I.prénom
and E.code-morceau = M.code-morceau
and M.code-disque = D.code-disque
and type =’JAZZ’) ;

ED Base de données - B6 – CNAM – page 9


Partie V : Répartition des données
Exercice V-1 :

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 :

Service (Snum, SNom, Shopital, SBâtiment, SDirecteur)


Sale (Snum, SAnum, SASurveillant, SANbLits)
Employé (ENum, ENom, EAdresse, ETéléphone)
Docteur (Dnum, DSpécialité)
Infirmier (Inum, Snum, IRotation, ISalaire)
Patient (Pnum, Snum, SAnum, PLit, PNom, PAdresse, PTéléphone, PMutuelle, PPrise_en_charge)
Acte (Dnum, Pnum, Date, ADesrciption, ACoefficient)

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 :

Nom du site Valeur de l'attribut "hôpital"

Strasbourg Ambroise-Paré

Colmar Colmar

Régional Toutes les autres valeurs

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.

Le schéma de la base de Belfort avant son intégration est le suivant :

Service (Snum, SNom, SBâtiment, SDirecteur)


Sale (Snum, SAnum, SASurveillant, SANbLits)
Docteur (Dnum, DNom, DAdresse, Dtéléphone, DSpécialité)
Infirmier (Inum, INom, IAdresse, ITéléphone Snum, ISalaire)
Patient (Pnum, Snum, SAnum, PLit, PNom, PAdresse, PTéléphone, PMutuelle, PPrise_en_charge)
Acte (Dnum, Pnum, Date, ADesrciption, ACode)

Discutez les problèmes et proposez des solutions pour intégrer la base de Belfort au système réparti déjà défini.

L'intégration devra se faire sans transferts d'informations.

ED Base de données - B6 – CNAM – page 10


Q5 : Proposez une décomposition et un plan d'exécution pour la requête SQL de la question 1 après intégration de la
base de Belfort.

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 :

- CliNum numéro du client (identifiant de l'entité)


- CliNom nom du client
- CliAdrNum numéro de la voie du client
- CliAdrVoie nom de la voie où se trouve le client
- CliAdrType type de la voie où se trouve le client
- CliAdrVille ville
- CliCA Chiffre d'affaires cumulé du client

L'entité "recherche" décrit les recherches confiées par les clients à l'entreprise et comporte :

- RecRef la référence de la recherche


- RecSurMin surface minimum
- RecSurMax surface maximum
- RecPrix prix au maximum

L'entité "secteur" se rapporte aux secteurs géographiques sur lesquels l'entreprise exerce son activité. Elle comporte :

- SecRef référence du secteur (identifiant de l'entité)


- SecLib libellé du secteur
- SecStatPrix prix moyen au m2 du secteur
- SecStatNbe nombre de ventes dans ce secteur
- SecStatNb1 information statistique relative au secteur
- SecStatNb2 information statistique relative au secteur
- SecStatNb3 information statistique relative au secteur

L'entité "Type" concerne les types de recherches ou d'offres (bureaux, magazins, etc.). Elle comporte :

- TypCode code du type


- TypLib libellé du type
- TypStatPrix prix moyen au m2 des ventes de ce type
- TypStatNbe nombre de ventes de ce type
- TypStatNb1 information statistique relative au type
- TypStatNb2 information statistique relative au type

ED Base de données - B6 – CNAM – page 11


L'entité "offre" concerne les offres qui sont faites à l'entreprise et comporte :

- OfrRef référence de l'offre (identifiant de l'entité)


- OfrSur la surface exacte
- OfrPrixMin prix minimum souhaité
- OfrPrix prix souhaité

L'association "Ventes" est porteuse des données relative à la vente, à savoir :

- VteDate la date de la vente


- VteMnt le montant exact de la transaction

L'association "Concerne" permet de savoir à quels secteurs géographiques correspondent les recherches

L'association "Soumettre" associe les clients et leurs recherches

L'association "Etre 1" permet de connaître le type des offres

L'association "Etre 2" permet de connaître le type des 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

Les différentes divisions et services ont des tâches clairement identifiées :

- à 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.

ED Base de données - B6 – CNAM – page 12


Partie VI : Administration des données
Exercice VI-1 :

Soit les tables suivantes :

SOC ( idsoc CHAR(5) NOT NULL, -- identifiant de l’entreprise


libsoc CHAR(60) NOT NULL, -- Nom de l’entreprise
villesco CHAR(60) NOT NULL, -- Localité de l’entreprise
sigle CHAR(20) NOT NULL, -- Sigle de l’entreprise
nbemp NUMBER(4) NULL -- Nombre d’employées
)

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.

Q2) l’attribut NBEMP concerne le nombre d’employés pour la société.


Sachant que ce compteur doit être toujours cohérent par rapport à l’ajout et à la suppression d’employés dans la
table EMP, proposer un mécanisme permettant de répondre à ce besoin.

Q3) Contrainte d’intégrité


Il faut mettre en place les contrôles de saisie sur la table EMP, tel que :
a. L’âge lors de l’embauche doit être compris entre 18 et 65 ans , bornes incluses;
b. Le salaire doit dans tous les cas être supérieur ou égal à zéro;
c. Le salaire ne doit pas être supérieur au maximum des salaires des employés exerçant la même
fonction dans la même entreprise.
Quelle solution proposer (uniquement les principes) pour les trois règles de gestion précédentes.
Justifier la réponse.

Q4) Création de vues


a) Donner l’ordre de création d’une vue permettant d’obtenir la masse salariale de l’entreprise (somme de tous
les salaires des employés)

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.

ED Base de données - B6 – CNAM – page 13


Exercice VI - 2

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.

Le schéma de la base est le suivant :


ANALYSE (AN_ANNEE, AN_NUMERO, AN_DATE, LI_CODE, PR_CODE)
RESULTAT (AN_ANNEE, AN_NUMERO, CR_CODE, RE_RESULTAT, RE_CONCLUSION)
CRITERE (CR_CODE, CR_NOM)
STANDARD (CR_CODE, PR_CODE, ST_VALEUR)
PRODUIT (PR_CODE, PR_NOM)
LIEU (LI_CODE, LI_NOM)

Remarques :
 Seuls les index des clé primaires sont créés.
 Le détail de chaque zone est proposé en annexe.

Les informations de volumétrie sont les suivantes :

TABLE NOMBRE DE RANGEE CROISSANCE/MOIS


ANALYSE l0000 400
RÉSULTAT 50000 20
CRITERE 20 0
STANDARD 40000 20
PRODUIT 2000 1
LIEU 50 0

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,

ED Base de données - B6 – CNAM – page 14


PRODUIT
- PR-CODE : code du produit analysé,
- PR-NOM : désignation du produit,

LIEU
- LI-CODE : code du lieu de réalisation de l’analyse,
- LI-NOM : désignation du code,

L’utilisation de la base peut être synthétisé par le schéma suivant :

LABORATOIRE DIRECTION LABORATOIRE DIRECTION QUALITE


4 x laborantins 1 directeur 1 directeur

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.

ED Base de données - B6 – CNAM – page 15


Questions :

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.

Q3) En prenant plusieurs scénarii catastrophes, expliquez les opérations de reprise.

Q4) Optimisation des requêtes SQL – A développer en séance.

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 ?

Peut-il y avoir plus d'un résultat possible pour A, B et C.

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é ?

ED Base de données - B6 – CNAM – page 16


Partie VII : Révision
Exercice VII-1

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 :

1- Numstagiaire = Numéro du stagiaire


2- Nomstagiaire = Nom du stagiaire
3- Prestagiaire = Prénom du stagiaire
4- Datnastagiaire = Date de naissance du stagiaire
5- Numstage = Numéro stage
6- Intstage = Intitulé du stage
7- Domstage = Domaine du stage (I=Informatique, D=Droit international, O=Organisation)
8- Datdebstage = Date de début d’une session d'un stage
9- Datfinstage = Date de fin d’une session d'un stage (exemple : Stage no. 1234 d'intitulé " Initiation à la
micro-informatique pour cadres", dont une session démarre le 29/03 et se termine le 12/04)
10- Numprof = Numéro du professeur
11- Nomprof = Nom du professeur
12- Preprof = Prénom du professeur
13- Nummod = Numéro module
14- Intmod = Intitulé du module
15- Numsess = Numéro session
16- Nbreheure = Nombre d’heures d’enseignement effectué
17- Tauxhor = Taux horaire d’enseignement

Les informations ci-après sont en prendre en compte :

- un stagiaire suit une session d'un stage (et une seule),


- un module peut être assuré par un ou plusieurs professeurs,
- un module est un cours susceptible d'être incorporé dans un ou plusieurs stages,
- un professeur peut enseigner plusieurs modules,
- une session de stage se compose d'une succession de modules, chacun de ces modules étant pris en charge
par un professeur entre une date de début et une date de fin,
- un stage peut être réalisé dans plusieurs sessions.
- l’attribut “Nbreheure” correspond au nombre d’heures d’enseignement effectué par un professeur donné,
pour un module donné et une session donnée.
- le taux horaire d’enseignement (Tauxhor) est fonction du domaine de stage (Informatique = 500FFHT,
Droit international = 600 FFHT, Organisation = 550 FFHT)

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 Paris est responsable de la planification des stages du domaine “Informatique” et de la


gestion administrative des intervenants enseignants (recrutement et paiement).

- 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).

- Et enfin l’agence de Nantes gère le planning des stages du domaine “Organisation”.

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.

ED Base de données - B6 – CNAM – page 17


Déterminer le schéma relationnel en troisième forme normale par application des règles de passage du
modèle Conceptuel de Données v ers le modèle Relationnel. Expliquer la démarche suivie.

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.

ED Base de données - B6 – CNAM – page 18

You might also like