You are on page 1of 29

Chng 4.

Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Chng 4

Toi u hoa truy van trong c s


d lieu phan tan

Muc tieu
Chng nay e cap en van e toi u hoa trong c s d
lieu phan tan ngha la giam chi ph bo nh trung gian,
giam thi gian truy van cung nh giam thi gian truyen d
lieu trong cac truy van phan tan.
Cac van e c e cap trong chng nay nh sau:
4.1. Truy van. Bieu thc chuan tac cua truy van:
Phan nay neu len khai niem ve truy van va the nao la
bieu thc chuan tac cua mot cau truy van. Bieu thc
chuan tac la mot bieu thc c s dung nhieu trong
viec truy van c s d lieu phan tan.
4.2. Toi u hoa truy van trong c s d lieu tap
trung:
Phan nay nhac lai qua trnh toi u hoa mot cau truy van
cuc bo, no gom cac bc sau:
4.2.1. Bc 1- Kiem tra ng phap
4.2.2. Bc 2- Kiem tra s hp le
4.2.3. Bc 3- Dch truy van
4.2.4. Bc 4- Toi u hoa bieu thc ai so quan he
4.2.5. Bc 5- Chon la chien lc truy xuat
4.2.6. Bc 6-Tao sinh ma
4.3. Toi u hoa trong c s d lieu phan tan:
Phan nay trnh bay qua trnh toi u hoa mot cau truy van
phan tan, no bao gom cac bc sau:
4.3.1. Bc 1 Phan ra truy van
4.3.1.1. Bc 1.1- Phan tch truy van
4.3.1.2. Bc 1.2- Chuan hoa ieu kien cua menh e
WHERE
4.3.1.3. Bc 1.3- n gian hoa ieu kien cua menh e
WHERE
4.3.1.4. Bc 1.4- Bien oi truy van thanh bieu thc ai so
quan he hieu qua.................................................................
4.3.1.5. Mot giai thuat toi u hoa mot bieu thc ai so
quan he tren lc o
toan cuc
4.3.2. Bc 2- nh v d lieu
4.3.2.1. Bc 2.1. Bien oi bieu thc ai so quan he tren
lc o toan cuc
4.3.2.2. Bc 2.2. n gian hoa bieu thc ai so quan he
tren lc o
phan manh
4.3.2.3. Mot giai thuat toi u hoa mot bieu thc ai so
quan he tren lc o
phan manh
_________________________________________________________________________
Trang 1

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

4.3.3. Bc 3- Toi u hoa truy van toan cuc


4.3.4. Bc 4- Toi u hoa truy van cuc bo

M au
Chng nay trnh bay ve cac bc thc hien trong viec
toi u hoa truy van trong c s d lieu tap trung va trong
c s d lieu phan tan, cac tieu chuan toi u hoa nham
e lam giam thi gian thc hien truy van, giam vung nh
trung gian va chi ph truy van thong trong qua trnh thc hien
truy van, bo suy dien dung trong viec n gian hoa bieu
thc ai so quan he cua truy van.
Chng nay s dung mot c s d lieu sau ay e minh
hoa cho cac noi dung c trnh bay trong chng:
Sinhvien (masv, hoten, tuoi, malop)
Lop (malop, tenlop, malt, tenkhoa)
Monhoc(mamh, tenmh)
Hoc (masv, mamh. Diem)
Trong o :
Sinhvien : cha thong tin ve sinh vien gom: ma sinh vien
(masv), ho ten (hoten), Tuoi (tuoi), thuoc lp
(malop). Khoa la masv.
Lop
: cha thong tin ve lp hoc gom: ma lp (malop),
ten lp (tenlop), ma lp Trng (malt), thuoc khoa
(tenkhoa). Khoa la malop.
Monhoc : cha thong tin ve mon hoc gom: ma mon hoc
(mamh), ten mon hoc (tenmh).
Hoc
: cha thong tin ve sinh vien (masv) hoc mon hoc
(mamh) co iem thi cuoi Ky (diem). Khoa la masv
va mamh.
4.1. Truy van. Bieu thc chuan tac cua truy van
4.1.1. Truy van
Truy van (query) la mot bieu thc c bieu dien bang
mot ngon ng thch hp va dung e xac nh mot phan
d lieu c cha trong c s d lieu.
Mot truy van co the c dung e xac nh ng ngha
cua mot ng dung, hoac no co the c dung e xac
nh cong viec can c thc hien bi mot ng dung
nham e truy xuat c s d lieu.
V du: Xet truy van cho biet ten lp cua lp co ma lp
la MT . Truy van nay co the c bieu dien bi mot
bieu thc ai so quan he nh sau :

Tenlop(malop=MT (lop))
_________________________________________________________________________
Trang 2

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Mot truy van co the c bieu dien bi mot cay toan


t. Mot cay toan t operator tree cua mot truy van, con
c goi la cay truy van (query tree) hoac cay ai so quan
he (relational algebra tree), la mot cay ma mot nut la la
mot quan he trong c s d lieu, va mot nut khac la
(nut trung gian hoac nut goc) la mot quan he trung gian
c tao ra bi mot phep toan ai so quan he. Chuoi cac
phep toan ai so quan he c thc hen t cac nut la
en nut goc e tao ra ket qua truy van.
V du : Truy van tren co the c bieu dien bang mot cay
toan t nh sau:
Tenlop
malop=MT
lop

4.1.3. Bieu thc chuan tac cua truy van


