Vous êtes sur la page 1sur 6

Relations d'Armstrong, redondan

es et perte d'information

UE fondements des bases de données - TD5

1. Les relations d'Armstrong

Soit un s héma de relation R et un ensemble F de DF sur e s héma. Une relation d'Armstrong


pour F est une relation r sur R vériant exa tement F + , ni plus ni moins. Son intérêt est
de fournir un exemple représentatif au on epteur, pour l'aider à normaliser ou déte ter des
anomalies.
Nous allons voir sur un exemple omment onstruire une telle relation. Soit R = ABCDE et
F = {A → B, C; D → E; C → D}.
(a) Cal ulez l'ensemble des fermés de F , déni par Cl(F ) = {X + , X ⊆ R}. Pour elà, utilisez
une exploration systématique des sous-ensembles de R en ommençant par eux de taille
1, puis 2, et ... Pensez à ne pas visiter les sur-ensembles des lés ( f TD pré édent)
On trouve les fermés suivants : ABCDE, BCDE, B, CDE, DE, E, BDE,
(b) Le prin ipe est alors, pour haque X ∈ Cl(F ) − R, de s'assurer que deux tuples au moins
prennent les mêmes valeurs sur X et des valeurs diérentes ailleurs.
Appliquez l'algorithme suivant :
Algorithm 1 Relation d'Armstrong pour un ensemble de DF
Require: Un s héma de relation R, un ensemble de DF F sur R.
Ensure: Une relation d'Armstrong r pour F sur R.
1: for all A ∈ R do
2: t[A] = 0 ;
3: end for
4: r = {t} ;
5: i = 1 ;
6: for all X ∈ Cl(F ) − R do
7: for all A ∈ R do
8: if A ∈ X then t[A] = 0
9: else t[A] = i ;
10: end for
11: r = r ∪ {t} ;
12: i := i + 1 ;
13: end for
14: Retourner r ;

On trouvera, en les onsidérant dans l'ordre ou je les ai donnés :


A B C D E
0 0 0 0 0
1 0 0 0 0
2 0 2 2 2
3 3 0 0 0
4 4 4 0 0
5 5 5 5 0
6 0 6 0 0
2. On souhaite réer une base de données de re ettes de uisine, dé rites omme suit :
Une re ette est identiée par son numéro. Elle a un nom et un type parti ulier (soupe, entrée,
dessert, ...). Elle utilise un ou plusieurs ingrédients ( arottes, viande de boeuf, poivre, ...). Une
ingrédient est identié par son numéro et à un nom. Pour haque ingrédient dans une re ette,
on pré isera sa quantité et l'unité de mesure pour l'exprimer.

1
(a) Donner le s héma de la relation universelle permettant de modéliser es données, 'est
à dire la liste des attributs de l'appli ation regroupés dans une seule relation R. Dressez
l'inventaire des DF valides sur e s héma.
R = (N umR, N omR, T ypeR, N umI, N omI, Qte)
F = {N umR → N omR, T ypeR; N umI → N omI; N umR, N umI → Qte}
(b) Construisez une BD d'Armstrong pour F .
( ) Exhibez les problèmes de redondan e à partir de et exemple. La DF N umR, N umI → qte
engendre-t-elle un problème de redondan e ?
Ils savent qu'un problème de redondan e a lieu lorsqu'une DF prends deux fois la même
valeur à gau he et à droite. la dernière DF ne pose pas de problème, puisque la partie
gau he est une lé.
(d) Proposez de façon intuitive une dé omposition sans pertes et sans redondan e de R.
R1 = (N umR, N omR, T ypeR), R2 = (N umR, N umI, Qte), R3 = (N umI, N omI).
(e) On veut maintenant ajouter à ette modélisation qu'à haque re ette orrespond un en-
semble d'ustensiles. Cette information se traduit-elle par une nouvelle DF ?
Non
(f) Que pensez-vous alors de la dé omposition suivante :
R1 = (N umR, N omR, T ypeR), R2 = (N umR, N umI, Qte), R3 = (N umI, N omI), R4 =
(N umR, U stensile).
Les laisser réé hir - Cette dé omposition engendre une perte de jointure... Il sut pour
a d'exhiber la relation suivante sur R :
No. Tuple NumR NomR TypeR NumI NomI Qte Ustensile
1 1 Cous ous Plat prin ipal 1 Pois Chi hes 0,5kg Cous oussière
2 1 Cous ous Plat prin ipal 2 Agneau 1kg Plat
On peut vérier quette relation ne viole au une DF, elle est don valide.
On onstruit alors les relations r1 , r4 en prenant les proje tions orrespondantes. Ensuite,
on fait la jointure naturelle entre es relations. On obtient :
No. Tuple NumR NomR TypeR NumI NomI Qte Ustensile
1 1 Cous ous Plat prin ipal 1 Pois Chi hes 0,5kg Cous oussière
1 1 Cous ous Plat prin ipal 1 Agneau 1kg Cous oussière
1 1 Cous ous Plat prin ipal 1 Pois Chi hes 0,5kg Plat
2 1 Cous ous Plat prin ipal 2 Agneau 1kg Plat
Cette relation est diérente de la première, il y a don perte de jointure et la dé omposition
n'est pas orre te.

