Vous êtes sur la page 1sur 32

Lalgbre relationnelle

Langages de manipulation
Langages formels: base thorique solide Langages utilisateurs: version plus ergonomique Langages procduraux: dfinissent comment driver le rsultat souhait Langages assertionnels ou dclaratifs: dfinissent le rsultat souhait

2009/2010

Ounissa BENYATTOU

LMD classiques
Langages formels:
langages algbriques: dfinissent un ensemble doprateurs de manipulation langages prdicatifs (calcul): dfinissent le rsultat souhait en utilisant des expressions de logique

Langages utilisateurs BDR:


inspirs des langage algbriques: SQL inspirs des langage prdicatifs: QBE, QUEL

2009/2010

Ounissa BENYATTOU

Lapproche algbrique
Une algbre est un ensemble doprateurs de base, formellement dfinis, qui peuvent tre combins souhait pour construire des expressions algbriques Une algbre est dite ferme si le rsultat de tout oprateur est du mme type que les oprandes (ce qui est indispensable pour construire des expressions) Compltude: toute manipulation pouvant tre souhaite par les utilisateurs devrait pouvoir tre exprimable par une expression algbrique
4

2009/2010

Ounissa BENYATTOU

Lalgbre relationnelle
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 () Oprations binaires: produit cartsien (), jointures ( ), union (), intersection (), diffrence (), division (/)
2009/2010 Ounissa BENYATTOU

Prambule
Pour chacune de ces 9 oprations, on donne :
lopration la syntaxe (notation) la smantique (rsultat attendu) le schma dventuelles remarques un exemple

2009/2010

Ounissa BENYATTOU

Slection
Pays nom France UK Suisse

capitale population Paris 8 Londres 56 Berne 7 surface 83 244 41

But: ne retenir que certains tuples dans une relation

On ne veut que les pays dont la valeur de surface est infrieure 100: Petit-pays = [surface < 100] Pays Petit-pays nom capitale population France Paris 8 83 UK Londres 56 244 Suisse Berne 7 41
2009/2010 Ounissa BENYATTOU

surface

Slection
Opration unaire Syntaxe:

[c] R

c: condition de slection (prdicat de slection) < condition-lmentaire oprateur-logique condition-lmentaire > oprateur-logique { et, ou } condition-lmentaire : [non] attribut oprateur-de-comparaison constante-ou-attribut attribut est un attribut de la relation R oprateur-de-comparaison {=, ,<,>, , }
2009/2010 Ounissa BENYATTOU

Slection

smantique : cre une nouvelle relation de population lensembles des tuples de R qui satisfont le prdicat p schma (rsultat) = schma (oprande) population (rsultat) population (oprande) exemple : Petit-pays = [surface < 100] Pays

2009/2010

Ounissa BENYATTOU

Projection
Pays nom Autriche UK Suisse

capitale population Vienne 8 Londres 56 Berne 7 surface 83 244 41

But: ne retenir que certains attributs dans une relation

On ne veut que les attributs nom et capitale: Capitales = [nom, capitale] Pays Capitales nom Autriche UK Suisse capitale population Vienne 8 Londres 56 Berne 7
Ounissa BENYATTOU

surface 83 244 41
10

2009/2010

Projection
opration unaire

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

smantique : cre une nouvelle relation de population lensembles des tuples de R rduits aux seuls attributs de la liste spcifie schma (rsultat) schma (oprande) nb tuples (rsultat) nb tuples (oprande) exemple :
2009/2010 Ounissa BENYATTOU

11

Effet de bord de la projection


Elimination des doubles
une projection qui ne conserve pas la cl de la relation peut gnrer dans le rsultat deux tuples identiques ( partir de deux tuples diffrents de loprande) le rsultat ne gardera que des tuples diffrents. R ( B , C, D) b c d a a b a a c trois tuples
2009/2010 Ounissa BENYATTOU

( B , C) R b c a a

deux tuples
12

Slection-projection
On veut les capitales des petits pays:
Petit-pays = [surface < 100] Pays Capitales = [nom, capitale] Petit-pays Capitale-petit-pays = [nom, capitale] [surface < 100] Pays nom Irlande France UK Suisse capitale Dublin Paris Londres Berne population 3 8 56 7 surface 70 83 244 41

(Parties grise et beige enlever)


2009/2010 Ounissa BENYATTOU

13

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) le mme que schma (R) avec n renomm en m prcondition : le nouveau nom nexiste pas dj dans R exemple : R2 = [B: C] R1 R1 A B a b y z b b R2 A C a b y z b b
14

2009/2010

Ounissa BENYATTOU

Produit cartsien

but: construire toutes les combinaisons de tuples de deux relations (en gnral, en vue dune slection) syntaxe : R S exemple :
R A B a b b c c b n tuples
2009/2010

RS
S C c b a D d a a E e b c

A B a b a b a b b c b c b c c b c b c b

C c b a c b a c b a

D d a a d a a d a a

E e b c e b c e b c

m tuples
Ounissa BENYATTOU

n x m tuples
15

Produit cartsien
opration binaire

smantique : chaque tuple de R est combin avec chaque tuple de S schma : schma (R S) = schma(R) schma(S) prcondition: R et S nont pas dattributs de mme nom (sinon, renommage des attributs avant de faire le produit)

2009/2010

Ounissa BENYATTOU

16

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

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

2009/2010

Ounissa BENYATTOU