Bieu thc chuan tac : cua mot bieu thc ai so
quan he tren lc o toan cuc la mot bieu thc co c
bang cach thay the moi ten quan he toan cuc xuat hien
trong bieu thc bi bieu thc tai lap cua quan he toan
cuc nay.
Tng t, chung ta co the bien oi mot cay toan t tren
lc o toan cuc thanh mot cay toan t tren lc o phan
manh bang cach thay the cac nut la cua cay au tien
bang cac bieu thc chuan tac cua chung. Mot ieu quan
trong la bay gi cac nut la cua cay toan t cua bieu
thc chuan tac la cac manh thay v la cac quan he toan
cuc.
V du : Gia s chung ta co hai khoa ten la CNTT va DIEN.
Quan he lop c phan manh ngang da vao tenkhoa thanh
hai manh lop1 va lop2
Lop1 = tenkhoa=CNTT(lop)
Lop2 = tenkhoa=DIEN(lop)
Bieu thc tai lap cua quan he toan cuc lop la :
Lop = lop1 U lop2
Bieu thc chuan tac cua bieu thc truy van la :
IItenlop(malop=MT (lop1 U lop2))
Thay the quan he toan cuc lop trong cay toan t bi
bieu thc tai lap tren, chung ta c cay toan t nh
sau :
_________________________________________________________________________
Trang 3

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________
IItenlop
malop=MT
U
Lop1

Lop2

_________________________________________________________________________
Trang 4

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

4.2. Toi u hoa truy van trong c s d lieu tap trung


Khi mot he quan tr d lieu (DBMS) nhan mot truy van
viet bang ngon ng cao cap, chang han SQL, DBMS thc
hien cac bc sau ay:
4.2.1. Bc 1- Kiem tra ng phap (Syntax Checking)
Trong bc nay, DBMS se kiem tra ng phap cua truy
van ban au (SQL query). Neu truy van b sai ng phap th
DBMS se thong bao truy van b sai ng phap va truy van
nay se khong c thc hien. Neu truy van ung ng
phap (syntactically correct SQL query) th DBMS se tiep tuc thc
hien bc 2.
V du: Xet truy van Q1
Q1: SELECT masv,hoten FORM sinhvien;
Truy van nay b sai ng phap (viet sai t khoa FROM)
S o toi u hoa truy van trong c s d lieu tap trung bao
gom cac bc sau:
Truy van SQL
Kiem tra ng phap

Truy van ung ng


phap
Kiem tra s hp le

Truy van SQL hp le


Dch truy van
Truy van ai so quan he

Toi u hoa ai so
quan he
Truy van ai so quan he c
toi u hoa
Chon chien lc
Ke hoach thc hien
Tao sinh ma

4.2.2. Bc 2- Kiem tra s hp le (Validation)


Trong bc nay, DBMS
setruy
thc
hien cac cong viec:
Ma cho
van
_________________________________________________________________________
Trang 5

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

- Kiem tra s ton tai cua cac oi tng d lieu (cac


cot, cac bien, cac bang, ) cua truy van trong c s
d lieu.
- Kiem tra s hp le ve kieu d lieu cua cac oi
tng d lieu (cac cot, cac bien, vv) trong truy van.
V du : Xet truy van Q2
Q2: SELECT masv, hoten FROM sinh_vien ;
Truy van nay co bang sinh_vien khong ton tai trong c s
d lieu.
V du: Xet truy van Q3
Q3: SELECT masv, hoten FROM sinhvien
WHERE masv=123;
Truy van nay khong hp le v co cot masv (thuoc kieu d
lieu number) so sanh vi mot hang chuoi 123trong menh
e WHERE.
Neu truy van cha cac oi tng d lieu khong ton tai
hoac truy van cua cac oi tng d lieu khong phu hp
kieu d lieu vi nhau th DBMS se thong bao cac oi
tng d lieu nao khong ton tai hoac cac oi tng d
lieu nao khong phu hp kieu d lieu va truy van nay se
khong c thc hien. Neu cac oi tng d lieu nay
eu ton tai trong c s d lieu (truy van hp le valid SQL
query) th DBMS se tiep tuc thc hien bc 3.
4.2.3. Bc 3 Dch truy van (Translation)
Trong bc nay, DBMS se bien oi truy van hp le nay
thanh mot dang bieu dien ben trong he thong mc
thap hn ma DBMS co the s dung c. Mot trong cac
dang bieu dien ben trong nay la viec s dung ai so quan
he bi v cac phep toan ai so quan he c bien oi de
dang thanh cac tac vu cua he thong : truy van ban au
c bien oi thanh mot bieu thc ai so quan he hay
con goi la truy van ai so quan he (relational algebra query)
V du : Xet truy van Q4 sau ay cho biet cac ma mon hoc
ma cac sinh vien thuoc lp co ma MT hoc.
Q4 : SELECT DISTINCT mamh
FROM sinhvien,hoc
WHERE sinhvien.masv=hoc.masv AND malop=MT
Truy van nay se c bien oi thanh bieu thc ai so
quan he nh sau :
IImamh(malop=MT(sinhvien masv=masvhoc))
_________________________________________________________________________
Trang 6

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

4.2.4. Bc 4- Toi u hoa bieu thc ai so quan he


(relational Algebra Optimization)
Trong bc nay DBMS s dung cac phep bien oi tng
ng cua ai so quan he e bien oi bieu thc ai so
quan he co c bc 3 thanh mot bieu thc ai so
quan he tng ng (theo ngha chung co cung mot ket
qua) nhng bieu thc sau se hieu qua hn: loai bo cac
phep toan khong can thiet va giam vung nh trung gian.
Cuoi bc nay, DBMS tao ra mot truy van ai so quan he
a c toi u hoa (optimized relational algebra query).
V du: Bieu thc quan he cua truy van Q4 cuoi bc 3
co the c bien oi thanh bieu thc ai so quan he
tng ng tot hn nh sau:
IImamh (IImasv(

malop=MT

(sinhvien)) masv=masv IImasv,mamh(hoc))

