Bases de Données: Algèbre Relationnelle
Bases de Données: Algèbre Relationnelle
Bases de Données: Algèbre Relationnelle
Bases de données
ALGÈBRE RELATIONNELLE
2
Algèbre relationnelle
1
2014-07-04
3
Algèbre relationnelle
4
Algèbre relationnelle
Éléments fondamentaux
2
2014-07-04
5
Algèbre relationnelle
Éléments fondamentaux
Tel que nous l’avons vu pour le modèle relationnel, une relation respecte
les règles suivantes :
une relation porte une nom
une relation est définie par un schéma qui est constitué de na domaine(s)
nommé(s) attribut(s)
na > 0
une relation possède une clé définie par un ou une composition minimale
d’attributs
une extension est constitué de nt tuple(s)
nt 0
lorsque nt = 0, on dit que la relation est vide
6
Algèbre relationnelle
Opérateurs
3
2014-07-04
7
Algèbre relationnelle
Opérateurs unaires | Projection
R’ = a1,a2,…R
Interprétation : la relation R’ correspond à la projection des attributs a1 et
a2 de la relation R.
On remarque qu’il est possible que le résultat soit sans clé primaire définie.
Dans ce cas, le résultat défini automatiquement une clé primaire par la
composition de tous les attributs restant et élimine tous les doublons
existants.
8
Algèbre relationnelle
Opérateurs unaires | Projection
4
2014-07-04
9
Algèbre relationnelle
Opérateurs unaires | Sélection
R’ = conditionR
Interprétation : la relation R’ correspond à la sélection des tuples de R
respectant la ou les conditions données.
Les conditions sont déterminées par des opérateurs appliqués sur les
valeurs des attributs { =, , <, , >, , , }
10
Algèbre relationnelle
Opérateurs unaires | Sélection
5
2014-07-04
11
Algèbre relationnelle
Opérateurs unaires | Synonyme
R’ = a/bR
Interprétation : la relation R’ correspond en tout point à la relation R à la
différence où l’attribut a se nomme maintenant b.
Cet opérateur peut devenir très utile pour préciser le rôle d’un attribut ou
pour lever l'ambiguïté d’une attribut lorsqu’un opérateur met en commun
deux relations ayant des noms d’attributs similaires.
12
Algèbre relationnelle
Opérateurs unaires | Sélection
6
2014-07-04
13
Algèbre relationnelle
Opérateurs ensemblistes | Union
R’ = R1 R2
Interprétation : la relation R’ est le résultat de l’union des tuples des relations R1
et R2.
R1 et R2 doivent être de même schéma sinon l’union est impossible. R’ est de
même schéma.
L’union élimine tous les doublons existants.
Cet opérateur est commutatif.
14
Algèbre relationnelle
Opérateurs ensemblistes | Union
Employé
Nom Prénom
Prévost Charlotte
Richter Karl Nom Prénom
Barette Patricia Prévost Charlotte
Richter Karl
Client Barette Patricia
Nom Prénom Bernard Alain
Bernard Alain Perrier Charles
Perrier Charles Labbé Caroline
Labbé Caroline
Barrette Patricia
7
2014-07-04
15
Algèbre relationnelle
Opérateurs ensemblistes | Intersection
R’ = R1 R2
Interprétation : intersection des tuples des relations R1 et R2.
R1 et R2 doivent être de même schéma sinon l’intersection est impossible.
R’ est de même schéma.
Cet opérateur est commutatif.
16
Algèbre relationnelle
Opérateurs ensemblistes | Union
Employé
Nom Prénom
Prévost Charlotte
Richter Karl
Barette Patricia
Nom Prénom
Client
Barette Patricia
Nom Prénom
Bernard Alain
Perrier Charles
Labbé Caroline
Barrette Patricia
8
2014-07-04
17
Algèbre relationnelle
Opérateurs ensemblistes | Différence
R’ = R1 - R2
Interprétation : différence des tuples des relations R1 et R2.
R1 et R2 doivent être de même schéma sinon la différence est impossible.
R’ est de même schéma.
Cet opérateur n’est pas commutatif.
18
Algèbre relationnelle
Opérateurs ensemblistes | Différence
9
2014-07-04
19
Algèbre relationnelle
Opérateurs ensemblistes | Différence
Employé
Nom Prénom
Prévost Charlotte
Richter Karl
Barette Patricia
Nom Prénom
Client Prévost Charlotte
Nom Prénom Richter Karl
Bernard Alain
Perrier Charles
Labbé Caroline
Barrette Patricia
20
Algèbre relationnelle
Opérateurs ensemblistes | Quotient
R’ = R1 R2
Interprétation : quotient des tuples des relations R1 et R2.
Cet opérateur n’est pas commutatif.
10
2014-07-04
21
Algèbre relationnelle
Opérateurs ensemblistes | Quotient
Nom Prénom
Producteur
Perrier Charles
Nom Prénom Produit
Bernard Alain 4
Perrier Charles 2
Labbé Caroline 4
Perrier Charles 7
22
Algèbre relationnelle
Opérateurs ensemblistes | Produit cartésien
R’ = R1 X R2
Interprétation : produit cartésien des tuples des relations R1 et R2.
Cet opérateur est commutatif.
na’ = na1 + na2 et nt’ = nt1 nt2
11
2014-07-04
23
Algèbre relationnelle
Opérateurs ensemblistes | Produit cartésien
24
Algèbre relationnelle
Opérateurs ensemblistes | Produit cartésien
12
2014-07-04
25
Algèbre relationnelle
Opérateurs ensemblistes | Produit cartésien
26
Algèbre relationnelle
Opérateurs de jointure
13
2014-07-04
27
Algèbre relationnelle
Opérateurs de jointure | Théta-jointure
R’ = R1 condition R2
Interprétation (même sens mathématique*) :
R’ = condition(R1 X R2)
28
Algèbre relationnelle
Opérateurs de jointure | Théta-jointure
14
2014-07-04
29
Algèbre relationnelle
Opérateurs de jointure | Jointure naturelle
R’ = R1 R2
30
Algèbre relationnelle
Opérateurs de jointure | Jointure naturelle
Produit
IdProduit Nom
4 Fraise
7 Mais
15
2014-07-04
31
Algèbre relationnelle
Opérateurs de jointure | Semi-jointure
R’ = R1 R2 (semi-jointure de gauche)
R’ = R1 R2 (semi-jointure de droite)
32
Algèbre relationnelle
Opérateurs de jointure | Semi-jointure
Produit
IdProduit Nom
4 Fraise
7 Mais
16
2014-07-04
33
Algèbre relationnelle
Opérateurs de jointure | Semi-jointure
Produit
IdProduit Nom
4 Fraise
7 Mais
IdProduit Nom
Producteur 4 Fraise
Nom Prénom IdProduit 4 Fraise
Bernard Alain 4
Perrier Charles 2
Labbé Caroline 4
34
Algèbre relationnelle
Opérateurs de jointure | Anti-jointure
R’ = R1 R2 (anti-jointure de gauche)
R’ = R1 R2 (anti-jointure de droite)
17
2014-07-04
35
Algèbre relationnelle
Opérateurs de jointure | Anti-jointure
Produit
IdProduit Nom
4 Fraise
7 Mais
36
Algèbre relationnelle
Opérateurs de jointure | Anti-jointure
Produit
IdProduit Nom
4 Fraise
7 Mais
IdProduit Nom
Producteur
7 Mais
Nom Prénom IdProduit
Bernard Alain 4
Perrier Charles 2
Labbé Caroline 4
18
2014-07-04
37
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
Les trois types de jointures externes sont toutes basées sur le même
principe (qu’on nomme jointure externe entière).
Les jointures externes sont des opérateurs qui créent une nouvelle relation
R à partir du produit cartésien de R1 et R2. De plus, on identifie les tuples
qui correspondent au prédicat donnés. Les tuples ne correspondant pas
au prédicat sont mis à une valeur nulle.
Notation :
R’ = R1 R2 (jointure externe entière)
R’ = R1 R2 (jointure externe gauche)
R’ = R1 R2 (jointure externe droite)
38
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
Produit
Id Nom
4 Fraise
Nom Prénom Produit Id Nom
7 Mais
Bernard Alain 4 4 Fraise
Bernard Alain 4 7 Mais
Perrier Charles 2 4 Fraise
Producteur
Perrier Charles 2 7 Mais
Nom Prénom Produit
Labbé Caroline 4 4 Fraise
Bernard Alain 4
Labbé Caroline 4 7 Mais
Perrier Charles 2
Labbé Caroline 4
19
2014-07-04
39
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
40
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
20
2014-07-04
41
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
42
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
21
2014-07-04
43
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
44
Algèbre relationnelle
Opérateurs de jointure | Jointures externes
à gauche à droite
Nom Prénom Id Nom Nom Prénom Id Nom
Bernard Alain 4 Fraise Bernard Alain 4 Fraise
Perrier Charles - - - - 7 Mais
Labbé Caroline 4 Fraise Labbé Caroline 4 Fraise
22
2014-07-04
45
Algèbre relationnelle
Opérateurs et fonctions arithmétiques
46
Algèbre relationnelle
Opérateurs et fonctions arithmétiques
23
2014-07-04
47
Algèbre relationnelle
Opérateurs et fonc. sur les chaînes de car.
On utilise l’opérateur sur les chaînes de caractères LIKE afin d’offrir plus de
flexibilité que l’opérateur de comparaison habituel.
L’opérateur LIKE permet des caractères spéciaux permettant :
de remplacer le caractère « _ » par un caractère quelconque à la position
déterminée;
de remplacer le caractère « % » par une chaîne de caractères de longueur
quelconque à la position déterminée;
Attention, les opérateurs conditionnels standards sont toujours disponibles
pour les chaînes de caractères.
48
Algèbre relationnelle
Opérateurs et fonc. sur les chaînes de car.
Par exemple :
Nom LIKE ‘T_____’ Employé donne tous les noms de 6 caractères mais débutant par la lettre T
Nom LIKE ‘T%’ Employé donne tous les noms commençant par T (longueur quelconque)
Nom LIKE ‘%y’ Employé donne tous les noms terminant par y (longueur quelconque)
Nom LIKE ‘_a%’ Employé donne tous les noms ayant un a comme deuxième lettre
24
2014-07-04
49
Algèbre relationnelle
Opérateurs et fonc. sur les chaînes de car.
Les fonctions de transformations habituelles sur les chaînes de caractères sont aussi
disponibles.
LENGTH (longueur de la chaîne de caractères) LEFT (les n caractères de gauche)
LOWER (mise en minuscule) RIGHT (les n caractères de droite)
UPPER (mise en majuscule) MID (une sous chaîne)
CONCAT (concaténation de plusieurs chaînes de car.) …
…
Par exemple :
UPPER(Nom) LIKE ‘TREMBLAY’ Employé donne le nom Tremblay peut importe la casse utilisée
50
Algèbre relationnelle
Opérateurs d’agrégation
25
2014-07-04
51
Algèbre relationnelle
Opérateurs d’agrégation
Notation :
52
Algèbre relationnelle
Opérateurs d’agrégation
Par exemple :
26
2014-07-04
53
Algèbre relationnelle
Note complémentaire sur les opérateurs
Pour tous les opérateurs, il est possible de nommer les attributs de la relation résultat en les
déclarant directement sur la structure de sortie.
La déclaration doit respecter le même nombre d’attributs que le schéma de sortie le
requiert.
Aussi, l’ordre des noms données dans la déclaration est appliqué dans le même ordre
aux colonnes de sortie.
54
Algèbre relationnelle
Note complémentaire sur les opérateurs
Par exemple :
ProdProd(NomProducteur, PrénomProducteur, Produit, Id, NomProduit) = Producteur X Produit
Produit
Id Nom
ProdProd
4 Fraise
NomProducteur PrénomProducteur Produit Id NomProduit
7 Mais
Bernard Alain 4 4 Fraise
Bernard Alain 4 7 Mais
Perrier Charles 2 4 Fraise
Producteur
Perrier Charles 2 7 Mais
Nom Prénom Produit
Labbé Caroline 4 4 Fraise
Bernard Alain 4
Labbé Caroline 4 7 Mais
Perrier Charles 2
Labbé Caroline 4
27
2014-07-04
55
Algèbre relationnelle
Quelques exemples
28