Professional Documents
Culture Documents
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
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
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
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
Reconstruction N g
"xÎFi, Ø$ Fj mà xÎFj, i ¹ j
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
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
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
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)
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)?
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ó
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?
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 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
… …
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
… …
J1 = J E1 Ng J2 = J E2
Phân mảnh ngang 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!
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
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)
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)
N
1
g
0
0
q3 0 1 0 1
q4 0 0 1 1
Ái Lực thuộc tính (Attribute affinity)
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)
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)
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)
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)
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
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
an
U Ngang hu
c T
D u
N g Dọc
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
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:
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ị
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