4.2.5. Bc 5- Chon la chien lc truy xuat (strategy


selection)
Trong bc nay, DBMS s dung cac thong so ve kch
thc cua cac bang, cac ch muc vv e xac nh cach
x ly truy van. DBMS se anh gia chi ph cua cac ke
hoach thc hien khac nhau co the co e t o chon ra
mot ke hoach thc hien (execution plan) cu the sao cho ton t
chi ph nhat (thi gian x ly va vung nh trung gian). Cac
thong so dung e anh gia chi ph cua ke hoach thc
hien gom: so lan va loai truy xuat a, kch thc cua
vung nh chnh va vung nh ngoai, va thi gian thc hien
cua cac tac vu e tao ra ket qua cua truy van. Cuoi
bc nay, DBMS tao ra mot ke hoach thc hien cho truy
van.
4.2.6. Bc 6- Tao sinh ma (code generation)
Trong bc nay, ke hoach thc hien cua truy van co
c cuoi bc 5 se c ma hoa va c thc hien.
4.3. Toi u hoa truy van trong c s d lieu phan
tan
Toi u hoa truy van trong c s d lieu phan tan bao
gom mot so bc au cua toi u hoa truy van trong c
s d lieu tap trung va mot so bc toi u hoa co lien
quan en s phan tan d lieu.
4.3.1. Bc 1- Phan ra truy van (Query Decomposition)
Bc nay con c goi la bc Toi u hoa truy van
tren lc o toan cuc. Bc nay giong vi cac bc 1,
_________________________________________________________________________
Trang 7

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

2, 3 va 4 cua toi u hoa truy van trong c s d lieu tap


trung, nham e bien oi mot truy van viet bang ngon
ng cap cao, chang han SQL, thanh mot bieu thc ai so
quan he tung ng ( theo ngha chung cho ra cung mot ket
qua) va hieu qua (theo ngha loai bo cac phep toan ai
so quan he khong can thiet, giam vung nh trung gian).
Bc nay cha e cap en s phan tan d lieu.
Toi u hoa truy van tren lc o toan cuc bao gom 4
bc sau:
4.3.1.1. Bc 1.1- Phan tch truy van
Trong bc nay, DBMS kiem tra ng phap cua truy van,
kiem tra s ton tai cua cac oi tng d lieu (ten cot,
ten bang, vv) cua truy van trong c s d lieu, phat hien
cac phep toan trong truy van b sai ve kieu d lieu, ieu
kien cua menh e WHERE co the b sai ve ng ngha.
Phan tch ieu kien cua menh e WHERE e phat hien
truy van b sai. Co hai loai sai:
- Sai ve kieu d lieu (type incorrect)
- Sai ve ng ngha (semantically incorrect)
S o toi u hoa truy van trong c s d lieu phan tan bao
gom cac bc sau:
Truy van tren
Cac quan he c phan
tan
Phan ra truy van
(lc o toan cuc)

Truy van ai so quan he


tren
Cac quan he c phan
tan
nh v d lieu
(lc o phan manh)

Truy van manh

Toi u hoa truy van


toan cuc
Truy van manh c toi
u hoa
Vi cac tac vu truyen
thong
Toi u hoa truy van
_________________________________________________________________________
cuc bo
Trang 8
Cac truy van cuc bo c

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

_________________________________________________________________________
Trang 9

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Truy van b sai ve kieu d lieu


Mot truy van b sai ve kieu d lieu neu cac thuoc tnh
cua no hoac cac ten quan he khong c nh ngha trong
lc o qoan cuc, hoac neu cac phep toan c ap dung
cho cac thoc tnh b sai ve kieu d lieu.
e giai quyet cho van e nay, trong lc o toan cuc
chung ta phai mo ta kieu d lieu cua cac thuoc tnh cua
cac quan he.
V du: Xet truy van Q5:
Q5: SELECT mssv, hoten
FROM sinhvien
WHERE masv=123;
Truy van nay co hai loi sai:
(1) mssv khong ton tai trong quan he sinhvien, va
(2) masv thuoc kieu number khong the so sanh vi hang
chuoi 123.
Truy van b sai ve ng ngha
Mot truy van b sai ve ng ngha neu no co cha cac
thanh phan khong tham gia vao qua trnh tao ra ket qua
cua truy van.
e phat hien mot truy van b sai ve ng ngha, chung
ta dung mot o th truy van (query graph) hoac o th ket
noi quan he (relation connection graph) cho cac truy van co
cha cac phep chon, phep chieu va phep ket. Trong mot
o th truy van, mot nut bieu dien cho mot quan he ket
qua (result relation) va cac nut khac bieu dien cho cac
quan he toan hang (operand relation). Mot canh gia hai nut
quan he toan hang bieu dien cho mot phep ket, mot canh
gia mot nut quan he toan hang vi mot nut quan he
ket qua bieu dien ho mot phep chieu. Mot nut quan he
toan hang co the cha mot ieu kien chon. Mot o th
con quan trong cua o th nay la o th ket qua (join
graph) c dung trong bc toi u hoa truy van.
V du: Xet truy van Q6 liet ke ho ten sinh vien va iem
cua mon hoc Tin hoc cua lp ma MT vi ieu kien at
iem tren 5.
Q6: SELECT hoten, diem
FROM sinhvien, hoc, monhoc
WHERE sinhvien.masv=hoc.masv
AND hoc.mamh=monhoc.mamh
AND malop=MT AND diem > 5 AND tenmh = Tin
hoc;
diem>
5 nay nh sau:
o th truy van cua truy
van
sinhvien.masv=hoc.
masv

ho
c

hoc.mamh=monhoc.ma
mh

malop=M
diem
tenmh=Tin
sinhvie
monho
T
hoc
_________________________________________________________________________
n
c
Trang 10
hote
n
ketqua

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

_________________________________________________________________________
Trang 11

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Va o th ket noi tng ng la:


hoc
sinhvien.masv=hoc.
masv
sinhvie
n

hoc.mamh=monhoc.m
amh
monho
c

Mot truy van b sai ve ng ngha neu o th truy van cua


no la khong lien thong. o th khong lien thong la mot
o th bao gom nhieu thanh phan lien thong, moi thanh
phan lien thong la mot o th con rieng biet, hai thanh
phan lien thong khong dc noi vi nhau thong qua cac
canh. Trong trng hp nay, mot truy van c xem la ung
an bang cach ch gi lai thanh phan co lien quan en
quan he ket qua va loai bo cac thanh phan con lai.
V du: Xet truy van Q7
Q7: SELECT hoten, diem
FROM sinhvien, hoc, monhoc
WHERE sinhvien.masv=hoc.masv
AND malop=MT
AND diem > 5
hoc;

AND tenmh = Tin

o th truy van cua truy van nay nh sau:


