Professional Documents
Culture Documents
donnes relationnelle
Algbre & Calculs relationnels
Bernard ESPINASSE Langages formels pour les bases de donnes :
Professeur Aix Marseille Universit (AMU)
Ecole Polytechnique Universitaire de Marseille
algbre relationnelle (Codd 70): langages algbriques dfinissant une
collection d'oprations formelles sur les relations
Fvrier 2016 calcul relationnel (Codd 72): langages prdicats (prdicatifs) dfinissant le
rsultat souhait en utilisant des expressions de logique
Algbre relationnelle
Les oprations de lalgbre relationnelle Langages utilisateurs pour les bases de donnes :
Introduction au langage SQL inspirs de lalgbre relationnelle : l'utilisateur spcifie une suite d'oprations
effectuer :
Calculs relationnels
Calcul relationnel de tuples langage SQL
Introduction au langage QUEL inspirs du calcul relationnel : l'utilisateur donne une dfinition du rsultat
Calcul relationnel de domaine cherch :
Introduction au langage QBE
langages QUEL et QBE
Bernard ESPINASSE - Algbre et calculs relationnels 1 Bernard ESPINASSE - Algbre et calculs relationnels 2
Algbre
algbre = ensemble doprateurs de base, formellement dfinis, peuvant tre
combins souhait pour construire des expressions algbriques
1 - Algbre relationnelle algbre 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
Les oprations de lalgbre relationnelle
Algbre relationnelle
Equivalences algbriques
Oprandes : relations tables - du modle relationnel (1NF)
Arbres algbriques
Fermeture : le rsultat de toute opration est une nouvelle table
Exemples de requtes algbriques
Compltude : permet toute opration sauf les fermetures transitives
Introduction au langage SQL
Oprations unaires (1 oprande)
Oprations binaires (2 oprandes)
Bernard ESPINASSE - Algbre et calculs relationnels 3 Bernard ESPINASSE - Algbre et calculs relationnels 4
Les oprations de lalgbre relationnelle Alg bre re lationne lle : S le ction / Re striction
Oprations de base : Opration unaire, la restriction (ou slection) dune table R selon un critre de restriction
Oprations ensemblistes : ou qualification Q (pouvant porter sur un ou plusieurs attributs de R) est une table R de
union mme schma que R dont les tuples sont des tuples de R vrifiant la qualification Q :
intersection
R'
diffrence
Q RESTRICT (R, Q)
produit cartsien Q (R)
Oprations spcifiques : R
slection/restriction Exemple :
CLIENT nocli nom ville
projection 121 BERTRAND PARIS
256 PAGNOL MARSEILLE
542 LANDRY QUEBEC
jointures 652 DUPOND PARIS
renommage Slection des clients o ville = PARIS :
Oprations drives (obtenues par combinaison des oprations de base) :
CLIENT-1 = ville = PARIS (CLIENT) :
division
CLIENT-1 nocli nom ville
121 BERTRAND PARIS
652 DUPOND PARIS
jointure externe
complment
fermeture transitive
Bernard ESPINASSE - Algbre et calculs relationnels 5 Bernard ESPINASSE - Algbre et calculs relationnels 6
A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Projection A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Produit cartsien
Opration unaire consistant supprimer colonnes (attributs) de la table et en liminant Opration binaire, le produit cartsien de 2 tables R et S de schmas quelconques est
les tuples doubles (si un attribut de la cl primaire a t supprim) une table T ayant pour attributs la concatnation de ceux de R et S et dont les tuples
sont toutes les concatnations d'un tuple de R un tuple de S :
la projection dune table R de schma (a1, a2ap,ap+1an) selon la direction T
(a1, a2ap) est une table S de schma (a1, a2ap) dont les tuples sont ceux de R
T=RXS PRODUCT (R, S)
auxquels sont supprims les attributs nappartenant pas la direction de projection
et en liminant les tuples doubles : X
R S
R' PROJECT (R, a1, a2...ap)
Ai1, Ai2,..., Aip
a1, a2...ap R Exemple :
R VINS n cru mills. deg.
110 corbire 1974 13
Exemple : 120 macon 1976 14
LIGNE_DE_COMMANDE noCommande noArticle date quantit
10 121 A 5/5 10
VITICULTEUR nom ville rgion
10 253 Z 5/5 1
10 712 H 5/5 3 S
12 253 Z 5/5 5 nicolas poully bougogne
13 712 H 6/5 2 martin bordeaux bordelais
VINVIT = VINS X VITICULTEURS
LIGNE = noArticle, date LIGNE_DE_COMMANDE : VINVIT n cru mills. deg. nom ville rgion
LIGNE noArticle date 110 corbire 1974 13 nicolas poully bougogne
121 A 5/5 120 macon 1976 14 martin bordeaux bordelais
253 Z 5/5 110 corbire 1974 13 martin bordeaux bordelais
712 H 5/5 120 macon 1976 14 nicolas poully bougogne
712 H 6/5
Bernard ESPINASSE - Algbre et calculs relationnels 7 Bernard ESPINASSE - Algbre et calculs relationnels 8
A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Re nommage A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Jointure
Opration unaire, le renommage dune table R permet dobtenir une table R dont les Opration binaire, la jointure de 2 tables R et S est une table T obtenue ainsi :
tuples sont ceux de R et dont le schma est celui de R dans lequel un attribut a t
renomm : 1. raliser le produit cartsien des 2 tables R et S
2. effectuer une opration de slection (ou qualification) entre un attribut de
la table R et un attribut de la table S appels "attributs de jointure"
R = [nom_attribut : nouveau_nom] R 3. effectuer ou non une opration de projection pour rduire le schma de la
table rsultante
le schma de R = ( [n, m] R) est le mme que le schma (R) avec n renomm en m Remarques :
prcondition : le nouveau nom dattribut nest pas dj le nom dun attribut de R 1. elle ralise une concatnation de tables limite des occurrences de tables
prsentant des valeurs communes sur des attributs de jointure
intrt : permet de rsoudre des problmes de compatibilit entre noms dattributs de 2
tables oprandes dune opration binaire : 2. elle matrialise le lien entre plusieurs tables ou la fusion de plusieurs tables
Bernard ESPINASSE - Algbre et calculs relationnels 9 Bernard ESPINASSE - Algbre et calculs relationnels 10
A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Jointure A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Equi-jointure
Opration binaire, la jointure de 2 table R et S selon une condition consiste Exemple dqui-jointure :
rapprocher les tuples de 2 tables R et S afin de former une troisime table T qui contient
VINS n cru millsime deg.
lensemble de tous le tuples obtenus en concatnant un tuple de R et un tuple de S
120 bordeaux 1975 14
vrifiant la condition : 200 macon 1978 12
T 210 macon 1977 12
R S VITICULTEUR nom ville rgion
JOIN (R, S, C)
Condition C nicolas bordeaux bordelais
C bernard saumur loire
R S pierre macon bourgogne
Bernard ESPINASSE - Algbre et calculs relationnels 13 Bernard ESPINASSE - Algbre et calculs relationnels 14
A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Jointure Externe A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Jointure Externe
la jointure externe de 2 tables R et S est une table T obtenue par jointure de R et S et Exemple :
ajout des tuples de R et de S ne participant pas la jointure avec des valeurs nulles VINS Cru Millsime Qualit
pour les attributs de lautre table : Volnay 1983 A
Volnay 1979 B
T Julienas 1986 C
On distingue :
VINS-LIEU = VINS LIEU = EXT-JOIN (VINS, LIEU) :
la jointure externe droite (REXT-JOINT ): elle garde seulement les tuples
sans correspondant de la table de droite VINS-LIEU Cru Millsime Qualit Rgion QualMoy
Volnay 1983 A Bourgogne A
Volnay 1979 B Bourgogne A
la jointure externe gauche (LEXT-JOINT ): elle garde seulement les Chablis - - Bourgogne A
tuples sans correspondant de la table de gauche Chablis - - Californie B
Julienas 1986 C - -
Bernard ESPINASSE - Algbre et calculs relationnels 15 Bernard ESPINASSE - Algbre et calculs relationnels 16
A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee -- o
opp rr aa tt ii o
onn ss ee n
n ss ee m
mbb ll ii ss tt ee ss :: Union, A
A ll g
g b
b rr ee rr ee ll aa tt ii o
onnn
n ee ll ll ee : Division
Intersection et Diffrence le quotient de la division d'une table D (a1, a2ap,ap+1an) par la sous table d(ap
Oprations binaires (tables = ensembles de tuples) : an) est la table Q(a1, a2ap) dont les tuples sont ceux qui concatns tout tuple de d
donnent un tuple de D :
correspondant aux oprations habituelles de la thorie des ensembles
ne peuvent tre appliques que sur des tables de mme schma et donnent
une nouvelle table de mme schma : Q
union intersection diffrence Dd DIVISION (D, d)
R1 R1 R1
D d
R2 R2 R2
S S S
Intrts de la division :
U
U
-
elle permet de rechercher dans une table les sous-tables qui sont compltes par
R1 R2 R1 R2 R1 R2 tous ceux dune autre table
R1 R2 R1 R2 R1 - R2 elle permet ainsi de rpondre des requtes de la forme quel que soit x,
UNION (R1, R2) INTERSECT (R1, R2) MINUS (R1, R2) trouver y
Remarque : lintersection est une opration drive car R1 R2 = R1 (R1 R2)
Bernard ESPINASSE - Algbre et calculs relationnels 17 Bernard ESPINASSE - Algbre et calculs relationnels 18
Les tuples de la table PIECE_NATURE, concatns chacun des tuples de la table liste1 (e1 (R S T V )) ! liste1 (e1 (((R S) T) V))
NATURE donnent un tuple de la table PIECE.
! liste1 (e1 (((R T) S) V))
Bernard ESPINASSE - Algbre et calculs relationnels 19 Bernard ESPINASSE - Algbre et calculs relationnels 20
Exemples de requtes algbriques Conventions dexpression des oprateurs algbriques
Soit la base de donnes suivante :
JOURNAL (code-j, titre, prix, type, priodicit) projection a1, a2...ap R union
R S
DEPOT (no-dpt, nom-dpt, adresse)
LIVRAISON (no-dpt, code-j, date-liv, quantit-livre)
slection- intersection
Requtes algbriques : R S
restriction
Q (R)
Quel est le prix des journaux ?
[prix] JOURNAL
Informations sur les journaux hebdomadaires ? jointure diffrence T=RS
R S
[priodicit = hebdomadaire] JOURNAL
Quels sont les codes des journaux livrs Marseille ?
produit T=RXS division Q=Dd
[code-j] ( [adresse = Marseille]DEPOT LIVRAISON) cartsien
Bernard ESPINASSE - Algbre et calculs relationnels 21 Bernard ESPINASSE - Algbre et calculs relationnels 22
Bernard ESPINASSE - Algbre et calculs relationnels 23 Bernard ESPINASSE - Algbre et calculs relationnels 24
BD relationnelle fourniture Introduction au langage SQL (2)
PRODUIT (npro: no produit, nomp: nom produit, qtes: qt stock, couleur : couleur produit) PRODUIT (npro, nomp, qtes, couleur)
VENTE (nvente, nomc, nprv, qtev)
VENTE (nvente: no vente, nomc: nom client, nprv: no produit vendu, qtev: qt vendue) ACHAT (nachat, npra, qtea, nomf)
ACHAT (nachat: no achat, npra : no produit achet, qtea: qt achet, nomf: nom fournisseur)
" projection
PRODUIT npro nompro qtes. couleur SELECT npro, couleur FROM PRODUIT (avec doubles)
1 chaise 60 rouge
2 bureau 18 gris
3 armoire 35 blanche SELECT UNIQUE npro, couleur FROM PRODUIT (sans doubles)
4 lampe 51 jaune
5 fauteuil 31 rouge
" Slection
6 chaise 20 verte
7 lampe 3 rouge
SELECT * FROM PRODUIT WHERE couleur = rouge AND qtes > 35
VENTE nvente nomc nprv qtev ACHAT nachat date npra qtea nomf
10 Duval 1 10 10 4/9/02 5 10 Ribart SELECT npro, qtes FROM PRODUIT WHERE couleur = rouge AND qtes >
11 Landry 5 20 11 5/9/02 4 20 Tellier 35
12 Smith 4 10 12 8/9/02 3 10 Dupond
13 Duval 3 15 13 12/9/02 2 15 Dupond SELECT npro, qtes FROM PRODUIT WHERE couleur = rouge AND qtes >
15 Durant 1 20 15 16/9/02 1 20 Buvard
35 ORDER BY qtes ASC, couleur DESC
Bernard ESPINASSE - Algbre et calculs relationnels 25 Bernard ESPINASSE - Algbre et calculs relationnels 26
Bernard ESPINASSE - Algbre et calculs relationnels 27 Bernard ESPINASSE - Algbre et calculs relationnels 28
Introduction au calcul Re lationne l
Algbre relationnelle :
langage procdural permettant d'expliciter une squence d'oprations qui
conduiront un rsultat dsir.
langage QBE
Bernard ESPINASSE - Algbre et calculs relationnels 29 Bernard ESPINASSE - Algbre et calculs relationnels 30
Bernard ESPINASSE - Algbre et calculs relationnels 31 Bernard ESPINASSE - Algbre et calculs relationnels 32
Introduction au langage QUEL (Ingres) Langage QUEL (Ingres)
langage QUEL (Zook 77), Ingres (Stonebraker 76) Recherche en QUEL :
driv du calcul relationnel de tuples RETRIEVE [[INTO] nom_table] (liste_rsultat)[WHERE qualification]
pas de quantificateur (, ) explicites Ex: RANGE p IS produit, a IS chat, v IS vente)
+ fonctions de calcul (moyenne, compteur, somme, min, max, ...) RETRIEVE (p.nomp, p.couleur)
+ fonctions de mises jour sophistiques RETRIEVE (p.nomp, p.qts) WHERE p.couleur="rouge"
vues RETRIEVE (p.nomp, a.nomf) WHERE p.couleur="rouge"
... RETRIEVE (p.nomp, a.nomf, v.nomc) WHERE (p.qtes>100)
dclaration des variables dans QUEL : (p.couleur="rouge") (p.npro=v.nprv) (p.npro=a.npra)
sparation de la dfinition des variables de l'expression de la requte : Tri : RETRIEVE ... WHERE ... SORT BY ...
RANGE OF variable IS nom_de_relation RANGE e IS employ, d IS dpartement
RANGE OF p IS produit ; RANGE OF a, b, c IS r1, r2, r3 RETRIEVE (e.nom, e.salaire, e.num_departement) WHERE
e.salaire>300000 SORT BY nom
structure de base d'une expression QUEL :
Mises jour en QUEL : REPLACE, APPEND TO, DELETE
RANGE OF t IS r : o t = variable de tuple dont la valorisation est
REPLACE employ(salaire=180000) [WHERE employ.nom="Durant"]
restreinte aux tuples de la table r
APPEND TO dpartement (dname="ventes", tage=3, batiment="A",
RETRIEVE : (extraire) quivalent la clause SELECT de SQL division="D1")
WHERE : prdicat suivant lequel s'effectue l'extraction DELETE d WHERE d.nom="ventes"
Bernard ESPINASSE - Algbre et calculs relationnels 33 Bernard ESPINASSE - Algbre et calculs relationnels 34
Bernard ESPINASSE - Algbre et calculs relationnels 35 Bernard ESPINASSE - Algbre et calculs relationnels 36
le langage QBE le langage QBE
Requtes multi-tables : fermeture transitive de tables :
noms des clients ayant achet au moins un produit de couleur verte ? NOMENCLATURE COMPOSE COMPOSANT
voiture chassis
PRODUIT npro nomp qtes couleur
voiture moteur
X verte voiture batterie
moteur piston
moteur bielle
VENTE nvente nomc nprv qtes
moteur carter
P. X piston boulon
piston crou
avec non limination des doublons : ALL
VENTE nvente nomc nprv qtes
recherche des composants de 2 niveau
NOMENCLATURE COMPOSE COMPOSANT
P.ALL.X
voiture x
Tri (DO : descendant; AO: ascendant) : x P. y
PRODUIT npro nomp qtes couleur
recherche des composants de 3 niveau ( 3L = level 3):
P.DO.X >100 NOMENCLATURE COMPOSE COMPOSANT
voiture P. y (3L)
Bernard ESPINASSE - Algbre et calculs relationnels 37 Bernard ESPINASSE - Algbre et calculs relationnels 38
U. x y rouge
x y+100
mise jour des quantits en stock des produits rouges
Suppression (Delete) :
PRODUIT npro nomp qtes couleur
D. rouge
suppression des produits de couleur rouge
_______