Vous êtes sur la page 1sur 39

Algbre Relationnelle

FZ.Benchara

Modle Relatationnelle

Modle Relationnelle

Le modle relationnel est un modle d'organisation des donnes sous forme de Tables
o chaque Table reprsente une Relation, au sens mathmatique d'Ensemble.
Les colonnes des tables s'appellent des attributs et les lignes des n-uplets (o n est le
degr de la relation, c'est dire le nombre d'attributs de la relation).
Un attribut ne prend qu'une seule valeur pour chaque n-uplet.
L'ordre des lignes et des colonnes n'a pas d'importance.
Chaque table doit avoir une cl primaire constitue par un ensemble minimum
d'attributs permettant de distinguer chaque n-uplet de la Relation par rapport tous les
autres.
Chaque ensemble de valeurs formant la cl primaire d'un n-uplet est donc unique au
sein d'une table.

Modle Relationnelle

Modle Relationnelle
Les liens smantiques (ou rgles de gestion sur les donnes) existants
entre les ensembles sont raliss par l'intermdiaire de cls trangres
faisant elles-mmes rfrence des cls primaires d'autres tables.
Il existe deux grands types de liens : Un - Plusieurs (comme le prcdent)
et Plusieurs - Plusieurs. La ralisation de ce dernier type de liens, passe
par l'utilisation d'une table intermdiaire dont la cl primaire est forme
des cls trangres des tables qu'elle relies.

Le modle relationnel est le plus souvent dcrit sous la forme suivante,


les cls primaires tant soulignes et les cls trangres marques par un
signe distinctif ( # ).

Algbre Relationnelle

Quest ce que cest lAlgbre Relationnelle?

LAlgbre Relationnelle est un support mathmatique cohrent sur lequel


repose le modle relationnelle.
Propose un ensemble doprations lmentaire formelles sur les relations
dans le but de crer de nouvelles relations.
Des oprations permettent de reprsenter des requtes sur la Base de
Donnes dans le rsultat sexprime sous forme dune relation (table).
On peut distingu trois familles doprations Relationnelles :
Les oprations unaires: la Projection et la Slection
Permettent de produire une nouvelle table partir dune autre Table.
Les oprations binaires ensemblistes: lUnion, lIntersection, et la
Diffrence.
Permet de mettre en place une nouvelle relation partir de deux relations
de mme degr et mme domaine .
Les oprations binaires ou n-aires: le Produit cartsien, la Jointure, et la
Division.
Permet de mettre en place une nouvelle relation partir de deux ou
plusieurs Tables.

Formalisme dont se base le langage de requte SQL.


4

Algbre Relationnelle

Tables Utiliser dans le cours


CATEGORIE

PRODUIT
1,N contient

1,1

Table CATEGORIES

Table PRODUITS

Algbre Relationnelle

Oprations unaires

Projection

Slection

Algbre Relationnelle

Oprations unaires: PROJECTION

Projection sur les colonnes


nom_produit,
prix_unitaire
De la table produits

NOM_PRODUIT

PRIX_UNITAIRE

SAMSUNG GALAXY S5

8000,00

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

Base de donnes

Algbre Relationnelle

Oprations unaires: PROJECTION


Projection sur les colonnes nom_produit,
prix_unitaire de la table produits

R(nom_produit,prix_unitaire) PRODUITS

NOM_PRODUIT

PRIX_UNITAIRE

SAMSUNG GALAXY S5

8000,00

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

Base de donnes

Algbre Relationnelle

Oprations unaires: SELECTION

Slectionner les produits dont le


prix est infrieur ou gale
5000,00 de la table produits

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

Base de donnes

Algbre Relationnelle

Oprations unaires: SELECTION


Slectionner les produits dont le prix est
infrieur ou gale 5000,00 de la
table produits

R(prix_unitaire<=5000) PRODUITS

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

Base de donnes

10

Algbre Relationnelle

Oprations unaires
Projection
La projection consiste afficher les nuplets dune table R de la base de
donnes on se basant sur les noms des
colonnes (attributs A1, A2,An) pour
construire une nouvelle relation.
Elle limine les doublons.
Notation:

(A1,A2,An) R

Slection
La Slection consiste afficher les
donnes dune table R de la base de
donnes par une restriction (slection) sur
les lignes qui satisfait une condition pour
construire une nouvelle relation.
Il permet de ne retenir que les n-uplets
rpondant une condition exprime
l'aide des oprateurs arithmtiques ( =, >,
<, >=, <=, <>) ou logiques de base (ET,
OU, NON).
Notation:

