Vous êtes sur la page 1sur 12

INSTITUT SAINT JEAN

Département d’Informatique
Licence 3

INF318
Programmation et Administration des Bases de données

Chapitre 2 : L’Algèbre Relationnelle

Année Académique 2018-2019


Octobre 2018

Valéry MONTHE
cours.monthe@gmail.com

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 1 sur 12
Chapitre 2 : Modèle relationnel et Algèbre Relationnelle
 Relations et schéma d’une relation
 Schéma d’une base de données
 Les opérations de l’algèbre relationnelle

Introduction .................................................................................................................................................. 3
A. Le modèle relationnel ........................................................................................................................... 3
1. Les structures de données de base ....................................................................................................... 3
2. Définition d’un schéma relationnel ...................................................................................................... 3
3. Définition des concepts. ....................................................................................................................... 4
3.1. Domaine ........................................................................................................................................ 4
3.2. Attributs ........................................................................................................................................ 4
3.3. Schéma de relation ....................................................................................................................... 4
3.4. Relation ......................................................................................................................................... 4
3.5. Tuple ............................................................................................................................................. 5
4. Les règles d’intégrité structurelle ......................................................................................................... 5
4.1. Unicité de clé (Clé d’une relation) ................................................................................................ 5
4.2. Contraintes de références ............................................................................................................ 5
4.3. Valeurs nulles et clés..................................................................................................................... 6
4.4. Contrainte d’entité........................................................................................................................ 6
4.5. Contrainte de domaine ................................................................................................................. 6
5. Base de données ................................................................................................................................... 6
B. L’Algèbre Relationnelle ......................................................................................................................... 6
1. Les opérateurs de l’algèbre relationnelle ............................................................................................. 7
1.1. Les opérations ensemblistes ......................................................................................................... 7
1.2. Les opérations spécifiques ............................................................................................................ 8

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 2 sur 12
Introduction
Le modèle relationnel a été introduit par Codd, qui travaillait dans le fameux centre de recherche d’IBM
San-José. C’est un modèle de données qui se veut être un modèle ensembliste simple, supportant des
ensembles d’enregistrements aussi bien au niveau de la description que de la manipulation. Le modèle
relationnel est aujourd’hui la base de nombreux systèmes, et les architectures permettant d’accéder
depuis une station de travail à des serveurs de données s’appuient en général sur lui. L’un des objectifs
de ce modèle était de fournir une base solide pour traiter les problèmes de cohérence et de redondance
de données. Le modèle a atteint ses objectifs et est même devenu un standard pour la description et la
manipulation des bases de données. Dans le contexte des bases de données, la principale qualité d’un
modèle de données est d’être indépendant de la représentation physique. Le modèle relationnel offre
une totale indépendance entre les représentations logique et physique.
Dans ce chapitre, nous allons tout d’abord présenter les concepts structuraux de base du modèle
relationnel qui permettent de modéliser les données sous forme de table à deux dimensions. Nous
exposerons ensuite les règles de cohérence des relations qui sont considérées comme partie intégrante
du modèle. Puis nous terminerons par une algèbre permet de manipuler ce genre de modèle.

A. Le modèle relationnel

1. Les structures de données de base


Un modèle de données définit un mode de représentation de l’information selon trois composantes :
1. Des structures de données.
2. Des contraintes qui permettent de spécifier les règles que doit respecter une base de données.
3. Des opérations pour manipuler les données, en interrogation et en mise à jour.
Les deux premières composantes relèvent du Langage de Définition de Données (DDL) dans un SGBD.
Le DDL est utilisé pour décrire le schéma d’une base de données. La troisième composante (opérations)
est la base du Langage de Manipulation de Données (DML) dont le représentant le plus célèbre est SQL.

2. Définition d’un schéma relationnel

Un des grands avantages du modèle relationnel est sa très grande simplicité. Il n’existe en effet qu’une
seule structure, la relation. Une relation peut simplement être représentée sous forme de table, comme
sur la figure suivante :

Titre Année genre


Alien 1979 Science-fiction
Vertigo 1958 Suspense
Volte-face 1997 Thriller
Pulp Fiction 1995 Policier