2
Les formes normales, normalisation

UE fondements des bases de données - TD6

1. Donner la forme normale la plus avan ée des s hémas de relation suivants munis de l'ensemble
Σ de ontraintes. Si e n'est fait, normaliser la relation en la dé omposant.
 employe(N omEmp, N omDept, N omChef ) ave Σ = {N omEmp → N omDept; N omDept →
N omChef } ;
en 2FN - on peut é rire R1 = (N omEmp, N omDept), R2 = (N omDept, N omChef ) qui est
en FNBC
 employe(N omEmp, N omEnf ant, salaire) ave Σ = {N omEmp → salaire; N omEmp− >
− > N omEnf ant|Salaire} ;
en 1FN - on a R1 = (N omEmp, salaire), R2 = (N omEmp, N omEnf ant) qui est en 4FN
(et don en FNBC).
 adresse(Rue, V ille, CodeP ostal) ave Σ = {Rue, V ille → CodeP ostal; CodeP ostal →
V ille} ;
3FN - on ne peut pas faire mieux
 Cinema(N omSalle, Heure, F ilm) ave Σ = {N omSalle, Heure → F ilm; F ilm → N omSalle} ;
en 3FN - on ne peut pas faire mieux.
2. On rappelle qu'une ouverture minimum des DF possède un nombre minimal de DF. L'algo-
rithme 1 prend en entrée une ouverture minimum, et donne en sortie la même ouverture ave
un nombre "réduit" d'attributs.
Remarque : Il ne s'agit pas d'une ouverture optimum, qui ontiendrait le nombre minimal
d'attributs ( e qui est un problème NP-Complet). I i, le nombre d'attributs est simplement
minimal pour l'ensemble de DF pris en entrée.

Algorithm 1 Rédu tion du nombre d'attribut pour un ensemble de DF


Require: Un ensemble minimum de DF F sur R.
Ensure: F ave un nombre minimal d'attributs
1: M in := F
2: //Rédu tion des parties gau hes
3: for all X → Y ∈ M in do
4: W := X ;
5: for all A ∈ X do
6: if M in |= (W − A) → X then
7: W := W − {A} ;
8: end if
9: end for
10: M in := (M in − {X → Y }) ∪ {W → Y } ;
11: end for
12: //Rédu tion des parties droites
13: for all X → Y ∈ M in do
14: W := Y ;
15: for all A ∈ Y do
16: G := (M in − {X → Y }) ∪ {X → (W − A)} ;
17: if G |= X → Y then
18: W := W − {A} ;
19: end if
20: end for
21: M in := (M in − {X → Y }) ∪ {X → W } ;
22: end for
23: Retourner M in ;