(Condition) R

Application lexemple:
(nom_produit,prix_unitaire) PRODUITS

Application lexemple:

(prix_unitaire<=5000) PRODUITS
11

Algbre Relationnelle

Oprations binaires ensemblistes


Union
R1

Intersection

Diffrence

R1

R1

R2

R2

R2

R1
R1

R2

R1
R2

R2

12

Algbre Relationnelle

Oprations binaires ensemblistes: UNION

Projection sur les colonnes


nom_produit, prix_unitaire
de la table produits avec
restriction sur le prix 5000
UNION
Projection sur les colonnes
nom_produit, prix_unitaire
de la table produits avec
restriction sur le prix 5000

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

NOM_PRODUIT

PRIX_UNITAIRE

SAMSUNG GALAXY
S5

8000,00

ACER ASPIRE

5000,00

Iphone 5

5000,00

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

SAMSUNG GALAXY
S5

8000,00

Base de donnes

13

Algbre Relationnelle

Oprations binaires ensemblistes: INTERSECTION

Projection sur les colonnes


nom_produit, prix_unitaire
de la table produits avec
restriction sur le prix 5000
INTERSECTION
Projection sur les colonnes
nom_produit, prix_unitaire
de la table produits avec
restriction sur le prix 5000

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

NOM_PRODUIT

PRIX_UNITAIRE

SAMSUNG GALAXY
S5

8000,00

ACER ASPIRE

5000,00

Iphone 5

5000,00

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Iphone 5

5000,00

Base de donnes

14

Algbre Relationnelle

Oprations binaires ensemblistes: DIFFERENCE

Projection sur les colonnes


nom_produit, prix_unitaire
de la table produits avec
restriction sur le prix 5000
UNION
Projection sur les colonnes
nom_produit, prix_unitaire
de la table produits avec
restriction sur le prix 5000

NOM_PRODUIT

PRIX_UNITAIRE

ACER ASPIRE

5000,00

Apple tab

4000,00

Iphone 5

5000,00

NOM_PRODUIT

PRIX_UNITAIRE

SAMSUNG GALAXY
S5

8000,00

ACER ASPIRE

5000,00

Iphone 5

5000,00

NOM_PRODUIT

PRIX_UNITAIRE

Apple tab

4000,00

Base de donnes

15

Algbre Relationnelle

Oprations binaires ensemblistes


UNION

LUNION est une opration portant sur deux relation R1 et R2 dune


mme table R et mme colonnes (attributs A1, A2,An) de la base de
donnes pour construire une nouvelle relation R1R2 et qui limine les
doublons.

Notation: R1UR2

INTERSECTION

Lintersection est une opration portant sur deux relations R1 et R2 dune


mme table R et mme noms des colonnes (attributs A1, A2,An) de la
base de donnes pour construire une nouvelle relation constitus de ceux
appartenant aux deux relations.

Notation: R1 R2

DIFFERENCE

Lintersection est une opration portant sur deux relations R1 et R2 dune


mme table R et mme noms des colonnes (attributs A1, A2,An) de la
base de donnes pour construire une nouvelle relation constitus de ceux
appartenant la relation R1 et nappartient la relation R2.

Notation: R1-R2
Attention ! DIFFERENCE (R1, R2) ne donne pas le mme rsultat que
DIFFERENCE (R2, R1)
16

Algbre Relationnelle

Oprations binaires ou unaires


Produit Cartsien

R1

Jointure
R1

R2

R2

R1

Division

R2

17

Algbre Relationnelle

Oprations binaires: PRODUIT CARTESIEN


CATEGORIES
PRODUITS

NOM_PRODUIT

PRIX_UNITAIRE

SAMSUNG GALAXY S5

8000,00

Apple tab

4000,00

NUM_CATEGORIE

NOM_CATEGORIE

PC Portable

Tablette

Smartphone

NOM_PRODUIT

PRIX_UNITAIRE

NUM_CATEGORIE

NOM_CATEGORIE

SAMSUNG GALAXY S5

8000,00

PC Portable

SAMSUNG GALAXY S5

8000,00

Tablette

SAMSUNG GALAXY S5

8000,00

Smartphone

Apple tab

4000,00

PC Portable

Apple tab

4000,00

Tablette

Apple tab

4000,00

Smartphone

Base de donnes

18

Algbre Relationnelle

Oprations binaires: JOINTURE


CATEGORIES

