Tải bản đầy đủ (.pdf) (89 trang)

tìm hiểu về tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.78 MB, 89 trang )


1
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Cùng vi s phát tria công ngh thông tin, các ng dng c
s d lip vào các hong quc kinh t
li nhng hiu qu to ln và cn thit. Bên cu v x lí thông tin
 thu th, x 
nhiu ln t phát trin ca tài nguyên phn cng và phn mm. Trong
thc t các doanh nghi n nhau hay k c các
c c phân b  nhiu khu v
d lic tp trung ti mm nhnh mà ri kha
 ng. Khi d liu không còn tp trung thì
v   qun lý, truy xut CSDL phc v cho công tác
chuyên môn không b n, tiêu tn ít thi gian
công sc tin bc. Mt s h thng tp trung ng
c, không phù hp vi nhu cu hii hóa. Xây dng mt h thng phân
tán có kh   l ng thi mt bài toán trên nhiu máy tính là mt
ng gii quyt kh  c chng minh tính hu dng. H thng
phân tán còn to nhiu thun li trong vic chia s thông tin trên khp mi
. Vì vy, CSDL  gii quyt vn  
N
 
t cách có hiu qu và thông sunh
khi truy vt trong nhng cách gii quyt cho
v này.
Vn  ti u hóa truy vn trên CSDL phân tán là rt quan trng và phc
tp do tính phân mnh, nhân bn, tn kém chi phí trong vic truyn d liu

2
ca nó. Nu không gii quyt tt vn  ti u truy vn thì hiu nng ca các


thao tác trên h CSDL phân tán s t rt thp.
Nhng nh tài nghiên
cTìm hiểu về tối ƣu hóa truy vấn trong cơ sở dữ liệu phân tán
2. Mục tiêu nghiên cứu.
Nghiên cu lý thuyt CSDL phân tán, các k thut truy vn trong CSDL.
Tng hp các kt qu  v truy vn tc hin t
truy vn trong CSDL phân tán.
3. Đối tƣợng và phạm vi nghiên cứu.
 tài tp trung nghiên cu v v bn ca CSDL  
n phân tán, các k thut, thut toán ti

.
4. Phƣơng pháp nghiên cứu.
Thu thp, tìm kim, tham kho, phân tích, nghiên cu các tài liu và thông
 tài t CSDL, CSDL phân tán, các k thut
truy vn ca các tác gi 
chn lc và sp xp lng ca mình.
Tng hp các kt qu ên cu v truy vn tn hành thc
hin tn phân tán qua mt trng hp nghiên cu.

3
CHƢƠNG 1: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN

1.1. Khái niệm về cơ sở dữ liệu phân tán
1.1.1. Khái niệm
C d liu phân tán [3] là mt tp hp d liu, mà v mt logic tp hp
này thuc cùng mt h th mt vt lý d lic phân tán
trên các v trí khác nhau ca mt mng máy tính.
 d li p ti h thng CSDL ln
trên mng. Trong h thng i máy tính qun lý mt CSDL thành phn

c gi là 1 node hot site.
M d liu phân tán là mt tp hp nhiu CSDL i logic và
c phân b trên mt mng máy tính.
m quan trc nêu ra và c:
- Tính chất phân tán: Tt c d liu ca CSDL phân tán 
cùng mt v c phân b trên nhiu máy trm t ti các v trí khác
nhau thuc mng máy tính. m phân bit gia CSDL phân tán và
CSDL tp trung.
- Tương quan logic: D liu ca CSDL phân tán có mt s thuc tính ràng
buc vu này giúp chúng ta có th phân bit mt CSDL phân tán
vi mt tp hp CSDL tp trung. Các file d li ti nhiu v trí
khác nhau, ng thy trong các ng dng mà h thng s phân
quyn truy nhp d ling mng.
Ví dụ 1.1:
Website ca google phân tán tìm kim theo cách t nhn bit, yêu cu nào
g lý. Các server ca google phân b rông khp
trên toàn th gii.


4
1.1.2. Các đặc điểm chính của CSDL phân tán
1. Chia sẻ tài nguyên
Vic chia s tài nguyên ca h c thc hin qua mng truyn
thông. Mi tài nguyên cc qun lý bi mn
truyn thông  chia s mt cách có hiu qu. Các tài nguyên có th c truy
cp, cp nht mt cách tin cy và nht quán. Qun lý tài nguyên  bao
gm lp k hoch d  t tên cho các lp tài nguyên, cho phép tài
c truy cp t  ta
ch truyn thông,
2. Tính mở