Une relation a donc un nom (Film) et se compose d’un ensemble de colonnes désignées par un nom
d’attribut. Dans chaque colonne on trouve des valeurs d’un certain domaine (chaînes de caractères,
nombres). Enfin on constate que chaque ligne (ou tuple) correspond à une entité (ici des films).
Un schéma relationnel est constitué d’un ensemble de schémas de relations qui décrivent, à l’aide
des éléments présentés informellement ci-dessus (domaines, attributs, noms de relation) le contenu
d’une relation. Le schéma de la relation de la figure ci-dessus est donc :
Film (titre: chaîne de caractères, année: entier, genre : chaîne de caractères)

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 3 sur 12
Il existe un langage de définition pour créer une relation dans un SGBDR, mais nous nous contenterons
pour l’instant de la description ci-dessus.
Présentons maintenant la terminologie introduite dans cette définition.

3. Définition des concepts.

3.1. Domaine

Un domaine de valeurs est un ensemble d’instances d’un type élémentaire : entiers, réels, booléen,
chaînes de caractères, etc. La notion de ’type élémentaire’ s’oppose à celle de type structuré : il est
interdit en relationnel de manipuler des valeurs instances de graphes, de listes, d’enregistrements, etc.
En d’autres termes le système de types est figé et fourni par le système.
Les domaines sont donc les ensembles dans lesquels les données prennent leur valeur.
On peut définir un domaine en intension, en définissant une propriété caractéristique des valeurs du
domaine ; ou en extension, en donnant la liste des valeurs composantes.

Exemple :
En intention : le domaine MONNAIE (réel avec 2 chiffres après la virgule), DATE (entier de 6 chiffres jour,
mois et an).
En extension : COULEUR={Rosé, Blanc, Rouge}

3.2. Attributs
C’est une colonne d’une relation caractérisée par un nom. Les attributs nomment les colonnes d’une
relation. Ils servent à la fois à indiquer le contenu de cette colonne, et à la référencer quand on effectue
des opérations. Un attribut est toujours associé à un domaine. Le nom d’un attribut peut apparaître
dans plusieurs schémas de relations.

3.3. Schéma de relation


Un schéma de relation est simplement un nom suivi de la liste des attributs, chaque attribut étant
associé à son domaine. La syntaxe est donc :

Où les Ai sont les noms d’attributs et les Di les domaines. L’arité d’une relation est le nombre de ses
attributs.
On peut trouver dans un schéma de relation plusieurs fois le même domaine, mais une seule fois un
nom d’attribut. Le domaine peut être omis en phase de définition.

3.4. Relation

Une relation est un sous ensemble fini du produit cartésien des domaines des attributs de la relation. Le
produit cartésien D1 X ….X Dn entre des domaines D1 …. Dn est l’ensemble de tous les tuples (v1 ….. vn )
où vi appartient à Di .
Une relation se représente sous forme de table, et on emploie le plus souvent ces deux termes comme
des synonymes.

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 4 sur 12
Exemple :
A partir des domaines COULEUR_VINS= {ROSE, BLANC, ROUGE} et CRUS= {VOLNAY, SANCERRE,
CHABLIS}, on peut définir la relation COULEURS_CRUS suivante :

COULEURS_CRUS Couleur Cru


Rose Sancerre
Rose Chablis
Blanc Sancerre
Rouge Volnay
Rouge Sancerre
Rouge Chablis

3.5. Tuple

Un tuple est donc simplement une ligne dans la représentation d’une relation sous forme de table.

4. Les règles d’intégrité structurelle

Les règles d’intégrité sont les assertions qui doivent être vérifiées par les données contenues dans une
base de données. Le modèle relationnelle impose à priori une règle minimale qui est l’unicité des clés,
comme nous allons le voir. Il est commode et courant d’ajouter trois types de règles d’intégrité
supplémentaires afin d’obtenir les règles d’intégrité structurelle supportées par le modèle relationnel :
les contraintes de références, les contraintes d’entité et les contraintes de domaine.

4.1. Unicité de clé (Clé d’une relation)

