Vous êtes sur la page 1sur 5

Modele Relationnel

Qu'est-ce que le modèle relationnel?

Le modèle relationnel est basé sur une organisation des données sous forme de tables. La manipulation
des données se fait selon le concept mathématique de relation de la théorie des ensembles, c'est-à-dire
l'algèbre relationnelle. L'algèbre relationnelle a été inventée en 1970 par E.F. Codd, le directeur de
recherche du centre IBM de San José. Elle est constituée d'un ensemble d'opérations formelles sur les
relations. Les opérations relationnelles permettent de créer une nouvelle relation (table) à partir
d'opérations élémentaires sur d'autres tables (par exemple l'union, l'intersection, ou encore la
différence).

La théorie des ensembles met en oeuvre deux notions :

 la notion de domaine
 la notion de produit cartésien

La notion de domaine

Un domaine est un ensemble fini ou infini de valeurs. On le représente par une liste d'éléments ou bien
une condition nécessaire et suffisante d'appartenance :

 le domaine des booléens: {0,1}


 le domaine des doigts de la main: {pouce, index, majeur, annulaire, auriculaire}
 ...

La notion de produit cartésien

La manipulation des données (sélection de valeurs) se fait suivant la notion mathématique de produit
cartésien.

Le produit cartésien d'un ensemble de domaines Di, noté D1*D2*D3*...*Dn

est l'ensemble des n-uplets (appelés aussi tuples) <V1,V2,...,Vn>


tels que Vi appartient à Di

Modélisation relationnelle

La modélisation relationnelle permet de représenter les relations à l'aide de tables (à deux dimensions)


dont chaque colonne a un identificateur qui représente un domaine. Une ligne du tableau représente
donc une entité et chacune des cases représente un de ses attributs.

On appelle attributs le nom des colonnes qui représentent les constituants de l'entité. Un attribut (une
colonne) est repéré par un nom et un domaine de définition, c'est-à-dire l'ensemble des valeurs qu'il
peut prendre.
On appelle tuple (ou n-uplet) une ligne du tableau.

L'entité voiture pourra par exemple être représentée par :

 La marque
 Le modèle
 La série
 La plaque minéralogique
La cardinalité d'une relation est le nombre de tuples qui la composent. Dans l'exemple ci-dessus la
cardinalité est égale à 3.

La clé principale d'une relation est l'attribut, ou l'ensemble d'attributs, permettant de désigner de façon
unique un tuple. Dans l'exemple ci-dessus, le numéro de la plaque minéralogique est une clé principale
dans la mesure où la seule connaissance de cet attribut permet de connaître la voiture.
Une clé étrangère, par contre, est une clé (donc un attribut permettant d'identifier de façon unique un
tuple) faisant référence à une clé appartenant à une autre table.

La description d'une relation (d'une table) par ses attributs (nom et domaine) est appelée schéma d'une
relation. On désigne par le terme schéma d'une base de données relationnelle l'ensemble des relations
qui la composent.

La manipulation des éléments de la table se fait à l'aide d'opérations sur les ensembles. On définit deux
types d'opérations de base :

 Les opérations unaires


 les opérations ensemblistes

Opérations de base

Une opération de base est définie par le fait qu'elle ne peut être réalisée par combinaison d'autres
opérations. Il existe 5 opérations élémentaires pouvant être classées en deux catégories :

 Les opérations unaires: elles consistent à éliminer des lignes ou des colonnes de la table
 les opérations ensemblistes: elles consistent à effectuer un recoupement entre plusieurs tables

Opérations unaires

Projection

L'opérateur projection consiste à créer une table à partir d'une autre en ne gardant que les colonnes
spécifiées dans la projection. On note une projection :

projX1,X2,...,XN(R)
Où X1,X2, ..., XN représentent les colonnes que l'on garde

Restriction (ou sélection)

L'opérateur restriction consiste à créer une table à partir d'une autre en ne gardant que les lignes pour
lesquelles une colonne vérifie certaines propriétés. On note une restriction :

selectQ(R)
Où Q représente la qualification, c'est-à-dire la condition à réaliser

Opérations ensemblistes

Union

L'union de deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à l'une ou
l'autre des tables (ou les deux). Les deux tables opérandes doivent être de même schéma, c'est-à-dire
que les attributs de la table (colonnes) doivent être les mêmes. On note l'union entre deux tables R1 et
R2 :

union(R1,R2)
ou encore

R1 U R2

Différence

La différence entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à une
table mais pas à la seconde. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que
les attributs de la table (colonnes) doivent être les mêmes. On note la différence entre deux tables R1 et
R2 :

minus(R1,R2)
ou encore

R1 - R2

Produit cartésien

Le produit cartésien de deux tables est la table contenant la concaténation de l'ensemble des tuples
d'une ligne d'une table à ceux de l'autre table, et ce pour chaque ligne. Les deux tables opérandes n'ont
pas nécessairement le même schéma On note le produit cartésien de deux tables R1 et R2 :

product(R1,R2)
ou encore

R1 * R2

Opérations dérivées

A partir des opérations de base de nombreuses opérations très utiles peuvent être définies. En voici
quelques unes :

Intersection

L'intersection entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant aux
deux tables. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de
la table (colonnes) doivent être les mêmes. On note l'intersection entre deux tables R1 et R2 :

inter(R1,R2)
ou encore

R1 R2
Cet opérateur peut être décrit à l'aide d'opérateurs de base :

R1 R2 = R1 - (R1 - R2)
Quotient (ou division)

Le quotient de deux tables est la table contenant l'ensemble des tuples (cellules) qui concaténés à
chaque tuple de l'une des tables fournissent des tuples appartenant à l'autre On note le quotient de deux
tables R1 et R2 :

div(R1,R2)
ou encore

R1/R2

θ-jointure

On appelle θ-jointure selon une qualification Q l'ensemble des tuples provenant du produit cartésien de
deux relations et satisfaisant la qualification, c'est-à-dire la condition exprimée à l'aide des
comparateurs :

 ≥
 ≤
 >
 <
 =
 ≠
 ¬
On note la θ-jointure de deux tables R1 et R2 :

joinQ(R1,R2)
ou encore

(R1 Q)R2

On définit des types de jointure particulière selon la qualification Q :

 L'équi-jointure est une θ-jointure dont la qualification est une égalité entre deux colonnes
 La jointure naturelle est une équi-jointure sur des attributs de même nom associée à une projection.
Elle se note R1 R2

Opérations calculatoires

Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être
exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles
(parfois nécessaires) que les autres opérateurs ne peuvent pas réaliser.

Opérateur Somme

Cet opérateur permet de faire la somme cumulée des valeurs que l'attribut X prend pour une liste
d'attributs appelés attributs de regroupement. Les valeurs de X doivent bien évidemment être
numériques. Lorsqu'aucun attribut de regroupement n'est précisé, l'opérateur Somme renvoie la somme
des valeurs de la colonne.

On note cet opérateur :

SommeX1,X2,...,Xn(R,X)
ou avec la notation anglaise

SumX1,X2,...,Xn(R,X)
Opérateur de comptage

Cet opérateur permet de compter le nombre de lignes pour lesquelles l'attribut fait partie d'une liste
d'attributs appelés attributs de regroupement. Lorsqu'aucun attribut de regroupement n'est précisé
l'opérateur compte le nombre de tuples de la colonne.

On note cet opérateur :

CompteX1,X2,...,Xn(R,X)
ou avec la notation anglaise

CountX1,X2,...,Xn(R,X)

Vous aimerez peut-être aussi