Tính m ca h thng phân tán là tính d dàng m rng phn cng ca nó.
Mt h thc gi là có tính m thì phu kin sau:
- H thng có th to nên bi nhiu loi phn cng và phn mm ca nhiu
nhà cung cp khác nhau.
- Có th b sung vào các dch v dùng chung tài nguyên mà không phá
hng ch v n ti.
- Tính m c hoàn thin bnh rõ các
giao din chính ca mt h  i các nhà phát
trin phn mm.
- Tính m ca h phân tán da trên vic cung c truyn thông gia
các tin trình và công khai các giao di truy nhp các tài nguyên
chung.
3. Khả năng song song
H phân tán hong trên mt mng truyn thông có nhiu máy tính, mi
máy có th có mt hay nhiu CPU.

5
Có th thc hin nhiu tin trình trong cùng mt thm. Vic thc hin
tin trình ng thi  phân chia thi gian (mt CPU) hay song song
(nhiu CPU).
Kh c song song trong h c th hin qua hai tình
hung:
- Nhii s dng thi các
ng dng thi xut hin nhiu Clients).
- Nhiu tin trình Server chng thi, mi tin trình phng yêu
cu t các Clients.
T u ki lý, kh a h thng phân tán tr thành
mt thuc tính ca nó.
4. Khả năng mở rộng
H phân tán có kh   ng tt và hiu qu  nhiu mc khác

