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
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
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
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
( 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
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]
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
2009/2010
Ounissa BENYATTOU
26
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)
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