diem> 5
sinhvien.masv=hoc.
masv
malop=M
T

ho
c

diem
tenmh=Tin
sinhvie
monho
hoc
n
c
hote
ketqua
o th truy van ncua truy
van nay la khong lien thong,

nen truy van b sai ve ng ngha. Co ba giai phap cho van


e nay la:

(1) Huy bo truy van nay.


(2) Huy bo cac bang khong can thiet trong menh e
From va cac ieu kien co lien quan en cac bang
nay trong menh e WHERE.
Gia s truy xuat en monhoc la khong can thiet, ta huy
bo bang monhoc trong menh e From va ieu kien tenmh
=Tin hoc trong menh e WHERE. Ta co truy van Q8 nh sau:

_________________________________________________________________________
Trang 12

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Q8: SELECT hoten, diem


FROM sinhvien, hoc
WHERE sinhvien.masv =hoc.masv AND malop =MT
diem > 5;

AND

(3) Bo sung ieu kien ket sao cho o th truy van c


lien thong. Mot o th truy van co the khong b sai
ng ngha neu o th nay la mot do th n (co
nhieu nhat mot canh noi gia hai nh), lien thong
va so canh bang so nh tr 1.
Bo sung ieu kien ket hoc.mamh = monhoc.mamh vao trong
menh e WHERE.
Ta co truy van Q9:
Q9: SELECT hoten, diem
FROM sinhvien, hoc
WHERE sinhvien.masv = hoc.masv
AND hoc.mamh =monhoc.mamh AND malop =MT AND
diem > 5
AND tenmh =Tin hoc;
4.3.1.2. Bc 1.2- Chuan hoa ieu kien cua menh e
WHERE
ieu kien ghi trong menh e WHERE la mot bieu thc
luan ly co the bao gom cac phep toan luan ly (not, and,
or) c viet di mot dang bat ky. Ky hieu cac phep
toan luan ly: not (-), and (^), or (v). Bc nay nham muc ch
chuan hoa ieu kien cua menh e Where ve mot trong hai
dang chuan:
-

Dang chuan giao (conjunctive normal form)


( P11 v P12 vv P1n ) ^^ (Pm1 v Pm2 vv Pmn )

Dang chuan hp (disjunctive normal form)


( P11 ^ P12 ^^ P1n) vv (Pm1 ^ Pm2 ^^ Pmn )

trong o Pij la mot bien luan ly (co gia tr la true hoac


false) hoac la mot v t n gian (simple predicate ) co
dang:
aRb
vi a,b la cac bieu thc so hoc va R la mot trong nhng
phep toan so sanh:
=
bang
< > hoac !=......................................................................khong
bang
_________________________________________________________________________
Trang 13

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

<
<=
>
>=

nho hn
nho hn hoac bang
ln hn
ln hn hoac bang

e bien oi ieu kien cua menh e WHERE ve mot trong


hai dang chuan tren, chung ta s dung cac phep bien oi
tng ng cua cac phep toan luan ly.
Ky hieu la s tng ng.
Cac phep bien oi tng ng:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)

P1 ^ P2 P2 ^ P1
P1 v P2 P2 v P1
P1 ^ ( P2 ^ P3) ( P1 ^ P2) ^ P3
P1 v( P2 v P3) ( P1 v P2) vP3
P1 ^ ( P2 vP3) ( P1 ^ P2) v (P1 ^ P3)
P1 v( P2^P3) ( P1 vP2)^ (P1 vP3)
( P1 ^ P2) P1 v P2
( P1 vP2) P1 ^ P2
(P) P

V du: Xet truy van Q10


Q10: SELECT malop
FROM sinhvien
WHERE (NOT (malop=MT1)
AND (malop=MT1 OR malop=MT2)
AND NOT (malop=MT2)) OR hoten=Nam;
ieu kien q cua menh e WHERE la:
(NOT (malop=MT1) AND (malop=MT1 OR malop=MT2)
AND NOT (malop=MT2)) OR hoten=Nam
Ky hieu:
P1
P2
P3

la malop=MT1
la malop=MT2
la hoten=Nam

ieu kien q se la:


(P1 ^ (P1 v P2) ^ P2 ) v P3
Bang cach ap dung cac phep bien oi (3), (5) e a ieu
kien q ve dang chuan hp:
(((P1 ^ P1) v (P1 ^ P2)) ^ P2 ) v P3
((P1 ^ P1 ^ P2) v (P1 ^ P2 ^ P2 )) v P3
_________________________________________________________________________
Trang 14

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

4.3.1.3. Bc 1.3- n gian hoa ieu kien cua menh


e WHERE
Bc nay s dung cac phep bien oi tng ng cua cac
phep toan luan ly (not, and, or) e rut gon ieu kien cua
menh e WHERE.
Cac phep bien oi tng ng gom co :
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)

P^PP
PvPP
P ^ true P
P v false P
P ^ false false
P v true true
P ^ P false
P v P true
P1 ^ (P1 v P2) P1
P1 v (P1 ^ P2) P1

Vdu: Xet truy van Q10 tren, ieu kien q dang chuan
hp la:
(P1 ^ P1 ^ P2) v (P1 ^ P2 ^ P2 ) v P3
Bang cach ap dung phep bien oi (16), chung ta c:
(false ^ P2 ) v (P1 ^ false) v P3
Ap dung phep bien oi (14), cung ta c:
False v

False v P3

Ap dung phep bien oi (15), chung ta c dieu kien q


cuoi cung la P3, tc la hoten=Nam. Vay truy van Q10 tr
thanh truy van Q11 nh sau:
Q11: SELECT malop
FROM sinhvien
WHERE hoten=Nam;
4.3.1.4. Bc 1.4- Bien oi truy van thanh mot bieu
thc ai so quan he hieu qua
Bc nay s dung cac phep bien oi tng ng cua
cac phep toan ai so quan he nham e loai bo cac
phep toan ai so quan he khong can thiet va giam
vung nh trung gian c s dung trong qua trnh thc
hien cac phep toan ai so quan he can thiet cho truy
van.
_________________________________________________________________________
Trang 15

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Bc nay bao gom hai bc sau ay:


