Vous êtes sur la page 1sur 13

1

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

 Algèbre relationnelle
 Définit un 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 relation
 l’algèbre relationnelle est la base de l’implémentation de SQL
2
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
L’opération algébrique qui renvoie la liste des employés payés plus que 1000
est notée EMP<SAL>1000>
3
Le modèle relationnel
Algèbre relationnelle (3)

Opérateurs relationnels
 La projection
Exemple
La projection de EMP sur ENAME et JOB est notée EMP[ENAME,JOB]
SQL : SELECT ename, Job FROM emp ;
Algorithme Explicatif: FOR EACH o IN emp LOOP
RETURN o.ename, o.job ;
4
Le modèle relationnel
Algèbre relationnelle (4)

Opérateurs relationnels
 La sélection
Exemple
L’opération algébrique qui renvoie la liste des employés payés plus que 1000
est notée EMP<SAL>1000>
SQL : SELECT * FROM emp
WHERE Sal > 1000 ;
Algorithme explicatif: FOR EACH o IN emp
IF o.sal > 1000 THEN
RETURN o.* ;
5
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 des employés
ainsi que les informations de leurs départements EMP DEPT.
6
Le modèle relationnel
Algèbre relationnelle (6)

 Opérateurs relationnels
 La jointure
 Exemple
La jointure naturelle de EMP avec DEPT donne les informations des employés
ainsi que les informations de leurs départements EMP DEPT.
SQL : SELECT * FROM emp, dept
WHERE emp.deptno = dept. deptno ;
Algorithme Explicatif : FOR EACH o IN emp
FOR EACH d IN dept
IF o.deptno = d.deptno THEN
RETURN o.* , d.* ;
7
Le modèle relationnel
Jointures en SQL par l’exemple

 Equi-jointure
SELECT * FROM emp e, dept d WHERE e.deptno=d.deptno;
SELECT * FROM emp e JOIN dept d ON e.deptno=d.deptno;
SELECT * FROM emp NATURAL JOIN dept;
Non equi-jointure
SELECT * FROM emp JOIN salgrade
ON sal BETWEEN losal AND hisal;
8
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.
9
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 = R3 a2 b2
a3 c2
a1 b1 a1 c1
R1.A R1.B R2.A R2.C
a2 b2 a3 c2
a1 b1 a1 c1
R1 R2 = R4 a3 c2

R1.A R1.B R2.A R2.C


a1 b1 a1 c1
R1 R2 = R5
a2 b2
10
Le modèle relationnel
Jointures en SQL par l’exemple

 Jointure externe complète (Full outer join)


SELECT * FROM empc e FULL OUTER JOIN deptc d
ON e.cd=d.cd;
 Jointure externe gauche (Left outer join)
SELECT * FROM empc e LEFT OUTER JOIN deptc d
ON e.cd=d.cd;
 Jointure externe droite (Right outer join)
SELECT * FROM empc e RIGHT OUTER JOIN deptc d
ON e.cd=d.cd;
11
Le modèle relationnel
Opérateurs ensemblistes (1)

 Opérateurs ensemblistes
Les opérations ensemblistes peuventSELECT
être exécutées sur n’importe quel couple
A,B FROM R1
de relations ayant
SELECT A,B FROMleR1même nombreUNION
et domaines d’attributs.
INTERSECT SELECT A,B FROM R2
Soient R1 et
SELECT A,BR2 deux
FROM R2relations 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
Exécuter toutes les MINUS
A B A B
opérations possibles SELECT A,B FROM R2
entre R1 et R2. a1 b1 a1 b1
a1 b2 a2 b1
a2 b2 a2 b2
12
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
13
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
D  a  R[A]/ b  S, (a, b)  R  a  R[A]/ b  S, (a, b)  R
 Exemple
R S
A B
B
a1 b1
a1 b2
÷B b1
b2 =?
a2 b2

Vous aimerez peut-être aussi