Vous êtes sur la page 1sur 8

Algbre relationnelle Introduction aux Bases de Donnes

Jol Quinqueton Licence Mass, Universits de Montpellier II et III


Concepts et outils : introduction SQL Complments sur SQL : schma , tri, calcul Les mthodes: Modle E/A (Entit Association), Schma conceptuel, Schma SQL Algbre relationnelle Etude de cas, index, cls, et implmentation Dpendances fonctionnelles et formes normales

Sources du cours
Cours de Witold Litwin (Universit Paris 9 Dauphine) Cours de Maria berger (AES Paris 6) Cours de Fabrice Jouanot (EPFL et UJF Grenoble)

Algbre relationnelle: dfinitions


Ensemble doprateurs qui sappliquent aux relations Rsultat : nouvelle relation qui peut son tour tre manipule Lalgbre relationnelle permet de faire des recherches dans les relations

Oprandes: relations du modle relationnel Fermeture: le rsultat de toute opration est une nouvelle relation Compltude: permet toute opration sauf les fermetures transitives Oprations unaires (une seule oprande): slection (not ), projection (), renommage (a) Oprations binaires: produit cartsien (x), jointures (|X|), union (), intersection (), diffrence (), division (/)

Lalgbre relationnelle en 5 points

Spcificit des oprateurs


Oprateurs ensemblistes:
UNION, INTERSECT, DIFFERENCE, TIMES

Ces oprateurs sont reformuls spcifiquement pour le modle relationnel Oprateurs relationnels spcifiques
RESTRICT, PROJECT, JOIN, DIVIDE

Oprateurs ensemblistes
Soient R et S deux relations de mme schma
Union: T = R S Intersection: T = RS Diffrence: T=R-S
R T R S R T S R T S R1 T S

Union
opration binaire syntaxe : R S

smantique : runit dans une mme relation les tuples de R et ceux de S exemple :
A B a b b b y z R2 A B u v y z R1 R2 A B a b b b y z u v

Produit cartsien T=RxS

Union: exemple
NEns 12 18 16 17 Nom Duciel Nenfant Duciel Nenfant Prnom Betty Ludivine Sandra Hlne NEns 12 13 Matire Economie Droit Droit Politique Nom Duciel Duciel Duciel Duciel Duciel Nenfant Nenfant Moncostume NEns 13 14 15 19 Prnom Betty Babar Nol Candide Sandra Hlne Ludivine Jimmy Nom Duciel Duciel Duciel Moncostume Matire Economie Economie Droit Droit Droit Politique Droit Politique Prnom Babar Nol Candide Jimmy Matire Economie Droit Droit Politique

Intersection
syntaxe : R S

smantique : slectionne les tuples qui sont la fois dans R et S exemple :


R1 A B a b y z b b R2 A B u v y z R1 R2 A B y z

Filles Garons

14 15 16 17 18 19

Diffrence syntaxe : R S smantique : slectionne les tuples de R qui ne sont pas dans S exemple :
R1 A B a b y z b b R2 A B u v y z R1 R2 A B a b b b

Produit cartsien
but: construire toutes les combinaisons de tuples de deux relations syntaxe : R S Smantique : tuple de R est combin avec chaque tuple de S Exemple :

RS

R A B a b b c c b n tuples

S C c b a

D d a a

E e b c

m tuples

A B C D a b c d a b b a a b a a b c c d b c b a b c a a c b c d c b b a c b a a

E e b c e b c e b c

n x m tuples

