You are on page 1of 84

CHƯƠNG II: NGUYÊN LÝ HỆ CSDL

PHÂN TÁN
l ĐẶC TRƯNG TRONG SUỐT CỦA CSDL-PT
(Distributed Database Transparency Features)
an
l Cho phép người sử dụng cảm tưởng như
CSDL chỉ cho mình họ h u
l Các đặc trưng bao gồm:
c T

D u
Trong suốt phân tán (Distribution transparency)

– N g
Trong suốt giao tác (Transaction transparency)
Trong suốt lỗi (Failure transparency)
– Trong suốt hiệu năng (Performance transparency)
TRONG SUỐT PHÂN TÁN

Cho phép quản lý 1 CSDL bố trí vật lý tản mạn nhưan


l
1 CSDL tập trung
h u
l

c T
trong suốt phân mảnh (fragmentation tranparency)
l
l
D u
trong suốt định vị (location tranparency).
trong suốt ánh xạ cục bộ (Local mapping

l
tranparency)
N g
trong suốt sao lặp (replication transparency).
TỔNG KẾT CÁC ĐẶC TRƯNG TS

an
h u
c T
D u
N g
PHÂN MẢNH DỮ LIỆU

Phân mảnh (fragmentation) DL là việc chia an


l
các quan hệ trong 1 CSDL thành các quan h u
hệ nhỏ hơn (các mảnh : fragment)
c T
l Lý do phân mảnh:
D
Tạo CSDL cho các site trên mạng
u


N g
Nâng cao hiệu năng xử lý (tăng mức độ xử lý
đồng thời)
THIẾT KẾ CSDL-PT

an
Tiếp cận Top-down :
h u
- Có DB…

c T
- Làm thế nào để phân chia dữ liệu và định vị vào các
sites
D u
Tiếp cận Bottom-up :

N g
- Nhiều-database (có khả năng không thuần nhất, tự
trị, )
- Không xét!
Hai bài toán trong thiết kế CSDL-PT:

Phân mảnh(Fragmentation) an
l

hu
l
- Phân chia các quan hệ vào các “mảnh”
Định vị các mảnh vào các nút mạng
c T
D u
Mục đích
N g
Tối ưu thời gian/ thông lương/ chi phí…
CÁC TIÊU CHUẨN PHÂN MẢNH

Điều kiện đầy đủ: (Completeness condition)


an
u
l

T h
- Nếu quan hệ R được phân thành các mảnh R1, R2, .., Rn, thì
mỗi mục dữ liệu có trong R phải có mặt trong 1 hoặc nhiều mảnh
Ri
l

u c
Điều kiện kiến thiết (Reconstruction condition):

l
g D
-Nó phải có khả năng kiến thiết lại mỗi một quan hệ toàn cục từ
các phân mảnh của nó.
Điều kiện phân tách được (Disjointness condition) :
N
-Nếu quan hệ R được phân mảnh ngang thành các mảnh R1, R2,
..,Rn và mục dữ liệu tj nằm trong mảnh Rj, thì nó sẽ không nằm
trong một mảnh Rk (k<>j). Nếu quan hệ phân rã dọc các thuộc
tính khóa chính phải nằm trong mỗi mảnh
CÁC TIÊU CHUẨN PHÂN MẢNH

R Þ F = {F1, F2, …, Fn} an


l
Completeness hu
l

c
Mọi data item x Î R, $ FiÎF mà xÎFi T
l Disjointness
D u
l

Reconstruction N g
"xÎFi, Ø$ Fj mà xÎFj, i ¹ j

– Có 1 hàm sao cho


– R = g(F1, F2, …, Fn)
CÁC LOẠI PHÂN MẢNH

Phân mảnh theo hàng ngang của một quan hệ R là an


l

