Académique Documents
Professionnel Documents
Culture Documents
« Le Modèle Relationnel »
8 mai 2023
Z On note
x ∈ à l’ensemble S
∅ l’ensemble vide
|S| cardinalité de l’ensemble S
P (S) ou 2|S| l’ensemble des parties de l’ensemble S
Z Comparateurs ensemblistes
=, ̸=, ⊂, ⊈
Z Partition
soit S un ensemble non vide et I un intervalle
une partition de S est une famille d’ensembles {Si |i ∈ I} telle
que
S
i∈I Si = S
1
2 Si ∩ Sj = ∅ pour i ̸= j
3 Si ̸= ∅ pour tout i ∈ I
Exemple
S = {a, b, c, d}
S1 = {a, c} et S2 = {b, d} forment une partition de S
S1 = {a, b} et S2 = {b, c, d} ne forment pas une partition de
S
Exemples de domaines
les chaînes de caractères de longueur maximale 20
les entiers positifs
les entiers compris entre 1 et 30
les couleurs {V ert, Jaune, Rouge}
...
Attribut
Un attribut A est une caractéristique d’un objet représentée
par une valeur prise dans un domaine. On note Dom(A) le
domaine de l’attribut A
Dom(x) Dom(y)
a 1
Dom(y)
b 2
4
3
3 c
4
2
a b c Dom(x)
relation n-aire
Une relation n-aire R sur S est définie de manière analogue
comme un sous-ensemble de S n
on note R(x1 , . . . , xn ) pour indiquer que (x1 , . . . , xn ) ∈ R
on appelle (x1 , . . . , xn ) n-uplet ou tuple
Soit R la relation définie sur les ensembles A1, A2, . . . , An
R ⊂ A1 × A2 × . . . × An
A1 A2 An A1xA2x.....xAn
card(A1xA2x...xAn)=ixjx...xk
A1 A2 A 3 An
a11 a21 an2
........
........
a12 a2j
Schéma de la relation
Description de la relation en intention
R(A1 , A2 , . . . , An )
R : Nom de la relation
A1 , A2 , . . . , An : Nom des attributs de la relation
(a1i , a2j , ..., ank ) : n-uplet
n : Degré ou arité de la relation (Relation n-aires)
CLIENTS
NumClient Nom Ville PRODUITS
001 Albert Dakar NumProd Désignation PrixUnitaire
COMMANDES
NumClient NumProd Quantite
001 0002 3
002 0002 1
002 0003 5
Schéma EA
Schéma EA Valide
Implémenter
yyyyyyyy yyyyyyyy
ORDINATEUR
............ ............
............ yyyyyyyy ............
............
............
Représenter
MODELE LOGIQUE
Exemples
P 1 : les numéros des étudiants ne sont pas des multiples de 3.
Le prédicat P 1 interdit l’ajout du n-uplet(369, mbaye,sarr, 12
mars 1990)
P 2 : la chaîne de caractère de l’attribut DateDeN aissance
est une date valide. Le prédicat P 2 interdit l’ajout du n-uplet
(369,mbaye sarr, 15 décembbre 2300).
Exemples
P 3 : le nombre de Numéros finissant par 83 est inférieur ou
égal à 17
P 4 = P 1|P 2&P 3
Contrainte d’intégrité dynamique
Il n’est pas possible de décider si P (R) est vrai ou faux, mais
il est possible de décider si P (R −→ R) est vrai ou faux
Exemples
P 5 : les étudiants nés un 29 février ne peuvent pas être
supprimés de la base
David Célestin FAYE Bases de données
Typologie des Contraintes d’intégrité 20
Z Contraintes d’entité
Lorsque la valeur d’un attribut est inconnue, on utilise une
valeur conventionnelle appelée valeur nulle
impose que toute relation possède une clé primaire et que tout
attribut participant à cette clé primaire soit non nul.
Z Contraintes de domaine
obligation pour tout attribut de prendre des valeurs dans le
domaine qu’on lui a définit. Elle set traduit sous forme
d’assertion logique.
Exemple :
A B C D E
A→B oui
a1 b1 c1 d3 e2 A→C non
a1 b1 c3 d4 e3 BC→D oui
AC →D oui
a2 b2 c4 d2 e1
B →D non
a3 b1 c1 d3 e2 D →E oui
a2 b2 c4 d2 e1 AC →E oui
Z Augmentation :
Si X → Y alors X, Z → Y
Z Transitivité :
Si X → Y et Y → Z alors X → Z
F 1 ≡ F 2 ⇔ F 1+ = F 2+
Exemple :
{A → B, B → C, B → D} ≡ {A → B, A → D, B → CD}
{A → B, B → C} ≡ {A → B, B → C, A → C}
Remarque
La fermeture contient beaucoup de solutions triviales et le
calcul même est coûteux. ⇒ éviter de calculer toute la fer-
meture.
David Célestin FAYE Bases de données
Fermeture d’un ensemble d’attributs 35
Au lieu de calculer toute la fermeture transitive de F , on
calcule la fermeture d’un ensemble d’attributs X, qui contient
tous les attributs qui dépendent des attributs dans X :
Exemple
Soit F :
AB → C D → EG
C→A BE → C
BC → D CG → BD
ACD → B CE → AG
X : BD et U : ABCDEG
L’algorithme calcule
X (0) : BD
X (1) : BDEG
X (2) : BDEGC
X (3) : BDEGCA
X (4) : BDEGCA
Théorème
L’algorithme donné calcule bien X + , c’est-à-dire que, quand
l’algorithme s’arrête, X (if ) = {A | F |= X → A}.
Preuve
1 Montrons X (if ) ⊆ X + {A | F |= X → A}
On démontre par induction que ∀i X (i) ⊆ X +
(a) Initialement X (0) = X ⊆ X +
(b) Si X (i) ⊆ X + alors X (i+1) ⊆ X +
Par la définition de X (i+1) , on peut voir que
si on a F |= X → A pour tout A ∈ X (i) ,
alors on a F |= X → A pour tout A ∈ X (i+1) .
AB → C, D → C, D → E, CE → F, E → A
Exercice
Soit R(A, B, C, D) et F est composé de
{AB → C, C → D, D → A}. Trouver les clés candidates.
(Réponse CB et AB).
Les clés : commentaires 44
Grands avantages des clés sur les DFs : Les SGDB fournissent
le contrôle des clés alors qu’ils ne fournissent pas le contrôle
des DFs.
Notre but est donc de transformes les DF en clés !
Technique de base : identifier les tables avec des DFs qui ne
sont pas des clés et les décomposer en tables plus petites.
Utilisation des propriétés des DF
∀X → A ∈ G et Z ⊂ X, (G − {X → A} ∪ {Z → A})+ ̸= G+
∀X → A ∈ G, (G − {X → A})+ ̸= G+
(min(F ))+ = F +
Une couverture d’un ensemble de DF est donc une
représentation alternative, mais qui possède exactement la
même sémantique. Elle est plus « compacte »
Algorithme de calcul d’une couverture minimale 46
Z Exprimer tout fj ∈ F sous forme canonique. On obtient ainsi
un ensemble F ′ . En d’autres termes, toute dépendance
X → Y avec Y = {A1 , A2 , . . . , An } est remplacée par les
dépendances X → A1 , X → A2 , . . . , X → An .
Z Pour tout fj ∈ F ′ tester si F ′ − {fj } |= f j est vrai, alors
F ′ := F ′ − {fj }
Z Pour tout fj ∈ F ′ de la forme A1 , A2 , . . . , Am → Bj
Si F ′ |= {A1 , . . . , Ai−1 , Ai+1 , . . . , Am → Bj } est vrai alors
supprimer Ai dans fj , i allant de 1 à m.
NB : cette couverture minimale n’est pas unique en général
AB → C D→E
D→G
C → A BE → C
BC → D CG → B
CG → D
ACD → B CE → A
CE → G
2 On peut éliminer CE → A
On peut éliminer CG → B
3 On peut remplacer ACD → B par CD → B
Soit F :
A → B, BC → D, D → E, AC → D, AC → E
A → D, A → B, B→C
Z Anomalies de modification
Si l’on souhaite mettre à jour l’adresse d’un fournisseur, il faut
le faire pour tous les tuples concernés.
Z Anomalies d’insertion
Pour ajouter un fournisseur nouveau, il faut obligatoirement
fournir des valeurs pour NumProd et Quantité
Z Anomalies de suppression
La suppression du produit 04 fait perdre toutes les
informations concernant le fournisseur F 02.
⇒définir des contraintes sur les schémas de relations qui
permettent d’éviter ce type de problème
Définition
Soit R(U ) un schéma relationnel d’ensemble de dé-
pendances fonctionnelles F . L’ensemble des schémas
R1 (U ), . . . , Rn (U ), avec U = U1 ∪. . .∪Un d’ensemble de dé-
pendances fonctionnelles respectifs F1 , . . . , Fn constitue une
décomposition de F . Le contenu de chaque relation Ri (Ui )
peut être caractérisé à partir de R en posant
Ri (Ui ) = R[Ui ].
F [Ui ] = {X → Y ∈ F + |X ⊆ Ui , Y ⊆ Ui }
Table T
U : ensemble de tous les attributs de T
Déterminant(X) ≠
Y
Clé candidate
Table T1 Table T2
U : ensemble de tous les attributs de T X = Clé primaire
de T2 Y
X = Clé étrangère
dans T1 Y
r = r[U1 ] ▷◁ . . . ▷◁ r[Un ]
Entrée :
Un schéma de relation R[A1 ...An ] (ou un univers
U = {A1 ...An })
Un ensemble de dépendances fonctionnelles F sur R (ou U ).
Une décomposition α = {R1 , R2 , ..., Rk }.
Sortie :
Oui ou non la décomposition est SPI par rapport à F
.
Exemple 1
F ournisseurP roduit(N umF ourn, adresse, N umP rod, Quantite)
est décomposé en
Exemple 1 (Suite)
F ournisseurP roduit(N umF ourn, adresse, N umP rod, Quantite)
est décomposé en
Exemple 2
F ournisseurP roduit(N umF ourn, adresse, N umP rod, Quantite)
est décomposé en
Exercice
Soit F = {B → C} un ensemble de dépendances fonctionnelles sur
U = {ABC}.
Décompositions : (SPI ?)
1 α = {R1(AB), R2(BC)}
2 α = {R1(AB), R2(AC)}
3 α = {R1(AC), R2(BC)}
Exemple :
Soit R = {ABC} et F = {A → B}.
(AB, AC) est une décomposition de R sans perte par rapport à F
vu que AB ∩ AC = A et AB − AC = B et A → B est une
dépendance de F + .
En revanche, la décomposition de R en (AB, BC) n’est pas sans
perte par rapport à F . En effet, on peut trouver une relation.
A B C A B
r : a1 b1 c1 qui satisfait F et telle que r[AB] : a1 b1 et
a2 b1 c2 a2 b1
A B C
B C a1 b1 c1
r[BC] : b1 c1 et r[AB] ▷◁ r[BC] : a1 b1 c2 ̸= r
b1 c2 a2 b1 c1
a2 b1 c2
Décomposition Sans perte de dépendances(SPD) 69
Définition
Une DF X → Y est projetée(est applicable) dans R si R
contient XY .
Théorème
[
Il suffit de montrer que F + ⊆ ( F [Ri ])+
i
Preuve :
[
F+ ⊇ ( F [Ri ])+ trivial, car on ne peut pas créer de
i
nouvelles DF lorsqu’on fait une décomposition.
[
F+ ⊆ ( F [Ui ])+ : il suffit de montrer que toute DF de F
i [
peut se déduire des DF projetées F ⊆ ( F [Ri ])+
i
Exemple
Est-ce que α est SPD ?
U = {C, R, Z}
F = {CR → Z, Z → C}
α = {RZ, CZ}
EMPLOYE(Matricule,Nom,Prenom,Enfants,Experience )
ENFANTS( NomEnfant,DateNaissance)
EXPERIENCE( DateExperience,Titre, HistoriqueSalaire)
HISTORIQUE-SALAIRE( DateSalaire,Salaire)
EMPLOYE(Matricule,Nom,Prenom)
ENFANTS(Matricule, NomEnfant,DateNaissance )
EXPERIENCE(Matricule,DateExperience,Titre )
HISTORIQUE-SALAIRE(Matricule,DateExperience,DateSalaire,
Exemple :
CLIENT(NumCli,Nom,Prenom,Rue,Ville) est en 2NF
COMMANDE_PRODUIT(NumProd,Quantite,NumFourn,Ville) n’est
pas en 2NF car on a N umP rod, N umF ourn → Quantite et
N umF ourn → V ille
La décomposition suivante donne deux relations en 2NF :
COMMANDE(NumProd,NumFourn,Quantite) ;
FOURNISSEUR(NumFourn,Ville).
EMPLOYE(Nss,nom,CodServ)
SERVICE(CodServ,ChefSer)
La relation
FOURNISSEUR(NumFourn,Pays Ville)
n’est pas en 3NF car il existe les dépendances
N F → V ille et V ille → P ays
En décomposant en obtient :
FOURN(NumFourn,Ville)
GEO(Ville,Pays)
Remarques
Toute relation à 2 attributs est FNBC
FNBC = aucune redondance dûe aux DFs
David Célestin FAYE Bases de données
Forme normale de Boyce-Codd 92
description
quantité prixUnitaire
VenteReste Client
nomClient
noClient
dateCommande noTéléphone
noCommande
nomClient
noClient
noArticle noTéléphone
dateCommande
quantité prixUnitaire
Après décomposition :
Vente
VenteReste Client
VenteReste2 Commande
Article LigneCommande
Exemple
Place (N°Etud, Matière, Rang)
rang sans ex aequo
N řEtud, M atiere → Rang
M atiere, Rang → N řEtud
2 identifiants : (N°Etud + Matiere)
(Rang + Matiere)
Place est en 3FN et est en FNBC
La BCNF est, pour les DF, la forme idéale d’un schéma de bases
de données.
Les trois propriétés suivantes sont équivalentes
R est en BCNF par rapport à F ;
R n’a pas de problème de redondances par rapport à F ;
R n’a pas de problème de mise à jour par rapport à F ;
Propriété
Toute relation a au moins une décomposition en 3FN qui
préserve les dépendances fonctionnelles et qui est sans perte.
Toute relation a au moins une décomposition en BCNF qui est
sans perte mais qui peut ne pas préserver les DFs.
Faire un compromis
Accepter de ne pas être en BCNF, et donc d’avoir des
anomalies de mise à jour :
Se contenter de déclarer les clés.
Implémenter les DF qui ne BCNF pas des clés (avec des
déclencheurs).
Accepter de relâcher des contraintes, c’est à dire enlever des
DF et rendre l’application « plus souple ».
R2 Horaire Cours
R1 Cours Salle Mercredi 08H00 INFO242
INFO242 FS02 Vendredi 15H00 INFO242
INFO245 FS02 Mercredi 10H00 INFO245
* Mercredi 10H00 INFO242
Maths Ndiaye
Diagne
Physique
Faye
Bases de Données
Informatique
Langage Cobol
Algèbre
Maths
Géométrie
Thermodynamique
Physique
Statique des Solides
definition
Etant donné une relation R et X, Y des ensembles d’attributs
de R, on dit qu’il existe une dépendance multivaluée X ↠ Y
si
la connaissance d’une valeur de X détermine un unique
ensemble de valeurs de Y
ensemble indépendant des autres attributs R − X − Y
de R
Dépendances multivaluées 106
Sémantique
Une relation r sur R satisfait la DM X ↠ Y , noté r |=
X ↠ Y , ssi pour toute paire de tuples t1 et t2 de r tels que
t1 [X] = t2 [X], ils existent des tuples t3 et t4 avec t3 [X] =
t4 [X] = t1 [X] tels que :
t3 [Y ] = t1 [Y ] et t3 [R − Y ] = t2 [R − Y ]
t4 [Y ] = t2 [Y ] et t4 [R − Y ] = t1 [R − Y ]
Informellement, pour chaque valeur de X fixée, les valeurs
de Y et Z = R − XY sont indépendantes : on a toutes les
combinaisons possibles de Y et Z.
definition
Soit R un schéma de relation et X, Y ⊆ R. Il existe une DM
entre X et Y , notée X ↠ Y ssi, pour tout état r de R,
Definition
Une dépendance plurivalente X ↠ Y est triviale ssi
soit Y ⊆ X (comme pour les DF)
soit X ∪ Y = R(la DM n’impose l’existence d’aucun
tuple).
Définition
Si une relation R est en BCNF et elle ne contient pas de
dépendance multivaluée alors R est en 4NF .
Remarque
R ne doit pas être décomposable en deux relations sans perte
de jointure.
La 4NF implique la BCNF puisqu’une dépendance
fonctionnelle est un cas particulier de dépendance multivaluée.
David Célestin FAYE Bases de données
Quatrieme forme normale (4NF) 113
ET U DES = R1 ▷◁ R2
Table T
U : ensemble de tous les attributs de T
Déterminant(X) ≠
Y
Clé candidate
Table T1 Table T2
U : ensemble de tous les attributs de T X Y
X Y
En pratique
Les DJ sont rares et pas faciles à détecter
On normalise en général en 4FN (si possible)
Cependant
Une relation en 4FN peut contenir encore des redondances et
poser des problèmes lors des m.a.j.
D’autres FN ont encore été proposées.
Ri [X] ⊆ Rj [Y ]
avec Ri , Rj ∈ S, X et Y des séquences d’attributs distincts
respectivement de Ri et de Rj , avec |X| = |Y |.
Exemple
Tout codeClient projeté actuellement de la relation Commandes
est le code d’un client apparaissant dans la relation Clients
Commandes[codeClient] ⊆ Clients[codeClient]
Exemple 1 :
Supposons des schémas de relation pour décrire les matières :
M atiere(codeM atiere, intitule, volumeHoraire)
et un schéma de relation pour décrire les séances de cours :
Seance(date, codeM atiere, numSalle)
Pour imposer que les numéros de matières dans les séances
soient bien des matières qui existent, on définit la dépendance
d’inclusion :
Exemple 2 :
Supposons un schéma de relation Reservations modélisant
les réservations de vidéos pour les séances
Reservations(date, codeM atiere, numP rof, numV ideo)
Pour assurer la cohérence de la base, on doit préciser que les
vidéos doivent être réservés pour des séances de cours
existantes dans la base on définira alors la DI :
R[X] ⊆ R[X]
Permutation & projection
R1 [A1 . . . An ] ⊆ R2 [B1 . . . Bn ] ⇒
R1 [Aσ(1) . . . Aσ(k) ] ⊆ R2 [Bσ(1) . . . Bσ(k) ]
pour chaque séquence σ(1)...σ(k) d’entier distincts dans {1...n}
Transitivité
R1 [X] ⊆ R2 [Y ] et R2 [Y ] ⊆ R3 [Z] ⇒
R [X] ⊆ R
David Célestin1FAYE 3 [Z]
Bases de données
Propriétés du système d’inférence 129
La dénormalisation...
est un processus intentionnel visant à s’éloigner de la
normalisation pour améliorer les performances de la BD,
peut être appliquée sur des colonnes ou des relations entières,
s’effectue après la normalisation,
requiert du concepteur de la BD de connaître comment les
données seront utilisées,
Elle peut être utilisé pour ajuster la BD à une application
particulière.
Bénéfices
minimise le besoin de jointures,
réduit le nombre de clés étrangères (foreign key),
réduit le nombre d’index,
réduit le nombre de relations.