La clé d’une relation est le plus petit sous-ensemble des attributs qui permet d’identifier chaque ligne de
manière unique. Comme dans une relation deux lignes sont toujours différentes, l’ensemble de tous les
attributs est lui-même une clé mais on peut pratiquement toujours trouver un sous-ensemble qui
satisfait la condition. Pour distinguer la clé, nous mettrons le (ou les) attribut(s) en gras.
Film (titre, année, genre)
Le choix de la clé est très important pour la qualité du schéma. Choisir d’identifier un film par son titre
comme nous l’avons envisagé dans l’exemple précédent n’est pas un très bon choix.

4.2. Contraintes de références

Le modèle relationnel est souvent utilisé pour représenter des entités du monde réel qui sont les objets
ayant une existence propre, et des associations entre ces objets. Un type d’association est modélisée
par une relation comportant les clés des entités participantes ainsi que les caractéristiques propres à
l’association.

Une contrainte d’intégrité référentielle est une contrainte d’intégrité portant sur une relation R1,
consistant à imposer que la valeur d’un groupe d’attributs apparaisse comme valeur de clé dans une
autre relation R2.

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 5 sur 12
4.3. Valeurs nulles et clés

Lors de l’insertion de tuples dans une relation, il arrive fréquemment qu’un attribut soit inconnu ou non
applicable ; par exemple, la note obtenue par un élève à une certaine date peut être inconnue ; si un
élève n’a pas de numéro de téléphone, l’attribut téléphone est inapplicable à cet élève. On est alors
amené à introduire dans la relation une valeur conventionnelle, appelée valeur nulle.

Une valeur nulle est donc une valeur conventionnelle introduite dans une relation pour représenter une
information inconnue ou inapplicable.

4.4. Contrainte d’entité

C’est une contrainte d’intégrité imposant que toute relation possède une clé primaire et que tout
attribut participant à cette clé primaire soit non nul.

4.5. Contrainte de domaine

C’est une contrainte d’intégrité imposant qu’une colonne d’une relation doit comporter des valeurs
vérifiant une assertion logique.

L’assertion logique est l’appartenance à une plage de valeurs ou à une liste de valeurs. Par exemple,
SALAIRE>25 000 et < 120 000, COULEUR compris dans {BLEU, BLANC, ROUGE}, etc.

En résumé les contraintes permettent de contrôler la validité des valeurs introduites lors des insertions
ou mises à jour.

5. Base de données

Une base de données est un ensemble fini de relations. Le schéma de la base est l’ensemble des
schémas des relations de cette base.
La création d’un schéma de base de données est simple une fois que l’on a déterminé toutes les
relations qui constituent la base. En revanche le choix de ces relations est un problème difficile car il
détermine en grande partie les caractéristiques, qualités de la base : performances, exactitude,
exhaustivité, disponibilité des informations, etc. En pratique pour définir le schéma d’une base de
donnés, on procède d’une manière plus accessible, en concevant d’abord un modèle conceptuel de
données, puis en transcrivant le schéma conceptuel obtenu en schéma relationnel. La technique la plus
répandue consiste à partir d’un schéma Entité/Association. La section suivante donne les règles du
processus de transformation.

B. L’Algèbre Relationnelle

Le premier langage étudié dans ce cours est l’algèbre relationnelle. Il consiste en un


ensemble d’opérations qui permettent de manipuler des relations, considérées comme des
ensemble de tuples : on peut ainsi faire l’union ou la différence de deux relations, sélectionner
une partie de la relation, effectuer des produits cartésiens ou des projections, etc.
Une propriété fondamentale de chaque opération est qu’elle prend une ou deux relations en
entrée, et produit une relation en sortie. Cette propriété permet de composer des opérations :
on peut appliquer une sélection au résultat d’un produit cartésien, puis une projection au
résultat de la sélection et ainsi de suite. En fait on peut construire des expressions algébriques

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 6 sur 12
arbitrairement complexes qui permettent d’exprimer des manipulations sur un grand nombre
de relations.
Une requête est une expression algébrique qui s’applique à un ensemble de relations (la
base de données) et produit une relation finale (le résultat de la requête). On peut voir
l’algèbre relationnelle comme un langage de programmation très simple qui permet d’exprimer
des requêtes sur une base de données relationnelle.

1. Les opérateurs de l’algèbre relationnelle


L’Algèbre relationnelle est une collection d’opérations. Une opération prend des opérandes
(une ou plusieurs relations), et retourne un résultat (une relation)