h
tách quan hệ R theo cách mà mỗi n_bộ của R có u
mặt trong 1 hay nhiều quan hệ thành phần.
c T
D u
(Cụ thể là chia quan hệ R thành các tập con
R1,R2,..,Rn. Mỗi tập con chứa một số n_bộ của R.

N g
Có thể khôi phục R bằng phép hợp các Ri. Ví dụ sự
phân chia số liệu các khách hàng giao dịch của một
ngân hàng thành các tập số liệu của các chi nhánh)
CÁC LOẠI PHÂN MẢNH

Phân mảnh theo chiều dọc của quan hệ R là tách an


l
lược đồ của quan hệ R thành các lược đồ có số cột
h u
nhỏ hơn. ( Phân mảnh theo chiều dọc thực ra là
c
thực hiện phép chiếu quan hệ R lên tập các thuộc
T
tính của các quan hệ Ri.
D u
– Ri =P (thuộc tính Ai) (R)

Ng
(Chú ý các Ri phải chứa một thuộc tính nối để phục hồi R)
Ví dụ
Quan hệ E (#,name,loc,sal,…)

an
40% truy vấn: 40% truy vấn:
h u
Qa: select * Qb: select *
c T
from E
where loc=Sa D u
from E
where loc=Sb
and…
N g and ...
Dẫn đến: hai site: Sa, Sb
Qa ® Sa Sb ¬ Qb
# NM Loc Sal
E 5 Joe Sa 10
7
8
Sally
Tom
Sb 25
Sa 15 an
h u

..
..
F
c T
# NM Loc Sal
D u
# NM Loc Sal
5
8
Joe
Tom
Sa 10
Sa 15 N g7 Sally Sb 25
..
..

At Sb
At Sa
F = { F1, F2 }

s s an
F1 = loc=Sa(E) F2 = loc=Sb(E)
h u
c T
D u
Þ sự phân mảnh này gọi phân mảnh ngang cơ
g
sở (primary horizontal fragmentation)
N
Phân mảnh
l Ngang Cơ sở

R
Phụ thuộc các thuộc tính cục bộ

an
Suy dẫn
h u
T
Phụ thuộc vào các quan hệ ngoài

c
l Dọc
R
D u
N g
Thế nào là một phân mảnh tốt?

an
Ví dụ: hu
F= { F1, F2 } c T
F1 = s sal<10 E F2 = sg D
sal>20 E
u
N
Thế nào là một phân mảnh tốt?

an
hu
Ví dụ 2:
c T
F= { F3, F4 }
D u
F3 = s sal<10 E sg
F4 = sal>5 E
N
Thế nào là một phân mảnh tốt?

an
óPhân chia đoạn lặp rõ ràng hơn
hu
Example: F = { F5, F6, F7 }
c T
s
F5 = sal £ 5 E F6 = s D 5<sal<10 u
E

F =s
7 sal ³ 10 E
N g
? Chú ý đoạn lặp F6
THỂ HIỆN CÁC TIÊU CHUẨN CỦA
PHÂN MẢNH NGANG

F = {F1, F2, …, Fn} an


R Þ
hu
l Tính đầy đủ (Completeness)
c T
l
– Mọi bộ tÎR, $ FiÎF mà tÎFi
Tính tách biệt (Disjointness) D u

N g
"tÎFi, Ø$ Fj mà tÎFj, i ¹ j
l Tính kiến thiết (construction)
Làm thế nào kiểm tra tính đầy đủ
và tính tách biệt?

an
hu
(1) Kiểm tra điều đó bằng “thủ công”!
c T
ví dụ :
D u
F1 = ssal<10 E ; F2 = ssal³10 E

N g
Làm thế nào để có được tính đầy
đủ và tính tách biệt?

an
(2) “Tự động” sinh các mảnh
h u
với những đặc tính :
c T
•Phân mảnh ngang được định D unghĩa

N g
bởi các lệnh (với) vị ngữ Select
• Phát ra 1 tập các lệnh select cho
những đặc tính này
Ví dụ:

an
l Phát biểu các truy vấn dựa vào các vị từ “đơn giản”
h u
A<10, A>5, Loc = SA, Loc = SB

c T
l Bước Tiếp:

D u
- sinh các vị từ hội sơ cấp (minterm)
- khử các vị từ vô dụng

g
• Cho các vị từ đơn giản Pr= { p1, p2,.. pn }
N
Các vị từ hội sơ cấp có dạng
p1* Ù p2* Ù … Ù pn*
ở đây pk* là pk hay ¬pk
5<A<10

Các vị từ hội sơ cấp (I)

an
(1) A<10 Ù A>5 Ù Loc=SA Ù Loc=SB
Ù A>5 Ù Loc=SA Ù ¬(Loc=SB) h u
(2) A<10
(3) A<10 Ù A>5 Ù ¬(Loc=SA) Ù Loc=SB
c T
(4) A<10
(5) A<10 Du
Ù A>5 Ù ¬(Loc=SA) Ù ¬(Loc=SB)
Ù ¬(A>5) Ù Loc=SA Ù Loc=SB
(6) A<10
N g
Ù ¬(A>5) Ù Loc=SA Ù ¬(Loc=SB)
(7) A<10 Ù ¬(A>5) Ù ¬(Loc=SA) Ù Loc=SB
(8) A<10 Ù ¬(A>5) Ù ¬(Loc=SA) Ù ¬(Loc=SB)
A >= 10
Các vị từ hội sơ cấp (II)

(9) ¬(A<10) Ù A>5 Ù Loc=SA Ù Loc=SB an


(10) ¬(A<10) Ù A>5 Ù Loc=SA Ù¬(Loc=SB) h u
(11) ¬(A<10) Ù A>5 Ù¬(Loc=SA) Ù Loc=SB
c T
D u
(12) ¬(A<10) Ù A>5 Ù¬(Loc=SA) Ù¬(Loc=SB)
(13) ¬(A<10) Ù¬(A>5) Ù Loc=SA Ù Loc=SB

N g
(14) ¬(A<10) Ù¬(A>5) Ù Loc=SA Ù¬(Loc=SB)
(15) ¬(A<10) Ù¬(A>5) Ù¬(Loc=SA) Ù Loc=SB
(16) ¬(A<10) Ù¬(A>5) Ù¬(Loc=SA) Ù¬(Loc=SB)
A>=10
Các mảnh cuối cùng:
F2: 5 < A < 10 Ù Loc=SA
an
F3: 5 < A < 10
A£5
Ù
Ù
Loc=SB
hu
F6:
F7: A£5 Ù
Loc=SA
Loc=SB c T
F10: A ³ 10
D
Ù Loc=SA u
F11: A ³ 10 g
Ù Loc=SB
N
Chú ý: Loại bỏ các phân mảnh phụ
thuộc vào ngữ nghĩa:

an
Ví dụ : nếu LOC có thể ¹ SA, ¹ SB,
h u
chúng ta cần thêm các phân mảnh
F4: 5 <A <10 Ù Loc ¹ SA Ù Loc ¹ SB c T
F8: A £ 5 D u
Ù Loc ¹ SA Ù Loc ¹ SB
F12: A ³ 10 g
Ù Loc ¹ SA Ù Loc ¹ SB
N
Tại sao sử dụng thuật toán vị từ
hội sơ cấp (minterm)?

Phải chứng minh tập các phân mảnh là: an


l
Đầy đủ
h u

– Tách biệt
c T
D u
N g
Tổng kết

l Cho các vị từ đơn giản Pr= { p1, p2,.. pn } an


h
các vị từ hội sơ cấp (minterm predicates) là: u
M={m | m =
pkÎPr
Ù p *, 1 £ k £n } uc
k
T
g D
ở đây pk* là pk hay là ¬ pk N
l Các phân mảnh sm R đối với mọi m Î M là
đầy đủ và tách biệt
an
hu
c
Những vị từ đơn giản nào nên
T
dùng cho Pr? D u
N g
Trở lại ví dụ:

an
E(#, NM, LOC, SAL,…)
hu
Common queries:
c T
Qa: select *
from E D
from E
u
Qb: select *

N g
where LOC=Sa where LOC=Sb
and … and ...
Ba chọn lựa:

an
(1) Pr = { } F1 ={ E }
hu
(2) Pr = {LOC=Sa, LOC=Sb}
c T
F2={ s loc=Sa E, s loc=Sb E } u
(3) Pr = {LOC=Sa, LOC=Sb, Sal<10}
g D
N
F3={ sloc=Sa Ù sal<10 E, sloc=Sa Ù sal³10 E,
sloc=Sb Ù sal<10E, sloc=Sb Ù sal³10 E }
Một cách khác:
Loc=Sa Ù Qa: Select … loc = Sa ...
sal < 10
Qb: Select … loc = Sb ...
an
Loc=Sa Ù
h u
F1
sal ³ 10
F3 c T
Loc=Sb Ù
F2
D uF2 là tốt…
sal < 10

N g (không là F1 , F3 )
Loc=Sb Ù
sal ³ 10
Những đặc tính vị từ cần có

Các bộ trong cùng 1 phân mảnh bình đẳng an


l
trong truy xuất h u

c T
Vì thế chúng ta có thể sử dụng 1 phân mảnh như

l
1 đơn vị định vị
Càng ít phân mảnh càng tốt D u

N g
Bởi vị định vị là một bài toán tốt ưu phức tạp
Những vị từ đơn giản nào nên
dùng cho Pr?

ó Đặc tính cần có của Pr: an


- tối thiểu hu
-đầy đủ
c T
D u
N g
Định nghĩa không hình thức

an
Tập các vị từ Pr là đầy đủ
h u
Nếu mọi Fi Î F[Pr],
c T
với mọi ứng dụng chính. D u
Mọi t Î Fi có xác suất truy xuất bằng nhau đối

N g
Chú ý: F[Pr] là sự phân mảnh được xác định
bởi các vị từ hội sơ cấp sinh bởi Pr.
Trở lại ví dụ:
Loc=Sa Ù Qa: Select … loc = Sa ...
sal < 10

Các bộ này có Qb: Select … loc = Sb ...


an
Loc=Sa Ù xác suất
h u
F1
sal ³ 10
truy xuất cao hơn

c T
Loc=Sb Ù
Các bộ này có D u
sal < 10
xác suất

N g
truy xuất thấp hơn

Loc=Sb Ù
sal ³ 10
Vì vậy F1 là khô ng “tốt”...
Trở lại ví dụ:
Loc=Sa Ù Qa: Select … loc = Sa ...
sal < 10

a
Qb: Select … loc = Sb ...n
Loc=Sa Ù
Các bộ này có cùng
hu
F2
sal ³ 10
xác xuất truy suất

c T
Loc=Sb Ù
D u“ ”...
Vì vậy F2 là tốt
sal < 10

NC g
Loc=Sb Ù ũng như F3 ...
sal ³ 10
Định nghĩa không hình thức

an
h u
c T
D u
Tập các vị từ hội Pr là tối thiểu nếu không tồn
tại Pr’ Ì Pr là đầy đủ
N g
Trở lại ví dụ:

an
Đầy dủ ?

h u
(1) Pr = { }
(2) Pr = {LOC=Sa, LOC=Sb}
c T
No
Yes
(3) Pr = {LOC=Sa, LOC=Sb, Sal<10}
D u Yes

N g
Pr(2) là tập con của Pr(3),
Do đó Pr(3) không là tối thiểu ...
Phân mảnh ngang suy dẫn

(chủ) an
E(ENO, NAME, SAL, LOC)
h u
c
(thành viên)
T
Quan hệ một - nhiều

J(ENO, DESCRIPTION,…)
D u
EÞ F={ E1, E2} by LOC
N g
Truy vấn:
Cho biết tên nhân viên,
danh sách các dự án mà nhân viên tham gia
# NM Loc Sal # NM Loc Sal
5 Joe Sa 10 7 Sally Sb 25
E1 8 Tom Sa 15
E2 12 Fred Sb 15
… …

(at Sa) (at Sb) an


h u
J # Description
c T
5
7
work on 347 hw

D
go to moon u
5
12
… N g
build table
rest
# NM Loc Sal # NM Loc Sal
E1 5 Joe Sa 10 E2 7 Sally Sb 25
8 Tom Sa 15 12 Fred Sb 15
… …

(at Sa) (at Sb) an


h u
J1
#
5
Des
work on 347 hw J2
#
7
c T
Des
go to moon
5

build table
D 12

u rest

J1 = J E1 Ng J2 = J E2
Phân mảnh ngang suy dẫn

R, F = { F1, F2, ... Fn}


Fcó thể là
an
h u
cơ sở hay suy dẫn
ß
c T
S, D = {D1, D2, …Dn} ở đây Di =S
D u Fi

Qui ước : R là chủ


Ng
S là thành viên
• Kiểm tra tính đầy đủ và tách biệt
của phân mảnh suy dẫn

an
Ví dụ : Phát biểu J là:
hu
# Des
c T

33

build chair
D u
N g
E Nhưng #= 33 không thuộc E1 và cũng không thuộc E2!

Những bộ J sẽ không thuộc J1 cũng như không thuộc J2


Phân mảnh không đày đủ
Để đạt tính đầy đủ

an
h u
c
Kết nối attr(#) của quan hệ thành viên
T
Cần thỏa các tham chiếu ràng buộc toàn vẹn :

ß
D u
g
Kết nối attr(#)của quan hệ chủ
N
Ví dụ:

E1
# NM Loc Sal E2 # NM Loc Sal
5 Joe Sa 10 5 Fred Sb 20
… …

an
J # Description
h
Phân mảnh u
5

day off
T
không tách biệt!
c
D u
J1 #
5
Description
day off N g
J2
#
5
Description
day off
… …
Để đạt tính tách biệt

an
h u
kết nối attribute(#)
c T
u
nên là khóa của quan hệ chủ
D
N g
Tổng kết :Phân mảnh ngang

Kiểu: cơ sở (primary), (suy dẫn)derived an


l
Đạc tính: tính đầy đủ (completeness), tínhh u
l
tách biệt (disjointness)
c T
l
D u
Vị từ :tối thiểu (minimal), (đầy đủ) uniform

N g
Phân mảnh dọc
# NM Loc Sal
an
Ví dụ: E 5 Joe Sa 10
h u
7
8
Sally
Fred
Sb
Sa
25
15
c T

D u
E1 #
5
NM
Joe
Loc
Sa N g
E2 #
5
Sal
10
7 Sally Sb 7 25
8 Fred Sa 8 15
… …
an
R[T] Þ R1[T1] Ti Í T
hu
T
...

Rn[Tn]
u c
g D
N
Giống như sự chuẩn hóa các quan hệ
an
hu
Tính chất: R[T] Þ Ri[Ti]
c T
(1)Tính đầy đủ D u
N g
U Ti = T
all i
an
(2) Tính tách biệt
hu
Ti Ç Tj = Æ for all i,j i¹j
c
E1(#,LOC)
T
E(#,LOC,SAL)
D u
Ng E2(SAL)
# NM Sal
E
5 Joe 10
7 Sally 25

an
# NM Sal
hu
E1 5 Joe 10 E2
c T
7

Sally 25
D u
#
5
NM
Joe N g
Sal
10
7 Sally 10
5 Joe 25
7 Sally 25
(2)Tính tách biệt
Ti Ç Tj = Æ for all i,j i¹j

E1(#,LOC) an
E(#,LOC,SAL)
hu
c
E2(SAL)
T
D u
Ng !!
Không là 1 tính chất suy dẫn
(Không thể kiến thiết lại R!)
(3) Tính kiến thiết:Kết nối không mất thông tin

Ri = R
an
all i
hu
c T
Mọi phân mảnh đều chứa khóa, Du
E Một cách để kết nối không mất thông tin:

Key Í Ti g
for all
N i
ó Làm thế nào để quyết định các
thuộc tính gộp nhóm với nhau?

E1(#,NM,LOC) an
E2(#,SAL) hu
Example:
c T
E(#,NM,LOC,SAL)
D u
E1(#,NM)

N gE2(#,LOC)
E3(#,SAL)

?
Ái Lực thuộc tính (Attribute affinity)

Xét lược đồ quan hệ R(A1, A2,…,An) an


l
Các ứng dụng Q(q1, q2,….,qm) h u
l
l
c T
Use (qi, Aj) = 1, nếu Aj được qi tham chiếu

D u
0, trong trường hợp ngược lại

N g
Use(qi, Aj) : giá trị sử dụng thuộc tính
Ái Lực thuộc tính (Attribute affinity)

Ví dụ * Ma trận mẫu về giá trị sử dụng thuộc tínhan


l
(Ma trậnái lực thuộc tính AA) h u
c T
A1 A2 A3 A4
D u
q1
q2
1
0
0
1
1

N
1
g
0
0
q3 0 1 0 1
q4 0 0 1 1
Ái Lực thuộc tính (Attribute affinity)

Giá trị sử dụng thuộc tính không đủ cơ sở an


l
cho việc phân mảnh: chúng không biểu thị h u
độ lớn của tần số ứng dụng.
c T
l
D u
Số đo lực hút (affinity) của 2 thuộc tính Ai, Aj
ký hiệu aff(Ai, Aj) biểu thị cho cầu nối (bond)

N g
giữa 2 thuộc tính, dựa vào sự truy xuất của
các ứng dụng
Ái Lực thuộc tính (Attribute affinity)

Tamer Ôzsu nêu công thức để đo ái lực của 2 an


l
thuộc tính Ai, Aj: h u
l
c T
Gọi k là số mảnh của quan hệ R. R =R1R2R3..Rk
l
D u
Q = {q1,q2,..,qm} : tập các ứng dụng trên R
l
use(q,A). Use(q,B) =1 N g
Q(A,B) là tập các ứng dụng q của Q mà:
Ái Lực thuộc tính (Attribute affinity)

a
Ái lực giữa 2 thuộc tính Ai và Aj của quan hệ R và tập ứngn
l
dụng Q được định nghĩa:
h u
c T
l Aff(Ai, Aj) = ∑
u
∑ refl(q)accl(q)

D
qєQ(Ai, Aj) l є Rl

N g
refl(q) : số truy xuất đến các thuộc tính (Ai, Aj) cho mỗi ứng
dụng q tại vị trí Rl
accl(q) : tần số truy xuất ứng dụng q đến các thuụoc tính Ai,Aj
tại vị trí l.
Ái Lực thuộc tính (Attribute affinity)

an
Ví dụ : Xét lại ví dụ * , giả sử refl(q) =1 cho tất cả q
l
và Sl, và số mảnh là 3. Tần số ứng dụng cho mọi h u
cặp thuộc tính là:
c T
l accl(q1) = 15 ,accl(q1) = 20
D u
, accl(q1) = 10
l
l
accl(q2) = 5 ,accl(q2) = 0
N g , accl(q2) = 0
accl(q3) = 25 ,accl(q3) = 25 , accl(q3) = 25
l accl(q4) = 3 ,accl(q4) = 0 , accl(q3) =0
Ái Lực thuộc tính (Attribute affinity)

Lúc này số đo ái lực giữa thuộc tính A1 và an


l
A3 là: h u
l Aff(A1, A3) = ∑
3

c
∑ accl(q) T
qєQ(Ai, Aj) l=1
D u
N g
=accl(q1) + acc2(q1) + acc3(q1) = 45
Ma trận ái lực thuộc tính (Attribute affinity matrix)

A1 A2 A3 A4
an
h u
A1 45 0 45 0

c T
A2
A3
0
45
80
5
5
53
75
3 D u
A4 0 75
N
3 g
78
Thuật toán năng lượng nối BEA (Bond
Energy Algorithm)

Tác giả : Hofer & Severance, 1975 và Navathe et an


l
al, 1984.
h u
l Ý nghĩa:
c T
– Xác định các nhóm thuộc tính
– Độ phức tạp O(n2)
D u
N g
– Không làm thay đổi kết quả tụ nhóm
Thuật toán thực hiện các hoán vị hàng, cột sinh ra 1 ma
trận ái lực CA ( Cluster affintity matrix). Hoán vị được
thực hiện sao cho số đo ái lực chung AM (global affinity
measure) là lớn nhất
Thuật toán năng lượng nối BEA (Bond
Energy Algorithm)

an
n n
AM = ∑ ∑ aff(Ai, Aj) [aff(Ai, Aj-1) + aff(Ai, hu
l
i=1 J=1
c T
D u
Aj+1) + aff(Ai-1, Aj) +aff(Ai+1, Aj) ]

N g
Với aff(A0, Aj)= aff(Ai, A0) = aff(An+1, Aj) =
aff(Ai, An+1) = 0 , cho mọi i, j
(Ý nghĩa ?)
Thuật toán năng lượng nối BEA (Bond
Energy Algorithm)

Hàm cực đại hóa chỉ xét những lân cận gần nhất , an
l

h
vì thế các giá trị lớn được nhóm lại với nhau, các u
c T
giá trị nhỏ được nhóm lại với nhau. Ma trận ái lực
thuộc tính AA có tính đối xứng nên số đo ái lực có
thể rút gọn:
D u
l
n n

N g
AM = ∑ ∑ aff(Ai, Aj) [aff(Ai, Aj-1) + aff(Ai,Aj+1) ]
i=1 J=1
Thuật toán năng lượng nối BEA (Bond
Energy Algorithm)

Quá trình sinh ma trận ái lực gồm 3 bước: an


l
l
h
1. Khởi gán: Đặt và cố định 1 trong các cột của AA u
vào trong CA. Cột 1 được chọn.
c T
l

D u
2. Thực hiện lặp: Lấy lần lượt 1 trong n-i cột còn lại
(i là số cột đã được đặt vào CA) và thử đặt vào i+1 vị

N g
trí còn lại trong ma trận CA. Chọn đặt sao cho AM là
lớn nhất. Lặp đến hết các cột.
l Sắp thứ tự hàng: Khi thứ tự cột đã xác định, các
hàng cũng cần đặt lại để các vị trí tương đối của
chúng phù hợp với các vị trí trí tương đối của cột.
Thuật toán năng lượng nối BEA (Bond
Energy Algorithm)

an
h u
c T
l
D u
Một ví dụ tính toán cho thuật toán BEA

N g
Thuật toán phân mảnh dọc

Tính ma trận ái lực CA an


l

h
Tìm “ điểm chia “ : Ái lực lớn nhất cho mỗi u
l
phân mảnh A1 A2 A3 A4
c T
A1 45 45 0D u
0
A2 45
N
53 g5 3
A3 0 5 80 75
A4 0 3 75 78
Phân mảnh lai tạp (Hybrid Fragmentation)

an
R h u
c T
Ngang

R1 R2
D u
N g Dọc

R11 R12 R21 R22


Kiến thiết lại phân mảnh lai tạp

an
U Ngang hu
c T
D u
N g Dọc

R11 R12 R21 R22


Allocation

an
Example: E(#,NM,LOC,SAL) Þ
F1 = sloc=Sa E ; F2 = sloc=Sb E hu
Qa: select … where loc=Sa... c T
Qb: select … where loc=Sb…
D u
N?
F1,F2 g
làm gì ở đâu
Site a Site b
?
Các vấn đề thảo luận

Các truy vấn bắt đầu từ đâu an


l
Chi phí truyền thông là gì? h u
l
kích thước kết quả,quan hệ,…
c T
l
D u
Dung lượng lưu trữ là gì, chi phí tại các site?
g
Và kích thước của các phân mảnh?
N
Các vấn đề khác

an
l Chiến lược xử lý truy vấn?
hu
– Các kết nối thực hiện như thế nào?
c T

D u
Các kết quả được kết xuất như thế nào?

N g
Vì sao tiến hành lặp các phân
mảnh?
an
l Chi phí của việc cập nhật các bản sao?
hu
l Ghi và điều khiển tương tranh?
c T
l ...
D u
N g
Bài toán tối ưu:

Việc sắp đặt các phân mảnh tốt nhất /số an


l
lượng các bản sao tốt nhất để:
h u
– Thời gian trả lời truy vấn bé nhất
Thông lượng lớn nhất
c T

– Các chi phí nhỏ nhất
D u
Đây là một bài toán khó vô cùng

l
– ...
Các vấn đề ràng buộc?
N g
– Khả năng lưu trữ
– Khả năng của băng thông,..
– ...
Mô hình đơn giản
Phân mảnh đơn F
an
Các Site S1, … Sm
hu
Các biến X1, …, Xm
c T
Xj = 0 if F không lưu trử tại Sj
1 if F lưu trữ Sj D u
N g
Tổng chi phí = Chi phí đọc+ Chi phí ghi+
Chi phí lưu trữ
Xác định các giá trị cho Xj, 1 £ j £ m,
Sao cho chi phí là nhỏ nhất
Chi phí đọc

an
m
Chi phí đọc= å [ti ´ MIN Cij] h u
i=1 j
c T
i: site có yêu cầu
D u
ti: số lượng tin đọc tại Si
N g
Cij: Chi phí lấy tin truy xuất phân mảnh F tại
Sj từ Si
Chi phí ghi =
i=1 j=1
m m
å å Xj ui C’ij an
h u
i: site có yêu cầu
c T
j: Site được cập nhật
D
Xj: 0 nếu F không lưu trữ tại Sj u
1 nếu F lưu trữ tại Sj
ui: lượng tin ghi tại Si N g
C’ij: Chi phí ghi của việc cập nhật F tại Sj từ Si
Chi phí lưu trữ:

an
m
å Xi di hu
i=1
c T
Xi:
D
0 nếu F không lưu trữ tại Sj u
1nếu F lưu trữ tại Sj
N g
di: Chi phí lưu trữ của F tại Si
Hàm mục tiêu:

an
m hu
min å [ti ´MIN Cij +
m
å Xj ´ ui ´ C’ij ]
c T
i=1 j j=1

D u
m
+ å Xi ´ di
N g
i=1
Có thể có thêm các chi phí phức tạp
hơn:

an
Ví dụ:
hu
-Nhiều phân mảnh
c T
-Kích thước phân mảnh
D
-Chi phí điều khiển tương tranh
u
N g
Định vị

Ngay cả trường hợp đơn giản nhất cũng là an


l
NP-đầy đủ h u
l Thông thường chúng ta có thể sử dụng
c T
trường hợp
D u
Đặt các phân mảnh ở đó chúng được truy xuất

nhiều nhất
N g
Tổng kết

an
l Phân mảnh ngang, dọc
hu
l Phân mảnh tốt
c T
l
l
Thiết kế phân mảnh tốt
Định vị Du
N g

You might also like