Bc 1.4.1 Bien oi truy van thanh mot bieu thc ai
so quan he, bieu dien bieu thc ai so quan he nay
bang mot cay toan t.
Bc 1.4.2 n gian hoa cay toan t e co c
mot bieu thc ai so quan he hieu qua.
Bc 1.4.1. Bieu dien truy van bang cay toan t
Qua trnh bien oi mot truy van c viet bang lenh
SELECT thanh mot cay toan t bao gom cac bc sau:
(1)
Cac nut la c tao lap t cac quan he ghi
trong menh e From
(2)
Nut goc c tao lap bang phep chieu tren
cac thuoc tnh ghi trong menh e SELECT.
(3)
ieu kien ghi trong menh e WHERE c
bien oi thanh mot chuoi thch hp cac phep toan
ai so quan he (phep chon, phep ket, phep hp) i
t cac nut la en nut goc. Chuoi cac phep toan
nay co the c cho trc tiep bi th t cua cac v
t n gian va cac phep toan luan ly.
Mot cay toan t tng ng vi mot bieu thc ai so
quan he.
V du: Xet truy van Q12 cho biet ho ten cua cac sinh vien
khong phai la Nam hoc mon hoc Tin hoc at iem 9 hoac
10.
Q12: SELECT hoten
FROM sinhvien, hoc, monhoc
WHERE sinhvien.masv= hoc.masv
AND hoc.mamh= monhoc.mamh
AND hoten<> Nam
AND tenmh= Tin hoc
AND (diem= 9 OR diem = 10);
Truy van nay co the c bieu dien thanh mot cay toan
t, cac v t n gian c bien oi theo th t xuat
hien tng ng vi cac phep ket roi en cac phep chon.
IIhoten

Phep
chieu

diem=9 v diem=10
tenmh=Tin hoc

Phep
chon

hoten <> Nam

mamh= mamh

masv =
monhoc
Phep
_________________________________________________________________________
ket
masv
Trang 16
sinhvien

hoc

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Bieu thc ai so quan he tng ng la:


IIhoten ( ( diem=9 v diem=10) ^ tenmh= Tin hoc ^ hoten <> Nam
((sinhvien masv=masv hoc) mamh=mamh monhoc))
Bc 1.4.2. n gian hoa cay toan t
n gian hoa cay toan t nham muc ch e at hieu
qua (loai bo cac phep toan d tha tren cac quan he,
giam vung nh trung gian, giam thi gian x ly truy van)
bang cach s dung cac phep bien oi tng ng cua
cac phep toan ai so quan he.
Trong bc n gian hoa cay toan t, mot ieu quan
trong trong viec ap dung cac phep bien oi tng ng cho
mot bieu thc truy van la viec phat hien cac bieu thc
con chung (common subexpression) co trong bieu thc truy
van, ngha la cac bieu thc con xuat hien nhieu lan trong
bieu thc truy van. ieu nay co y ngha la tiet kiem
thi gian thc hien truy van v cac bieu thc con nay ch
c nh tr duy nhat mot lan. Mot phng phap e nhan
biet chung la cho viec bien oi cay toan t tng
ng thanh mot o th toan t bang cach trc tien gop
cac nut la giong nhau cua cay (ngha la cac quan he
giong nhau), va sau o gop cac nut trung gian khac cua
cay tng ng vi cung cac phep toan va co cung cac
toan hang.
Khi cac bieu thc con a c xac nh, chung ta co s
dung cac phep bien oi tng ng sau ay e n gian
hoa mot cay toan t:
(1)
R R R
(2)
RURR
(3)
RR
(4)
R F (R) F R
(5)
R U F (R ) R
(6)
R - F (R) F (R)
(7)
F1 (R) F2 (R) F1 ^ F2 (R)
(8)
F1 (R) U F2 (R) F1 v F2 (R)
(9)
F1 (R) - F2 (R) F1 ^ F2 (R)
(10) R R R
(11) R F (R) F R
(12) F1 (R) F2 (R) F1 ^ F2 (R)
(13) F (R) R
Y ngha cua cac phep bien oi nay la loai bo cac
phep toan d tha.
V du: Xet truy van Q13 cho biet cac ho ten cua cac sinh
vien thuoc lp co ma lp trng la 123 va cac sinh vien
_________________________________________________________________________
Trang 17

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

nay co tuoi khong ln hn 20 tuoi. Mot bieu thc cho truy