On distingue 2 types d’opérations :


 Les opérations ensemblistes
• UNION
• INTERSECTION
• DIFFÉRENCE
 Les opérations spécifiques
• PROJECTION
• RESTRICTION / SELECTION
• JOINTURE
• DIVISION

1.1. Les opérations ensemblistes

1.1.1. L’UNION

L'union de deux relations R1 et R2 de même schéma est une relation R3 de schéma identique
qui a pour n-uplets les n-uplets de R1 et/ou R2
On notera : R3 = R1 ∪ R2
Soient les 2 relations R1 et R2 suivantes :
R1 A B R2 A B
0 1 0 1
2 3 4 5

Leur union nous donne la relation R3 ci-dessous

R1 ∪ R2 = R3
R3 A B
0 1
2 3
4 5

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 7 sur 12
1.1.2. L’INTERSECTION

L’intersection entre deux relations R1 et R2 de même schéma est une relation R3 de schéma
identique ayant pour n-uplets, les n-uplets communs à R1 et R2.
On notera : R3 = R1 ∩ R2
Soient les 2 relations R1 et R2 suivantes :
R1 A B R2 A B
0 1 0 1
2 3 4 5

Leur intersection donne la relation R3 suivante :

R1 ∩ R2= R3 R3 A B
0 1

1.1.3. LA DIFFERENCE

La différence entre deux relations R1 et R2 de même schéma est une relation R3 de schéma
identique ayant pour n-uplets, les n-uplets de R1 n'appartenant pas à R2.
On notera : R3 = R1 − R2

Soient les 2 relations R1 et R2 suivantes :


R1 A B R2 A B
0 1 0 1
2 3 4 5

Leur différence donne la relation R3 suivante :

R1 - R2 = R3 R3 A B
2 3

1.2. Les opérations spécifiques

1.2.1. PROJECTION

La projection d'une relation R1 est la relation R2 obtenue en supprimant les attributs de R1 non
mentionnés puis en éliminant éventuellement les nuplets identiques.
On notera : R2 = πR1 (Ai, Aj, ... , Am) et on dira que R2 est la projection de la relation R1 sur les
attributs Ai, Aj, … , Am
La projection permet d’éliminer des attributs d’une relation. Elle correspond à un découpage
vertical :

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 8 sur 12
Exemple 1 :
Soit la relation PRODUIT (IdPro, Nom, Marque, Prix) suivante :

IdPro Nom Marque Prix


P PS1 IBM 1000
Q Mac Apple 2000
R PS2 IBM 3000

S Word Microsoft 4000

Le résultat de la requête suivante : « Quels sont les références et les prix des produits ? »,
s’obtient en faisant une projection sur les attributs IdPro et Prix de la relation PRODUIT.
Cette projection se note : πPRODUIT (IdPro, Prix)
Et donne le résultat suivant :
IdPro Prix
P 1000
Q 2000
R 3000
S 4000

Exemple 2 : « Quelles sont les marques des produits ? »


On fait une projection sur l’attribut Marque : πPRODUIT (Marque)

Et on obtient : Marque
IBM
Apple
Microsoft

1.2.2. RESTRICTION/SELECTION

La restriction d'une relation R1 est une relation R2 de même schéma n'ayant que les n-uplets de
R1 répondant à la condition énoncée.
On notera : R2 = σR1 (condition), la restriction d'une relation R1 suivant le critère "condition"
où "condition" est une relation d'égalité ou d'inégalité entre 2 attributs ou entre un attribut et
une valeur.
La restriction permet d'extraire les n-uplets qui satisfont une condition. Elle correspond à un
découpage horizontal :

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 9 sur 12
Exemple :
Considérons la relation produit ci-dessous.
Le résultat de la requête : « Quelles sont les produits de marque ‘IBM’? » est obtenue en faisant
une restriction sur la relation PRODUIT, avec une condition sur la marque.

IdPro Nom Marque Prix


P PS1 IBM 1000
Q Mac Apple 2000
R PS2 IBM 3000

S Word Microsoft 4000

On écrit donc σPRODUIT (Marque = ’IBM’)


Ce qui donne le résultat suivant :

IdPro Nom Marque Prix


