Vous êtes sur la page 1sur 18

1

Le modèle relationnel
2
Le modèle relationnel
Introduction

❑ Modèle de niveau logique


❑ Introduit par Ted Codd en 1970, et développé par IBM
Lab.
❑ Se base sur deux concepts de base :
▪ Relation (table)
▪ Attribut (colonne)
❑ Utilisé aujourd’hui par plusieurs éditeurs de SGBD
(Oracle, DB2, Informix, Sybase, Ingres, SQL Server etc.)
3
Le modèle relationnel
Notions de base (1)

❑ Relation
▪ Une relation R est un sous-ensemble du produit cartésien de n ensembles
D1,D2,…,Dn les domaines des attributs A1,A2,…,An.
▪ R est donc un ensemble de n-uplets (v1,v2,…,vn) tel que vi ∈Di appelés
occurrences.
▪ Une relation est notée R(A1,A2,…,An).

❑ Exemple
▪ Soit la relation Personne(CIN,Nom,Genre)
Le triplet (06125478,Kamoun,M) est
DCIN={Toutes les CIN possible}
une occurrence de Personne
DNom={Ensemble de tous les noms possibles}
DGenre={M, F}
4
Le modèle relationnel
Notions de base (2)

❑ Clé primaire
▪ Chaque élément d’une relation R doit être unique.
▪ Toute relation R doit avoir un identifiant, qui est un sous-ensemble des
attributs (Ai,Aj,…,Ak), appelé clé primaire.
▪ Deux occurrences d’une même relation peuvent avoir les mêmes valeurs
pour tous les attributs, sauf pour la clé primaire.

❑ Exemple
▪ Dans la relation Personne(CIN,Nom,Genre), l’attribut CIN est la clé primaire.
▪ R peut contenir des occurrences qui ont les mêmes valeurs pour Nom et
Genre, mais pas pour CIN.
5
Le modèle relationnel
Notions de base (3)

❑ Table
▪ Dans les SGBDs, les relations sont représentées par des tables.
▪ Les occurrences sont dites lignes, et les attributs sont dits colonnes.

❑ Exemple
PERSONNE
CIN Nom Genre
06125478 Kamoun M
05487964 Laâbidi F
07548976 Kamoun M
6
Le modèle relationnel
Notions de base (4)

❑ Passage modèle conceptuel (E/A) – modèle


logique (SR)

❑ Règles de passage:
1. Un TE est traduit en relation.
2. Un TA «un à plusieurs» engendre la migration de la clé primaire de
la relation mère à la relation fille en clé étrangère.
3. Un TA «plusieurs à plusieurs» est représenté par une relation dont
7
Le modèle relationnel
Notions de base (5)

❑ Règles de passage E/A - SR


