Vous êtes sur la page 1sur 32

Chapitre3: Le Modèle

Relationnel

2019_2020 1
Le Modèle Relationnel: Définition

Modèle de niveau logique orienté enregistrement, très


simple
Défini par Ted Codd en 1970 et développé par IBM lab.
Il se base sur la théorie mathématique des relations.
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)
2
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

Code Etudiant Nom Etudiant Prénom Etudiant Age Etudiant

125 Ben saleh Ali 19

134 Ben fraj Mohamed 20

167 Ben ahmed Moussa 20

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
Les Règles de Structuration

Attributs: simples et monovalués (domaine de valeurs atomiques)


Structure plate régulière
INTERDIT

Attribut 1 Attribut 2 Attribut 3 Attribut 1 Attribut 2 Attribut 3

V1

V2

Attribut 1 Attribut 2 Attribut 3

Une et une seule valeur atomique par


V1
attribut
V2
5
Les Règles de Structuration: 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 Ali@yahoo.fr


234 Tounsi Anis 71 000 666 Anis@hotmail.com
675 Ben Mohamed Mohsen 73666876 Mohsen@yahoo.com
676 Ben Saleh Saleh 72666999 NIL

6
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 B
R
Id_A Id_B
a1 b1
a2 b2
b3

A (id_A, a1, a2)


B (id_B, b1, b2, b3)
Exemple

ETUDIANT
Numéro
ÉTUDIANT (Numéro, nom, Date naissance)
Nom
Date naissance
7
Traduction des Associations 1,N

Si la cardinalité maximale de l’autre côté de l’association est 1


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)