1
Sur l'énon é suivant, faire l'inventaire des attributs (relation universelle) et des ontraintes
(DF,DI,DMV). Réduire l'ensemble de DF trouvé en al ulant une ouverture minimum sur
laquelle on appliquera l'algorithme 1.
On souhaite modéliser des données sur des lms de inéma. On analyse les données de la
façon suivante. Chaque lm est déterminé par un numéro unique (numéro d'exploitation). Ils
est déterminé aussi par son titre, et sa date de sortie. Il a un réalisateur, un produ teur, un
studio et un ensemble d'a teurs. Notons qu'un réalisateur peut-être produ teur ou a teur dans
un autre lm, et inversement. Un réalisateur/produ teur/a teur possède un nom unique, un
prénom, et une adresse. Un studio possède un nom unique et une adresse. Pour haque a teur,
on souhaite sto ker le nombre de minutes qu'il joue dans le lm, ainsi que son a het.
En outre, un lm peut être une reprise d'un ou plusieurs autres lms, ave lequel il possède un
taux de ressemblan e.
on obtient l'ensemble de DF réduit :
N umF ilm → titre, date, N omprod, N omReal, N omStudio
T itre, Date → N umF ilm, N omprod, N omReal, N omStudio
N omP ers → AdresseP ers, P renom
N omStudio → AdresseStudio
Reprise, N umF ilm → Ressemblance
N umF ilm, N omActeur → duree, cachet
ainsi que les DI :
Reprise ⊆ N umF ilm; N omP rod ⊆ N omP ers; N omReal ⊆ N omP ers; N omActeur ⊆ N omP ers

2
Normalisation de bases de données
UE fondements des bases de données - TD7

A partir des énon és suivants, dresser la liste des dépendan es puis donnez un s héma de base
de données normalisé en appliquant l'algorithme de synthèse. Donnez la forme normale des s hémas
obtenus.
On utilise l'algorithme donné en ours, qui sut pour les exemples suivants. Je vous le donne :
- al uler un ouverture réduite de l'ensemble des DF (algo de ouverture minimum puis algo
de rédu tion des parties gau hes et droites)
- Puis, pour haque DF X → Y de l'ensemble obtenu, onstruire une relation XY
- pour haque dep multivaluée X− > − > Y , onstruire une relation XY ′ où F ⊢ Y ′ → Y
- si des attributs (données) manquent, alors rajouter une relation qui est une lé de tous les
attributs de départ.
- Enn, supprimer des s hémas de relation qui ne seraient pas maximaux par in lusion.
Cet algo donne un s héma en 3FN de façon sûr, parfois FNBC. Je suis ons ient qu'il peut-être
optimisé pour obtenir des s hémas plus petits (prise en ompte des attributs équivalents du type
A → B et B → A).
1. Informatisation de servi es hirurgi aux
Une servi e hirurgi al sera identié par son nom, et possède un numéro de téléphone. Il a un
hef de servi e unique, lui même identié par son nom.
Une opération hirurgi ale on erne un patient. Elle sera identiée dans la suite par sa date,
heure et la salle d'opération ; elle est pratiquée par un anesthésiste et un ensemble de hirurgiens
qui en retirent un salaire, et possède une durée.
Un ode d'admission unique est attribué à haque patient, dont on onnaît également le sexe,
l'âge et le méde in traitant. Notez que, à une date donnée, le patient ne subit qu'une seule
intervention.
Tout personnel a un nom unique et un numéro de téléphone où il peut être joint à tout instant.
Certains de es personnels sont autorisés à onsulter les données, et possèdent ainsi un mot de
passe.
Enn, notons qu'un hirurgien appartient à un seul servi e ; le hef de servi e est d'ailleurs
pris parmi ses hirurgiens.
Solution : On peut en déduire l'ensemble de DF suivant :
N omService → N umT elService, N omChef
DateOp, HeureOp, SalleOp → Anesthesiste, CodeP atient, duree, SalaireAnesthesiste
DateOp, HeureOp, SalleOp, N omChirurgien → SalaireChirurgien
CodeP atient, DateOp → HeureOp, SalleOp
CodeP atient → Sexe, Age, M edecinT raitant
N omP ersonnel → N umT el
P ersonnelAutoris → M otdeP asse
N omChirurgien → N omService
N omChef → N omService
Ave les DI
N omChef ⊆ N omChirurgien
N omChirurgien ⊆ N omP ersonnel
Je pense qu'il faut leur faire admettre (et vérier hez eux) que et ensemble est réduit.
En onstruisant une relation par DF, on obtient un ensemble de s hémas ; on supprime eux
in lus dans d'autres, on nomme les s hémas restant. On souligne les lés.
On obtiendra :
Service(N omService, N umT elService, N omChef )

1
Intervention(DateOp, HeureOp, SalleOp, Anesthesiste, CodeP atient, duree, SalaireAnesthesiste)
ave la lé en plus CodeP atient, DateOp.
Intervenant(DateOp, HeureOp, SalleOp, N omChirurgien, SalaireChirurgien)
P atient(CodeP atient, Sexe, Age, M edecinT raitant)
P ersonnel(N omP ersonnel, N umT el)
P ersonnelAutorise(P ersonnelAutoris, M otdeP asse)
Af f ectation(N omChirurgien, N omService)
2. Informatisation de la gestion des emplois du temps
Les données sont les suivantes :
 Un élève possède un numéro d'étudiant unique et un nom.
 Un groupe possède un ode unique et un nom, et orrespond à un ensemble d'élèves.
 Une formation est libellée par un ode unique, et se ompose d'un ensemble de groupes
 Une UE possède un ode unique et une des ription.
 Un professeur, identié par son nom, est responsable d'une liste d'UE depuis un ertain
nombre d'années.
 Une salle possède un ode unique, et un nombre de pla es.
 un réneau horaire a une heure de départ, une durée, et une date.
 Enn, l'asso iation d'une UE, d'un groupes, d'une salle et d'un réneau horaire donne une
séan e de ours, à laquelle on attribue un ommentaire.
DF :
N umEtud → N omEtud
CodeGroupe → N omGroupe
CodeU E → description
N omP rof, CodeU E → N bAnnee
CodeSalle → N bP lace
CodeU E, CodeGroupe, CodeSalle, HeureDep, Duree, Date → commentaire
DMV :
CodeGroupe →→ N umEtud, N omEtud
CodeF orm →→ CodeGroupe, N omGroupe
L'ensemble de DF est minimal et réduit. Dire aux étudiants de le vérier par eux mêmes hez
eux. En appliquant l'algo, on obtient une relation par dépendan e. Attention, pour les DMV,
on obtient des relations ave 2 attributs, puisque qu'on ne garde que e qui est né essaire de
la partie gau he.
Enn, il faut leur faire nommer les relations, et reporter les lés à partir des DF.

Vous aimerez peut-être aussi