Jointure naturelle
opration binaire syntaxe : R S S) = schma (R) schma (S) smantique : combine certains tuples schma : schma (R
les attributs de mme nom napparaissent quune seule fois

la combinaison exige lgalit des valeurs de tous les attributs de mme nom de R et de S
si R et S nont pas dattributs de mme nom la jointure peut tre dynamiquement remplace par un produit cartesien

2009/2010

Ounissa BENYATTOU

18

Theta-jointure

[p]

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

prcondition: les deux relations nont pas dattribut de mme nom exemple : R
R A B a b b c c b

[B C] S
S C b b c D c a a E d b c

R A a b b c

[B C ] S B b c c b C c b b c D a c a a E c d b c
19

2009/2010

Ounissa BENYATTOU

Theta-jointure
opration binaire syntaxe : R [p] S

[p]

p: prdicat/condition de jointure < prdicat-lmentaire et/ou prdicat-lmentaire >

smantique : combine les tuples qui satisfont le prdicat schma (R [p] S) = schma (R) schma (S)

2009/2010

Ounissa BENYATTOU

20

Union

opration binaire syntaxe : R S smantique : runit dans une mme relation les tuples de R et ceux de S schma : schma(R S) = schma(R) = schma(S) prcondition : schma(R) = schma(S) exemple :
R1 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
21

2009/2010

Ounissa BENYATTOU

Intersection
opration binaire syntaxe : R S

smantique : slectionne les tuples qui sont la fois dans R et S schma : schma (R S) = schma (R) = schma (S) prcondition : schma (R) = schma (S) exemple :
R1 A B a b y z b b R2 A B u v y z R1 R2 A B y z

2009/2010

Ounissa BENYATTOU

22

Diffrence opration binaire syntaxe : R S smantique : slectionne les tuples de R qui ne sont pas dans S schma : schma (R S) = schma (R) = schma (S) prcondition : schma (R) = schma (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
23

2009/2010

Ounissa BENYATTOU

La division

but: traiter les requtes de style les tels que TOUS les soient R(A1, , An) et V(A1, , Am) avec n>m et A1, , Am des attributs de mme nom dans R et V R/V = { <am+1, am+2, , an> / <a1, a2, , am> V, <a1, a2, , am ,am+1, am+2, , an> R} exemples : 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 B C 1 1

R/V A
1 3

V B C R/V A
/

3 5

R/V A
1 2 3

2009/2010

Ounissa BENYATTOU

24

Exemple
R
ETUDIANT COURS Francois Francois Jacques Jacques Pierre Pierre RDB Prog RDB Math Prog RDB EXAMEN yes yes yes yes yes no

V
COURS Prog RDB EXAMEN yes yes

R/V
ETUDIANT Francois

2009/2010

Ounissa BENYATTOU

25

Exemples de requtes algbriques


Soient les relations suivantes : Journal (code-j, titre, prix, type, priodicit) Dpt (no-dpt, nom-dpt, adresse) Livraison (no-dpt, code-j, date-liv, quantit-livre)

2009/2010

Ounissa BENYATTOU

26

Rpondre aux requtes suivantes :


Quel est le prix des journaux ? [prix] Journal Donnez tous les renseignements connus sur les journaux hebdomadaires. [priodicit = "hebdomadaire"] Journal Donnez les codes des journaux livrs Paris. [code-j] ( [adresse = Paris"] Dpt Livraison)

2009/2010

Ounissa BENYATTOU

27

Schmas relationnels

(1)

Schma dune base de donnes: Ensemble de schmas de relations + [Schmas externes (vues) + Contraintes + les Triggers (dclanchereurs)]. CREATE SCHEMA agence_de_voyage CREATE TABLE Station ( CREATE TABLE Client ( CREATE VIEW nom_vue CREATE ASSERTION CREATE TRIGGER

2009/2010

Ounissa BENYATTOU

28

Schmas relationnels
CREATE VIEW nom_vue AS <requte> [WITH CHECK OPTION] ;

(2)

Vue : Relation (table) virtuelle rsultat dune requte.

Une vue est interrogeable mais les MAJ sont sous restrictions. - On ne peut pas faire des MAJ au travers dune vue issue de plusieurs tables. - On ne peut pas mettre jours un attribut qui rsulte dun calcul.

2009/2010

Ounissa BENYATTOU

29

Schmas relationnels

(3)

Contraintes : Sur les utilisateurs et sur le contenu des tables. - Utilisateurs : pour des raisons de scurit, laccs la BD est restreint : dfinir des droits daccs
GRANT <privilge> ON <lment du schma> TO <utilisateur> [WITH GRANT OPTION]

2009/2010

Ounissa BENYATTOU

30

Schmas relationnels

(4)

Contenu des tables : viter de faire des contrles rpttifs au niveau des applications qui accdent la BD. CREATE TABLE Etudiants (Num_etud INTEGER PRIMARY KEY, Nom_etud VARCHAR (30) NOT NULL, Age ); INTEGER CHECK (Age < 22),

2009/2010

Ounissa BENYATTOU

31

Schmas relationnels

(5)

Trigger : Une procdure dclanche par des vnements de MAJ spcifis par lutilisateur et ne sxcute que quand une condition est satisfaite. Evnments MAJ : Insertion, Modification, Supression sur une table. CEATE TRIGGER nom_trigger AFTER UPDATE ON Employe FOR EACH ROW WHEN (new.salaire < old.salaire) ;

2009/2010

Ounissa BENYATTOU

32