nhau.
Kh  rng ca mt h  i tính không
thay i phn mm h thng và phn mm ng dng khi h thng c m
rng.
u này ch t  m i vi h phân tán hin ti (không th
u m rng không ch là m rng v
phn cng hay v mng mà còn cn phc t c
các khía cnh khi thit k h phân tán.
Ví dụ 1.2: Tn sut s dng file trên mt ngt  tránh tình
trng tc nghn xy ra khi ch có mt Server và phng các yêu cu truy
nhp  i ta nhân bn file trên mt Server khác và h thc
thit k sao cho vic b sung c d dàng. Có th n gii pháp
khác là s dng Cache và các bn sao d liu.


6
5. Khả năng thứ lỗi
Kh  li th hin vic h thng không b s bi các s c do
các li thành phn (c phn cng ln phn mm) trong mt b ph
Vic thit k kh  li các h thng máy tính da trên hai gii
pháp sau:
- Dùng kh   m bo s hong liên tc và hiu qu.
-  m b phc hi d liu khi xy ra s c.
6. Đảm bảo tin cậy và nhất quán
H thng yêu c tin c
- Bí mt ca d liu.
- Các chng phm bo.
- Ngoài ra các yêu cu ca h thng v tính nh hin  ch:
không có mâu thun trong ni dung CSDL.
1.1.3. Những ưu nhược điểm của cơ sở dữ liệu phân tán

 Những ưu điểm của cơ sở dữ liệu phân tán
Ln nht ca CSDL phân tán là d liu ca các CSDL vt lý
riêng bic tích hp logic vi nhau làm cho nhiu ni s dng trên
mng có th truy nhc [6].
- Cho phép qun lý d liu vi nhiu mc trong sut:
+ Trong sut mng - phân tán: H qun tr CSDL phc trong sut
i s dng không cn bit v trí ca d liu
và không cn bit s phc tp truy cp qua mng.
+ Trong sut bn sao
+ Trong sun
-  tin cy và kh n sàng:  tin cy là kh  thng
c (không b ngng) ti mt thi n sàng là kh
 thng tip tc làm vic trong mt khong th

7
liu và CSDL phân tán trên mt vài trm, mt trm có th có s c trong khi
các trm khác vn có th hong hoc s dng các thành phn khác ca
CSDL. Ch trên trm b s c, d liu và ng dng không th truy cc.
  tin cy và tính sn sàng, có th áp dng  to bn sao
trên nhiu trm.
- Ci thin hi: Mt h qun tr CSDL n CSDL
có th làm cho d liu s  ti g dng nht. D liu c
 cc b làm gim cnh tranh CPU, gim các I/O Server và gi
tranh truy nhp trên mng. D lic phân tán ti các trng
d liu cc b s nh  lý giao tác và truy vn cc b s c thc
hin ta trên mi tr các giao tác trên
CSDL tp trung vì vu sut h thng.
- D dàng m rng: Vic thêm CSDL m CSDL hoc thêm
b x lý ng phân tán là d  
CSDL thành phn.

 Những nhược điểm của cơ sở dữ liệu phân tán
-  phc tp thit k t h th qun tr CSDL phân tán
phi b sung thêm các ch
+ Theo dõi du vt d liu
+ X lý các truy vn phân tán
+ Qun lý giao dch phân tán
+ Phc hi CSDL phân tán
+ Qun lý các bn sao
+ Quc - catalog phân tán
- H thng phn cc tn có nhiu trm và các trm
phc kt ni trên mng.

8
- Các phn mm h thm bo qun tr, duy trì kt ni d liu
trên mng.
- Bo m
1.2. Các đặc trƣng trong suốt của cơ sở dữ liệu phân tán
1.2.1. Trong suốt phân đoạn (fragmentation transparency)
Khi d lin thì vic truy cc thc hin
 phân tán và không ng ti s dng.
Ví dụ 1.3: Xét quan h tng th NCC (Id, Tên, Tui) n
c tách ra t nó:
NCC1 (Id, Tên, Tui)
NCC2 (Id, Tên, Tui)
NCC3 (Id, Tên, Tui)
Gi s DDBMS cung cp tính trong sut v 
thy tính trong suc th hi
Khi mun tìm mi có Id= “Id1” thì ch cn tìm trên quan h tng
th NCC mà không cn bit quan h NCC có phân tán hay không.
SELECT *

FROM NCC
WHERE Id=“Id1”

Hình 1.1:Trong suốt phân đoạn

9
1.2.2. Trong suốt về vị trí (location transparency)
- i s dng không cn bit v v trí vt lý ca d liu mà có quyn
truy cn CSDL ti bt c v trí nào.
-  ly hoc cp nht mt d liu t c t ng thc
hin bi h thng tu cu.
- Tính trong sut v v trí rt hi s dng b qua
các bn sao d lin ti  mi v  di chuyn mt bn sao
d liu t mt v n mt v trí khác và cho phép to các bn sao mi
mà không nn các ng dng.
Ví dụ 1.4: Vi quan h tng th  trên

gi s rng DDBMS cung cp trong sut v v    p
trong sut v n.
Xét câu truy vi có Id=“Id1”.
SELECT *
FROM NCC1
WHERE Id=“Id1”
IF NOT #FOUND THEN
SELECT *
FROM NCC2
WHERE Id=“Id1”
+ u tiên h thng s thc hin tìm kim   n NCC1 và nu
DBMS tr v biu khin #FOUND thì mt câu lnh truy v
c thc hin NCC2 ,

+   NCC2 c sao làm hai bn trên hai v trí 2 và v trí
3, ta ch cn tìm thông tin trên quan h NCC2 mà không cn quan tâm nó
 v trí nào.

10

Hình 1.2: Sự trong suốt về vị trí
1.2.3. Trong suốt ánh xạ địa phương (local mapping transparency)
- Là mc tính quan trng trong mt h thng nht.
- ng dng tham chi   c lp t các h
thng cc b .
- ng dt trên mt h thng nhc
s dt h thng nht.
Hình 1.3: Sự trong suốt ánh xạ địa phương
1.3. Kiến trúc cơ bản của một cơ sở dữ liệu phân tán
1.3.1. Sơ đồ tổng thể (Global Schema)
- nh tt c các d liu s  trong CSDL 
 lic phân tán  các trm trong h thng.

11
-  tng th p trung.
- Trong mô hình quan h tng th bao ga tp các
quan h tng th (Globle relation).
1.3.2. Sơ đồ phân đoạn dữ liệu (fragment schema)
- Mi quan h tng th có th chia thành mt vài phn không giao nhau gi
là n (fragment).
- Có nhi thc hin vic phân chia này.
-  n mô t các ánh x gia các quan h tng th n
c  n (fragmentation Schema).
- c mô t bng tên ca quan h tng th cùng vi ch mc

n.
Chng hc hin th i ca quan h R.
1.3.3. Sơ đồ định vị dữ liệu (allocation schema)
- n là các phn logic ca mt quan h tng th nh v vt lý
trên mt hay nhiu trm.
- Sơ đồ định vị n d linh v ti trm nào trên
mng.
- Tt c c liên kt vi cùng mt quan h tng th c
nh v ti cùng mt trm j cu thành nh vt lý quan h tng th R ti trm j.
-  ánh x mt-mt gia mt nh vt lý và mt cp (quan h
tng th, trm).
- Các nh vt lý có th ch ra bng tên ca mt quan h tng th và mt ch
mc trm.
- Ký hiu R
i
 ch n th i ca quan h tng th R.
- Ký hiu R
j
 ch nh vt lý ca quan h tng th R ti trm j.
-  y, bn sao cn i thuc quan h R ti trc ký
hiu là R
i
j
.

12
1.3.4. Sơ đồ ánh xạ địa phương (Local mapping schema)
- Thc hin ánh x các nh vc thc hin bi h
qun tr CSDL .
- Tt c n ca mt quan h tng th trên cùng mt trm to ra mt

nh vt lý.

Hình 1.4: Các đoạn và hình ảnh vật lý của một quan hệ tổng thể
Ba yu t c suy ra t kiu kin trúc này là:
- Tách ri khái nin d liu vi khái ninh v d liu.
- Bic d lia.
- c lp v.
Ba yếu tố này tương ứng với ba mức trong suốt tương ứng
a. Tách ri khái nin d liu vi khái ninh v d liu.

13
 Phân đoạn dữ liệu, bao gm nhng công vi  i lp trình
ng dng làm vic vi quan h tng th, phân chia quan h tng th
n.
Thông qua tính trong suốt phân đoạn (fragmentation transparencyi
lp trình s nhìn thc nhn d liu b  nào.
Định vị dữ liệu li liên n các công vic ci s dng và
i lp trình ng dng tn d linh v ti các trm.
Thông qua tính trong suốt vị trí (location transparency) i lp trình s
bic v trí cn d liu trên các trm.
b. Biết được dữ liệu dư thừa:
i lp trình ng dng có th bia d liu  các trm.
 trên, chúng ta thy rng hai nh vt lý R2 và R3 có trùng lp
d lin d liu trùng nhau có th c khi xây dng
các khi nh vt lý.
c. Độc lập với các DBMS địa phương
Tính ch   c gi là trong suốt ánh xạ địa phương (local
mapping transparency), cho phép chúng ta kho sát các v v qun lý
CSDL phân tán mà không cn phi hiu rõ mô hình d liu ca
 dng.

1.4. Kết luận
CSDL phân tán rt quan trng vì nhiu lý do khác nhau, nó có th c cài
t trên các mng máy tính din rng và các mng cc b nh. Có hai lý do
v t chc và k thui vi s phát trin CSDL CSDL phân
tác xây d khc phc các thiu sót ca CSDL tp trung và nó phù
hu trúc phân quyn ca nhiu t chc. K thut CSDL phân
c m rng và phát trin t k thut ca CSDL truyn thng. Trong

14
ng mi này, mt s v k thui các gii pháp khác, và
mt s gii pháp hoàn toàn mi.
Tính trong sut phân tán cung cp s c lp ci s
phân tán ca CSDL. Các mc trong sut phân tán khác nhau có th c cung
cp bi mt h qun tr CSDL phân tán; Ti mi mc, tính trong sut làm cho
i lp trình ng dng không bic s phân tán d liu.

15
CHƢƠNG 2: CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƢU HÓA
TRUY VẤN PHÂN TÁN
Các ngôn ng hi bt
nhiu câu truy vn vi s quan tâm nhin thi gian thc hin, và thi gian
thc hi gi nu b x lý ngôn ng hi vit li (bng
cách khác) câu truy vc khi thc hin. S ci ting gi là
"S tc dù câu truy vc vit li không cn tt c
t câu truy vn có th trình bày mt s 
pháp tu thc quan hc bit là x lý biu thc liên quan
n phép kt ni và tích Decartes, xem xét các k thun hình INGRES và
System R.
2.1. Các chiến lƣợc tối ƣu hóa cơ bản
Trong ngôn ng hi di s quan h, các truy vn

tích Decartes và phép kt ni là rt tn thi gian.
Ví dụ 2.1: Xét biu thc AB × CD (AB là mt quan h vi các thuc tính
A, B); ta ng nht hai quan h này vi hai tp d li  ca
tích Decartes này phi duyt ht bn ghi ca mt quan h, chng hn AB, 
vòng ngoài, vi mi bn ghi r ca tp AB, duyt tp CD  vòng trong và ni r
vi mi bn ghi ca tp CD. Gi s quan h AB có n bn ghi, CD có m bn
ghi thì tích Decartes AB × CD có n × m bn ghi. Rõ ràng phép tính trên rt
tn kém v thi gian và ô nh.
Ullman J.D trong các kt qu nghiên cu cn
c tng quát cho vic tn. ý tng t
nhóm: Nhóm 1 gm các phép bii s có liên quan hoc không liên
 các quan h, nhóm 2 gm các chic có li cho
vi các quan h khoá, ch s. Các chic thc hi
sau [4]:

16
1. Thực hiện phép chọn sớm nhất có thể: Bi i câu truy v 
phép chn vào thc hic nhm làm gic ca kt qu trung
t kim thi gian thc hin và không gian nh.
2. Tổ hợp phép chọn xác định với phép tích Decartes thành phép kết nối:
 bit, phép kt nc bit là kt ni bng có th thc hi
 so vi phép tích Decartes trên cùng các quan h. Nu kt qu ca tích
Decartes R × S i s ca phép chn và phép chn phép
so sánh gia các thuc tính c phép kt n gim chi
phí tính toán.
3. Tổ hợp dãy các phép toán một ngôi như phép chọn và phép chiếu: Bt
k dãy các phép toán mn hoc phép chiu có kt qu ph
thuc vào các b ca mt quan h c lp thì có th i.
, ta có th nhóm các phép toán mt ngôi vi kt qu ca phép toán
hai ngôi bng cách áp dng các phép toán mt ngôi vi mi b kt qu ca

phép toán hai ngôi.
4. Tìm các biểu thức con chung trong một biểu thức: Nu kt qu ca mt
biu thc con chung (biu thc xut hit ln) là mt quan h không
ln và nó có th c t b nh th cp vi ít thi gian, thì nên tính toán
c biu th mt ln. Nu biu thn
phép kt nng hp tng quát không th i nh vic
y phép chn vào trong.
5. Xử lý các tệp trước: Hai v quan trng cn x c cho các tp
s là sp xp các tp và thit lp các tp ch sc hin các phép toán
lin hai tp (phép tính hai ngôi) s u.
6. Đánh giá trước khi thực hiện phép toán: Khi cn chn trình t thc hin
các phép toán trong biu thc hoc chn mi ca phép toán hai
ngôi, ta nên tính toán chi phí thc hin các ng là s phép

17
tính, thi gian, ng b nh c các quan h, ) theo các
cách khác nhau. T s quyp.
2.2. Các phép biến đổi đại số
Hu ht các chin bii biu thi s. Mt
x lý câu truy vn bu vi vic xây dng cây phân tích biu thi s,
 các nút biu din toán t i s quan h và toán t c bit ca ngôn
ng. Ngôn ng hi có th là ngôn ng i s quan h  
SEQUEL, hoc là mt ngôn ng phép tính quan h mà các biu thc phép
c chuyn thành biu thi s.
2.2.1. Các yêu cầu của phép biến đổi tối ưu hóa
- Các phép bii phi thc s hu hii vi phn ln các dng câu
truy vn hay mt lp các câu truy vng dùng mà không phi chi phí quá
nhi thc hin quá trình bi
- Các phép bii phi bo toàn kt qu ca câu truy vc và sau khi
biu thc và sau khi bii phi cho cùng

mt kt qu  trong biu thc bi các th hin c th.
- Các phép bii phi làm gi thc hin câu truy vn. Chi
phí cho x lý câu truy vn có rt nhiu yu t, tuy nhiên ta ch n
mt s n nh ln truy xut khi nh gia b nh
trong và b nh ngoài; s bn ghi cn phi x lý  thit b trung tâm; phn b
nh   các kt qu trung gian trong quá trình thc hin câu truy vn.
2.2.2. Biểu thức tương đương
Hai biu thc E
1
và E
2
gu E
1
E
2
, nu quan h kt
qu ca hai biu th bi các th hin c th.
Vt s phép bii s có li [4].
2.2.3. Các qui tắc liên quan đến phép kết nối và tích Decartes

×