Tải bản đầy đủ (.docx) (25 trang)

Cơ sở dữ liệu phân tán Demo thuật toán phân mảnh dọc

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 (846.75 KB, 25 trang )

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

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

×