Académique Documents
Professionnel Documents
Culture Documents
Le modèle relationnel
M. GUEYE
2
Les Bases de données
Quelques définitions
Définition 1: une données peut contenir une information
quelconque:
– le nom d’une personne,
– le numéro de téléphone du propriétaire d’un véhicule,
– l’enseignant d’un cours donné
–…
4
Quelques définitions
• Définition 2.b: une base de données peut aussi être vue
comme une collection d’informations modélisant une
organisation (entreprise, société …) du monde réel.
5
Quelques exemples
• Exemple (1) de base de données : les clients d’une banque et
leurs comptes.
COMPTE
Num_cli Nom Tel Num_Cte Solde
MF001 Moussa FALL 00221 77 485 13 29 1234 1.800.650
MF001 Moussa FALL 00221 77 485 13 29 3225 7.561.000
JD002 Jean DIATTA 00221 33 820 18 30 456 21.450.000
AG003 Astou GUEYE +221 76 545 88 75 618 12.945.500
6
Quelques exemples
• Exemple (1) de base de données : les clients d’une banque et
leurs comptes.
COMPTE
Num_cli Nom Tel Num_Cte Solde
MF001 Moussa FALL 00221 77 485 13 29 1234 1.800.650
MF001 Moussa FALL 00221 77 485 13 29 3225 7.561.000
JD002 Jean DIATTA 00221 33 820 18 30 456 21.450.000
AG003 Astou GUEYE +221 76 545 88 75 618 12.945.500
7
Quelques exemples
• Exemple (2) de base de données : les clients d’une banque et
leurs comptes.
CLIENT
Num_cli Nom Tel Num_Cte
MF001 Moussa FALL 00221 77 485 13 29 1234
JD002 Jean DIATTA 00221 33 820 18 30 456
AG003 Astou GUEYE +221 76 545 88 75 618
COMPTE
Num_Cte Solde
456 21.450.000
1234 1.800.650
8
618 12.945.500
Quelques exemples
• Exemple (3) de base de données : les clients d’une banque et
leurs comptes.
CLIENT
Num_cli Nom Tel
MF001 Moussa FALL 00221 77 485 13 29
JD002 Jean DIATTA 00221 33 820 18 30
AG003 Astou GUEYE +221 76 545 88 75
COMPTE
Num_Cte Solde Num_cli
1234 1.800.650 MF001
456 21.450.000 JD002
618 12.945.500 AG003
9
3225 7.561.000 MF001
Quelques exemples
10
Quelques exemples
11
Le SGBD
Problématique: Une base de données n’étant du moins qu’un ensemble
de fichiers. L’utilisation directe de ces fichiers soulève de très gros
problèmes :
• Lourdeur d’accès aux données. En pratique, pour chaque accès, même
le plus simples, il faudrait écrire un programme.
• Manque de sécurité. Si tout programmeur peut accéder directement aux
fichiers, il est impossible de garantir la sécurité et l’intégrité des
données.
• Pas de contrôle de concurrence. Dans un environnement où plusieurs
utilisateurs accèdent aux même fichiers, des problèmes de concurrence
d’accès se posent.
14
Petit historique des BD
Années 1960:
• début 1960: Charles Bachmann développe le premier
SGBD, IDS, chez Honeywell
– modèle réseau: les associations entre les données
sont représentées par un graphe.
15
Petit historique des BD
Années 1970:
• 1970: Ted Codd définit le modèle relationnel au IBM San
Jose Laboratory(aujourd’hui IBM Almaden)
• 2 projets de recherche majeurs
– INGRES, University of California, Berkeley
• devint le produit INGRES, suivi par POSTGRES, logiciel libre, qui
sera le produit ILLUSTRA, racheté par INFORMIX
– System R, IBM San Jose Laboratory
• devint DB2, inspira ORACLE
• 1976: Peter Chen définit le modèle Entité-Association
(Entity-Relationship)
16
Petit historique des BD
Années 1980:
• maturation de la technologie relationnelle
• standardisation de SQL
Années 1990:
• amélioration constante de la technologie relationnelle
• support de la distribution et du parallélisme
• modèle objet, ODMG
• fin 1990 : le relationnel-objet, SQL3
• nouveaux domaines d’application: entrepôts de données
et décisionnel, Web, multimédia, mobiles, etc.
Années 2000:
• apparition de XML…
17
Conception d’une base de
données
Organisation logique des données
LE MODELE RELATIONNEL
19
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles que doit
respecter une base de données.
─ Des opérations pour manipuler les données, en interrogation et en
mise à jour.
Relation
Voiture est représentée sous forme de tableau
imm marque annee idAg a un nom (Ex.: Voiture)
1 Toyota 2012 1 est composée d’un ensemble de colonnes
2 Dacia 2013 1 désignées par un nom d’attribut (Ex.: imm)
3 Toyota 2014 1
chaque colonne/attribut contient des
4 KIA 2010 2 valeurs d’un domaine défini (int, float, text,
5 Renault 2009 2 date…)
6 Peugeot 2015 3
chaque ligne correspond à une entité
(ici, des voitures).
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
Voiture (imm:string, marque:string, annee:number, idAg:number)
Voiture (imm, marque, annee, idAg) // Format court
Voiture
imm marque annee idAg
Schéma (description de la relation en intention)
1 Toyota 2012 1
2 Dacia 2013 1
Voiture
imm marque annee idAg
Schéma (description de la relation en intention)
Dégré : nombre d’attributs (de colonnes)
1 Toyota 2012 1
2 Dacia 2013 1
Voiture
imm marque annee idAg
! L’ordre des lignes (tuples) et des
1 Toyota 2012 1 colonnes (attributs) n’a pas d’importance!
2 Dacia 2013 1
3 Toyota 2014 1
4 KIA 2010 2
5 Renault 2009 2
6 Peugeot 2015 3
24
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.
25
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données ⇒ contraintes d’intégrité
26
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données ⇒ contraintes d’intégrité
Voiture
imm marque annee idAg
1 Toyota 2012 1
2 Dacia 2013 1
Voiture
imm marque annee idAg
1 Toyota 2012 1
2 Dacia 2013 1
CLE PRIMAIRE
Client (codeClient, nom, prenom, ville)
Produit (codeProduit, designation, prixUnitaire, tauxTVA, stock)
Commande (numCommande, date, prix, codeClient)
CommandeProduits (numCommande, codeProduit, quantite)
Fournisseur (codeFournisseur, nom, prenom, ville, telephone)
FournisseurProduits (codeFournisseur, codeProduit, prixUnitaire) 29
Le modèle relationnel
Un modèle de données définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données. Agence
idAg nom ville
Voiture
1 Thiès Ouest Thiès
imm marque annee idAg
2 Yoff Dakar
1 Toyota 2012 1
3 Dakar Plateau Dakar
2 Dacia 2013 1
3 Toyota 2014 1
4 KIA 2010 2
5 Renault 2009 2
CLE ETRANGERE
6 Peugeot 2015 3
Obligation de référencer une valeur existante*
contrainte référentielle
Le modèle relationnel
Un modèle de données définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données. Agence
idAg nom ville
Voiture
1 Thiès Ouest Thiès
imm marque annee idAg
2 Yoff Dakar
1 Toyota 2012 1
3 Dakar Plateau Dakar
2 Dacia 2013 1
3 Toyota 2014 1
4 KIA 2010 2
5 Renault 2009 2
CLE ETRANGERE
6 Peugeot 2015 3
Présence de la clé primaire d’une relation dans
une autre.
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.
CLE ETRANGERE
Client (codeClient, nom, prenom, ville)
Produit (codeProduit, designation, prixUnitaire, tauxTVA, stock)
Commande (numCommande, date, prix, codeClient)
CommandeProduits (#numCommande, #codeProduit, quantite)
Fournisseur (codeFournisseur, nom, prenom, ville, telephone)
FournisseurProduits (#codeFournisseur, #codeProduit, prixUnitaire)
32
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.
Contrainte d’unicité
Unicité de la valeur dans les colonnes spécifiées
CLE PRIMAIRE
Contrainte d’existence
Obligation de valeur dans les colonnes spécifiées
Contrainte de domaine
La valeur doit être du type spécifié au niveau de l’attribut concerné
33
Le modèle relationnel
Un modèle relationnel définit un mode de représentation de
l’information selon trois composantes :
─ Une structure de données.
─ Des contraintes qui permettent de spécifier les règles de gestion des
données.
─ Des opérations pour manipuler les données, en interrogation et en
mise à jour.
5 Renault 2009 2
6 Peugeot 2015 3
Location Client
idLoc imm idCli ddebut dfin montant idCli nom
Un schéma relationnel est constitué d’un ensemble de schémas de relations qui décrivent
chacun le contenu d’une relation.
Client (idCli, nom, prenom, sexe, tel, ville)
Agence (idAg, nom, ville)
Voiture (imm, marque, annee, #idAg)
Location (idLoc, #imm, #idCli, ddebut, dfin, montant)
Organisation logique des données
DÉPENDANCES
FONCTIONNELLES
37
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
A1 An A1*A2 * … *An
A2
a11 a21 an1 (a11, a21, …an1)
a12 an2 (a12, a21, …an1)
a22 (a13, a21, …an1)
a13 an3
… …
… …
⇒ …
(a11, a22, …an1)
a1k a2l anm (a12, a22, …an1)
…
(a1k, a2l, …anm)
38
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
Relation
Voiture est représentée sous forme de tableau
imm marque annee idAg a un nom (Ex.: Voiture)
1 Toyota 2012 1 est composée d’un ensemble de colonnes
2 Dacia 2013 1 désignées par un nom d’attribut (Ex.: imm)
3 Toyota 2014 1
chaque colonne/attribut contient des
4 KIA 2010 2 valeurs d’un domaine défini (int, float, text,
5 Renault 2009 2 date…)
6 Peugeot 2015 3
chaque ligne correspond à une entité
(ici, des voitures).
39
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
A1 40
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
A1
a11
a12
a13
…
a1k
card(A1) = K = 6
A1 41
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
A2
a21
a22
…
a2l
A2 card(A2) = L = 5 42
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
A2
a21
a22
…
a2l
A2 card(A2) = L = 5 43
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
An card(An) = M = ?? 44
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
A1 An A1*A2 * … *An
A2
a11 a21 an1 (a11, a21, …an1)
a12 an2 (a12, a21, …an1)
a22 (a13, a21, …an1)
a13 an3
… …
… …
⇒ …
(a11, a22, …an1)
a1k a2l anm (a12, a22, …an1)
…
(a1k, a2l, …anm)
45
Les dépendances fonctionnelles
Relation
Est une partie du produit cartésien d’une liste de domaines (c-à-d., des
ensembles de valeurs)
Soit 𝑅 un ensemble d’attributs, un tuple 𝑡 sur 𝑅
est une application
𝑇: 𝑅 → ∪ 𝐷𝑜𝑚 𝐴 𝑎𝑣𝑒𝑐 𝑡 𝐴 ∈ 𝐷𝑜𝑚(𝐴)
Une relation 𝑟 sur 𝑅 est un ensemble de tuple.
𝑅 est dit schéma de la relation 𝑟.
𝑅 𝐴1 , 𝐴2 , 𝐴3 , … 𝐴𝑛
𝑅 ∶ 𝑁𝑜𝑚 𝑑𝑒 𝑙𝑎 𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛
𝐴1 , 𝐴2 , 𝐴3 , … 𝐴𝑛 ∶ 𝑁𝑜𝑚𝑠 𝑑𝑒𝑠 𝑎𝑡𝑡𝑟𝑖𝑏𝑢𝑡𝑠
46
Les dépendances fonctionnelles
Pourquoi ?
Pas de perte d’informations
Pas de création d’informations incohérentes
Pas de redondance d’information inutile
Comment ?
Décomposition des relations suivant des règles de dépendance
47
Les dépendances fonctionnelles
Définition 4: Soit 𝑋 ⊆ 𝑅 un ensemble d’attribut, 𝐴 ∈ 𝑅.
Soit 𝑟 son extension. 𝐴 est en dépendance fonctionnelle
avec 𝑋 ou 𝑋 détermine 𝐴 ssi :
∀ 𝑡𝑖 , 𝑡𝑗 ∈ 𝑟 2 , 𝑡𝑖 𝑋 = 𝑡𝑗 𝑋 ⇒ 𝑡𝑖 𝐴 = 𝑡𝑗 𝐴
On note 𝑟 ⊧ 𝑋 → 𝐴
La connaissance d’une valeur de 𝑋 dans 𝑅 ⇒ la connaissance d’au
plus une seule valeur de 𝐴.
noEtudiant → nom
Exemples: noEtudiant → prenom
matiere → responsable
matiere, noEtudiant → noteCC
codeProduit → prixUnitaire
immatriculation → modeleVoiture
48
prenom, nom → noEtudiant
Les dépendances fonctionnelles
On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.
∀ 𝑡𝑖 , 𝑡𝑗 ∈ 𝑟 2 , 𝑡𝑖 𝑋 = 𝑡𝑗 𝑋 ⇒ 𝑡𝑖 𝐴 = 𝑡𝑗 𝐴
49
Les dépendances fonctionnelles
On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.
50
Les dépendances fonctionnelles
On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.
A B C D E A→B
A→C
a1 b1 c1 d3 e2
BC → D
a1
a2
b1
b2
c3
c4
d4
d2
e3
e1
AC → D
B→D
??
a3 b1 c1 d3 e2 D→E
a2 b2 c4 d2 e1 AC → E 51
Les dépendances fonctionnelles
On a une dépendance fonctionnelle (DF) si et seulement
- si deux tuples 𝑡𝑖 et 𝑡𝑗 de la relation 𝑟 ont les mêmes
valeurs sur 𝑋,
- alors 𝑡𝑖 et 𝑡𝑗 ont les mêmes valeurs sur l’attribut 𝐴.
A B C D E A→B oui
A→C non
a1 b1 c1 d3 e2
BC → D oui
a1 b1 c3 d4 e3 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 52
Dépendance fonctionnelle élémentaire
Définition 5: Dépendance fonctionnelle élémentaire (DFE)
Une DF 𝑋 → 𝐴 est dite élémentaire ou minimale si 𝐴 ne
dépend d’aucun sous ensemble propre de 𝑋, autrement dit:
𝑋 → 𝐴 𝑒𝑠𝑡 é𝑙é𝑚𝑒𝑛𝑡𝑎𝑖𝑟𝑒 ⇔ ∀ 𝑌 ⊂ 𝑋, 𝑒 𝑌 → 𝐴 ∉ 𝑑𝑒𝑝 𝑟
o Exemple: 𝑋 = 𝐴, 𝐵, 𝐶 𝑒𝑡 𝑋 → 𝑍 ⇒ 𝐴, 𝐵 ↛ 𝑍
53
Notion de clé
Définition 6: Notion de clé
Une clé 𝐾 d’une relation 𝑅 est un attribut ou un groupe
d’attributs tel qu’il existe une dépendance fonctionnelle
élémentaire entre 𝐾 et tout autre attribut de 𝑅.
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇
54
Notion de clé
Définition 6: Notion de clé
Une clé 𝐾 d’une relation 𝑅 est un attribut ou un groupe
d’attributs tel qu’il existe une dépendance fonctionnelle
élémentaire entre 𝐾 et tout autre attribut de 𝑅.
𝐾
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇
55
Propriétés des DF (Axiomes d’Armstrong)
Réflexivité
𝑌⊆𝑋 ⇒ 𝑋→𝑌
Augmentation
𝑋 → 𝑌 ⇒ 𝑋, 𝑍 → 𝑌
Transitivité
𝑋 → 𝑌 𝑒𝑡 𝑌 → 𝑍 ⇒ 𝑋 → 𝑍
Union
𝑋 → 𝑌 𝑒𝑡 𝑋 → 𝑍 ⇒ 𝑋 → 𝑌, 𝑍
Pseudo transitivité
𝑋 → 𝑌 𝑒𝑡 𝐴, 𝑌 → 𝑍 ⇒ 𝐴, 𝑋 → 𝑍
Décomposition
𝑋 → 𝑌 𝑒𝑡 𝑍 ⊆ 𝑌 ⇒ 𝑋 → 𝑍
56
Fermeture transitive
57
Fermeture transitive
o Exemple: 𝑑𝑒𝑝 𝑟 = 𝐴 → 𝐵, 𝐵 → 𝐶, 𝐵 → 𝐷, 𝐴 → 𝐸
+
𝑑𝑒𝑝 𝑟 = 𝑑𝑒𝑝 𝑟 ∪ 𝐴 → 𝐶, 𝐴 → 𝐷
58
Fermeture transitive
60
Couverture minimale
Définition 8: Couverture minimale
La couverture minimale 𝑚𝑖𝑛(𝐹) d’un ensemble de DF 𝐹 est
un ensemble 𝐺 tel que 𝐹 + = 𝐺 + et qui respecte les trois (03)
propriétés suivantes:
1. Les cibles des DF de G n’ont qu’un seul élément
𝑋𝑌𝑍 → 𝐴
FORMES NORMALES
Les formes normales permettent d’obtenir une décomposition d’une
relation en déterminant sa « qualité » (par rapport à la redondance)
avec l’utilisation des dépendances fonctionnelles.
62
Les formes normales
Définition 9: 1ère Forme normale (1NF)
Une relation est en première forme normale si :
• Tout attribut est atomique. Il n’est pas décomposable
• Tout attribut non clé est en dépendance fonctionnelle
avec la clé
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇
63
Les formes normales
Définition 10: 2ème Forme normale (2NF)
Une relation est en deuxième forme normale si :
• Elle est en 1NF
• Tout attribut non clé primaire est en dépendance
fonctionnelle élémentaire avec la clé primaire.
NON 2NF
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇
NON BCNF
𝑅 𝑋, 𝑌, 𝑍, 𝑉, 𝑈, 𝑇
R1 (A, B) et R2 (B, C)
R (A, B, C, D, E, F, G, H, I, J, K)
R1 (A, B, C, E) R2 (A, D, F, G, H, I, J, K)
70
Exercice 3
Pour chaque relation ci-dessous:
- identifier les redondances éventuelles dans sa population,
- établir le (un) graphe minimum de ses dépendances,
- définir son (ses) identifiant(s),
- définir sa forme normale et la justifier,
- si nécessaire, proposer une décomposition optimale.