Faculté des Sciences Économiques et de Gestion de Tunis
CHAPITRE3
Le Modèle Relationnel
Dr. Semia Sonia SELMI
2008-2009
Le Modèle Relationnel
Modèle de niveau logique, très simple
Défini par Ted Codd en 1970. Développé par IBM lab.
Aujourd’hui utilisé par beaucoup de SGBDs commerciaux (Oracle, Informix, DB2,
Ingres, Sybase, dBase, SqlServer, Access, etc.) et GIS
Modèle à deux concepts:
Ø Relation (table)
Ø Attribut (colonne)
05/11/2009
2
1
05/11/2009
Le Modèle Relationnel: Concepts de Base
Étudiant (CodeEtud, NomEtud, PrénomEtud, AgeEtud)
Nom de la Relation
Nom des Attributs
Une table est un ensemble de données relatives à un même sujet (entité) et
structurées sous forme de tableau
Étudiant
CodeEtud
NomEtud
PrénomEtud
AgeEtud
125
134
167
Ben Saleh
Ben Fraj
Ben Ahmed
Ali
Mohamed
Moussa
Colonne
19
20
20
Tuple / Occurence
3
Le Schéma Relationnel
Une BD = ensemble de relations
Schéma d’une BD relationnelle = un ensemble de schémas de relation: R1, R2, …, RX
Schéma d’une relation = un ensemble d’attributs Ri = (A1, A2, …, Ay)
4
2
05/11/2009
Règles de Structuration
Attributs: simples et monovalués (domaine de valeurs atomiques)
Structure plate régulière
Attribut 1
Attribut 2
Attribut 3
Attribut 4
Attribut 1
Attribut 2
Attribut 3
Attribut 4
V1
V2
Attribut 1
Attribut 2
Attribut 3
Attribut 4
V1
V2
Une et une seule valeur atomique par attribut
INTERDIT
5
Valeurs Nulles
Un attribut peut ne pas avoir de valeur pour un tuple: on dit alors qu’il a une valeur
nulle.
Exemple: on ne connaît ni le numéro de téléphone d’Ali ni l’e-mail de Saleh.
136
Ben Ahmed
Ali
NIL
234
Tounsi
Anis
71 000666
675
Ben Mohamed Mohsen
73 666 876 [email protected]
676
Ben Saleh
Saleh
72 666 999 NIL
6
3
Passage du Modèle EA au Modèle Relationnel
1- Traduction des entités
2- Traduction des associations 1-1
3- Traduction des associations 1-N
4- Traduction des associations M-N
5- Traduction des associations n-aires et récursives
6- Élimination des attributs composés et multivalués
7- Traduction de la Spécialisation
8- Récapitulatif
EA a M.Relationnel: 1- Traduction des Entités
Créer une Relation par Entité en lui donnant pour attributs les propriétés
explicitées et pour clé l'identifiant.
A
Id_A
a1
a2
R
B
Id_B
b1
b2
b3
A (id_A, a1, a2)
B (id_B, b1, b2, b3)
ÉTUDIANT (Numéro, nom, Date naissance)
Exemple:
ÉTUDIANT
Numéro
Nom
Date naissance
a
05/11/2009
7
8
4
05/11/2009
EA a M.Relationnel: 2- Traduction des associations 1,1
La traduction d'une association 1-1 dépend des cardinalités minimales de
l'association
11erer cascas ::
les deux cardinalités minimales sont 1 a On construit une seule relation
contenant les attributs des deux entités. La clé est reportée une seule fois si
elle est la même.
Exemple:
PATIENT
1,1
Possèder
1,1
N°SS
Nom
DOSSIER MEDICAL
N°SS
Date création
Thérapie
Ä
Publicité
PATIENT DOSSIER (N°SS, Nom, Date création, Thérapie)
PATIENT
1,1
Possèder
1,1
N°SS
Nom
DOSSIER MEDICAL
N°Dossier
Date création
Thérapie
PATIENT DOSSIER (N°SS, Nom, Date création, Thérapie, N°Dossier)
9
EA a M.Relationnel: 1- Traduction des associations 1,1
22èmeème cascas ::
Si une cardinalité minimale est 0, l'autre est 1 a On reporte, dans l'entité
dont la participation est totale, la clé de l'autre entité.
PATIENT
0,1
Possèder
1,1
N°SS
Nom
DOSSIER MEDICAL
N°Dossier
Date création
Thérapie
PATIENT (N°SS, Nom)
DOSSIER (N°Dossier, Date création, Thérapie, #N°SS)
Ä
33èmeème cas :
cas :
Si les deux cardinalités minimales sont 0 a On crée une relation spécifique
avec les clés des deux entités.
FEMME
Se marier
Date
Lieu
0,1
N°SSF
NomF
HOMME
0,1
N°SSH
NomH
Ä
HOMME (N° SSH, nomH)
FEMME (N° SSF, nomF)
MARIAGE (N°SSH, N°SSF, Date, lieu)
10
5
05/11/2009
EA a M.Relationnel: 3- Traduction des associations *,N
11erer Cas:Cas:
Si la cardinalité maximale de l’autre côté de l’association est 1 a On reporte
l'identifiant de l'entité (*,N) dans la relation représentant l'entité (1,1)
Migration de la clé primaire de l’entité mère (du côté de la cardinalité
maximale N) vers l’entité fille (du côté de la cardinalité maximale 1)
1,1
R
*,N
A
Id_A
a1
a2
B
Id_B
b1
b2
b3
A (id_A, a1, a2, #Id_B)
B (id_B, b1, b2, b3)
Exemple:
EMPLOYÉ
Matricule
Nom
Travailler
1,1
DEPARTEMENT
1,N
Code
Libelle
Ê
EMPLOYÉ (Matricule, Nom, #Code)
DEPARTEMENT (Code, Libelle)
11
EA a M.Relationnel: 3- Traduction des associations *,N
Si l’association est porteuse de données a On crée une relation spécifique
pour traduire l'association
ETUDIANT
1,1
S’inscrire
Date
Numéro
Nom
0,N
Formation
Code
Libelle
Ê
ETUDIANT (Numéro, Nom)
FORMATION (Code, Libelle)
ETUDIANT FORMATION (Numéro, Code, Date)
12
6
05/11/2009
EA a M.Relationnel: 4- Traduction des associations N,M
Dans tous les cas, on crée une relation spécifique dont la clé sera composée des
clés des entités participantes.
Relation dont la clé primaire est composée des clés des entités liées par
l’association en question
N,M
A
Id_A
a1
a2
R
r1
N,M
B
Id_B
b1
b2
b3
A (id_A, a1, a2)
B (id_B, b1, b2, b3)
R (id_A, id_B, r1)
Exemple:
EMPLOYÉ
1,N
Matricule
Nom
Travailler
% Temps
1,N
Projet
Code
Libellé
Responsable
Ä
EMPLOYÉ (Matricule, Nom)
PROJET (Code, Libelle, Responsable)
TRAVAILLER (Matricule, Code, %Temps)
EA a M.Relationnel:
5- Traduction des associations N-aires
Elles se traduisent comme les associations N, M.
C
Id_C
c1
1,N
Publicité
R
r1
1,N
B
Id_B
b1
b2
b3
A
Id_A
a1
a2
1,N
A (id_A, a1, a2)
B (id_B, b1, b2, b3)
C (id_C, c1)
R (id_A, id_B, id_C, r1)
Exemple::
PIECE
1,N
CodePièce
FOURNISSEUR
CodeFour
1,N
Distribuer
Qté
1,N
Ê
PROJET
CodeProjet
FOURNISSEUR (CodeFour)
PROJET (CodeProjet)
PIECE (CodePièce)
DISTRIBUER (CodeFour, CodeProjet, CodePièce, Qté)
13
14
7
05/11/2009
EA a M.Relationnel:
5- Traduction des associations Récursives
•Premier cas : cardinalité (X,1) - (X,n), avec X=0 ou X=1.
La Clé Primaire de l'entité se dédouble et devient une Clé Etrangère dans la
relation ou nouvelle table.
Exactement comme si l'entité se dédoublait et était reliée par une relation
binaire (X,1) - (X,n)
Exemple: une société organisée de manière pyramidale : chaque employé a
0 ou 1 supérieur hiérarchique direct. Simultanément, chaque employé est le
supérieur hiérarchique direct de 0 ou plusieurs employés.
EMPLOYE
Matricule
Nom
Chef de
0,N
Chef
a
0,1
Subordonné
CHEF(MatriculeSub, Nom, #MatriculeChef)
EA a M.Relationnel:
5- Traduction des associations Récursives
•Deuxième cas : cardinalité (X,n) - (X,n), avec X=0 ou X=1.
De même, tout se passe exactement comme si l'entité se dédoublait et était
reliée par une relation binaire (X,n) - (X,n). Il y a, donc, création d'une nouvelle
table.
PIECE
CodePièce
Composé
0,N
Fait de
Ê
0,N
Composant
Fait de(CodePièceComposant, CodePièceComposé)
16
8
05/11/2009
EA a M.Relationnel:
6- Élimination des attributs Composés
Il y a trois possibilités de traduction :
soit on supprime la composition et on rattache les attributs à
l'entité directement
ETUDIANT
ETUDIANT
Numéro
nom
?
ADRESSE
ADRESSE
Rue
Ville
Code Postal
Numéro
Nom
Rue
Ville
Code Postal
soit on concatène en un seul attribut tous les éléments de
l'attribut composé
ETUDIANT
1ère solution
Numéro
Nom
Adresse
2ème solution
(de type Chaîne de caractères)
soit on crée une entité remplaçant l’attribut composé et reliée
par une association M-N à l’entité initiale.
ADRESSE
ETUDIANT
1,N
Numéro
nom
a
1,N
Rue
Ville
Code Postal
17
EA a M.Relationnel: 7- Traduction de la Spécialisation
La clé du supertype est uniquement
répétée
sous-tables.
L'héritage est réalisé par jointure.
dans
les
C
Id_C
c1
A
a1
a2
1
B
b1
b2
b3
b3
C
Id_C
c1
A
Id_C
a1
a2
a2
B
Id_C
b1
b2
b3
Publicité
b3
EMPLOYÉ
N°SS
nom
Adresse
SECRETAIRE
TECHNICIEN
PROFESSEUR
Vitesse de frappe
Grade
Discipline
a
EMPLOYÉ (N°SS, Nom, Adresse)
SECRETAIRE (N°SS,Vitesse de frappe)
TECHNICIEN (N°SS, Grade)
PROFESSEUR (N°SS, Discipline)
18
9
05/11/2009
EA a M.Relationnel: 7- Traduction de la Spécialisation
C
Id_C
c1
A
a1
a2
2
B
b1
b2
b3
b3
table est
par
supprimée et
La super
avec
reconstituée
projections et unions sur les sous-
classes.
une
vue
C
Id_C
c1
A
Id_C
c1
a1
a2
B
Id_C
c1
b1
b2
b3
EMPLOYÉ
N°SS
nom
Adresse
a
SECRETAIRE (N°SS, Nom, Adresse, Vitesse de frappe)
TECHNICIEN (N°SS , Nom, Adresse, Grade)
PROFESSEUR (N°SS , Nom, Adresse, Discipline)
SECRETAIRE
TECHNICIEN
PROFESSEUR
Vitesse de frappe
Grade
Discipline
19
EA a M.Relationnel: 7- Traduction de la Spécialisation
C
Id_C
c1
c1
A
a1
a2
3
Les sous-tables sont fusionnées dans
la super
table. Les attributs non
pertinents ont la valeur NULL.
B
b1
b2
b3
b3
C
Id_C
c1
a1
a2
b1
b2
b3
b3
EMPLOYÉ
N°SS
nom
Adresse
a
EMPLOYÉ (N°SS, Nom, Adresse, Vitesse de frappe,
Grade, Discipline)
SECRETAIRE
TECHNICIEN
PROFESSEUR
Vitesse de frappe
Grade
Discipline
20
10
05/11/2009
Exemple de passage du modèle EA au Relationnel
0..n
avoir
1..1
ABONNE
1..n
S’inscrire
0..n
MOTIVATION
Id_Motivation
intitulé
Id_Abonne
Nom
Prénom
Date_Naissance
Sexe
Profession
MOTIVATION (Id_Motivation,intitulé)
ABONNE(Id_abonné, Nom, Prénom, Date_Naissance, sexe, Profession,
email, )
#Id_Motivation
RUBRIQUE(Id_Rubrique, Nom_Rubrique)
RUBRIQUE
Id_Rubrique
Nom_Rubrique
0..n
Encadrer
1..1
NEWSLETTER
Id_Newsletter
Sujet
Date_Envoie
Contenu
NEWSLETTER(Id_Newsletter, Sujet, Date-Envoie, Contenu, )
#Id_Rubrique
Publicité
S’INSCRIRE (Id_Abonne,Id_Rubrique)
21
Les Contraintes d’Intégrité
La définition d’un modèle de données impose un ensemble de règles
d’organisation de données.
L’Unicité de la Clé
Toute relation possède un identifiant (clé)
Un enregistrement ne doit exister qu’une seule fois dans une relation.
Il ne peut y avoir deux tuples identiques dans la même relation
L’identifiant n’admet pas de valeurs nulles
La contrainte d’unicité de clé impose que toute relation doit avoir
une et une seule clé
22
11
05/11/2009
Les Contraintes d’Intégrité
La Contrainte Référentielle
Elle impose que toute valeur prise par une clé étrangère doit être une
valeur d’une clé primaire d’une autre relation.
Toute association de cardinalité 1:1 engendre une contrainte d'intégrité
référentielle.
A
1,1
R
r1
Id_A
a1
a2
A
Id_A
a1
A2
Id_B
Clé
étrangère
B
B
Id_B
b1
b2
b3
Id_B
b1
b2
b3
FOREIGN KEY (id_B) REFERENCES B (id_B)
Les Contraintes d’Intégrité
A
N,M
R
r1
Id_A
a1
a2
association
Toute
en
relation engendre deux contraintes
d'intégrité référentielle
transformée
A
Id_A
a1
a2
FOREIGN KEY (id_A) REFERENCES A (Id_A)
FOREIGN KEY (id_B) REFERENCES B (id_B)
R
Id_A
Id_B
r1
23
24
N,M
B
Id_B
b1
b2
b3
B
Id_B
b1
b2
b3
12
05/11/2009
Les Contraintes d’Intégrité
Exemple 1:
Étudiant
Appartient
1,1
1, N
Groupe
N°CIN
PrénomEtud
NomEtud
Code
Spécialité
NombreEtud
Étudiant (N°CIN, PrénomEtud, NomEtud, #Code)
Groupe (Code, Spécialité, NombreEtud)
Exemple 2:
Employé (N°CIN, PrénomEmpl, NomEmpl, #CodeDépart)
Département (CodeDépart, Libellé)
07769092
Saleh
Ben Ahmed
07787654
Ali
Tounsi
05567890
Fatma
Ben Saleh
05645342
Mouna
Ben Ahmed
F123
M13
F123
G45
F123
Finance
M13
Marketing
25
Les Contraintes d’Intégrité
La Contrainte d’Entité
Elle impose que tout attribut participant à une clé primaire d’une
relation doit être non nulle
La Contrainte de Domaine
Le domaine d’un attribut est l’ensemble des valeurs qui lui sont possibles
d’être affectées.
Il est judicieux de le mentionner afin de pouvoir contrôler les opérations
effectuées ultérieurement sur cet attribut et préparer l’espace mémoire
nécessaire.
Elle impose que toute valeur prise par un attribut doit être dans le
domaine de ce dernier.
26
13
Les Contraintes d’Intégrité
Les domaines de valeurs
Un domaine est un ensemble de valeurs atomiques que peut prendre un attribut
Exemples de domaines:
− Dnom: chaînes de caractères de longueur maximale 30
− DCode: entiers compris entre 0 et 99999
− Dcouleur: {« bleu », « vert », « jaune »}
− DAge: entiers compris entre 18 et 60
05/11/2009
27
14