Académique Documents
Professionnel Documents
Culture Documents
Département d’Informatique
Licence 3
INF318
Programmation et Administration des Bases de données
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
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 :
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.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.
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 :
3.5. Tuple
Un tuple est donc simplement une ligne dans la représentation d’une relation sous forme de table.
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.
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.
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.
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.
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
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.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
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
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
R1 - R2 = R3 R3 A B
2 3
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 :
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
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.
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
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
Exemple :
On considere la relation CLIENT suivante :
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
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