4. Traitement de la généralisation
4.1. Décomposition par distinction
Transformer la sur-entité et ses sous-entités en relations. La clé
primaire de la sur-entité migre dans les relations issues des
sous-entité.
PRODUIT(codep,libelle,prix)
PROD_ALIM(#codep,ingredients,date_conso)
PROD_HiTEC(#codep,config_tech,garantie)
8
Le modèle relationnel
Notions de base (6)

❑ Règles de passage E/A – SR


4. Traitement de la généralisation
4.1. Décomposition par distinction
4.2. Décomposition descendante (push-down)
Transformer uniquement les sous-entités en relations, en migrant les
attributs de la sur-entité vers ses sous-entités.
PROD_ALIM(codep,libelle,prix,ingredients,date_lim_conso)
PROD_HiTEC(codep,libelle,prix,conf_technique,garantie)
La généralisation doit être complète (Un produit est soit alimentaire, soit HiTec et rien
d’autre) et disjointe (Un produit ne peut pas être à la fois alimentaire et HiTec).
9
Le modèle relationnel
Notions de base (7)

4. Traitement de la généralisation
4.1. Décomposition par distinction
4.2. Décomposition descendante (push-down)
4.3. Décomposition ascendante (push-up)
Transformer uniquement la sur-entité en relation en migrant les
attributs spécifiques des sous-entités à la sur-entité.
Cas d’une contrainte de partition (une occurrence du super-type ne peut appartenir qu’à un seul sous-type à la fois).
Produit(id_produit,libelle,prix,ingredients,date_lim_conso,conf_technique,g
rantie,type_produit)
Cas d’une contrainte de non-disjonction (une occurrence du super-type peut appartenir à plusieurs sous-types à la fois).
Produit(id_produit,libelle,prix,ingredients,date_lim_conso,conf_te
chnique,garantie,prod_alim,prod_hitec)
10
Le modèle relationnel
Exemple de la base de données
EMP

EMP DEPT

SALGRADE
11
Le modèle relationnel
Algèbre relationnelle (1)

❑ Algèbre relationnelle
▪ Définitun ensemble d’opérations qui sont appliquées
aux relations d’une base de données. Le langage SQL
s’en est inspiré.
▪ Il existe deux types d’opérateurs : relationnels et
ensemblistes.
▪ Le résultat de toute opération algébrique est une
relation (fermeture)

R1 op R2 = R3
▪ Le degré d’une relation: nombre d’attributs de la
12
Le modèle relationnel
Algèbre relationnelle (2)

❑Opérateurs relationnels
▪ La projection
La projection de R sur les attributs Ai, Aj,…,Ak est notée
R[Ai,Aj,…Ak].
▪ Exemple
La projection de EMP sur ENAME et JOB est notée
EMP[ENAME,JOB]
▪ La restriction (dite aussi sélection)
La restriction de R selon une condition C, est l’ensemble des
occurrences de R qui satisfont la condition C. Elle est notée R<C>.
▪ Exemple
13
Le modèle relationnel
Opérateurs relationnels (1)

❑ Opérateurs relationnels
▪La jointure
La jointure de deux relations R et S est la combinaison de deux
tuples (l’un de R et l’autre de S) selon une condition qu’ils
satisfont.
L’équijointure de R et S sur les colonnes A et B produit la
concaténation des tuples de R et ceux de S ayant la même valeur
pour A et B. Elle est notée
R S<A=B>
On parle de jointure naturelle si les colonnes de l’équijointure
portent le même nom, chacune dans sa table
▪ Exemple
La jointure naturelle de EMP avec DEPT donne les informations
14
Le modèle relationnel
Opérateurs relationnels (2)

❑ Opérateurs relationnels (suite)


▪ La non equi-jointure
On peut joindre deux relations avec une condition de comparaison
différente de l’égalité.
▪ Exemple
La jointure de la relation EMP à SALGRADE calcule les grades des
employés, elle est notée EMP SALGRADE<SAL BETWEEN LOSAL AND
HISAL>.

▪ La jointure externe
La jointure externe entre R et S est la jointure entre R et S avec les tuples
de R et de S qui n’ont pas d’équivalent. Elle est notée
La semijointure de R avec S notée R S est la jointure naturelle entre R et
S, avec en plus les tuples de S qui n’ont font pas partie.
15
Le modèle relationnel
Opérateurs relationnels (3)

❑ Opérateurs relationnels (suite)


▪ La jointure externe
La jointure externe entre R et S est la jointure entre R et S avec en
plus, les tuples de R et de S qui n’ont pas d’équivalent.
R1.A R1.B R2.A R2.C
R1 R2 a1 b1 a1 c1
A B A C R1 R2 = a2 b2
R3 a3 c2
a1 b1 a1 c1
R1.A R1.B R2.A R2.C
a2 b2 a3 c2
a1 b1 a1 c1
R1 R2 = a3 c2
R4
R1.A R1.B R2.A R2.C
a1 b1 a1 c1
R1 R2 =
a2 b2
R5
16
Le modèle relationnel
Opérateurs ensemblistes (1)

❑ Opérateurs ensemblistes
Les opérations ensemblistes peuvent être exécutées sur n’importe
SELECT A,B FROM R1
quel couple de relations ayant UNION
SELECT A,B FROM R1 le même nombre et domaines
INTERSECT
d’attributs.
SELECT A,B FROM R2
SELECT A,B FROM R2

Soient R1 et R2 deux relations ayant le même nombre d’attributs


(qui ont les mêmes domaines).
L’union de R1 et R2 est notée R1∪R2. L’intersection de R1 et R2 est
notée R1∩R2 . La différence entre R1 et R2 est notée R1-R2.
▪ Exemple R1 R2 SELECT A,B FROM R1
MINUS
Exécuter toutes les A B A B SELECT A,B FROM R2
opérations possibles a1 b1 a1 b1
entre R1 et R2. a1 b2 a2 b1
a2 b2 a2 b2
17
Le modèle relationnel
Opérateurs ensemblistes (2)

❑ Opérateurs ensemblistes (suite)


Le produit cartésien par contre peut être exécuté sur n’importe
quel couple de relations. Il est noté R1×R2
▪ Exemple
Calculer le produit cartésien entre R1 et R2:

R1 R2
A B C D
a1 b1 c3 d1
a1 b2 c2 d1
18
Le modèle relationnel
Opérateurs relationnels (3)

❑ Opérateurs relationnels (suite)


▪ La division
Supposons une relation R avec les attributs A et B et une relation S
avec l’attribut B. La division de R par S est la relation D=R÷BS

▪ Exemple
R S
A B
B
a1 b1
a1 b2
÷B b1
b2 =?
a2 b2

Vous aimerez peut-être aussi