Vous êtes sur la page 1sur 20

Algbre relationnelle

Maria Berger - Matrise d'AES 2001-20

La partie structurelle : le modle


relationnel

Produit cartsien de 2 ensembles :

E1 E2 ( x1 , x2 ) / x1 E1 , x2 E2

Relation :
Sous-ensemble du produit cartsien dune liste de
domaines
Une relation est caractrise par un nom
Reprsentation commode : table 2 dimensions
Exemple : la relation Coureur est un sous-ensemble
du produit cartsien :
numro X nom X CodeEquipe X CodePays

Maria Berger - Matrise d'AES

La partie oprationnelle : l'algbre


relationnelle
Une

algbre est un ensemble avec des


oprations fermes sur cet ensemble.

Une algbre relationnelle est un ensemble


doprations agissant sur des relations et produisant
des relations

oprations ensemblistes (union, intersection,


diffrence, produit cartsien)
3 oprations spcifiques des BD relationnelles
(slection, projection, jointure)
3

Maria Berger - Matrise d'AES

Oprations ensemblistes
Union

Les relations doivent avoir le mme schma

12
15
16
17

PROFESSEUR
Nom
Prnom
CHARPIN Franoise
THERY
Philippe
VOGEL
Louis
BALLE
Francis

NEns

Matire
Economie
Droit
Droit
Politique
NEns

Professeur
Matre de
confrence
4

12
15
16
17
5
8
58
67

NEns
5
8
58
67
Nom
CHARPIN
THERY
VOGEL
BALLE
BEL
TOPOR
SKALLI
BERGER

Prnom
Franoise
Philippe
Louis
Francis
Liliane
Lucienne
Ali
Maria

MAITRE DE CONFERENCE
Nom
Prnom Matire
BEL
Liliane
Mathmatiques
TOPOR
Lucienne Droit
SKALLI
Ali
Economie
BERGER
Maria
Informatique
Matire
Economie
Droit
Droit
Politique
Mathmatiques
Droit
Economie
Informatique

Maria Berger - Matrise d'AES

Oprations ensemblistes
Intersection

Les relations doivent avoir le mme schma


Exemple : lintersection de Professeur et Matre de
confrence est une relation nulle (!)

Diffrence

Les relations doivent avoir le mme schma


Exemple : la diffrence Professeur - Matre de
confrence est la relation Professeur elle-mme (!)

Maria Berger - Matrise d'AES

Oprations ensemblistes
Produit

cartsien

Numro
coureur

Nom Coureur

Code
pays

Nom Pays

ALL

Allemagne

Code
quipe

Code
pays

ULLRICH Jan

TEL

ALL

FRA

France

31

JALABERT Laurent

ONC

FRA

SUI

Suisse

61

ROMINGER Tony

COF

SUI

G-B

91

BOARDMAN Chris

GAN

G-B

Grande
-Bretagne

Numro
coureur

Nom Coureur

Code
quipe

Code
pays

Code
pays

Nom Pays

ULLRICH Jan

TEL

ALL

ALL

Allemagne

ULLRICH Jan

TEL

ALL

FRA

France

ULLRICH Jan

TEL

ALL

SUI

Suisse

ULLRICH Jan

TEL

ALL

G-B

Grande -Bretagne

31

JALABERT Laurent

ONC

FRA

ALL
Allemagne
Maria
Berger
- Matrise d'AES

Oprations spcifiques

Slection (ou restriction) : relation compose de


n-uplets vrifiant une condition

Quels sont les


coureurs suisses ?
Relation
rsultat

Numro
coureur

Nom Coureur

Code
quipe

Code
pays

ULLRICH Jan

TEL

ALL

31

JALABERT Laurent

ONC

FRA

61

ROMINGER Tony

COF

SUI

91

BOARDMAN Chris

GAN

G-B

114

CIPOLLINI Mario

SAE

ITA

R = SELECTION(COUREUR, CodePays = SUI)

NOTATION : CodePays = SUI(COUREUR)

Maria Berger - Matrise d'AES

Oprations spcifiques
Projection

: relation restreinte aux attributs


spcifis dans la projection
Exemple : Nom et nationalit des coureurs ?
R = PROJECTION(COUREUR, NomCoureur,
Nationalit)
NOTATION : {NomCoureur,Nationalit}(COUREURS)

Relation
rsultat

Nom Coureur

Code
pays

ULLRICH Jan

ALL

JALABERT Laurent

FRA

ROMINGER Tony

SUI

BOARDMAN Chris

G-B

CIPOLLINI Mario

ITA
Maria
Berger - Matrise d'AES

Oprations spcifiques
Jointure
Numro
coureur

Nom Coureur

Code
pays

Nom Pays

ALL

Allemagne

Code
quipe

Code
pays

ULLRICH Jan

TEL

ALL

FRA

France

31

JALABERT Laurent

ONC

FRA

SUI

Suisse

61

ROMINGER Tony

COF

SUI

G-B

91

BOARDMAN Chris

GAN

G-B

Grande
-Bretagne