Oprateurs spcifiques
Projection: [A,B,C](R) Restriction: [C](R) Jointure naturelle: R]A,B[S = [A=B](RxS) Division: R/S

Oprateurs relationnels
T

Oprateurs unaires
Restriction

A,B,C

R A R

T B S

Projection

Oprateurs relationnels
Oprateurs binaires
Jointure (naturelle)
a1 b1 a2 b1 a3 b2 c1 b1 c2 b1 c3 b2 a1 b1 c1 a1 b1 c2 a2 b1 c1 a2 b1 c2 a3 b2 c3 a

Restriction
Syntaxe: [test](relation) Smantique: relation compose de n-uplets vrifiant une condition
Quels sont les coureur coureurs suisses ?
8 31 61 91 114 Numro Nom Coureur Code quipe TEL ONC COF GAN SAE ULLRICH Jan JALABERT Laurent ROMINGER Tony BOARDMAN Chris CIPOLLINI Mario Code pays ALL FRA SUI G-B ITA

Division

ax ay az bx cy

x y

Relation rsultat

R = [CodePays = SUI](COUREUR) Ou SELECTION [CodePays = SUI](COUREUR)

Restriction: syntaxe
< prdicat-lmentaire oprateur-logique prdicatlmentaire >
oprateur-logique { et, ou } prdicat-lmentaire :
attribut est un attribut de la relation R oprateur-de-comparaison {=, <,>, , }

Restriction: exemple
On ne veut que les pays dont la valeur de surface est infrieure 100: Petit-pays = s [surface < 100] (Pays)

<[non] attribut oprateur-de-comparaison constante|attribut>

Pays Petit-pays

nom

capitale

population

surface

schma (rsultat) = schma (oprande) population (rsultat) population (oprande) Calcule par des oprations ensemblistes

Autriche UK Suisse

Vienne Berne

8 7

83 244 41

Londres 56

Projection
syntaxe: [attributs] ( R )
attributs: liste lensemble dattributs de R conserver dans le rsultat

Projection: proprits
schma (rsultat) schma (oprande) nb tuples (rsultat) = nb tuples (oprande) Elimination des doubles: cest une option ( distinct en SQL)

smantique : cre une nouvelle relation de population lensembles des


tuples de R rduits aux seuls attributs de la liste spcifie

Nom et nationalit des coureurs ?Nom Coureur

Code pays ALL FRA SUI G-B ITA

Relation rsultat

ULLRICH Jan JALABERT Laurent ROMINGER Tony BOARDMAN Chris CIPOLLINI Mario

[distinct,B,C] (R)
R ( B , C, D) b c d a a b a a c trois tuples b c a a deux tuples

R=

[NomCoureur, Nationalit] (COUREUR)

PROJECTION[NomCoureur, Nationalit](COUREUR

Projection: exemple
On ne veut que les attributs nom et capitale: Capitales = [nom, capitale] Pays

Restriction-projection
On veut les capitales des petits pays:
Petit-pays = s [surface < 100] (Pays) Capitale-petit-pays =

[nom, capitale](Petit-pays)

= [nom, capitale](s [surface < 100] (Pays))

Pays

nom

capitale

population

surface

Autriche UK Suisse

Vienne Londres Berne

8 56 7

83 244 41

Pays Petit-pays Capitalepetit-pays

nom

capitale

population

surface

Autriche Vienne UK Suisse Londres Berne

8 56 7

83 244 41

Capitales

Jointure
Jointure dite naturelle :
Numro coureur 8 31 61 91 Nom Coureur ULLRICH Jan JALABERT Laurent ROMINGER Tony BOARDMAN Chris Numro coureur Code quipe TEL ONC COF GAN Code pays ALL FRA SUI G-B Code quipe TEL ONC COF GAN Code pays ALL FRA SUI G-B Code pays ALL FRA SUI G-B Nom Pays Allemagne France Suisse Grande Bretagne Nom Pays

Jointure naturelle
but: crer toutes les combinaisons significatives entre tuples de deux relations
significatives = portent la mme valeur pour les attributs de mme domaine !

prcondition: les deux relations ont au moins un attribut de mme domaine exemple :
R A B a b b c c b S B b a d C c a a D d b c R|X|S A B C D a b c d c b c d

Nom Coureur

Relation rsultat

8 31 61 91

ULLRICH Jan JALABERT Laurent ROMINGER Tony BOARDMAN Chris

Allemagne France Suisse Grande Bretagne

Jointure naturelle
La jointure A |X| B (ou A][B) des deux relations A (W, Y) et B (Z, Y) est la relation C avec les attributs : C (W, Y, Z) et les tuples (W:w, Y:y, Z:z ) tels que (w, y) est dans A et (y, z) est dans B W, Y, Z peuvent tre composs La jointure naturelle est associative et commutative

Jointures
Syntaxe: C = A]Y=Z[B,
les attributs sont omis si ?

-jointure : jointure sous condition autre que lgalit

Theta-jointure
Opration binaire syntaxe : R]test[S
test: prdicat/condition de jointure < prdicat-lmentaire et/ou prdicat-lmentaire >

Theta-jointure
but: crer toutes les combinaisons significatives entre tuples de deux relations
significatives = critre de combinaison explicitement dfini en paramtre de lopration

smantique : combine les tuples qui satisfont le prdicat schma (R]test[S) = schma (R) schma (S) Associative? Commutative?

exemple :
R]B C[S R A B a b b c c b S C b b c D c a a E d b c A a b b c B b c c b C c b b c D a c a a E c d b c

Jointures externes
but: crer toutes les combinaisons significatives entre tuples de deux relations
Mettre en vidence les tuples qui napparaissent que dans une table (gauche ou droite) Valeur NULL pour les attributs de lautre table

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

prcondition: au moins un attribut de mme domaine exemple : R A B a b b c c b S B b a d C c a a D d b c R|gX|S A a b c B b c b C D c d Null c d

Epreuve 200 m 400 m 110 m H

Epreuve

Athlte Dupont

Relation rsultat de Participer Epreuve

Quels sont les athltes qui ont particip toutes les preuves ?

Division: dfinition formelle


but: traiter les requtes de style les tels que TOUS les soient R(A1 , , An) et V(A1, , A m) avec n>m et A1, , Am des attributs de mme nom dans R et V R/V = { <am+1, am+2, , a n> / <a1, a2, , am> V, <a1, a2, , am, am+1, am+2, , an > R } R/S = R1-P[A](R1xS - R), avec R(A,B), S(B) et R 1 = P[A](R)

La division: exemples
R x S / S = R, schma(R/S)=schma(R)-schma(S) Associativit?
R
A 1 1 1 1 2 2 3 3 3 B 1 2 2 3 1 3 1 2 2 C 1 0 1 0 1 3 1 0 1

B C 1 1 2 0

R/V A
1 3

V B C R/V A
/

3 5

V B C

1 1

R/V A
1 2 3

Exemple de division
R
STUDENT COURSE PASSED Francois Francois Jacques Jacques Pierre Pierre RDB Prog RDB Math Prog RDB yes yes yes yes yes no

Renommage
but: rsoudre des problmes de compatibilit entre noms dattributs de deux relations oprandes dune opration binaire opration unaire syntaxe : [nom_attribut : nouveau_nom] R smantique : les tuples de R avec un nouveau nom de l'attribut schma : schma ( [n, m] R) de mme schma que (R) avec n renomm en m

V
COURSE PASSED Prog RDB R/V STUDENT Francois yes yes

Renommage
prcondition : le nouveau nom nexiste pas dj dans R exemple : R2 = [B: C] R1

Equivalences
R S = S R, R S = S R , etc. [p1] ( [p2] (R) )= [p2] ( [p1] (R) ) = [p2 et p1] (R) = [p1] (R) [p2] (R)

[a] ( [p] (R) ) = [p] ( [a] (R) )


R1 A B a b y z b b R2 A C a b y z b b

si attributs(p) a

R/S = R1-P[A](R1xS - R), avec R(A,B), S(B) et R1 = P[A](R)

Ensemble minimal
8 oprateurs relationnels 5 oprateurs de base: union, diffrence, restriction, produit cartsien 3 oprateurs drivs: intersection, jointure, division Exercice: le montrer

SQL: Exemple 1
T

Select nom, ville from fournisseurs where n > 100 ; [nom,ville](


[n>100](fournisseurs))

Nom, ville

N>100

fournisseurs

SQL: Exemple 2
Select * from produits, livraisons ; produits x livraisons
rsult at

SQL: Exemple 3
Select * from produits, livraisons where n = n pice; Produits]N,npice[livraisons
T N npice livraiso ns

produits livraison s produits

SQL: Exemple 4
Select n, type, n four, prix from produits, livraisons where n = n pice; [type,nfour,prix](
produits]N,npice[livraisons )
T

SQL: Exemple avec variables


Select g.nfour from livraisons f, livraisons g where f.nfour = 147 And f.npice = g.npice; T

Type,nfour,prix

nfour

npice nfour=147

npice npice

produits

livraiso ns

livraisons f livraisons g

Proprits
Associativit de la jointure
R]A,B[S = [A=B](RxS) Associativit de x

Ordre des oprations


La jointure est en gnral coteuse Faire autant que possible les restrictions et les projections avant Pourquoi une requte est-elle meilleure qu'une autre ?
Une requte n'est pas l'unique solution d'un problme. efficacits diffrentes

Commutativit avec la projection et la restriction A et B: cls primaires ou trangres


Doivent tre du mme type

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

Solution 1
R1= Commande ]Nprod, Nprod[ Produit R2 = s [Quantit > 10] (R1) R3 = P [Nprod, Prix, Quantit] (R2) R1 = jointure sur la table Commande et la table Produit = 10*8 = 80 tuples au pire

Solution 2
R1 = P [Nprod, Quantit] (s[Quantit>10] (Commande) ) R2 = R1 ]Nprod, Nprod[ P [Nprod, Prix] (Produit) R3 = P [Nprod, Prix, Quantit] (R2) R2 = jointure sur le couple (Nprod, Prix) de la table Produit: 8 tuples (sur 2 attributs) et sur le couple (Nprod, Quantit) de la table Commande : 2 tuples (sur 2 attributs) Total = 2x8 = 16 lments (sur 4 attributs)

Restructuration dun arbre


Heuristiques:
remonter projections et restrictions Descendre les jointures

Proprits utilises
Associativit de |X| Commutativit |X| et Commutativit |X| et Commutativit et