PRODUITS
NOM_PRODUIT

PRIX_UNITAIRE

NUM_CATEGORIE

NUM_CATEGORIE

NOM_CATEGORIE

SAMSUNG
GALAXY S5

8000,00

PC Portable

Tablette

Apple tab

4000,00

Smartphone

Projection sur les colonnes


nom_produit, prix_unitaire de
la
table
produits
et
nom_categorie avec restriction
sur le prix < 5000 et prix > 5000

NOM_PRODUIT

PRIX_UNITAIRE

NOM_CATEGORIE

SAMSUNG GALAXY S5

8000,00

Smartphone

Apple tab

4000,00

Tablette

Base de donnes

19

Algbre Relationnelle

Oprations binaires: JOINTURE


CATEGORIES

PRODUITS
NOM_PRODUIT

PRIX_UNITAIRE

NUM_CATEGORIE

NUM_CATEGORIE

NOM_CATEGORIE

SAMSUNG
GALAXY S5

8000,00

PC Portable

Tablette

Apple tab

4000,00

Smartphone

Projection sur les colonnes


nom_produit, prix_unitaire de
la
table
produits
et
nom_categorie avec restriction
sur le prix < 5000 et prix > 5000

NOM_PRODUIT

PRIX_UNITAIRE

NOM_CATEGORIE

SAMSUNG GALAXY S5

8000,00

Smartphone

Apple tab

4000,00

Tablette

PRODUITSPRODUITS.num_categorie=CATEGORIES.num_categorie CATEGORIES

Base de donnes

20

Algbre Relationnelle

Oprations binaires: DIVISION


PRODUITS
NOM_PRODUIT

NUM_CATEGORIE

SAMSUNG
GALAXY S5

SAMSUNG
GALAXY S5

SAMSUNG
GALAXY S5

Apple tab

CATEGORIES

PC Portable

NOM_PRODUIT

Tablette

SAMSUNG GALAXY S5

Smartphone

Base de donnes

21

Algbre Relationnelle

Oprations binaires ou unaires

PRODUIT CATESIEN

JOINTURE

Le produit cartsien est une opration portant sur deux relation R1 et R2


de tables diffrentes pour construire une autre table R qui rassemble tous
les colonnes de R1 et qui regroupe toutes les possibilits de combinaison
(R1x R2) des occurrences entre eux.
Notation: R1xR2
La jointure est une opration portant sur deux relation R1 et R2 de tables
diffrentes pour construire une autre table R regroupant exclusivement
toutes les possibilits de combinaison des occurrences des relations R1 et
R2 qui satisfait une condition C.
Notation: RJC (R1,R2)

DIVISION

c(R1xR2)

La division est une opration portant sur deux relation R1 et R2 telles R2


est strictement inclus dans celui de R1, qui gnre une relation R
regroupant toutes les parties doccurrences de R1 qui sont associes
tous les occurrences de R2 et qui appartiennent R1.

Notation: R1/R2
22

Algbre Relationnelle

Types de Jointures

Equijointure

Tht
Jointure

Jointure
Naturelle

Jointure

Jointure
externe
droite

Jointure
externe
gauche

23

Algbre Relationnelle

Jointure Naturelle
Une Jointure naturelle est une jointure dans laquelle la condition C est un
test dgalit entre les attributs qui portent le mme nom dans R1 et R2.
Elle est note:

RJ (R1,R2)
C

Une jointure naturelle est une jointure dont les attributs A1 de R1 et A2


de R2 ont le mme nom et le mme type de donnes..

24

Algbre Relationnelle
EquiJointure
Une quijointure est une jointure dans laquelle la condition C est un test dgalit
entre un attribut A1 de la relation R1 et un attribut A2 de la relation R2. Lquijointure
est note RJProduits.num_categorie Categories.num_categorie(Produits,Categories); les attributs
A1 et A2 ont les mme valeurs.

Tht Jointure
La thta-jointure est une jointure dans laquelle la condition C est une simple
comparaison entre un attribut A de la relation R et un attribut A de la relation
1
1
2
R .
2

Jointure externe
Une jointure externe est une jointure qui permet dafficher les valeurs null dans
le rsultat de la requte.
o Jointure externe gauche: valeurs null dans la table gauche
o Jointure externe droite: valeurs null dans la table droite
25

Algbre Relationnelle