Relation
rsultat

Numro
coureur

Nom Coureur

Code
quipe

Code
pays

Nom Pays

ULLRICH Jan

TEL

ALL

Allemagne

31

JALABERT Laurent

ONC

FRA

France

61

ROMINGER Tony

COF

SUI

Suisse

91

BOARDMAN Chris

GAN

G-B

Grande
-Bretagne

Maria Berger - Matrise d'AES

Oprations spcifiques
Jointure

(suite)

Notation : Coureur Pays

-jointure

: jointure sous condition autre que

lgalit

10

Maria Berger - Matrise d'AES

Oprations spcifiques
Division

: relation compose des n-uplets tels


que le produit cartsien avec le diviseur soit un
sous-ensemble de la relation dividende (?)
Participer

Athlte
Dupont
Durand
Dupont
Martin
Dupont
Martin

Epreuve
200 m
400 m
400 m
110 m H
110 m H
200 m

Epreuve

Epreuve
200 m
400 m
110 m H

Athlte
Dupont

Relation rsultat de
Particier Epreuve

Quels sont les athltes qui ont particip toutes les preuves ?
11
Maria Berger - Matrise d'AES

Union

Intersection

Diffrence

Slection

Projection
Produit cartsien

12

Maria Berger - Matrise d'AES

Remarques sur l'algbre


relationnelle

L'algbre relationnelle permet ltude des oprateurs


entre eux (commutativit, associativit, groupe
d'oprateurs minimaux,...)

L'opration de jointure est trs coteuse :


proportionnelle au nombre de n-uplets (m*n pour deux
relations jointes)

13

quivalence de certaines expressions


programmes d'optimisation qui transforment toute requte en
sa forme quivalente la plus efficace

toujours prfrable de faire les restrictions le plus tt possible


afin de manipuler des tables les plus rduites possibles.

Maria Berger - Matrise d'AES

Pourquoi une requte est-elle meilleure qu'une


autre ?

Une requte n'est pas l'unique solution d'un problme.

efficacits diffrentes

Exemple :
Fournisseur (Nfno, Nom, Adresse, Ville)
Produit (Nprod, Designation, Prix, Poids, Couleur)
Commande (Ncomm, Nfno, Nprod, , Quantit)
Produit = 8 lignes * 5 colonnes * 10 char = 400 char
Commande = 10 lignes * 4 colonnes * 10 char = 400 char
Rfrences, prix et quantits des produits commands en
plus de 10 exemplaires par commande ?

14

Maria Berger - Matrise d'AES

R1= JOINTURE(Commande, Produit,


Produit.Nprod = Commande.Nprod)

R2 = SELECTION(R1, Quantit > 10)

R3 = PROJECTION(R2, Nprod, Prix, Quantit)

R1 = jointure sur la table Commande et la table Produit


= 400*400 = 160 000 char

15

Maria Berger - Matrise d'AES

R1 = PROJECTION(SELECTION(Commande,
Quantit>10), Nprod, Quantit)

R2 = JOINTURE(R1, PROJECTION(Produit,
Nprod, Prix), R1.Nprod = PROJ.Nprod)

R3 = PROJECTION(R2, Nprod, Prix, Quantit)

R2 = jointure sur le couple (Nprod, Prix) de la table


Produit = 8*2*10 = 160 char et sur le couple (Nprod,
Quantit) de la table Commande = 2*2*10 = 40 char

16

Total = 40*160 = 6400 char

Gain de 75% (facteur 25) en taille mmoire

Maria Berger - Matrise d'AES

Cls dune relation


Cl

Colonne(s) dont les valeurs permettent de reprer


une seule ligne.
Exemple : dans la table COUREUR, cest la colonne
Numro_Coureur qui est la cl.

Cl

17

primaire

trangre

Colonne constitue de la cl primaire dune autre


table
Traduit lexistence dun lien entre 2 tables
Maria Berger - Matrise d'AES

Exercices
CRU(NomCru,Commune,Rgion,Couleur)
VINS(Rgion,Couleur,Millsime,Qualit)
CEPAGE-REGION(Cpage,Couleur)

Req1 : Tous les crus ?

Rponse : CRU (!)

18

Maria Berger - Matrise d'AES

Req2 : Tous les crus rouges


La liste des noms de crus rouges

PROJECTION(SELECTION(CRU, couleur=rouge), NomCru)

19

Maria Berger - Matrise d'AES

Contraintes d'intgrit

Un des outils les plus importants d'un SGBD


Contraintes de cl :

Contraintes de types de donnes :

Vrification des types de donnes saisies (entiers, rels,


dates, chanes de caractres, boolens...)
Vrification des domaines de validit (entier compris entre 0
et 20 pour une note dtudiant,...)

Contraintes d'intgrit rfrentielles :

20

Vrification de l'unicit des cls

Vrification partir des cls trangres (la cl primaire


associe n'existe pas, note d'un tudiant qui n'existe pas,
consquences d'une suppression d'une fiche,...)

Maria Berger - Matrise d'AES