I H C QU C GIA THÀNH PH H CHÍ MINHĐẠ Ọ Ố Ố Ồ
CH NG TRÌNH ÀO T O TH C S CNTT QUA M NGƯƠ Đ Ạ Ạ Ĩ Ạ
________________
BÀI THU HO CH MÔN H CẠ Ọ
C S D LI U NÂNG CAOƠ Ở Ữ Ệ
tàiĐề :
C s d li u phân tán ơ ở ữ ệ
Demo thu t toán phân m nh d cậ ả ọ
GVHD: PGS.TS. PhúcĐỗ
H c viên th c hi nọ ự ệ : Tr nh Th Thanh Nhànị ị
MSHV: CH1101113
TP. HCM, n m 2012ă
C s d li u nâng caoơ ở ữ ệ
GVHD: PGS.TS. PhúcĐỗ Trang 2
C s d li u nâng caoơ ở ữ ệ
MỤC LỤC
GVHD: PGS.TS. PhúcĐỗ Trang 3
C s d li u nâng caoơ ở ữ ệ
Ch ng 1. ươ C S D LI U PHÂN TÁNƠ Ở Ữ Ệ
1.1 Gi i thi u ớ ệ
C s d li u phân tán (Distributed Database) là c s d li u c phân o n và c l uơ ở ữ ệ ơ ở ữ ệ đượ đ ạ đượ ư
tr trên các tr m trong h th ng m ng. Hình 1 d i ây là m t ví d v c s d li u phân tán.ữ ạ ệ ố ạ ướ đ ộ ụ ề ơ ở ữ ệ
Hình 1: Ví d c s d li u phân tánụ ơ ở ữ ệ
• Thi t k h th ng thông tin có CSDL phân tán bao g m:ế ế ệ ố ồ
o Phân tán và ch n nh ng v trí t d li u;ọ ữ ị đặ ữ ệ
o Các ch ng trình ng d ng t i các i m;ươ ứ ụ ạ đ ể
o Thi t k t ch c khai thác h th ng ó trên n n m ng.ế ế ổ ứ ệ ố đ ề ạ
• Khi thi t k các h th ng CSDL phân tán ng i ta th ng t p trung xoay quanh các câuế ế ệ ố ườ ườ ậ
h i?ỏ
o T i sao l i c n ph i phân m nh?ạ ạ ầ ả ả
o Làm th nào th c hi n phân m nh?ế để ự ệ ả
o Phân m nh nên th c hi n n m c nào?ả ự ệ đế ứ độ
o Có cách gì ki m tra tính úng n c a vi c phân m nh?ể đ đắ ủ ệ ả
o Các m nh s c c p phát trên m ng nh th nào?ả ẽ đượ ấ ạ ư ế
o Nh ng thông tin nào s c n thi t cho vi c phân m nh và c p phát?ữ ẽ ầ ế ệ ả ấ
• H qu n tr c s d li u phân tán (DDBMS)ệ ả ị ơ ở ữ ệ
o Cho phép ng i dùng t o, s d ng csdl. ườ ạ ử ụ
o m b o an ninh (c p phát quy n, 1 nhóm ng i c s d ng, …) Đả ả ấ ề ườ đượ ử ụ
o m b o tính trong su t c a csdl (Transperence): Đả ả ố ủ
o Ng i dùng s d ng nh csdl t p trung. ườ ử ụ ư ậ
o Truy v n t p trung -> Truy v n phân tán.ấ ậ ấ
• Các ng d ng:ứ ụ
o ng d ng c c b (Local App): Ch quan tâm t i d li u 1 tr mỨ ụ ụ ộ ỉ ớ ữ ệ ở ạ
GVHD: PGS.TS. PhúcĐỗ Trang 4
C s d li u nâng caoơ ở ữ ệ
o ng d ng toàn c c (Global App): Liên quan n nhi u tr m.Ứ ụ ụ đế ề ạ
• Các b c thi t k c s d li u phân tánướ ế ế ơ ở ữ ệ
o Thi t k l c quan ni m: i t ng + M i quan h -> ER (Gi ng csdl t pế ế ượ đồ ệ Đố ượ ố ệ ố ậ
trung).
o Thi t k logic – v t lý:ế ế ậ
Thi t k phân o n: Chia các quan h thành các o n -> L phân o nế ế đ ạ ệ đ ạ Đồ đ ạ
CSDL.
Thi t k nh v : t các o n lên các tr m -> L nh v .ế ế đị ị Đặ đ ạ ạ Đồ đị ị
1.2 u nh c i m c a c s d li u phân tánƯ ượ đ ể ủ ơ ở ữ ệ
• u i m:Ư đ ể
o D li u g n v i n i x lý -> Hi u su t cao.ữ ệ ầ ớ ơ ử ệ ấ
o Tính s n sàng c a h th ng cao: N u m t tr m b l i s không nh h ng t i cácẵ ủ ệ ố ế ộ ạ ị ỗ ẽ ả ưở ớ
tr m khác trong h th ng.ạ ệ ố
o Vi c t ng các tr m s d ng trong h th ng là n gi n nên vi c m r ng CSDL làệ ă ạ ử ụ ệ ố đơ ả ệ ở ộ
d dàng.ễ
• Nh c i m:ượ đ ể
o L u tr : Ngoài l c CSDL nh trong CSDL t p trung (Thu c tính, ki u d li u, …)ư ữ ượ đồ ư ậ ộ ể ữ ệ
còn thêm các l c phân o n CSDL, l c nh v CSDL (cho bi t các o n cượ đồ đ ạ ượ đồ đị ị ế đ ạ đượ
l u tr âu). ư ữ ở đ
o X lý: Truy v n t p trung là n gi n còn truy v n phân tán ph c t p. ử ấ ậ đơ ả ấ ứ ạ
o An toàn: CSDL c l u tr nhi u n i n y sinh v n : m b o an toàn d li uđượ ư ữ ở ề ơ ả ấ đề đả ả ữ ệ
khi truy n qua m ng.ề ạ
1.3 C u trúc chung c a m t c s d li u phân tánấ ủ ộ ơ ở ữ ệ
C u trúc m u c a m t c ấ ẫ ủ ộ ơ sở d li u phân tán có d ng:ữ ệ ạ
GVHD: PGS.TS. PhúcĐỗ Trang 5
C s d li u nâng caoơ ở ữ ệ
Hình 2: C u trúc m u c a m t c s d li u phân tánấ ẫ ủ ộ ơ ở ữ ệ
• L c toàn c c: ượ đồ ụ
o Xác nh toàn b d li u c l u tr trong CSDLPT. đị ộ ữ ệ đượ ư ữ
o c nh ngh a nh trong CSDL t p trung. Đượ đị ĩ ư ậ
o Trong mô hình quan h : l c toàn c c là các quan h và m i liên k t gi a chúng. ệ ượ đồ ụ ệ ố ế ữ
• L c phân o n: ượ đồ đ ạ
o M i quan h t ng th có th c chia thành các ph n không giao nhau g i là phânỗ ệ ổ ể ể đượ ầ ọ
o n (Fragment). đ ạ
o Có nhi u cách khác nhau phân o n: Phân o n d c, phân o n ngang, phân o nề để đ ạ đ ạ ọ đ ạ đ ạ
h n h p. ỗ ợ
o Các o n cđ ạ đượ mô t b ng tên c a quan h t ng th cùng v i ch m c o n. Víả ằ ủ ệ ổ ể ớ ỉ ụ đ ạ
d Ri là o n th i c a quan h toàn c c R. ụ đ ạ ứ ủ ệ ụ
• L c nh v : ượ đồ đị ị
o Xác nh o n d li u nào c nh v t i tr m nào trên m ng.đị đ ạ ữ ệ đượ đị ị ạ ạ ạ
o Rij: Cho bi t o n th i c a quan h t ng th R c nh v trên tr m j. ế đ ạ ứ ủ ệ ổ ể đượ đị ị ạ
• L c ánh x a ph ng: ượ đồ ạ đị ươ
o Ánh x các nh v t lý và các i t ng c l u tr t i m t tr m.ạ ả ậ đố ượ đượ ư ữ ạ ộ ạ
GVHD: PGS.TS. PhúcĐỗ Trang 6
C s d li u nâng caoơ ở ữ ệ
Hình 3: Các o n và hình nh v t lý c a m t quan h t ng thđ ạ ả ậ ủ ộ ệ ổ ể
1.4 Các ki u phân m nhể ả
M t công ty có các v n phòng Paris, London, NewYork, Toronto. Công ty này có các c sộ ă ở ơ ở
d li u sau ây: ữ ệ đ
C s d li u v nhân viên: EMP (ENo, EName, Title) ơ ở ữ ệ ề
C s d li u v các d án: PROJ (PNo, PName, Budget, Loc) ơ ở ữ ệ ề ự
C s d li u v l ng: PAY (Title, Sal) ơ ở ữ ệ ề ươ
C s d li u v phân công: ASG (ENo, PNo, Dur, Resp) ơ ở ữ ệ ề
Gi i thích v các thu c tính: Sal: L ng; Title: Ch c v ; Budget: Ngân sách c a d án; Loc:ả ề ộ ươ ứ ụ ủ ự
a i m; Dur: Duration – Th i h n; Resp: Responsibility – Trách nhi m.Đị đ ể ờ ạ ệ
Do tính phân tán c a các v n phòng nên t i m i v n phòng có l u tr d li u tác nghi p c aủ ă ạ ỗ ă ư ữ ữ ệ ệ ủ
chính các v n phòng ó, có th là các nhân viên t i ó và các d án mà v n phòng ó ang qu n lý. Ta có să đ ể ạ đ ự ă đ đ ả ơ
l u tr ã phân tán và phân m nh gi nh nh sau:đồ ư ữ đ ả ả đị ư
GVHD: PGS.TS. PhúcĐỗ Trang 7
C s d li u nâng caoơ ở ữ ệ
Hình 4: S l u tr phân tánơ đồ ư ữ
Ta xét h c s d li u phân tán d a trên các l c quan h (các b ng), nh v y s phân m nhệ ơ ở ữ ệ ự ượ đồ ệ ả ư ậ ự ả
chính là ho t ng chia m t b ng thành các b ng nh h n. phân tích s phân m nh ta l y các quan hạ độ ộ ả ả ỏ ơ Để ự ả ấ ệ
EMP, PROJ,PAY, ASG
GVHD: PGS.TS. PhúcĐỗ Trang 8
C s d li u nâng caoơ ở ữ ệ
1.4.1 Phân m nh ngangả
Gi s ta có m t yêu c u phân m nh quan h PROJ thành hai b ng PROJ1 và PROJ2 sao choả ử ộ ầ ả ệ ả
m t b ng ch a các d án có ngân sách l n h n 100000 và cái kia ch a các d án có ngân sách nh h n 100000.ộ ả ứ ự ớ ơ ứ ự ỏ ơ
1.4.2 Phân m nh d cả ọ
C ng quan h PROJ ta phân m nh thành hai b ng PROJ3 và PROJ4, khóa c a quan h PNo cóũ ệ ả ả ủ ệ
m t c hai b ng con.ặ ở ả ả
Trong th c t s phân m nh s x y ra vi c k t h p c hai lo i phân m nh và ta g i là s phânự ế ự ả ẽ ả ệ ế ợ ả ạ ả ọ ự
m nh h n h p. M c phân m nh tùy theo yêu c u c a ng d ng, phân m nh quá l n hay quá nh u gâyả ỗ ợ ứ độ ả ầ ủ ứ ụ ả ớ ỏ đề
ra các hi u ng ph khó ki m soát.ệ ứ ụ ể
GVHD: PGS.TS. PhúcĐỗ Trang 9
C s d li u nâng caoơ ở ữ ệ
1.4.3 Các quy t c phân m nh.ắ ả
Các quy t c này nh m m b o tính nh t quán c a c s d li u, c bi t v ng ngh a c a dắ ằ đả ả ấ ủ ơ ở ữ ệ đặ ệ ề ữ ĩ ủ ữ
li u.ệ
Quy t c 1: Tính y .ắ đầ đủ
N u m t quan h R c phân m nh thành các m nh con Rế ộ ệ đượ ả ả
1
, R
2
, , R
n
thì m i m c d li u ph iỗ ụ ữ ệ ả
n m trong m t ho c nhi u các m nh con. ây trong phân ngang thì m c d li u c hi u là các b cònằ ộ ặ ề ả Ở đ ụ ữ ệ đượ ể ộ
trong phân m nh d c là các thu c tính. Quy t c này m b o không b m t d li u khi phân m nh.ả ọ ộ ắ đả ả ị ấ ữ ệ ả
Quy t c 2: Tính tái thi t c.ắ ế đượ
N u m t quan h R c phân m nh thành các m nh con Rế ộ ệ đượ ả ả
1
, R
2
, , R
n
thì ph i nh ngh a cả đị ĩ đượ
m t toán t quan h ộ ử ệ
sao cho
Quy t c 3: Tính tách bi t.ắ ệ
Gi s m t quan h R c phân m nh thành các m nh con Rả ử ộ ệ đượ ả ả
1
, R
2
, , R
n
.
i v i phân m nh ngang m c dĐố ớ ả ụ
i
ã n m trong m nh Rđ ằ ả
j
thì nó s không n m trong m nh Rẽ ằ ả
k
v iớ
k j. ≠
i v i phân m nh d c thì khóa chính ph i c l p l i trong các m nh con, còn các thu c tính khácĐố ớ ả ọ ả đượ ặ ạ ả ộ
ph i tách r iả ờ
1.4.4 Ph ng pháp phân m nh ngang.ươ ả
1.4.4.1 Các yêu c u v thông tinầ ề
ph c v cho các ho t ng phân m nh ta c n có các lo i thông tin sau ây:Để ụ ụ ạ độ ả ầ ạ đ
Thông tin v c s d li u.ề ơ ở ữ ệ
ây là thông tin v l c d li u toàn c c, ch ra các m i liên k t gi a các quan h . Ta mô hình hóaĐ ề ượ đồ ữ ệ ụ ỉ ố ế ữ ệ
s liên k t này b ng m t th có h ng, các cung ch m t liên h k t n i b ng, m i nút là m t l c quanự ế ằ ộ đồ ị ướ ỉ ộ ệ ế ố ằ ỗ ộ ượ đồ
h . Quan h u ng n i g i là quan h ch nhân (Owner) còn quan h cu i ng n i g i là quanệ ệ ở đầ đườ ố ọ ệ ủ ệ ở ố đườ ố ọ
h thành viên (Member). ta nh ngh a hai hàm Owner và Member t t p các ng n i n t p các quanệ đị ĩ ừ ậ đườ ố đế ậ
h .ệ
GVHD: PGS.TS. PhúcĐỗ Trang 10
C s d li u nâng caoơ ở ữ ệ
Ta có các hàm Owner và Member xác nh nh sau: đị ư
Owner (L1) = PAY, Member (L1) = EMP
Owner (L2) = EMP, Member (L2) = ASG
Owner (L3) = PROJ, Member (L3) = ASG
Thông tin v ng d ngề ứ ụ
Thông tin v ng d ng có hai lo i: Thông tin nh tính dùng phân m nh vàthông tin nh l ngề ứ ụ ạ đị để ả đị ượ
dùng c p phát. để ấ
Thông tin nh tính v c b n là các v t dùng trong câu v n tin, các v t này c xây d ng d a trênđị ề ơ ả ị ừ ấ ị ừ đượ ự ự
s phân tích các ng d ng. ự ứ ụ
nh ngh a v t n gi n: Cho l c R = (AĐị ĩ ị ừ đơ ả ượ đồ
1
, A
2
, , A
n
) v i thu c tính Aớ ộ
i
có mi n xác nh Dề đị
i
ta
có v t n gi n ị ừ đơ ả
p: A
i
Value θ θ ∈ {<, , =, , >, } và Value ≤ ≥ ≠ ∈ D
i
T p Pậ
Ri
ch a các v t n gi n trên quan h Rứ ị ừ đơ ả ệ
i
.
Ví d v i quan h PROJ trên ta có t p v t nụ ớ ệ ở ậ ị ừ đơ
gi n sau: Pả
PROJ
= { PName = ‘Xây d ng’, Budget 100000 } ≤ự
nh ngh a v t h i s c p: Cho t p PĐị ĩ ị ừ ộ ơ ấ ậ
Ri
= {p
i1
, p
i2
, , p
im
} ch a các v t n gi n trên Rứ ị ừ đơ ả
i
. Ta
nh ngh a t p các v t h i s c p Mđị ĩ ậ ị ừ ộ ơ ấ
i
= {m
i1
, m
i2
, , m
it
} nh sau:ư
trong ó pđ
*
ik
là p
ik
ho c ặ ⌉p
ik
.
ây vì lí do ph c t p nên ta ch xét n các ph nh c a v t ng th c n gi n.Ở đ ứ ạ ỉ đế ủ đị ủ ị ừ đẳ ứ đơ ả
Ví d : Ta xét quan h PAY có các v t n gi n. ụ ệ ị ừ đơ ả
p
1
: Title = ‘Ks. i n’ Đ ệ
p
2
: Title = ‘Ks. H th ng’ ệ ố
p
3
: Title = ‘Ks. C khí’ ơ
p
4
: Title = ‘Ks. L p trình’ ậ
p
5
: Sal 3500 ≤
p
6
: Sal > 3500
t ó ta xây d ng c các v t h i s c p nh sau:ừ đ ự đượ ị ừ ộ ơ ấ ư
m
1
: Title = ‘Ks. i n’ Đ ệ ∧ Sal 3500 ≤
m
2
: Title = ‘Ks. i n’ Đ ệ ∧ Sal > 3500
GVHD: PGS.TS. PhúcĐỗ Trang 11
C s d li u nâng caoơ ở ữ ệ
m
3
: ⌉(Title = ‘Ks. i n’) Đ ệ ∧ Sal 3500 ≤
m
4
: ⌉(Title = ‘Ks. i n’) Đ ệ ∧ Sal > 3500
. . .
T t nhiên các v t n gi n c ng c coi là m t b ph n c a các v t h i s c p và th c ra mấ ị ừ đơ ả ũ đượ ộ ộ ậ ủ ị ừ ộ ơ ấ ự
3
và
m
4
có th vi t b ng cách s d ng m t v t t ng ng, ch ng h n: Title ‘Ks. i n’ ≠ể ế ằ ử ụ ộ ị ừ ươ đươ ẳ ạ Đ ệ ∧ Sal 3500.≤
N u ta c xây d ng v t h i m t cách máy móc thì có m t s tr ng h p có th vô ngh a i v i quan h .ế ứ ự ị ừ ộ ộ ộ ố ườ ợ ể ĩ đố ớ ệ
Các thông tin có liên quan n v t h i s c p là tuy n h i s c p và t n s truy xu t. tuy nđế ị ừ ộ ơ ấ độ ể ộ ơ ấ ầ ố ấ Độ ể
h i s c p o s l ng các b c a quan h c truy xu t b i câu v n tin s d ng v t h i s c p ó.ộ ơ ấ đ ố ượ ộ ủ ệ đượ ấ ở ấ ử ụ ị ừ ộ ơ ấ đ
T n s truy xu t ch t n s các ng d ng truy xu t d li u có s d ng câu v n tin s d ng v t h iầ ố ấ để ỉ ầ ố ứ ụ ấ ữ ệ ử ụ ấ ử ụ ị ừ ộ
s c p.ơ ấ
1.4.4.2 Phân m nh ngang nguyên th yả ủ
Phân m nh ngang nguyên th y là m t phép ch n trên quan h ch c a m t l c R. ả ủ ộ ọ ệ ủ ủ ộ ượ đồ
R
i
= δ
Fi
(R) i = 1, , t
ây Fở đ
i
là m t công th c ch n s d ng m t v t h i s c p mộ ứ ọ ử ụ ộ ị ừ ộ ơ ấ
i
Ví d : ụ Ta có th phân rã quan h PROJ thành PROJ1 và PROJ2 s d ng các v t c b n Budget ≤ể ệ ử ụ ị ừ ơ ả
100000 và Budget > 100000
PROJ1 = δ
Budget 100000≤
(PROJ)
PROJ2 =
Budget > 100000δ
(PROJ)
M t v n ộ ấ đề ph c t p là t p các v t h i s c p dùng phân m nh có th thay i khi các ngứ ạ ậ ị ừ ộ ơ ấ để ả ể đổ ứ
d ng ho t ng, s g p r t nhi u khó kh n khi mi n xác nh c a thu c tính là vô h n và liên t c. Ch ngụ ạ độ ẽ ặ ấ ề ă ề đị ủ ộ ạ ụ ẳ
h n khi thêm m t b m i vào PROJ có budget là 500000 lúc ó ta ph i xem xét là t nó vào PROJ2 hay ph iạ ộ ộ ớ đ ả đặ ả
xây d ng thêm PROJ3 và h n ch ROJ2.ự ạ ế
PROJ2 = δ
100000<Budget 400000≤
(PROJ)
PROJ3 = δ
Budget > 400000
(PROJ)
Ví d : Ta phân m nh PROJ d a vào v trí c a d án. ụ ả ự ị ủ ự
PROJ1 = δ
Loc = ‘Toronto’
(PROJ)
PROJ2 = δ
Loc = ‘NewYork’
(PROJ)
PROJ3 = δ
Loc = ‘Paris’
(PROJ)
Nh v y ư ậ từ t p Mậ
i
các v t h i s c p ta có t p m nh ngang t ng ng Rị ừ ộ ơ ấ ậ ả ươ ứ
i
i=1 t c xây d ngđượ ự
trên phép ch n s d ng mọ ử ụ
i
, ta g i t p {Rọ ậ
i
} là t p các m nh h i s c p. S các m nh ngang ph thu c vào t pậ ả ộ ơ ấ ố ả ụ ộ ậ
v t h i s c p, nh v y phân m nh c n xác nh t p các v t n gi n s t o ra các v t h i s c p.ị ừ ộ ơ ấ ư ậ để ả ầ đị ậ ị ừ đơ ả ẽ ạ ị ừ ộ ơ ấ
M t t p v t n gi n s ph i là m t t p v t có tính y và c c ti u. Tính y c hi u là xác su tộ ậ ị ừ đơ ả ẽ ả ộ ậ ị ừ đầ đủ ự ể đầ đủ đượ ể ấ
m i ng d ng truy xu t n m t b nào ó trong m t m nh h i s c p nào ó c sinh ra nh t p v tỗ ứ ụ ấ đế ộ ộ đ ộ ả ộ ơ ấ đ đượ ờ ậ ị ừ
n gi n ó u b ng nhau. Tính c c ti u c hi u là m t v t là th a n u không có ng d ng nào truyđơ ả đ đề ằ ự ể đượ ể ộ ị ừ ừ ế ứ ụ
xu t n m nh do nó sinh ra. ấ đế ả
Ví d : V i ví d trên ta xác nh t p các Pụ ớ ụ đị ậ
PROJ
= {Loc = ‘Toronto’, Loc = ‘NewYork’, Loc = ‘Paris’}.
N u truy ế xu tấ theo v trí thì Pị
PROJ
là y .đầ đủ
N u có ế thêm ng d ng truy các b theo Budget 100000 thì P≤ứ ụ ộ
PROJ
không y . Trong tr ngđầ đủ ườ
h p ó ta ph i b xung cho PPROJ tr thành y và lúc này thì ta có Pợ đ ả ổ để ở đầ đủ
PROJ
= {Loc = ‘Toronto’, Loc =
‘NewYork’, Loc = ‘Paris’, Budget 100000, Budget >100000}≤
Ví d : Xét PROJ có các ng d ng truy xu t theo v trí và ngân sáchụ ứ ụ ấ ị
• T p Pậ
PROJ
là n gi n và c c ti u. đơ ả ự ể
• N u b xung thêm v t n gi n PName = ‘Xây d ng’ vào Pế ổ ị ừ đơ ả ự
PROJ
thì làm cho t p v t này không c cậ ị ừ ự
ti u vì không có ng d ng nào truy xu t n m nh do nó sinh ra. ể ứ ụ ấ đế ả
GVHD: PGS.TS. PhúcĐỗ Trang 12
C s d li u nâng caoơ ở ữ ệ
Khi m t ộ t pậ v t là c c ti u thì t t c các v t trong ó u sinh ra phân m nh c truy xu t b iị ừ ự ể ấ ả ị ừ đ đề ả đượ ấ ở
ít nh t m t ng d ng, ta g i nh ng v t ó là có liên i.ấ ộ ứ ụ ọ ữ ị ừ đ đớ
B c 1: ướ Thu tậ toán tìm t p v t y và c c ti u.ậ ị ừ đầ đủ ự ể
Quy t c ắ cơ b n v DD&CT: M t quan h ho c m t m nh c phân ho ch thành ít nh t haiả ề ộ ệ ặ ộ ả đượ ạ ấ
ph n và chúng c truy xu t khác nhau b i ít nh t m t ng d ng. ầ đượ ấ ở ấ ộ ứ ụ
Ta g i fọ
i
c a Pủ
R
là m nh fả
i
c sinh ra t m t v t h i s c p trong Pđượ ừ ộ ị ừ ộ ơ ấ
R
.
Thu t ậ toán COM_MIN
u vào R là quan h ; PĐầ ệ
R
là t p v t n gi n.ậ ị ừ đơ ả
u ra PĐầ
R’
là t p v t n gi n và c c ti u. ậ ị ừ đơ ả ự ể
Begin
Tìm m t v t pộ ị ừ
i
∈P
R
sao cho p
i
phân ho ch R theo quy t c c b n DD&CT; ạ ắ ơ ả
P
R’
= {p
i
};
P
R
= P
R
–{p
i
};
F = {f
i
} /* fi là m nh h i s c p sinh ra b i pả ộ ơ ấ ở
i
*/
Do
Begin
Tìm m t pộ
j
∈P
R
sao cho p
j
phân ho ch m t m nh fạ ộ ả
k
c a Pủ
R’
theo quy t c c b nắ ơ ả
DD&CT ;
P
R’
= P
R’
∪{p
j
} ;
P
R
= P
R
–{p
j
} ;
F = F∪{f
j
} ; /* f
j
sinh ra b i pở
j
If ∃ p
k
∈P
R’
là m t v t không có liên i then ộ ị ừ đớ
Begin
P
R’
= P
R’
-{p
k
} ;
F = F-{f
k
}
End ;
End ;
Until P
R’
là y đầ đủ
End.
B c 2 : ướ Tính t p v t h i s c p t t p y và c c ti u. ậ ị ừ ộ ơ ấ ừ ậ đầ đủ ự ể
Vi c tính toán này r t d nh ng hay d n n nh ng t p v t h i s c p r t l n do vi c tính máyệ ấ ễ ư ẫ đế ữ ậ ị ừ ộ ơ ấ ấ ớ ệ
móc. Vi c gi n c t p v t h i s c p c th c hi n b c th 3. ệ ả ướ ậ ị ừ ộ ơ ấ đượ ự ệ ở ướ ứ
B c 3 : ướ Lo iạ b nh ng v t h i s c p vô ngh a. ỏ ữ ị ừ ộ ơ ấ ĩ
Vi c này u tiên ph i xác nh nh ng v t mâu thu n v i t p các phép kéo theo. Ví d , Pệ đầ ả đị ữ ị ừ ẫ ớ ậ ụ
R’
= {p
1
,
p
2
} v i Att là thu c tính và {Vớ ộ
1
, V
2
} là mi n thu c tính c a Att ta có th gi thi t : ề ộ ủ ể ả ế
p
1
: Att = V
1
và p
2
: Att = V
2
V y ta ậ có các phép kéo theo
(Att = V
1
) ⇒ ⌈(Att = V
2
)
⌈(Att = V
1
) ⇒ (Att = V
2
)
Ta có các v t h i s c p c tính theo quy t c:ị ừ ộ ơ ấ đượ ắ
m
1
: (Att = V
1
) ∧ (Att = V
2
)
m
2
: (Att = V
1
) ∧ ⌈ (Att = V
2
)
m
3
: ⌈(Att = V
1
) ∧ (Att = V
2
)
m
4
: ⌈(Att = V
1
) ∧ ⌈ (Att = V
2
)
Các v t mị ừ
1
và m
4
mâu thu n v i các phép kéo theo chúng ta ã xác nh trên và vì th chúng ta s lo i nóẫ ớ đ đị ở ế ẽ ạ
ra kh i ỏ
PR’
B c 4: Thu t toán tìm t p v t h i s c p có ngh a.ướ ậ ậ ị ừ ộ ơ ấ ĩ
Thu t ậ toán PHORIZONTAL
GVHD: PGS.TS. PhúcĐỗ Trang 13
C s d li u nâng caoơ ở ữ ệ
u Đầ vào R là môt quan hệ
u ra M là t p các v t h i s c p có ngh a.Đầ ậ ị ừ ộ ơ ấ ĩ
Begin
P
R’
= COM_MIN (R, P
R
) ;
Tính t p M các v t h i s c p t Pậ ị ừ ộ ơ ấ ừ
R’
;
Tính t p các I các phép kéo theo gi a các pậ ữ
i
∈ P
R’
;
For m i mỗ
i
∈ M Do
If m
i
mâu thu n v i I then M = M – {mẫ ớ
i
}
End.
Ví d : Gi s có quan h PAY và PROJ ph i phân m nh ngang nguyên th y ụ ả ử ệ ả ả ủ
Gi s ch có m t ng d ng truy xu t PAY, m u tin nhân viên c l u tr t i hai n i. M t n iả ử ỉ ộ ứ ụ ấ ẫ đượ ư ữ ạ ơ ộ ơ
qu n lý thông tin c a các nhân viên có l ng cao h n 3500 và n i kia là các phân viên có l ng t 3500 trả ủ ươ ơ ơ ươ ừ ở
xu ng. Vì v y câu v n tin c a ng d ng s c truy xu t c hai n i. T p v t n gi n dùng phânố ậ ấ ủ ứ ụ ẽ đượ ấ ở ả ơ ậ ị ừ đơ ả để
ho ch PAY :ạ
p
1
: Sal 3500 ≤
p
2
: Sal > 3500
T ó ta có ừ đ t pậ v t n gi n kh i u là Pị ừ đơ ả ở đầ
R
= {p
1
, p
2
}. Áp d ng thu t toán COM_MIN v i kh i uụ ậ ớ ở đầ
i=1 ta có P
R’
= {p
1
}. ây chính là t p y và c c ti u vì pĐ ậ đầ đủ ự ể
2
không phân ho ch fạ
1
là m nh h i s c p cả ộ ơ ấ đượ
sinh ra t pừ
1
. V y chúng ta có các v t h i s c p sau:ậ ị ừ ộ ơ ấ
m
1
: Sal 3500 ≤
m
2
: ⌈(Sal 3500) t ng ng v i (Sal > 3500)≤ ươ đươ ớ
Cu i cùng ố chúng ta có các m nh ngang nguyên th y c a PAY c phân ho ch theo mả ủ ủ đượ ạ
1
và m
2
:
Gi s có hai ng d ng truy xu t n PROJ. M t ng d ng truy xu t theo v trí, ch ng h n ta cóả ử ứ ụ ấ đế ộ ứ ụ ấ ị ẳ ạ
câu truy v n:ấ
Select PName, Budget
From PROJ
Where Loc = Value
T ó ta có: ừ đ
P
PROJ
= { p
1
: Loc = ‘Toronto’; p
2
: Loc = ‘New York’; p
3
: Loc = ‘Paris’}
M t ng d ng khác truy xu t theo ngân sách, ta thêm vào các v t : ộ ứ ụ ấ ị ừ
p
4
: Budget 100000 và p≤
5
: Budget > 100000
Cu i cùng ta có t p các v t n gi n là: ố ậ ị ừ đơ ả
P
PROJ
= { p
1
: Loc = ‘Toronto’; p
2
: Loc = ‘New York’; p
3
: Loc = ‘Paris’;
p
4
: Budget 100000; p≤
5
: Budget > 100000}
Th c hi n thu t toán COM_MIN v i PPROJ ta th y t p PPROJ là y và c c ự ệ ậ ớ ấ ậ đầ đủ ự
ti u. ể
Xây d ng t p v t h i s c p M:ự ậ ị ừ ộ ơ ấ
m
1
: Loc = ‘Toronto’ ∧ Budget 100000 ≤
m
2
: Loc = ‘Toronto’ ∧ Budget > 100000
m
3
: Loc = ‘New York’ ∧ Budget 100000 ≤
GVHD: PGS.TS. PhúcĐỗ Trang 14
C s d li u nâng caoơ ở ữ ệ
m
4
: Loc = ‘New York’ ∧ Budget > 100000
m
5
: Loc = ‘Paris’ ∧ Budget 100000 ≤
m
6
: Loc = ‘Paris’ ∧ Budget > 100000
m
7
: p
1
∧ p
2
∧ p
3
∧ p
4
∧ p
5
. . .
Các phép kéo theo hi n nhiên:ể
i
1
: p
1
⇒ ⌈p
2
∧ ⌈p
3
i
5
: p
5
⇒ ⌈p
4
i
2
: p
2
⇒ ⌈p
1
∧ ⌈p
3
i
6
: ⌈p
4
⇒ p
5
i
3
: p
3
⇒ ⌈⎡p
1
∧ ⌈p
2
i
7
: ⌈p
5
⇒ p
4
i
4
: p
4
⇒ ⌈p
5
Xét trong t p M ch có các v t h i ch a hai v t n gi n là không x y ra mâu thu n v i các phépậ ỉ ị ừ ộ ứ ị ừ đơ ả ả ẫ ớ
kéo theo, vì v y chúng ta lo i b h t các v t h i ch gi l i các v t ó. Nh v y chúng ta có t p v t h iậ ạ ỏ ế ị ừ ộ ỉ ữ ạ ị ừ đ ư ậ ậ ị ừ ộ
s c p cu i cùng là: ơ ấ ố
M = {m
1
, m
2
, m
3
, m
4
, m
5
, m
6
}
Phân m nh ngang nguyên th y quan h PROJ theo M (l u ý là PROJ1 và PROJ6 là r ng) chúng ta có:ả ủ ệ ư ỗ
1.4.5 Phân m nh ngang d n xu t:ả ẫ ấ
Phân m nh ngang d n xu t c nh ngh a d a trên m t s phân m nh ngang m t quan h thànhả ẫ ấ đượ đị ĩ ự ộ ự ả ộ ệ
viên c a m t ng n i d a theo phép toán ch n trên quan h ch nhân c a ng n i ó, hay ta còn g i ó làủ ộ đườ ố ự ọ ệ ủ ủ đườ ố đ ọ đ
s phân m nh quan h thành viên d a trên c s phân m nh quan h ch nhân.ự ả ệ ự ơ ở ả ệ ủ
Cho tr c m t ng n i L, ta có: Owner (L) = S và Member (L) = R. nh ngh a các m nh ngangướ ộ đườ ố Đị ĩ ả
d n xu t c a R nh sau: ẫ ấ ủ ư
R
i
= R Sθ
i
v i i=1 sớ
trong ó s là s l ng các m nh ngang trên R, Sđ ố ượ ả
i
= δ
Fi
(S) là m nh ngang nguyên th y c xây d ngả ủ đượ ự
t v t h i s c p Fừ ị ừ ộ ơ ấ
i
, là phép liên k t b ng trên khóa k t n i c a ch nhân và thành viên. θ ế ằ ế ố ủ ủ
Ví d : xét s quan h PAY v i EMP có ng k t n i L1, ta nh ngh a phép liên k t b ng :θụ ơ đồ ệ ớ đườ ế ố đị ĩ ế ằ
PAY.Title = EMP.Title.
Trên quan h PAY ta có MPAY = { mệ
1
: Sa
l
3500; m≤
2
: Sa
l
>3500} t ó PAY c chia thành cácừ đ đượ
m nh h i s c p PAY1 và PAY2.ả ộ ơ ấ
PAY1 = δ
Sal 3500≤
(PAY)
PAY2 = δ
Sal > 3500
(PAY)
Ta có các m nh ngang d n xu t: EMP1 = EMP PAY1 θả ẫ ấ
EMP2 = EMP PAY2θ
GVHD: PGS.TS. PhúcĐỗ Trang 15
C s d li u nâng caoơ ở ữ ệ
S liên k t c a c s d li u sau khi phân m nh:ơ đồ ế ủ ơ ở ữ ệ ả
Ta có m t s nh n xét quan tr ng sau ây: ộ ố ậ ọ đ
+ Thu t toán phân m nh d n xu t c n có t p các phân ho ch quan h ch nhân - thành viên, t p v t liên k tậ ả ẫ ấ ầ ậ ạ ệ ủ ậ ị ừ ế
quan h gi a ch nhân và thành viên. ệ ữ ủ
+ N u m t quan h là thành viên c a nhi u h n m t ch nhân thì v n s tr nên ph c t p h n. ế ộ ệ ủ ề ơ ộ ủ ấ đề ẽ ở ứ ạ ơ
+ Phân m nh d n xu t s gây nên phân m nh lan truy n.ả ẫ ấ ẽ ả ề
1.4.6 Ph ng pháp phân m nh d cươ ả ọ
Ý ngh a c a phân m nh d c là t o ra các quan h nh h n sao cho gi m t i a th i gian th cĩ ủ ả ọ ạ ệ ỏ ơ để ả ố đ ờ ự
hi n c a các ng d ng ch y trên m nh ó. Vi c phân m nh d c là ho t ng chia m t quan h R thành cácệ ủ ứ ụ ạ ả đ ệ ả ọ ạ độ ộ ệ
m nh con Rả
1
, R
2
, , R
n
sao cho m i m nh con ch a t p con thu c tính và ch a c khóa c a R. V i cáchỗ ả ứ ậ ộ ứ ả ủ ớ
GVHD: PGS.TS. PhúcĐỗ Trang 16
C s d li u nâng caoơ ở ữ ệ
t v n nh v y thìđặ ấ đề ư ậ vi c phân m nh d c không ch là bài toán c a h c s d li u phân tán mà còn là bài toánệ ả ọ ỉ ủ ệ ơ ở ữ ệ
c a ngay c h c s d li u t p trung. ủ ả ệ ơ ở ữ ệ ậ
Phân m nh d c là m t bài toán h t s c ph c t p, ng i ta ã ch ng minh c r ng n u quan h cóả ọ ộ ế ứ ứ ạ ườ đ ứ đượ ằ ế ệ
m thu c tính không ph i là thu c tính khóa thì s l ng các m nh d c c phân ra là s Bell th m (kí hi uộ ả ộ ố ượ ả ọ đượ ố ứ ệ
B(m)), s này t ng r t nhanh v i s m l n và t n mm. Ch ng h n m=10 thì B(m) 115.000, v i≈ố ă ấ ớ ố ớ đạ đế ẳ ạ ớ
m=15 thì B(m) 10≈
9
, v i m=30 thì B(m) 10≈ớ
23
. Vì v y bài toán phân m nh d c ph i s d ng n các thu tậ ả ọ ả ử ụ đế ậ
gi i heuristic. Có hai ph ng pháp chính ã c nghiên c u ó là ph ng pháp nhóm và ph ng pháp tách,ả ươ đ đượ ứ đ ươ ươ
trong hai ph ng pháp thì ph ng pháp tách t ra có s t i u h n. ươ ươ ỏ ự ố ư ơ
Ph ng pháp nhóm: Kh i u b ng t p các m nh, m i m nh có m t thu c tính, t i m i b c ghépươ ở đầ ằ ậ ả ỗ ả ộ ộ ạ ỗ ướ
m t s m nh l i cho n khi th a mãn m t tiêu chu n nào ó. ộ ố ả ạ đế ỏ ộ ẩ đ
Ph ng pháp tách: T i m i b c tìm m t phân ho ch có l i cho vi c truy xu t c a ng d ng trên cácươ ạ ỗ ướ ộ ạ ợ ệ ấ ủ ứ ụ
thu c tính c a nó. ộ ủ
Thông tin dùng phân m nh d c có liên quan n các ng d ng, m t m nh d c th ng ch a cácđể ả ọ đế ứ ụ ộ ả ọ ườ ứ
thu c tính th ng xuyên c truy xu t chung b i m t ng d ng, ng i ta tìm cách l ng hóa khái ni m nàyộ ườ đượ ấ ở ộ ứ ụ ườ ượ ệ
b ng m t s o g i là “ái l c” (affinity – ái l c ho c s lôi cu n). S o này có th tính c khi ta tính cằ ộ ố đ ọ ự ự ặ ự ố ố đ ể đượ đượ
t n s truy xu t t i các thu c tính ó c a ng d ng. Trên c s khái ni m “ái l c” và tính c s d ngầ ố ấ ớ ộ đ ủ ứ ụ ơ ở ệ ự đượ độ ử ụ
thu c tính c a các câu v n tin c a ng d ng ng i ta ã xây d ng c gi i thu t tách r t h u hi u.ộ ủ ấ ủ ứ ụ ườ đ ự đượ ả ậ ấ ữ ệ
G i Q = {qọ
1
, q
2
, . . ., q
t
} là t p các câu v n tin mà ng d ng s truy xu t trên ậ ấ ứ ụ ẽ ấ
quan h R(Aệ
1
, A
2
, . . ., A
n
). V i m i câu v n tin qớ ỗ ấ
i
và thu c tính Aộ
j
chúng ta s a ra m t giá tr s d ngẽ đư ộ ị ử ụ
thu c tính, kí hi u là use (qộ ệ
i
, A
j
) c nh ngh a nh sau:đượ đị ĩ ư
các giá tr use (qị
i
, *) r t d xác nh n u chúng ta bi t c các ng d ng ch y trên CSDL.ấ ễ đị ế ế đượ ứ ụ ạ
Ví d : Xét quan h PROJ, gi s các ng d ng s d ng câu v n tin SQL truy xu t n nó:ụ ệ ả ử ứ ụ ử ụ ấ ấ đế
q1: Tìm ngân sách c a d án theo mã s . ủ ự ố
SELECT Budget
FROM PROJ
WHERE PNo = V
q2: Tìm tên và ngân sách c a t t c các d án. ủ ấ ả ự
SELECT PName, Budget
FROM PROJ
q3: Tìm tên c a d án theo v trí. ủ ự ị
SELECT PName
FROM PROJ
WHERE Loc = V
q4: Tìm t ng ngân sách d án t i m i v trí. ổ ự ạ ỗ ị
SELECT Sum (Budget)
FROM PROJ
WHERE Loc = V
thu n ti n ta kí hi u AĐể ậ ệ ệ
1
= PNo, A
2
= PName; A
3
= Budget; A
4
= Loc. Chúng ta có ma tr n sauậ
âyđ
GVHD: PGS.TS. PhúcĐỗ Trang 17
C s d li u nâng caoơ ở ữ ệ
Ta nh n xét r ng giá tr s d ng không ch a thông tin v l n c a t n s ng d ng, s o nàyậ ằ ị ử ụ ứ ề độ ớ ủ ầ ố ứ ụ ố đ
n m trong nh ngh a v s o ái l c thu c tính aff (Aằ đị ĩ ề ố đ ự ộ
i
, A
j
)
trong ó ref(qđ
k
) là s truy xu t n các thu c tính (Aố ấ đế ộ
i
, A
j
) cho m i ng d ng c a qỗ ứ ụ ủ
k
t i ạ
v trí Sị
l
và acc(q
k
) là kí hi u s o t n s truy xu t ng d ng. K t qu tính toán c ệ ố đ ầ ố ấ ứ ụ ế ả đượ
m t ma tr n vuông nxn và ta g i nó là ma tr n ái l c thu c tính AA.ộ ậ ọ ậ ự ộ
Ví d : Ti p t c v i ví d trên và cho n gi n chúng ta gi s ref(qụ ế ụ ớ ụ để đơ ả ả ử
k
) = 1 cho t t c qấ ả
k
và S
l
:Số
o t n s truy xu t ng d ng gi thi t nh sauđ ầ ố ấ ứ ụ ả ế ư
acc
1
(q
1
) = 15 acc
2
(q
1
) = 20 acc
3
(q
1
) = 10
acc
1
(q
2
) = 5 acc
2
(q
2
) = 0 acc
3
(q
2
) = 0
acc
1
(q
3
) = 25 acc
2
(q
3
) = 25 acc
3
(q
3
) = 25
acc
1
(q
4
) = 3 acc
2
(q
4
) = 0 acc
3
(q
4
) = 0
Nh v y chúng ta tính s o ái l c gi a các thu c tính Aư ậ ố đ ự ữ ộ
1
và A
3
và b i vì ng d ng duy nh t truyở ứ ụ ấ
xu t n c hai thu c tính này là qấ đế ả ộ
1
nên ta có:
Ma tr n ái l c thu c tính y nh sau:ậ ự ộ đầ đủ ư
Thu t toán t nhóm. ậ ụ
M c tiêu c a thu t toán này là tìm m t ph ng pháp nào ó nhóm các thu c tính c a m t quan hụ ủ ậ ộ ươ đ để ộ ủ ộ ệ
l i d a trên các giá tr ái l c thu c tính trong AA. Ý t ng chính c a thu t toán là t m t ma tr n ái l c thu cạ ự ị ự ộ ưở ủ ậ ừ ộ ậ ự ộ
tính AA sinh ra m t ma tr n ái l c t CA d a trên các hoán v hàng và c t, hoán v c th c hi n sao cho sộ ậ ự ụ ự ị ộ ị đượ ự ệ ố
o ái l c chung AM là l n nh t.đ ự ớ ấ
trong ó aff(Ađ
0
,A
j
) = aff(A
i
,A
0
) = aff(A
n+1
,A
j
) = aff(A
i
,A
n+1
) = 0 là các i u ki n biên khi m t thu c tính cđ ề ệ ộ ộ đượ
t vào CA vào bên trái c a thu c tính c n trái ho c v bên ph i c a thu c tính c n ph i trong các hóan v c t,đặ ủ ộ ậ ặ ề ả ủ ộ ậ ả ị ộ
GVHD: PGS.TS. PhúcĐỗ Trang 18
C s d li u nâng caoơ ở ữ ệ
t ng t c n trên d i i v i hoán v hàng. Vì ma trân ái l c AA có tính i x ng nên công th c trên có th thuươ ự ậ ướ đố ớ ị ự đố ứ ứ ể
g n:ọ
Chúng ta nh ngh a c u n i (bond) gi a hai thu c tính Ađị ĩ ầ ố ữ ộ
x
và A
y
là:
d a vào nh ngh a ó chúng ta có th vi t l i AM nh sau:ự đị ĩ đ ể ế ạ ư
Bây gi chúng ta xét dãy thu c tính nh sau:ờ ộ ư
s o ái l c chung cho các thu c tính này là:ố đ ự ộ
AM
old
= AM’+AM ’’+ bond(A
i-1
,A
i
)+bond(A
i
,A
j
)+bond(A
j
,A
i
)+bond(A
j
,A
j+1
) = M’+AM ’’+ bond(A
i-1
,A
i
)
+bond(A
j
,A
j+1
)+ 2bond(A
i
,A
j
)
Khi t m t thu c tính m i Ak gi a các thu c tính Ađặ ộ ộ ớ ữ ộ
i
và A
j
thì s o ái l c chung m i là:ố đ ự ớ
AM
new
= AM’+AM ’’+ bond(A
i-1
,A
i
)
+
bond(A
i
,A
k
)+bond(A
k
,A
i
)+bond(A
k
,A
j
)+bond(A
j
,A
k
)+bond(A
j
,
Aj+1
)
= AM’+AM ’’+ bond(A
i-1
,A
i
)+bond(A
j
,A
j+1
)+
2bond(A
i
,A
k
) + 2bond(A
k
,A
j
)
óng góp th c cho s o ái l c chung khi t AĐ ự ố đ ự đặ
k
gi a Aữ
i
và A
j
là:
cont(A
i
,A
k
,A
j
) = AM
new
– AM
old
= 2bond(A
i
,A
k
) + 2bond(A
k
,A
j
) - 2bond(A
i
,A
j
)
Ví d : V i ma tr n AA c tính trên, tính óng góp th c khi chuy n thu c tính Aụ ớ ậ đượ ở đ ự ể ộ
4
vào gi a cácữ
thu c tính Aộ
1
và A
2
cont(A
1
,A
4
,A
2
)
= 2bond(A
1
,A
4
) + 2bond(A
4
,A
2
) - 2bond(A
1
,A
2
)
Ta có:
bond(A
1
,A
4
) = 45*0 + 0*75 + 45*3 + 0*78 = 135
bond(A
4
,A
2
) = 11865
bond(A
1
,A
2
) = 225
vì v y: cont(Aậ
1
,A
4
,A
2
) = 2*135 + 2*11865 – 2*225 = 23550
Thu t toán n ng l ng n i BEA (Bond Energy Algorithm) ậ ă ượ ố
Thu t toán n ng l ng n i c th c hi n qua ba b c.ậ ă ượ ố đượ ự ệ ướ
B1. Kh i gán. t và c nh m t trong các c t c a AA vào trong CA. C t 1 c ch n trong thu tở Đặ ố đị ộ ộ ủ ộ đượ ọ ậ
toán này.
B2. Th c hi n l p. L y l n l t m t trong n-i c t còn l i (i là s c t ã t vào trong CA) và th tự ệ ặ ấ ầ ượ ộ ộ ạ ố ộ đ đặ ử đặ
chúng vào i+1 v trí còn l i trong ma tr n CA. N i t c ch n sao cho nó óng góp nhi u nh t cho s áiị ạ ậ ơ đặ đượ ọ đ ề ấ ố
l c chung c mô t trên. Vi c l p c k t thúc khi không còn c t nào t ự đượ ả ở ệ ặ đượ ế ộ để đặ
B3. S p th t hàng. M t khi th t c t ã c xác nh, các hàng c ng c n c t l i cácắ ứ ự ộ ứ ự ộ đ đượ đị ũ ầ đượ đặ ạ để
v trí t ng i c a chúng phù h p v i các v trí t ng i c a c tị ươ đố ủ ợ ớ ị ươ đố ủ ộ
Thu t toán BEA ậ
u vào: AA ma tr n ái l c thu c tính Đầ ậ ự ộ
GVHD: PGS.TS. PhúcĐỗ Trang 19
C s d li u nâng caoơ ở ữ ệ
u ra: CA ma tr n ái l c t . Đầ ậ ự ụ
Begin
/* Kh i gán */ ở
CA(*,1) := AA(*,1) ;
CA(*,2) := AA(*,2) ;
ndex := 3 ;
While index <= n Do /*Ch n v trí t t nh t cho thu c tính AAindex */ ọ ị ố ấ ộ
Begin
For i :=1 To index -1 Do tính cont (A
i-1
,A
index
,A
i
);
tính cont (A
index-1
, Ai
ndex
, A
index+1
);
loc := n i t c ch n b i giá tr cont l n nh t ơ đặ đượ ọ ở ị ớ ấ
For j := index DownTo loc Do CA(*,j) := AA(*,j-1);
CA(*,loc) := AA(*,index);
index := index + 1
End
S p th t các hàng theo th t t ng i c a c t. ắ ứ ự ứ ự ươ đố ủ ộ
End.
Ví d : Ti p t c v i nh ng k t qu tính toán nh ng ví d trên, chúng ta xem xét quá trình gom t cácụ ế ụ ớ ữ ế ả ở ữ ụ ụ
thu c tính c a quan h PROJ. ộ ủ ệ
Kh i u chúng ta t c t 1 và 2 c a AA vào ma tr n CA. Ti p theo chúng ta xét c t 3 (thu c tínhở đầ đặ ộ ủ ậ ế ộ ộ
A3), có ba cách t mô t theo v trí là 3-1-2, 1-3-2 ho c 1-2-3. Chúng ta tính óng góp cho s o ái l cđặ ả ị ặ đ ố đ ự
chung c a m i kh n ng này :ủ ỗ ả ă
Th t 0-3-1 : ứ ự
cont(A
0
,A
3
,A
1
) = 2bond(A
0
,A
3
) + 2bond(A
3
,A
1
) - 2bond(A
0
,A
1
)
chúng ta bi t r ng bond(Aế ằ
0
,A
1
) = bond(A
0
,A
3
) = 0, vì v y: ậ
cont(A
0
,A
3
,A
1
) = 2bond(A
3
,A
1
) = 2(45*48+5*0+53+45+3*0) = 8820
Th t 1-3-2 : ứ ự
bond(A
1
,A
3
) = bond(A
3
,A
1
) = 4410
bond(A
3
,A
2
) = 890
bond(A
1
,A
2
) = 225
cont(A
1
,A
3
,A
2
) = 2bond(A
1
,A
3
) + 2bond(A
3
,A
2
) - 2bond(A
1
,A
2
) = 10150
Th t 2-3-4 : ứ ự
bond(A
1
,A
4
) = 890
bond(A
3
,A
4
) = bond(A
2
,A
4
) = 0
cont(A
2
,A
3
,A
4
) = 2bond(A
2
,A
3
) + 2bond(A
3
,A
4
) - 2bond(A
2
,A
4
) = 1780
Trong nh ng cách tính toán trên l u ý r ng c t Aữ ư ằ ộ
0
và c t Aộ
4
là các v trí r ng c a ma tr n CA trong ngị ỗ ủ ậ ữ
c nh hi n t i, không c nh m l n v i thu c tính Aả ệ ạ đượ ầ ẫ ớ ộ
4
.Ta th y th t 1-3-2 có s óng góp l n nh t nên vấ ứ ự ố đ ớ ấ ị
trí này c ch n.đượ ọ
GVHD: PGS.TS. PhúcĐỗ Trang 20
C s d li u nâng caoơ ở ữ ệ
Trong b ng (d) trên ta th y ma tr n có hai t , góc trên trái bao g m các giá tr ái l c nh , góc d i ph i có cácả ở ấ ậ ụ ồ ị ự ỏ ướ ả
giá tr ái l c l n, tuy nhiên trên th c t s tách bi t này không hoàn toàn rõ ràng. N u ma tr n CA l n ta s th y cóị ự ớ ự ế ự ệ ế ậ ớ ẽ ấ
nhi u t h n vì v y s d n n có nhi u phân ho ch l a ch n h n.ề ụ ơ ậ ẽ ẫ đế ề ạ để ự ọ ơ
Thu t toán phân ho ch thu c tính.ậ ạ ộ
Xét ma tr n t , m t i m n m trên ng chéo s xác nh hai t p thu c tính. Gi s i m ó n m c t iậ ụ ộ đ ể ằ đườ ẽ đị ậ ộ ả ử đ ể đ ằ ở ộ
thì các t p ó là {Aậ đ
1
, . . ., A
i
} và {A
i+1
, . . ., A
n
}, ta g i là t p nh (top) TA và t p áy (bottom) BA.ọ ậ đỉ ậ đ
GVHD: PGS.TS. PhúcĐỗ Trang 21
C s d li u nâng caoơ ở ữ ệ
Xét t p ng d ng Q = {qậ ứ ụ
1
, q
2
, . . ., q
t
}, ta nh ngh a các t p ng d ng ch truy xu t TA, ch truy xu t BAđị ĩ ậ ứ ụ ỉ ấ ỉ ấ
ho c c hai. AQ(qặ ả
i
) t p thu c tính c truy xu t b i ng d ng qậ ộ đượ ấ ở ứ ụ
i
, TQ và BQ là t p ng d ng ch truyậ ứ ụ ỉ
xu t TA và BA, OQ là t p ng d ng truy xu t c hai.ấ ậ ứ ụ ấ ả
AQ(q
i
) = {A
j
⎪ use (q
i
,A
j
) = 1} TQ = {q
i
| AQ(qi) ⊆ TA}
BQ = {q
i
| AQ(q
i
) ⊆ BA} OQ = Q – {TQ ∪ BQ}
Gi s có n thu c tính thì chúng ta có n-1 v trí có th ch n cho i m phân chia. V trí t t nh t ch n saoả ử ộ ị ể ọ đ ể ị ố ấ để ọ
cho t ng các truy xu t ch m t m nh là l n nh t còn t ng truy xu t c hai m nh là nh nh t. Chúng ta nhố ấ ỉ ộ ả ớ ấ ổ ấ ả ả ỏ ấ đị
ngh a ph ng trình chi phí nh sau:ĩ ươ ư
Ph ng trình t i u hóa xác nh i m x (1 x n) sao cho: ≤ ≤ươ ố ư đị đ ể
z = CTQ * CBQ – COQ2 max→
ch n c x theo ph ng trình t i u hóa chúng ta ph i xét t t c n-1 tr ng h p. cho n gi nĐể ọ đượ ươ ố ư ả ấ ả ườ ợ Để đơ ả
chúng ta ch xét tr ng h p i m z là duy nh t và t n m góc trên trái và góc d i ph i c a ma tr n CA. i mỉ ườ ợ đ ể ấ ụ ằ ở ướ ả ủ ậ Đ ể
z chia quan h R thành hai m nh Rệ ả
1
và R
2
sao cho R
1
R∩
2
= K (t p thu c tính khóa chính)ậ ộ
Thu t toán PARTITION ậ
u vào: CA ma tr n ái l c t , R quan h , ref ma tr n s d ng thu c tính, acc maĐầ ậ ự ụ ệ ậ ử ụ ộ
tr n t n s truy xu t, K t p thu c tính khóa chính c a Rậ ầ ố ấ ậ ộ ủ
u ra: F t p các m nh d c. Đầ ậ ả ọ
Begin
z là v trí thu c c t th nh t; ị ộ ộ ứ ấ
tính CTQ
1
;
tính CBQ
1
;
tính COQ
1
;
best := CTQ
1
* CBQ
1
– COQ
2
1
For i := 2 To n-1 Do
Begin
tính CTQ
i
;
tính CBQ
i
;
tính COQ
i
;
z := CTQ
i
* CBQ
i
– COQ
2
i
;
If z > best Then best := z
End;
R
1
:= TA(R) ∏ ∪ K;
R
2
:= BA(R) ∏ ∪ K;
F := R
1
∪R
2
End.
Ví d : Ti p t c v i các tính toán trên và v i nh ng d li u ã có. ụ ế ụ ớ ở ớ ữ ữ ệ đ
acc
1
(q
1
) = 15 acc
2
(q
1
) = 20 acc
3
(q
1
) = 10
acc
1
(q
2
) = 5 acc
2
(q
2
) = 0 acc
3
(q
2
) = 0
acc
1
(q
3
) = 25 acc
2
(q
3
) = 25 acc
3
(q
3
) = 25
acc
1
(q
4
) = 3 acc
2
(q
4
) = 0 acc
3
(q
4
) = 0
GVHD: PGS.TS. PhúcĐỗ Trang 22
C s d li u nâng caoơ ở ữ ệ
v trí 1 : TA = {AỞ ị
1
}, TQ = {}, BQ = {q
2
, q
3
, q
4
}, OQ = {q
1
}
CTQ
1
= 0
CBQ
1
= acc
1
(q
2
) + acc
2
(q
2
) + acc
3
(q
2
) + acc
1
(q
3
) + acc
2
(q
3
) + acc
3
(q
3
) +
acc
1
(q
4
) + acc
2
(q
4
) + acc
3
(q
4
) = 83
COQ1 = 45
z = - 2025
v trí 2 : TA = {AỞ ị
1
, A
3
}, TQ = {q
1
}, BQ = {q
3
}, OQ = {q
2
, q
4
}
CTQ
2
= 45
CBQ
2
= 75
COQ
2
= 8
z = 3311
v trí 3 : TA = {AỞ ị
1
, A
3
, A
2
}, TQ = {q
1
, q
2
}, BQ = {}, OQ = {q
3
, q
4
}
CTQ
3
= 50
CBQ
3
= 0
COQ
3
= 78
z = - 6084
Ta ch n v trí 3 làm i m phân chia vì t i v trí này giá tr chi phí là cao nh t. Nh v y chúng ta có PROJọ ị đ ể ạ ị ị ấ ư ậ
1
= {A
1
,
A
3
} và PROJ
2
= {A
1
, A
2
, A
4
}. T c là PROJứ
1
= {PNo, Budget} và PROJ
2
= M{PNo, PName, Loc}
Ch ng 2. ươ Demo Phân m nh d cả ọ
Giao di n ch ng trình:ệ ươ
GVHD: PGS.TS. PhúcĐỗ Trang 23
C s d li u nâng caoơ ở ữ ệ
Ch ng trình c load lên t file .txt có format nh sau:ươ đượ ừ ư
Tài li u tham kh o:ệ ả
1. Giáo trình môn C s d li u nâng cao c a PGS.TS. Phúc – Tr ng H Công ngh thông tinơ ở ữ ệ ủ Đỗ ườ Đ ệ
2. Bài gi ng c s d li u nâng cao c a Tr ng H Hàng H i – Khoa công ngh thông tinả ơ ở ữ ệ ủ ườ Đ ả ệ
3. Forum Môn c s d li u nâng cao, ào t o sau i h cơ ở ữ ệ Đ ạ đạ ọ
GVHD: PGS.TS. PhúcĐỗ Trang 24
C s d li u nâng caoơ ở ữ ệ
GVHD: PGS.TS. PhúcĐỗ Trang 25