A RETENIR
Algbre Relationnel: Support mathmatique cohrent dans laquelle
se base la langage SQL.
Oprations de base: PROJECTION, SELECTION, JOINTURE
Jointure: Se base essentiellement sur la cl primaire et la cl
trangre pour relier deux ou plusieurs tables.

Base de
connaissances
26

Algbre Relationnelle

A RETENIR
PROJECTION
SELECTION

(A1,A2,An) R

(E) R

UNION
INTERSECTION

R1UR2

DIFFERENCE

R1-R2

PRODUIT CARTESIEN
JOINTURE

R1xR2

DIVISION

R1 R2

RJC (R1,R2)

c(R1xR2)

R1/R2

27

Algbre Relationnelle

Fonctions dAgrgation
Elles sont utilises dans les oprateurs CALCULER et
REGROUPER_ET_CALCULER.
Les fonctions statistiques de base :
Elles portent sur un ou plusieurs groupes de n-uplets et videmment
sur un attribut de type numrique.

Somme(attribut) : total des valeurs d'un attribut


Moyenne(attribut) : moyenne des valeurs d'un attribut
Minimum(attribut) : plus petite valeur d'un attribut
Maximum(attribut) : plus grande valeur d'un attribut

Remarque : les valeurs "non renseignes" de l'attribut sont ignores.


La fonction de comptage : Comptage()
La fonction de comptage donne le nombre de n-uplets d'un ou de
plusieurs groupes de n-uplets. Il n'est donc pas ncessaire de
prciser d'attribut.
28

Algbre Relationnelle

Fonctions dAgrgation

Les calculs et/ou comptage portent sur la relation


R0.
La relation rsultat ne comportera qu'une ligne avec
autant de colonnes que de rsultats demands ou
pourra simplement tre considre comme un
nombre N utilisable ultrieurement en tant que tel
dans le cas o un seul rsultat est attendu.
R=CALCULER(R0, fonction_agreg1, fonction_agreg2, ...)

29

Algbre Relationnelle

Fonctions dAgrgation
R=CALCULER(R0, fonction_agreg1, fonction_agreg2, ...)

Exemples :
LIGNE_COMMANDE :
NBonCommande

CodeProduit

Quantit

PuHt

96008

A10

10

83

96008

B20

35

32

96009

A10

20

83

96010

A15

110

96010

B20

55

32

On dsire obtenir le chiffre d'affaires total Ht, ainsi que le nombre total de produits
commands :

R1=CALCULER(LIGNE_COMMANDE, Somme(Quantit*PuHt), Somme(Quantit))


Somme(Quantit*PuH t) Somme(Quantit)
5810

124
30

Algbre Relationnelle

Fonctions dAgrgation
Le regroupement s'effectue sur un sous ensemble des
attributs de la relation R0.
La relation rsultat comportera autant de lignes que de
groupes de n-uplets, les fonctions s'appliquant chacun des
groupes sparment.

R=REGROUPER_ET_CALCULER(R0,
att1,
att2, ..., fonction_agreg1, fonction_agreg2, ...)

31

Algbre Relationnelle

Fonctions dAgrgation
R=REGROUPER_ET_CALCULER(R0, att1, att2, ..., fonction_agreg1,
fonction_agreg2, ...)
LIGNE_COMMANDE :
NBonCommande

CodeProduit

Quantit

PuHt

96008

A10

10

83

96008

B20

35

32

96009

A10

20

83

96010

A15

110

96010

B20

55

32

On dsire obtenir le montant total Ht de chaque bon de commande :

R2=REGROUPER_ET_CALCULER(LIGNE_COMMANDE, NBonCommande,NMontantHt
:
BonCommande
M ontantH t
Somme(Quantit*PuHt))
96008

1950

96009

1660

96010

2200
32

Algbre Relationnelle

Exercice Applicatif 1
Soit le modle relationnel suivant relatif une base de donnes sur des
reprsentations musicales :
o REPRESENTATION (nreprsentation, titre_reprsentation, lieu)
o MUSICIEN (nom, #nreprsentation)
o PROGRAMMER (date, #nreprsentation, tarif)

Questions :
1) Donner la liste des titres des reprsentations.
2) Donner la liste des titres des reprsentations ayant lieu l'opra Bastille.
3) Donner la liste des noms des musiciens et des titres des reprsentations
auxquelles ils participent.
4) Donner la liste des titres des reprsentations, les lieux et les tarifs pour la
journe du 14/09/96.
33

Algbre Relationnelle

Exercice Applicatif 1
1 - Donner la liste des titres des reprsentations.
R = PROJECTION(REPRESENTATION, titre_reprsentation)