8
Traduction des Associations 1,N
A B
R
Id_A 1,1 *,N Id_B
a1 b1
a2 b2
b3
A (id_A, a1, a2, #Id_B)
B (id_B, b1, b2, b3)
Exemple:

ETUDIANT Groupe
Appartenir
N°Etudiant 1,1 1,N Code
Nom libellé
Clé étrangère
Fille Etudiant (N°Etudiant , Nom, #Code)
Groupe (Code, Libellé) Mère
9
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

10
Traduction des Associations N,M
A R B
Id_A r1
N,M N,M Id_B
a1 b1
a2 b2
b3
A (id_A, a1, a2)
B (id_B, b1, b2, b3)
R( id_A,id_B , r1)
Exemple:
Clés étrangères Clé primaire

Employé Travailler Projet


Matricule 1,N % Temps 1,N Code
Nom Libellé
Responsable

EMPLOYE(Matricule, Nom)
PROJET (Code , Libellé , Responsable)
TRAVAILLER ( Matricule,code , %Temps) 11
Traduction des Associations Naires

Elles se traduisent comme les associations N, M

C
Id_C
c1
1,N
A R B
Id_A r1 Id_B
1,N 1,N
a1 b1
a2 b2
b3
A (id_A, a1, a2)
B (id_B, b1, b2, b3)
C (Id_C , c1)
R( id_A,id_B,Id_C ,r1)
12
Traduction des Associations Naires

Exemple:

Fournisseur
CodeFournisseur

1,N
Pièce Distribuer projet
CodePièce Quantité CodeProjet
1,N 1,N

Fournisseur (CodeFournisseur)
Projet (CodeProjet)
Pièce (CodePièce)
Distribuer( CodeFournisseur ,CodeProjet ,CodePièce , Quantité)
13
Traduction des Associations Récursives

Cas 1 : 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.
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.

14
Traduction des Associations Récursives

Employé Chef de
Matricule 1,N Chef
Nom
1,1
Subordonné

Employé ( Matricule Subordonné ,Nom , #Matricule Chef)

15
Traduction des Associations Récursives

Cas 2 : 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 Composé
CodePièce 1,N Fait_de

0,N
Composant

Fait_de (Code Pièce Composant ,Code Pièce Composé)


16
Traduction des Associations de Spécialisation

C
Id_C La clé du supertype est uniquement répétée dans
c1 les sous-tables. L'héritage est réalisé par jointure.

A B
a1 C
b1
a2 b2 Id_C
b3 c1

A B
Id_C Id_C
a1 b1
a2 b2
b3

17
Traduction des Associations de Spécialisation
Employé
N°SS
Nom
Adresse

Secrétaire Technicien Professeur


Vitesse de frappe Grade Discipline

Employé (N°SS , Nom , Adresse)


Secrétaire (N°SS , Vitesse de frappe)
Technicien(N°SS , Grade)
Professeur (N°SS , Discipline)
18
Traduction des Associations de Spécialisation

C
Id_C La super table est supprimée et reconstituée par une
c1 vue avec projections et unions sur les sous classes.

A B
a1 C
b1
a2 b2 Id_C
b3 c1

A B
Id_C Id_C
a1 b1
a2 b2
b3

19
Traduction des Associations de Spécialisation
Employé
N°SS
Nom
Adresse

Secrétaire Technicien Professeur


Vitesse de frappe Grade Discipline

Secrétaire (N°SS , Nom, Adresse ,Vitesse de frappe)


Technicien(N°SS , Nom, Adresse , Grade)
Professeur (N°SS , Nom, Adresse , Discipline)
20
Traduction des Associations de Spécialisation

C
Les sous-tables sont fusionnées dans la
Id_C super table. Les attributs non pertinents ont
c1 la valeur NULL.
C
A B Id_C
a1 c1
b1
a2 a1
b2
a2
b3
b1
b2
B3

21
Traduction des Associations de Spécialisation
Employé
N°SS
Nom
Adresse

Secrétaire Technicien Professeur


Vitesse de frappe Grade Discipline

Employé (N°SS , Nom , Adresse, Vitesse de frappe , Grade , Discipline, #N°fonction)


Fonction (N°fonction , Type)

22
Exemple de Passage du EA C M.Relationnel

Motivation 0,N 1,1 Abonne 1,N


avoir S’inscrire
Id Motivation Id Abonne
intitulé Nom
Prénom
Date Naissance 0,N
Sexe Rubrique
Profession
Id Rubrique
Email
Nom Rubrique

0,N
Newsletter
1,1
Id Newsletter Encadrer
Sujet
Date Envoie
Contenu
23
Exemple de Passage du EA C M.Relationnel

Motivation (Id_Motivation , intitulé)


Abonne(Id_abonné , Nom , Prénom , Date Naissance , Sexe ,
Profession , Email , #Id_Motivation )
Rubrique ( Id_Rubrique , Nom Rubrique)
Newsletter (Id _newsletter , Sujet , Date Envoie , Contenu ,
#Id_Rubrique)
S’inscrire (Id_abonné ,Id_Rubrique)

24
M.Relationnel: 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é
25
M.Relationnel: 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

26
M.Relationnel: Les Contraintes d’Intégrité

A R B
Id_A r Id_B
a1 1,1 b1
a2 b2
b3
R

A B
Id_A Id_B
a1 b1
A2 b2
#Id_B b3

Clé étrangère
(Id_B) est une clé étrangère et référence B

27
M.Relationnel: Les Contraintes d’Intégrité

A R B
Id_A Id_B Toute association transformée en
r
a1 N,M N,M b1 relation engendre deux contraintes
a2 b2 d'intégrité référentielle
b3

A B
Id_A Id_B
a1 b1
a2 b2
b3
R
Id_A (Id_A) est une clé étrangère et référence A
Id_B (Id_B) est une clé étrangère et référence B
r1
28
M.Relationnel: Les Contraintes d’Intégrité

Exemple 1:

Etudiant Groupe
Appartient
N°CIN Code
Prénom Etudient
1,1 1,N
Spécialité
Nom Etudient Nombre Etudient

Étudiant (N°CIN, Prénom Etudient, Nom Etudient, #Code) Clé étrangère


Groupe (Code, Spécialité, Nombre Etudient)

29
M.Relationnel: Les Contraintes d’Intégrité

Exemple 2:

Employé (N°CIN, Prénom Employé , Nom Employé, #Code Département)


Département (Code Département, Libellé)

07769092 Saleh Ben Ahmed F123


07787654 Ali Tounsi M13
05567890 Fatma Ben Saleh F123
05645342 Mouna Ben Ahmed G45

F123 Finance
M13 Marketing
30
M.Relationnel: 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.
31
M.Relationnel: Les Contraintes d’Intégrité

Un domaine de valeurs 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

32

Vous aimerez peut-être aussi