van nay la:
IIhoten ((sinhvien malop=malop malt=123 (lop))
(tuoi >20 (sinhvien) malop=malop malt=123 (lop))
Cay toan t tng ng :
IIhoten

malop=malop

sinhvien

malop=malop

malt=123

tuoi >20

malt=123

lop

sinhvien

lop

e phat hien ra bieu thc con chung, chung ta bat au


bang cach gop cac nut la tng ng vi cac quan he
sinhvien va lop. Sau o chung ta at tha so la phep cho
tren tuoi oi vi phep ket (trong cach lam nay, chung ta di
chuyen phep chon len pha tren). Bay gi chung ta co the
tron cac nut tng ng vi phep chon tren malt va cuoi
cung cac nut tng ng vi phep ket, chung ta c cay
toan t sau:
IIhoten
tuoi >20

sinhvien

malop=malop

malt=123
lop

Ap dung phep bien oi tng ng (6) vi R la bieu thc :


sinhvien

malop=malop

malt=123 lop

_________________________________________________________________________
Trang 18

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

chung ta c cay toan t sau:


IIhoten
tuoi <= 20

malop=malop

malt=123

sinhvien

lop

Sau o ap dung tnh phan phoi cua phep chieu va phep


chon oi vi phep ket, ta c cay toan t :
IIhoten

malop=malop

IIhoten, malop

IImalop

tuoi <= 20

malt=123

sinhvien

lop

Va bieu thc ai so quan he sau khi a n gian hoa la :


IIhoten(IIhoten,malop(

(sinhvien))

tuoi < =20

malop=malop

IImalop (malt=123(lop)))

n gian hoa mot bieu thc ai so quan he c thc


hien da tren cac tieu chuan sau ay :
Tieu chuan 1. Dung tnh idempotence (tng ng) cua
phep chon va phep chieu e tao ra cac phep chon va
phep chieu thch hp cho moi quan he toan hang.
Tieu chuan 2. Thc hien cac phep chon va cac phep
chieu cang sm cang tot, tc la ay cac phep chon
va cac phep chieu xuong pha di cay cang xa cang
tot.
Tieu chuan 3. Khi cac phep chon c thc hien sau mot
phep tch th ket hp cac phep toan nay e tao thanh
mot phep ket.
_________________________________________________________________________
Trang 19

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Tieu chuan 4. Ket hp chuoi cac phep toan mot ngoi


lien tiep nhau ap dung cho mot quan he toan hang.
Mot chuoi cac phep chon lien tiep nhau (hoac mot
chuoi cac phep lien ket lien tiep nhau) co the c
ket hp thanh mot phep chon (hoac mot phep ket).
Tieu chuan 5. Khi phat hien cac bieu thc con chung trong
bieu thc truy van, ap dung cac phep bien oi tng
ng e n gian hoa bieu thc truy van.
4.3.1.5. Mot giai thuat toi u hoa mot bieu thc ai
so quan he tren lc o toan cuc
Vao: Mot bieu thc ai so quan he tren lc o toan cuc
Ra: Mot bieu thc ai so quan he a c toi u hoa
Giai thuat toi u hoa mot bieu thc ai so quan he tren
lc o toan cuc bao gom cac bc sau ay:
Bc 1. Phat hien cac bieu thc con chung co trong cay
toan t, bien oi cay toan t da tren bieu thc con
chung
Bc 2. Thc hien phep chon cang sm cang tot. S
dung tnh idempotence cua phep chon, tnh giao hoan cua
phep chon vi phep chieu, va tnh phan phoi cua
phep chon oi vi phep hp, phep giao, phep hieu,
phep ket va phep tch e di chuyen phep chon cang
xuong pha di cay cang tot.
S dung cac phep bien oi tng ng:
F1 (F2(R)) F2 (F1(R))
F1 (F2(R)) F1 ^ F2(R)
IIX (F (R)) F (IIX(R))
( neu Attr(F) X)
IIX (F (R)) IIX (F (IIX Attr (F) (R)))
F (R S) F (R) F (S)
F (R S) F (R) F (S)
F1 ^ F2 (R S) F1 (R) F2 (S)
( neu Attr(F1) Attr(R) va Attr(F2)
Attr(S))
F (R - S) F (R) - F (S)
_________________________________________________________________________
Trang 20

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

F (R F1 S) F (R) F1 S
( neu Attr(F) Attr(R))
F1 ^ F2 (R F3 S) F1 (R) F3 F2 (S)
( neu Attr(F1) Attr(R) va Attr(F2)
Attr(S))
F (R F3 S) F2 (F1 (R) F3 S)
( neu F=F1 ^ F2 va Attr(F1) Attr(R) va Attr(F2) Attr(R)
Attr(S))
F (R x S) F (R) x S
( neu Attr(F) Attr(R))
F1 ^ F2 (R x S) F1 (R) x F2 (S)
( neu Attr(F1) Attr(R) va Attr(F2)
Attr(S))
F (R x S) F2 (F1 (R) x S)
( neu F=F1 ^ F2 va Attr(F1) Attr(R) va Attr(F2) Attr(R)
Attr(S))
Bc 3. Thc hien phep chieu cang sm cang tot. S
dung tnh idempotence cua phep chieu, tnh phan phoi
cua phep chieu oi vi phep hp, phep ket va phep
tch e di chuyen phep chieu cang xuong pha di cay
cang tot. Kiem tra tat ca cac phep chieu la can
thiet, loai bo phep chieu khong can thiet neu phep
nay chieu tren tat ca cac thuoc tnh cua quan he
toan hang.
S dung phep bien oi:
IIX1 (IIX2 (R)) IIX1 (R)
vi X1 X2
IIX (R S) IIX (R) IIX (S)
IIX (R F S) IIX (R) F (S)
( neu Attr(FR) X va X Attr(R))
IIX1 X2 (R F S) IIX1 (R) F IIX2 (S)
( neu Attr(F) X1 X2 va X1 Attr(R) va X2
Attr(S))
IIX1 X2 (R x S) IIX1 (R) x IIX2 (S)
( neu X1 Attr(R) va X2 Attr(S))
Bc 4. Neu mot phep chon c thc hien ngay sau mot
phep tch, ma phep chon bao gom cac thuoc tnh cua
cac quan he trong phep tch, th bien oi phep tch
thanh phep ket. Neu phep chon ch bao gom cac
thuoc tnh cua mot quan he trong phep tch, th thc
_________________________________________________________________________
Trang 21

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

hien phep chon cho quan he nay trc khi thc hien
phep tch.
S dung cac phep bien oi:
F (R x S) F (R) x S
( neu Attr(F) Attr(R))
F1 ^ F2 (R x S) F1 (R) x F2 (S)
( neu Attr(F1) Attr(R) va Attr(F2)
Attr(S))
F (R x S) F2 (F1 (R) x S)
( neu F=F1 ^ F2 va Attr(F1) Attr(R) va Attr(F2) Attr(R)
Attr(S))
Bc 5. Neu co mot chuoi cac phep chon va/ hoac cac
phep chieu, s dung tnh giao hoan hoac tnh
idempotence e ket hp chung thanh mot phep chon,
mot phep chieu hoac mot phep chon i trc mot
phep chieu va ap dung chung cho moi bo cua quan
he toan hang. Neu mot phep ket hoac phep tch i
trc mot chuoi cac phep chon hoac cac phep chieu,
th ap dung chung cho moi bo cua phep ket hoac
phep chieu ngay khi tao ra ket qua.
Bc 6. S dung tnh ket hp cua phep giao, phep tch va
phep ket e sap xep lai cac quan he trong cay toan
t, sao cho phep toan nao ma no tao ra ket qua t
nhat se c thc hien trc tien.
S dung cac phep bien oi:
(R S) T (R T) S
(R x S) x T (R x T) x S
(R F1 S) F2 T (R F2 T) F1 S
( neu Attr(F2) Attr(R) Attr(T))
( neu Attr(F1) Attr(R) Attr(S))
4.3.2. Bc 2 nh v d lieu
Bc nh v d lieu (Data Localization) con c goi la
bc toi u hoa truy van tren lc o phan manh .
Bc nay bien oi truy van toan cuc (ket qua cua Bc
1) thanh cac truy van manh hieu qua: loai bo cac phep
toan ai so quan he khong can thiet tren cac manh va
giam vung nh trung gian.
_________________________________________________________________________
Trang 22

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Toi u hoa truy van tren lc o phan manh bao gom 2


bc sau:
Bc 2.1. Bien oi bieu thc ai so quan he tren lc o
toan cuc (cha cac quan he toan cuc) thanh bieu thc
ai so quan he tren lc o phan manh (cha cac
manh cua quan he toan cuc) bang cach thay the cac
quan he toan cuc bi bieu thc tai lap cua chung.
Bc 2.2. n gian hoa bieu thc ai so quan he tren
lc o phan manh e co c mot bieu thc hieu
qua (loai bo cac phep toan khong can thiet giam
vung nh trung gian) bang cach s dung cac phep
bien oi tng ng cua ai so quan he va cac ai
so quan he c tuyen chon.

_________________________________________________________________________
Trang 23

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

4.3.2.1. Bc 2.1 Bien oi bieu thc ai so quan he


tren lc o toan cuc
Bc nay se bien oi bieu thc ai so quan he tren
lc o toan cuc (cha cac quan he toan cuc) thanh bieu
thc ai so quan he tren lc o phan manh (cha cac
manh cua quan he toan cuc) bang cach thay the moi quan
he toan cuc trong cay toan t bi bieu thc tai lap cua
no. Bieu thc tai lap cua mot quan he toan cuc la mot
bieu thc ai so quan he bao gom cac manh cua quan he
nay ma bieu thc nay cho phep tao lai quan he toan cuc
nay. Bieu thc tai lap cung c bieu dien bang mot
cay toan t.
Xet lc o quan he sinhvien va lop sau ay:
Sinhvien (masv, hoten, tuoi, malop)
Lop (malop, tenlop, malt, tenkhoa)
Gia s chung ta co hai khoa ten la CNTT va
Quan he lop c phan manh ngang da vao tenkhoa
hai manh lop1 va lop2 . Quan he sinhvien c phan
ngang suy dan theo lop da vao malop thanh hai
sinhvien1 va sinhvien2. Lc o phan manh nh sau:

DIEN.
thanh
manh
manh

Lop1 (malop, tenlop, malt, tenkhoa)


Lop2 (malop, tenlop, malt, tenkhoa)
Sinhvien1 (masv, hoten, tuoi, malop)
Sinhvien2 (masv, hoten, tuoi, malop)
Cac bieu thc tai lap cua quan he lop va sinhvien la:
Lop = Lop1 U Lop2
Sinhvien= sinhvien1 U sinhvien2
Trong o:
Lop1 = tenkhoa = CNTT (lop)
Lop2 = tenkhoa = DIEN (lop)
Sinhvien1 = sinhvien < (Lop1)
Sinhvien2 = sinhvien < (Lop2)
V du: Xet cay toan t

sinhvien

masv,hoten,

tenlop
malop=malop

tenkhoa=CNTT

lop
_________________________________________________________________________
Trang 24

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Ap dung tnh idempotence cua phep chieu, chung ta c:

masv,hoten,
tenlop

malop=malop

masv,hoten,
malop

sinhvien

malop, tenlop

tenkhoa=CNTT

lop

Thay the sinhvien va lop bi bieu thc tai lap:


Sinhvien = sinhvien1 U sinhvien2
Lop = lop1 U lop2
Ta c cay toan t sau:

U
Sinhvien
1

masv,hoten,
malop

Sinhvien
2

masv,hoten,
tenlop

malop=malop

malop, tenlop

tenkhoa=CNTT

Lop2thc ai so quan
Lop1 bieu
4.3.2.2 Bc 2.2 n gian hoa
he tren lc o phan manh
n gian hoa bieu thc ai so quan he tren lc o phan
manh e co c mot bieu thc hieu qua (loai bo cac
phep toan khong can thiet, giam vung nh trung gian)
bang cach s dung cac phep bien oi tng ng cua ai
so quan he va cua ai so quan he c tuyen chon.
Cac phep bien oi tng ng (ap dung cho cac quan he
va cac quan he c tuyen chon) gom co:
(1) F ()
(2) X ()
(3) R x
(4) R U R
(5) R
(6) R - R
(7) - R
(8) R
_________________________________________________________________________
Trang 25

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

(9) R <
(10) < R
n gian hoa mot bieu thc ai so quan he tren lc o
phan manh c thc hien da tren cac tieu chuan sau:
Tieu chuan 6: Di chuyen cac phep chon xuong cac nut
la cua cay, va sau o ap dung chung bang cach dung
ai so quan he c tuyen chon; thay the cac ket qua
chon la bi quan he rong neu ieu kien chon cua ket
qua b mau thuan.
Tieu chuan 7: e phan phoi cac phep ket xuat hien
trong mot truy van toan cuc, cac phep hp (bieu dien tap
hp cua cac phan manh) phai c di chuyen len pha
tren cac phep ket ma chung ta muon phan phoi e loai
bo cac phep ket khong can thiet.
Tieu chuan 8: Dung ai so quan he c tuyen chon e
nh tr ieu kien chon cua cac toan hang cua cac phep
ket; thay the cay con, bao gom phep ket va cac toan
hang cua no, bang quan he rong neu ieu kien chon cua
ket qua cua phep ket b mau thuan.
V du : Xet cay toan t tren lc o phan manh tren
ay phep chon va phep chieu xuong khoi phep hp ta
c:
malop,tenlop( tenkhoa=CNTT (lop1 U lop2))
= malop,tenlop( tenkhoa=CNTT (lop1)) U malop,tenlop(

tenkhoa=CNTT

(lop2))

Ta nhan thay ket qua cua phep chon tenkhoa=CNTT (lop2) la


rong va phep chon tenkhoa=CNTT (lop1) la khong can thiet v
ieu kien chon cua lop1 la tenkhoa= CNTT.
Do o:
malop,tenlop( tenkhoa=CNTT (lop1 U lop2)) = malop,tenlop (lop1)
ay phep chieu xuong khoi phep hp trong bieu thc:
masv,hoten, malop(sinhvien1 U sinhvien2) =
masv,hoten, malop(sinhvien1) U masv,hoten, malop(sinhvien2)

_________________________________________________________________________
Trang 26

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Ta co cay toan t:

masv,hoten,
tenlop

malop=malop

malop, tenlop

Lop1

masv,hoten,

masv,hoten,

malop

malop
Sau o Sinhvien
phan phoi phep
ket
vi vi phep hp ta c:
Sinhvien

masv,hoten,

masv,hoten,
tenlop

malop=malop

malop, tenlop

masv,hoten,

malop=malop

malop, tenlop

malop
Tuy nhienSinhvien
phepmalop
ket gia
sinhvien2
va
lop1 la Lop1
rong do ieu
Lop1
Sinhvien
kien chon
1 cua phan manh lop12va sinhvien2 mau thuan
nhau.
Cuoi cung ta co cay toan t tren lc o phan manh nh
sau:

masv,hoten,
malop

Sinhvien
1

masv,hoten,
tenlop
malop=malop

malop, tenlop

Lop1

n gian hoa bieu thc ai so quan he trong lc o phan


manh con da vao mot he suy dien c goi la Bo chng
minh nh ly (Theorem Prover).
V du: Gia s chung ta ch co hai khoa la CNTT,DIEN va
co toi a 20 lp, cac lp co ma lp t 1 en 10 thuoc
_________________________________________________________________________
Trang 27

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

khoa CNTT va cac lp co ma t 11 en 20 thuoc khoa


DIEN. T o, chung ta co cac luat suy dien sau:
Malop > 10

Malop <= 10

Malop > 10

tenkhoa = CNTT
tenkhoa = DIEN
tenkhoa = CNTT
tenkhoa = DIEN

tenkhoa = DIEN
NOT (Malop >10)
NOT (Malop <=10)

Malop <= 10

Malop > 10

not(tenkhoa = DIEN)

not(tenkhoa = CNTT)

Xet truy van Q14 cho biet ten lp cua lp co ma lp


bang 1:
Q14: Select tenlop
From lop
Where malop = 1
Trc khi thc hien truy van nay, chung ta co cac suy dien
sau ay:
Malop = 1
malop <=10
Malop <= 10

tenkhoa= CNTT
Do o truy van nay ch lien quan en lop1 v ieu kien
chon cua lop1 la tenkhoa = CNTT. V the bieu thc ai so
quan he cua truy van nay la:
tenlop ( malop=1 (lop1))
4.3.3 Bc 3 Toi u hoa truy van toan cuc
Bc toi u hoa truy van toan cuc nham e tm ra mot
chien lc thc hien truy van sao cho chien lc nay gan
toi u (theo ngha giam thi gian thc hien truy van tren d
lieu c phan tan, giam vung nh trung gian).
Mot chien lc c ac trng bi th t thc hien cac
phep toan ai so quan he va cac tac vu truyen thong c
ban (gi/nhan) dung e truyen d lieu gia cac v tr.
Bang cac hoan oi th t cua cac phep toan trong bieu
thc truy van phan manh, ta co the co c nhieu truy
van tng ng.
Toi u hoa truy van toan cuc la tm ra mot th t thc
hien cac phep toan trong bieu thc truy van sao cho t ton
thi gian nhat. ac biet khau ton kem thi gian trong c
s d lieu phan tan la khau truyen d lieu do toc o
va bang thong gii han.
_________________________________________________________________________
Trang 28

Chng 4. Toi u hoa truy van trong c s d lieu


_________________________________________________________________________

Trong trng hp nhan ban th con phai tnh xem nhan ban
nao c s dung nham giam chi ph truyen thong.
Mot kha canh quan trong cua toi u hoa truy van la th t
thc hien cac phep ket phan tan. Nh tnh giao hoan cua
cac phep ket, chung ta co the lam giam chi ph thc hien
cac phep ket nay. Mot ky thuat c ban e toi u hoa
mot chuoi cac phep ket phan tan la s dung phep na
ket nham lam giam chi ph truyen thong gia cac v tr va
tang tnh x ly cuc bo tai cac v tr.
R A = B S = S A = B (R <A = B BS)
V du: Gia s co s phan tan d lieu sau:
- manh sinhvien1 at tai v tr 1 va
- manh lop1 at tai v tr 2
Chung ta can thc hien phep ket phan tan sau:
Sinhvien1 lop1
Bang cach ap dung phep na ket bieu thc tren tng
ng vi:
Lop1 (sinhvien1 < malop(lop1))
Do o ta co mot chien lc thc hien cho phep ket phan
tan nay vi cac tac vu truyen thong sau:
1)
2)
3)
4)
5)
6)

Thc hien T1 = malop(lop1) cuc bo tai v tr 2.


Truyen T1 t v tr 2 qua v tr 1.
Thc hien T2 = sinhvien1 < T1 cuc bo tai v tr 1.
Truyen T2 t v tr 1 qua v tr 2.
Thc hien T3 = lop1 < T2 cuc bo tai v tr 2.
Truyen T3 t v tr 2 qua v tr cua ng dung can thc
hien cua phep ket nay.

4.3.4 Bc 4 Toi u hoa truy van cuc bo


Toi u hoa truy van cuc bo nham e thc hien cac truy
van con c phan tan tai moi v tr, goi la truy van cuc
bo co cha cac manh, sau o c toi u hoa tren lc
o cuc bo tai moi v tr. Toi u hoa truy van cuc bo s
dung cac thuat toan toi u hoa truy van cua c s d
lieu tap trung.

_________________________________________________________________________
Trang 29

You might also like