2 - Donner la liste des titres des reprsentations ayant lieu l'opra Bastille.
R1 = SELECTION(REPRESENTATION, lieu="Opra Bastille")
R2 = PROJECTION(R1, titre_reprsentation)
3 - Donner la liste des noms des musiciens et des titres des reprsentations auxquelles
ils participent.
R1 = JOINTURE(MUSICIEN, REPRESENTATION, Musicien.nreprsentation=
Reprsentation.nreprsentation)
R2 = PROJECTION(R1, nom, titre_reprsentation)

4 -Donner la liste des titres des reprsentations, les lieux et les tarifs pour la journe du
14/09/96.
R1 = SELECTION(PROGRAMMER, date=14/09/96)
R2 = JOINTURE(R1,
REPRESENTATION,R1.nreprsentation=Reprsentation.nreprsentation)
R3 = PROJECTION(R2, titre_reprsentation, lieu, tarif)
34

Algbre Relationnelle

Exercice Applicatif 1
1 - Donner la liste des titres des reprsentations.
R = (titre_reprsentation) REPRESENTATION

2 - Donner la liste des titres des reprsentations ayant lieu l'opra Bastille.
R1 = (lieu="Opra Bastille") REPRESENTATION,
R2 = (titre_reprsentation) R1,
3 - Donner la liste des noms des musiciens et des titres des reprsentations auxquelles
ils participent.
R1 = MUSICIEN (Musicien.nreprsentation= Reprsentation.nreprsentation)
REPRESENTATION
R2 = ( nom, titre_reprsentation)R1

4 -Donner la liste des titres des reprsentations, les lieux et les tarifs pour la journe du
14/09/96.
R1 = (date=14/09/96) PROGRAMMER
R2 = R1 (R1.nreprsentation=Reprsentation.nreprsentation)REPRESENTATION
R3 = (titre_reprsentation, lieu, tarif) R2
35

Algbre Relationnelle

Exercice Applicatif 2
Soit le modle relationnel suivant relatif la gestion des notes annuelles
d'une promotion d'tudiants :
ETUDIANT(NEtudiant, Nom, Prnom)
MATIERE(CodeMat, LibellMat, CoeffMat)
EVALUER(#NEtudiant, #CodeMat, Date, Note)

Questions :
1 - Quel est le nombre total d'tudiants ?
2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la
plus basse ?
3 - Quelles sont les moyennes de chaque tudiant dans chacune des matires ?
4 - Quelles sont les moyennes par matire ?
5 - Quelle est la moyenne gnrale de chaque tudiant ?
6 - Quelle est la moyenne gnrale de la promotion ?
7 - Quels sont les tudiants qui ont une moyenne gnrale suprieure ou gale
la moyenne gnrale de la promotion ?
36

Algbre Relationnelle

Exercice Applicatif 2

1 - Quel est le nombre total d'tudiants ?


N=CALCULER(ETUDIANT, Comptage())

2 - Quelles sont, parmi l'ensemble des notes,


la note la plus haute et la note la plus basse ?
R=CALCULER(EVALUER, Minimum(Note), Maximum(Note))

37

Algbre Relationnelle

Exercice Applicatif 2
3- Quelles sont les moyennes de chaque tudiant dans chacune des matires ?
R1=REGROUPER_ET_CALCULER(EVALUER, NEtudiant, CodeMat, MoyEtuMat :
Moyenne(Note))
R2=JOINTURE(R1, MATIERE, MATIERE.CodeMat=R1.CodeMat)
R3=JOINTURE(R2, ETUDIANT, ETUDIANT.NEtudiant=R2.NEtudiant)
MOYETUMAT=PROJECTION(R3, NEtudiant, Nom, Prnom, LibellMat, CoeffMat,
MoyEtuMat)

38

Algbre Relationnelle

Exercice Applicatif 2
3- Quelles sont les moyennes de chaque tudiant dans chacune des matires ?
R1=REGROUPER_ET_CALCULER(EVALUER, NEtudiant, CodeMat, MoyEtuMat :
Moyenne(Note))
R2=JOINTURE(R1, MATIERE, MATIERE.CodeMat=R1.CodeMat)
R3=JOINTURE(R2, ETUDIANT, ETUDIANT.NEtudiant=R2.NEtudiant)
MOYETUMAT=PROJECTION(R3, NEtudiant, Nom, Prnom, LibellMat, CoeffMat,
MoyEtuMat).

39