P PS1 IBM 1000
R PS2 IBM 3000

1.2.3. JOINTURE

La jointure de deux relations R1 et R2 est une relation R3 dont les n-uplets sont obtenus en
concaténant les nuplets de R1 avec ceux de R2 et en ne gardant que ceux qui vérifient la
condition de liaison
On notera : R3 = R1 × R2 (condition) la jointure de R1 avec R2 suivant le critère condition.
Une jointure respecte les conditions suivantes :
 Le schéma de la relation résultat de la jointure est la concaténation des schémas des
opérandes (s'il y a des attributs de même nom, il faut les renommer)
 Les n-uplets de R1 × R2 (condition) sont tous les couples (u1,u2) d'un n-uplet de R1 avec
un n-uplet de R2 qui satisfont "condition"
 La jointure de deux relations R1 et R2 est le produit cartésien des deux relations suivi
d'une restriction
 La condition de liaison doit être du type : <attribut1> :: <attribut2>, où : attribut1 ∈ à la
1ère relation et attribut2 ∈ à la 2ème relation.
:: étant un opérateur de comparaison (égalité ou inégalité : =, <,>,<=,>=)
La jointure permet de composer 2 relations à l'aide d'un critère de liaison
Exemple : considerons les relations R1 et R2 ci dessous

R1(A,B,C) A B C R2(U,V) U V
A1 B1 10 10 V1
A2 B2 10 20 V2
A3 B3 20 30 V3
A4 B4 30

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 10 sur 12
La jointure de R1 et R2 sur la condition C=U, notée R1 × R2 (R1.C = R2.U), donne la relation R3
suivante :

R3=R1 x R2 (R1.C=R2.U)

A B C U V
A1 B1 10 10 V1
A2 B2 10 10 V1
A3 B3 20 20 V2
A4 B4 30 30 V3

1.2.4. JOINTURE NATURELLE

Jointure où l'opérateur de comparaison est l'égalité ; dans le résultat on fusionne les 2


colonnes dont les valeurs sont égales.

Exemple :
Soient les 2 relations R1 et R2 suivantes :

R1(A,B,C) A B C R2(C,V) C V
A1 B1 10 10 V1
A2 B2 10 20 V2
A3 B3 20 30 V3
A4 B4 30

R3=R1 x R2 (R1.C=R2.C)

A B C V
A1 B1 10 V1
A2 B2 10 V1
A3 B3 20 V2
A4 B4 30 V3

1.2.5. AUTO-JOINTURE

C’est la jointure d'une relation par elle-même

Exemple :
On considere la relation CLIENT suivante :

IdCli Nom Ville


X Jacque Douala
Y Paul Yaoundé
Z Jean Douala

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 11 sur 12
Quel est le resultat de la requete suivantes ?
« Quels sont les noms des clients qui habitent la même ville que Jean ?»
Il faut une jointure entre la relation CLEINT et elle-même. Dans ce cas on doit renommer la
relation client .
CLIENT As C1 CLIENT As C2

IdCli Nom Ville IdCli Nom Ville


X Jacque Douala X Jacque Douala
Y Paul Yaoundé Y Paul Yaoundé
Z Jean Douala Z Jean Douala

Puis on fait une jointure naturelle de C1 et C2 sur la ville.

R1 = CLIENT × CLIENT (C1.Ville = C2.Ville)

On obtient la relation R1 suivante :


R1

C1.IdCli C1.Nom Ville C2.IdCli C2.Nom


X jacque Douala X jacque
X jacque Douala Z Jean
Y Paul Yaoundé Y Paul
Z Jean Douala Z Jean
Z Jean Douala X jacque

On fait une restriction ou selection sur R1, avec le critère, C2.Nom=”Jean”


R2 = σR1 (C2.Nom = ’Jean’)

R2 C1.IdCli C1.Nom Ville C2.IdCli C2.Nom


X Jacque Douala Z Jean
Z Jean Douala Z Jean

On termine par une projection, pour ne garder que les noms de ces clients.
R3 = πR2 (C1.Nom)

R3 C1.Nom
Jacque
Jean

ISJ/Dep Info, L3, Administration des Bases de données - 2018/2019 - Valéry Monthé Page 12 sur 12

Vous aimerez peut-être aussi