Vous êtes sur la page 1sur 7

Université Saad Dahlab Blida – Corrigé indicatif

Faculté de Science – Département d’Informatique


IL2 Bases de Données -2019/20 Série de TD N°3 : Normalisation

Exercice 1

On considère le schéma entité/association, pour la gestion des transports, suivant:

CLIENT COMMANDE

code_client 0,n 1,1 num_comm


passe date_comm
nom_client
adresse poids
volume

1,1
1,1

situé_à affecté_à

0,n 0,n
0,n
VILLE TRANSPORTEUR
0,n 1,n
0,n dessert
nom_ville code_Transp
éloignée_de nom_transp
adresse_transp
0,n 1,1 tarif_liv
0,n réside

1. donnez le schéma relationnel correspondant en indiquant précisément les clés primaires et les clés
étrangères.

CLIENT (Code_Client, Nom_Client, Adresse, #Nom_Ville)


COMMANDE (Num_Comm, Date_Comm, Poids, Volume, #Code_Client, #Code_Transp)
VILLE (Nom_Ville)
TRANSPORTEUR (Code_Transp, Nom_Transp, Adresse_Transp, Tarif_Liv, #Nom_Ville)
ELOIGNEE_DE (Nom_Ville_1, Nom_Ville_2, Distance)
DESSERT (#Nom_Ville, #Code_Transp)

2. citez les différentes contraintes d'intégrités référentielles.


La clé étrangère Nom_Ville de CLIENT fait référence à la clé primaire Nom_Ville de VILLE
La clé étrangère Code_Client de COMMANDE fait référence à la clé primaire Code_Client de CLIENT
La clé étrangère Code_Transp de COMMANDE fait référence à la clé primaire Code_Transp de TRANSPORTEUR
La clé étrangère Nom_Ville de TRANSPORTEUR fait référence à la clé primaire Nom_Ville de VILLE
La clé étrangère Nom_Ville1 de ELOIGNEE_DE fait référence à la clé primaire Nom_Ville de VILLE
La clé étrangère Nom_Ville2 de ELOIGNEE_DE fait référence à la clé primaire Nom_Ville de VILLE
La clé étrangère Nom_Ville de DESSERT fait référence à la clé primaire Nom_Ville de VILLE
La clé étrangère Code_Transp de DESSERT fait référence à la clé primaire Code_Transp de TRANSPORTEUR
Exercice 2
Soit le schéma R(C,G,T,P,J,H,L) et l'ensemble F des DFs associées, F={CGP; JHPL; JHLCGT; CGTJHL}

(a) Montrer que JHCGT à l'aide des axiomes d'Amstrong.


CG  P  JHCG  JHP
JHLT et JHPL  JHPT
JHPT et CGP  JHCGT

(b) Calculer (JHCG)+ et (CG)+


(JHCG)+={JHCGPLT} clé candidate
+
(CG) ={CGP}

(c) Peut-on déduire de (b) que JHCGPL et CGL


JHCGL est une clé candidate donc JHCGPL
L(CG)+ donc CGL est fausse

(d) Produire une couverture minimale pour F2={CGP; JHPCGL; JHLCGT; CGTPJH; JHCGPL}
(1) mise sous forme canonique
F2={CGP; JHPC; JHPG; JHPL; JHLC; JHLG; JHLT; CGTPJ; CGTPH; JHCGP
JHCGL}

(2) Elimination des DF non élémentaires


JHCGP non élémentaire car CGP
CGTPJ non élémentaire car CGP  CGTJ
CGTPH non élémentaire car CGP  CGTH

F2={CGP; JHPC; JHPG; JHPL; JHLC; JHLG; JHLT; CGTJ; CGTH; JHCGL}

(3) Elimination des DF redondantes


JHPC redondante car C  (JHP)+\ JHPC = {JHPGLCT}
ou JHPL et JHLC  JHPC
JHPG redondante car G  (JHP)+\ JHPG = {JHPLCGT}
ou JHPL et JHLG  JHPG
JHCGL redondante car L  (JHCG)+\JHCGL= { JHCGPLT}
ou JHPL et CGP  JHCGL
d'où
la couverture minimale après union: C = ={CGP; JHPL; JHLCGT; CGTJH; }
graphe

C G T

P H J L
(e) Quelles sont les clés candidates de R?
+
F ={
1. CGP avec {2,3,4}  JHCG C, JHCG G, JHCGL
2. JHPC avec {1,8,9,10}  JHPGP, JHPGTJ, JHPGTH, JHPGL
3. JHPG avec {1,8,9,10}  CGP, CGTJ, CGTH, JHCGPL
4. JHPL avec {5,6,7}  JHPC, JHPG, JHPT
5. JHLC avec {1,8,9,10}  JHLGP, JHLGTJ, JHLGTH, JHLGL
6. JHLG avec {1,8,9,10}  CJHL P CGTJ CGTH JHCGL
7. JHLT
8. CGTJ avec {2,3,4,5,6,7,11 }  JHPC JHPG CGTHPL  CGTL

9. CGTH avec {2-7,10,11} 


10. JHCGL } avec {5,6,7 }  JHCGT

11. JHPT
12. CGTL avec {5,6,7 } 
13. JHCGT }

d'où
+
F ={ CGP, JHPCGLT, JHLCGT, CGTJHL, JHCGLT}

et

L'ensemble des clés candidates: CC = { (JHP), (JHL), (CGT), (JHCG) }

(f) Le schéma R1(C,G,P) et R2(C,G,T,J,H,L) est-il en BCNF. La décomposition est-elle sans perte (justifiez)?
préserve – t'elle la dépendance JHPL ?

- R1(C,G,P) l'ensemble des DF associées F1={ CGP} et l'ensemble des clés CC={CG}

 R1 est en BCNF car la partie gauche de la DF CGP est une clé

- R2(C,G,T,J,H,L) F2={ JHLCGT, CGTJHL, JHCGLT} et CC={(JHL), (CGT), (JHCG)}

 R2 est en BCNF car les parties gauches de toutes les DFs sont des clés

Propriété SPI

(1) R1R2 = R (tous les attributs sont représentés)


(2) R1∩R1  R1-R2 | R2-R1 (Théorème de Hearth)
CG  P | TJHL on retrouve la DF CGP
donc cette décomposition est SPI

Propriété SPD

Nous avons C = {CGP; JHPL; JHLCGT; CGTJH }

L'ensemble des DF de R1 F1={ CGP}

L'ensemble des DF de R2 F2={ JHLCGT; CGTJH }

(F1F2)+={ CGP; JHLCGT; CGTJH }  C+ perte de JHPL donc non SPD


Exercice 3
Considérez les schémas de relations suivantes :

EMP ( N , S , E , P , Dp ). N est un employé dans l’équipe E, il a un salaire mensuel S, et participe à un projet P à


partir de la date Dp.
CHEF ( C , E , P , Dc ). L’employé C est le chef de l’équipe E, qui crée un projet P à la date Dc

Sur les schémas EMP et CHEF on considère les contraintes suivantes:


i. Chaque équipe a un seul chef, et chaque chef est le chef d’une seule équipe. Chaque projet a une seule date de
création.
ii. Chaque employé a un seul salaire mensuel, et est dans une seule équipe. La date de début de participation d’un
employé à un projet est unique.

Questions :

1. Relevez les dépendances fonctionnelles à partir des contraintes (i) et (ii).

i. EC ii. NSE

CE NPDp

PDc

i. Par rapport aux dépendances relevées, le schéma S= {EMP, CHEF} porte-il des redondances de données?

Redondance en S et E dans EMP, ils sont répétés à chaque participation de l'employé dans un nouveau projet.

Exemple

EMP N S E P Dp

n1 s1 e1 p1 d1

n1 s1 e1 p2 d2

Redondance en C et E dans CHEF, ils sont répétés à chaque création d'un nouveau projet par un même chef.

Exemple

CHEF C E P Dc

c1 e1 p1 d1

c1 e1 p2 d2

ii. Donnez et justifiez la forme normale de chaque relation du schéma S?


ère
Dans EMP la clé est (NP), la relation est en 1 FN car NSE.
ème
Dans CHEF la clé est (EP) ou (CP), la relation est en 1 FN car PDc, EC et CE
iii. Si le schéma S n’est pas en 3FN, donnez une décomposition de S en 3FN.
EMP (N, S, #E)
PARTICIPTION (#N, #P, Dp)
CHEF (E,C)
PROJET (P, Dc)

iv. Vérifiez les propriétés SPI et SPD en appliquant le théorème de Heath.


Vérification de la propriété SPI
(1) EMPPARTICIPTIONCHEFPROJET = tous les attributs
(2) Dans EMP ∩ PARTICIPTION on retrouve NSE
Dans EMP ∩ CHEF on retrouve EC
Dans PARTICIPATION ∩ PROJET on retrouve PDc

 SPI est vérifiée

Vérification de la propriété SPD

F={ NSE, NDpP, EC, CE, PDc, PDc}

FEMP={ NSE}; FPARTICIPATION={NDpP}; FCHEF{ EC, CE }; FPROJET={ PDc}

(FEMP  FPARTICIPATION  FCHEF  FPROJET) = ({ NSE, NDpP, EC, CE, PDc})

(FEMP  FPARTICIPATION  FCHEF  FPROJET) = F+  SPD vérifiée

v. Justifiez si votre décomposition est en BCNF ou non ? Proposez une autre décomposition dans le cas échéant.
Toutes les relations sont en BCNF car elles ne contiennent qu'une seule DF CleAttribut non clé

Exercice 4

Pour la gestion des comptes de ses clients une banque s'intéresse aux attributs suivants :

Attributs Description
NumC ………………………. Numéro du compte
TypeC ………………………. Type Compte (Courant, Epargne, Devise)
DatOv ………………………. Date d'ouverture du compte
Solde ………………………. Montant actuel du compte
IdC …………………………… Identificateur Client
NomC ………………………. Nom du client
PrenomC ………………… Prénom du client
DatNaisC …………………. Date de naissance du client
AdrC ………………………… Adresse client
FraisG ………………………. Frais de gestion du compte (montant fixe)
NumOp ……………………. Numéro de l'opération
DateOp ……………………. Date de l'opération
TypeOp …………………… Type de l'opération (retrait, versement)
MontOp …………………. Montant de l'opération
Contraintes:
- Un compte appartient à un seul client

- Un compte est identifié par un numéro de compte

- Un client peut avoir plusieurs comptes

- Un client est identifié par son nom et son prénom

- Un compte est mis à jour suite à des opérations de retrait ou de versement

- Une opération concernant un et un seul compte

- Une opération est identifiée par un numéro d'opération

- Un compte est concerné par plusieurs opérations

- Les frais de gestion sont les mêmes pour un même type de compte
Questions:

1. Exprimer à l'aide de dépendances fonctionnelles ces contraintes.

F={
NumC  TypeC DatOv Solde FraisG IdC
IdC  NomC PrenomC DatNaisC AdrC
NomC PrenomC  IdC DatNaisC AdrC
NumOp  NumC DateOp TypeOp MontOp
TypeC  FraisG
}

2. Construire la couverture minimale (FM) et donner son graphe.

FM = {
NumC  IdC TypeC DatOv Solde
IdC  NomC PrenomC DatNaisC AdrC
NumOp  NumC DateOp TypeOp MontOp
TypeC  FraisG
NumOp
}

NumC DateOp TypeOp MontOp

DatOv TypeC
IdC Solde

AdrC FraisG
NomC PrenomC DatNaisC
3. Calculer la fermeture transitive F+. Déduire L'ensemble CC des clés candidates.

+
F =F{
NumC  NomC PrenomC DatNaisC AdrC FraisG
NumOp  TypeC DatOv Solde FraisG IdC NomC PrenomC DatNaisC AdrC FraisG
}

4. Proposer un schéma relationnel en BCNF tout en montrant clairement les clés primaires et les clés étrangères.

CLIENT (IdC, NomC, PrenomC, DatNaisC, AdrC)


COMPTE (NumC, DatOv, Solde, , #IdC, #TypeC)
OPERATION (NumOp, DateOp, TypeOp, MontOp, #NumC)
FRAIS (TypeC, FraisG)

Vous aimerez peut-être aussi