1. Distributed DBMS Page 5. 1
Thiết kế CSDL phân tán
PGS.TS. Đỗ Phúc
Khoa Hệ thống thông tin
Trường Đại học Công nghệ thông tin, ĐHQG-HCM
2. Distributed DBMS Page 5. 2
Bài toán thiết kế
„
Nguyên tắc chung:
Quyết định bố trí dữ liệu và chương trình trên các vị trí của mạng máy tính cũng như thiết kế bản thân mạng.
„
Trong HệQTCSDLPT,việc bốtríứng dụng bao gồm:
Æ
Bốtríphần mềm HệQTCSDLPT;và
Æ
Bốtrícác ứng dụng chạy trên CSDL.
3. Distributed DBMS Page 5. 3
Các khía cạnh của bài toán
Level of sharing
Level of knowledge
Access pattern behavior
partial
information
dynamic
static
data
data +
program
complete
information
4. Distributed DBMS Page 5. 4
Thiết kế phân tán
„
Từtrên xuống (Top-down)
Æ
Thiết kếhệthống từ đầu
Æ
Các hệthống đồng chất (homogeneoussystems)
„
Từ dưới lên (Bottom-up)
Æ
Khi đã cóCSDL ởmột sốvịtrí
5. Distributed DBMS Page 5. 5
Thiết kế từ trên xuống
User Input
View Integration
User Input
Requirements
Analysis
Objectives
Conceptual
Design
View Design
Access
Information
ES’s
GCS
Distribution
Design
Physical
Design
LCS’s
LIS’s
GCS: Global conceptual schema
ES:External Schema
LCS:Local conceptual schema
6. Distributed DBMS Page 5. 6
Các vấn đề của thiết kế phân tán
œ
Tại sao phải phân mảnh dữliệu?
Cách phân mảnh?
ž
Mức độphân mảnh?
Ÿ
Cách kiểm tra tính đúng đắn?
Cách cấp phát?
¡
Các thông tin cần thiết?
7. Distributed DBMS Page 5. 7
Phân mảnh dữ liệu
„
Chỉ đểphân tán các quan hệ?
„
Đơn vịphân tánnào làhợp lý?
Æ
Quan hệ
‹
views làtập con của quan hệ-> cục bộ
‹
Cần truyền thông ( qua mạng) nhiều hơn-nếu quan hệ được lưu ởnới khác với vịtríkhởi động truy vấn
Æ
Các phân mảnh của quan hệ(quan hệcon)-thích hợp
‹
Thực hiện đồng thời một sốgiao tác nhằm truy cập các phần khác nhau của quan hệ
‹
Viewskhông được định nghĩatrên một mảnh duy nhất sẽyêu cầu nhiều xửlý.
‹
Kiểm soát dữliệu ngữnghĩa (đặc biệt làép thỏa toàn vẹn)là điều khó khăn
8. Distributed DBMS Page 5. 8
PROJ1 : các projects có kinh phí budgets) nhỏ hơn $200,000
PROJ2 : các projects có kinh phí lớn hơn hay bằng $200,000
PROJ1
PNO
PNAME
BUDGET
LOC
P3
CAD/CAM
250000
New York
P4
Maintenance
310000
Paris
P5
CAD/CAM
500000
Boston
PNO
PNAME
LOC
P1
Instrumentation
150000
Montreal
P2
Database Develop.
135000
New York
BUDGET
PROJ2
Các kiểu phân mảnh– ngang
New York
New York
PROJ
PNO
PNAME
BUDGET
LOC
P1
Instrumentation
150000
Montreal
P3
CAD/CAM
250000
P2
Database Develop.
135000
P4
Maintenance
310000
Paris
P5
CAD/CAM
500000
Boston
New York
9. Distributed DBMS Page 5. 9
Các kiểu phân mảnh– dọc
PROJ1: thông tin về kinh phí của đề án
PROJ2: thông tin về tên và vị trí của đề án
PNO
BUDGET
P1
150000
P3
250000
P2
135000
P4
310000
P5
500000
PNO
PNAME
LOC
P1
Instrumentation
Montreal
P3
CAD/CAM
New York
P2
Database Develop.
New York
P4
Maintenance
Paris
P5
CAD/CAM
Boston
PROJ1
PROJ2
New York
New York
PROJ
PNO
PNAME
BUDGET
LOC
P1
Instrumentation
150000
Montreal
P3
CAD/CAM
250000
P2
Database Develop.
135000
P4
Maintenance
310000
Paris
P5
CAD/CAM
500000
Boston
New York
10. Distributed DBMS Page 5. 10
Mức độ phân mảnh
Phân mảnh đếm mức độ nào là một quyết định đến hiệu năng truy vấn
Tìm mức độ thích hợp để phân hoạch trong phạm vi
Bộ
hay
Thuộc tính
Phân mảnh (ngang, dọc)
Quan hệ (không phân mảnh)
Số hữu hạn các kiểu
11. Distributed DBMS Page 5. 11
„
Tính đầy đủ(completeness)
Æ
Phân rã quan hệRthành các mảnh R1, R2, ..., Rnlàđầy đủnếu vàchỉnếu mỗi mục dữliệu trong Rđều cóthểtìm thấy trong quan hệRinào đó.
„
Tính tái tạo (reconstruction)
Æ
Nếu quan hệRđược phân rã thành các mảnh R1, R2, ..., Rn, thìsẽtồn tại một toán tửquan hệ∇sao cho:
R = ∇1≤i≤nRi
„
Tính rời nhau (disjointness)
Æ
Nếu quan hệRđược phân rã thành các mảnh R1, R2, ..., Rn, vàmục dữliệu dithuộc vềRj, thìdikhông thuộc vềbất kỳmảng nào khác Rk(k≠j ).
Tính đúng đắn trong phân mảnh
12. Distributed DBMS Page 5. 12
Các cách cấp phát
„
Không nhân bản (non-replicated)
Æ
Phân hoạch:mỗi mảnh nằm trên một vịtrí(partition), tồn tại bản sao duy nhất của một mảnh trên mạng.
„
Nhân bản (replicated)
Æ
Nhân bản đầy đủ:một mảnh ởmột vịtrí( full replication), toàn bộ CSDL đều tồn tại ởtừng vịtrí.
Æ
Nhân bản từng phần:mỗi mảnh ởvài vịtrí( partial replication)
„
Quy tắc:
If thì nên nhân bản,
otherwise nhân bản có thể phát sinh vấn đề
read - only queries
update queries
≥ 1
13. Distributed DBMS Page 5. 13
So sánh các kiểu nhân bản
Full-replication
Partial-replication
Partitioning
QUERY
PROCESSING
Easy
Same Difficulty
Same Difficulty
DIRECTORY
MANAGEMENT
Easy or
Non-existant
CONCURRENCY
CONTROL
Easy
Difficult
Moderate
RELIABILITY
Very high
High
Low
REALITY
Possible
application
Realistic
Possible
application
14. Distributed DBMS Page 5. 14
„
Có4 nhóm:
Æ
thông tin vềCSDL
Æ
thông tin vềứng dụng
Æ
Thông tin vềmạng truyền thông
Æ
Thông tin vềhệthống máy tính
Các yêu cầu về thông tin
15. Distributed DBMS Page 5. 15
„
Phân mảnh ngang (HF)
Æ
Phân mảnh ngang nguyên thủy (PHF)
Æ
Phân mảnh nganh suy dẫn(DHF)
„
Phân mảnh dọc(VF)
„
Phân mảnh hỗn hợp(HF)
Phân mảnh
16. Distributed DBMS Page 5. 16
„
Thông tin vềCDSL
Æ
Quan hệ
Æ
Lực lượng của từng quan hệ:card(R)
PHF – yêu cầu thông tin
TITLE,
SAL
SKILL
ENO,
ENAME, TITLE
PNO, PNAME, BUDGET, LOC
ENO, PNO, RESP, DUR
EMP
PROJ
ASG
L
1
L
2
L
3
Với link L1
Owner(L1)=SKILL
Member(L1)=EMP
Quan hệ nằm tại đuôi của link là owner và qhệ nằm tại đầu (có mũi tên) của link là member
17. Distributed DBMS Page 5. 17
„
Thông tin vềứng dụng
Æ
simple predicates: ChoR[A1, A2, …, An], vịtừ đơn pjlà
pj : Ai θ Value
với θ∈{=,<,≤,>,≥,≠}, Value∈Di và Di là domain của Ai.
Với quan hệ R, chúng ta định nghĩa Pr = {p1, p2, …,pm}
Ví dụ: các vị từ đơn giản
PNAME = "Maintenance"
BUDGET ≤ 200000
Æ
mintermpredicates: Cho RvàPr={p1, p2, …,pm}
định nghĩa M={m1,m2,…,mr} là
M={ mi|mi = ∧pj∈Pr pj* }, 1≤j≤m, 1≤i≤z
với pj* = pj hay pj* = ¬(pj).
PHF – Yêu cầu thông tin
18. Distributed DBMS Page 5. 18
Ví dụ: minterm predicates
m1: PNAME="Maintenance"∧ BUDGET≤200000
m2: NOT(PNAME="Maintenance")∧ BUDGET≤200000
m3: PNAME= "Maintenance"∧ NOT(BUDGET≤200000)
m4: NOT(PNAME="Maintenance")∧ NOT(BUDGET≤200000)
PHF – Yêu cầu về thông tin
19. Distributed DBMS Page 5. 19
„
Thông tin ứng dụng
Æ
Độtuyển hội sơ cấp: mintermselectivities: sel(mi)
‹
Sốcác bộcủa quan hệ được câu truy vấn truy cập, câu truy vấn được chỉ định bằng mintermpredicate mi.
Æ
Tần sốtruy cập: accessfrequencies: acc(qi)
‹
Tần sốtruy cập dữliệu của ứng dụng qi.
‹
Cũng cóthểxác định tần sốtruy cập chomintermpredicate.
PHF – yêu cầu về thông tin
20. Distributed DBMS Page 5. 20
Định nghĩa:
Rj = σFj (R ), 1 ≤ j ≤ w
Với Fj là công thức chọn, thích hợp là minterm predicate.
Do vậy,
Phân mảnh ngang Ri của quan hệ R gồm tất cả các bộ của R thỏa minterm predicate mi.
⇓
Cho tập các minterm predicates M, có nhiều phân mảnh ngang của quan hệ R ứng với nhiều minterm predicates.
Tập các phân mảng ngang cũng được gọi là minterm fragments.
Phân mảnh ngang nguyên thủy Primary Horizontal Fragmentation
21. Distributed DBMS Page 5. 21
Cho: Quan hệ R, tập các vị từ đơn Pr
Kết quả: Tập các mảnh của R = {R1,R2,…,Rw} thỏa quy tắc phân mảnh.
Yêu cầu:
Æ
Prphải đầy đủ(complete) xem slide tiếp theo
Æ
Prphải tối tiểu (minimal)
PHF – Thuật toán
22. Distributed DBMS Page 5. 22
„
Tập các simple predicates Prđược gọi làđầy đủnếu vàchỉnếu các truy cập đến các bộcủa các mảnh hội tối thiểu (mintermfragments)được định nghĩa theo Pryêu cầu hai bộcủa cùng một mintermfragment phải cócùng xác suất truy cậpcủa một ứng dụng bất kỳ.
„
Vídụ:
Cho PROJ[PNO,PNAME,BUDGET,LOC], trên quan hệ này có hai ứng dụng.
Æ
Tìm các kinh phícủa từng đềán tại từng vịtrí.(1)
Æ
Tìm các đềán cókinh phínhỏ hơn $200000.(2)
Tính đầy đủ của các Simple Predicates
23. Distributed DBMS Page 5. 23
Theo (hình 5.8 trang 124 sách GK),
Pr={LOC=“Montreal”,LOC=“New York”,LOC=“Paris”}
Là không đầy đủ vì truy vấn (2). Xác suất truy vấn P2,P3 là khác nhau trong mảnh PROJ2
Ta cần sửa đổi
Pr ={LOC=“Montreal”,LOC=“New York”,LOC=“Paris”, BUDGET≤200000,BUDGET>200000}
Thì Pr đầy đủ.
Tính đầy đủ của các Simple Predicates
24. Distributed DBMS Page 5. 24
„
Đểmột vịtựphát sinh phân mảnh,(vd,biến mảnh fthành các mảnh con fivàfj) thìcần phải cómột ứng dụng truy cập fivàfjvới các xác suất trên các bộcủa mảnh đólàkhác nhau.Nói cách khác,simplepredicate phải có liên đới (relevant)trong việc gây ra phân mảnh.
„
Nếu tất cảcác predicatescủa tập Prđều có liên đới thìPris tối tiểu (minimal).
acc(mi)
–––––
card(fi)
acc(mj)
–––––
card(fj)
≠
Tính tối tiểu của vị từ đơn
acc(mi): tần số truy cập của ứng dụng
25. Distributed DBMS Page 5. 25
Ví dụ :
Pr ={LOC=“Montreal”,LOC=“New York”, LOC=“Paris”,
BUDGET≤200000,BUDGET>200000}
Là tối tiểu (ngoài ra nó còn đầy đủ).
Tuy vậy, nếu thêm
PNAME = “Instrumentation”
Thì Pr không cực tiểu vì vị từ này không có liên đới với Pr (không có ứng dụng nào truy cập khác nhau trên các mảnh được tạo ra).
Tính cực tiểu của vị từ đơn
Đầy đủ: xác suất truy cập các bộ giống nhau
Tối tiểu: các vị từ đều có liên đới.
Liên đới: có ứng dụng truy cập khác nhau trên các mảnh tạo ra.
26. Distributed DBMS Page 5. 26
Cho: quan hệ R và tập các vị từ Pr
Kết quả: Tập đầy đủ và tối tiểu các vị từ đơn Pr' cho Pr
Quy tắc 1: Quan hệ hay mảnh được phân thành ít nhất là hai phần khác nhau và được ít nhất một ứng dụng truy cập các bộ với xác suất khác nhau.
Thuật toán COM_MIN
27. Distributed DBMS Page 5. 27
œ
Khởi tạo:
z
Tìmpi∈ Prsao cho piphân hoạch Rtheo quy tắc 1
z
GọiPr' = pi; Pr← Pr–pi; F← fi
Lặp lại việc thêm các vịtừvào Pr' cho đến khi nó đầy đủ
z
Tìm pj∈ Prsao cho pjphân hoạch fkđược định nghĩa theo mintermpredicate trên Pr' theoquy tắc 1
z
Đặt Pr'= Pr' ∪pi; Pr ← Pr–pi; F ← F ∪fi
z
Nếu∃ pk∈ Pr' làkhông liên ứng thì
Pr' ← Pr' – pk
F ← F – fk
Thuật toán COM_MIN
28. Distributed DBMS Page 5. 28
Dùng COM_MIN để phân mảnh.
Nhập: quan hệ R và tập các vị từ đơn Pr
Xuất: tập các minterm predicates M ấn định cách phân mảnh quan hệ R.
œPr' ← COM_MIN (R,Pr)
XácđịnhtậpMcácmintermpredicates
žXác định tập I các phép kéo theo giữa cácpi∈Pr
ŸKhửcác mintermsmâu thuẫn khỏi M
Thuật toán PHORIZONTAL
29. Distributed DBMS Page 5. 29
„
Cho các quan hệứng viên:PAY vàPROJ.
„
Phân mảnh quan hệPAY
Æ
Ứng dụng:Kiểm tra thông tin lương vàquyết định tăng lương.
Æ
Các bản ghi của Nhân viên được lưu ở2 vịtrí⇒ứng dụng chạy ở2 vịtrímỗi nơi xửlý các mẫu tin có lương thấp hơn hay bằng 30000 vàmột nơi khác xửlý các mẫu tin có lương cao hơn 30000.
Æ
Các vịtừ đơn được dùng đểphân hoạch quan hệPAY là:
p1 : SAL ≤ 30000
p2 : SAL > 30000
Thuật toán COM-MIT
Pr={p1, p2}
Với i = 1 , ta tìm được p1 thỏa quy tắc 1: phân quan hệ PAY thành 2 phần là phần thỏa SAL ≤ 30000 và phần không thỏa SAL ≤ 30000, hai phần này được truy cập khác nhau bởi ứng dụng.
PHF – Ví dụ (1/2)
30. Distributed DBMS Page 5. 30
PHF – Ví dụ (2/2)
Pr‘<-p1
Pr = {p2}
F ={f1} , f1 là mảnh hội sơ cấp theo p1
Trong Pr còn p2 , nhưng p2 không thể phân hoạch mảnh f1 do đó Pr‘ = { p1 }là đầy đủ và tối thiểu
Æ
Các Minterm predicates
m1 : (SAL ≤ 30000)
m2 : NOT(SAL ≤ 30000) = (SAL > 30000)
31. Distributed DBMS Page 5. 31
PHF – Ví dụ: phân mảnh ngang cho quan hệ PAY
TITLE
Mech. Eng.
Programmer
SAL
27000
24000
PAY1
PAY2
TITLE
Elect. Eng.
Syst. Anal.
SAL
40000
34000
32. Distributed DBMS Page 5. 32
Æ
Các ứng dụng:
‹
Tìm tên vàkinh phícủa các đềán theo vịtrí-location (LOC)
Được phát sinh ỏ3 vịtrí
‹
Truy cập thông tin đềán theo kinh phí( budget)
Một vítrítruy cập ≤200000, vịtríkhác truy cập200000
Æ
Các vịtừ đơn
Æ
Cho ứng dụng (1)
p1 : LOC = “Montreal”
p2 : LOC = “New York”
p3 : LOC = “Paris”
Æ
Cho ứng dụng (2)
p4 : BUDGET ≤ 200000
p5 : BUDGET 200000
PHF – Ví dụ phân mảnh nganh quan hệ PROJ
33. Distributed DBMS Page 5. 33
„
Dùng thuật toán COM-MIN ta có
„
Pr= Pr'= {p1,p2,p3,p4,p5}
„
Phân mảnh quan hệPROJtiếp theo
Æ
Mintermfragments còn lại sau khi khử
m1 : (LOC = “Montreal”) ∧ (BUDGET ≤ 200000)
m2 : (LOC = “Montreal”) ∧ (BUDGET 200000)
m3 : (LOC = “New York”) ∧ (BUDGET ≤ 200000)
m4 : (LOC = “New York”) ∧ (BUDGET 200000)
m5 : (LOC = “Paris”) ∧ (BUDGET ≤ 200000)
m6 : (LOC = “Paris”) ∧ (BUDGET 200000)
PHF – Ví dụ
34. Distributed DBMS Page 5. 34
PHF – Ví dụ
PROJ1
PNO
PNAME
BUDGET
LOC
PNO
PNAME
BUDGET
LOC
P1
Instrumentation
150000
Montreal
P2
Database
Develop.
135000
New York
PROJ2
PROJ4
PROJ6
PNO
PNAME
BUDGET
LOC
P3
CAD/CAM
250000
New York
PNO
PNAME
BUDGET
LOC
Maintenance
P4
310000
Paris
35. Distributed DBMS Page 5. 35
„
Tìnhđầyđủ
Æ
Do Pr' làđầyđủvàtốitiểu, cácvịtừchọnlàđầyđủ
„
Táitạo
Æ
NếuquanhệRđượcphânmảnhthànhFR= {R1,R2,…,Rr}
R = ∪∀Ri ∈FR Ri
„
Rờinhau
Æ
Cácmintermpredicates làmcơsởchophânmảnhcầnphảirờinhautừngđôi.
PHF – Tính đúng đắn
36. Distributed DBMS Page 5. 36
„
Đượcxácđịnhtheoquanhệmember củalink dựatrênphépchọnđượcchỉđịnhtrênowner củanó.
Æ
Mỗilink làmộtequijoin.
Æ
CóthểhiệnthựcEquijoinbằngsemijoins.
Phân mảnh ngang suy dẫn Derived Horizontal Fragmentation
TITLE,
SAL
SKILL
ENO, ENAME, TITLE
PNO, PNAME, BUDGET, LOC
ENO, PNO,
RESP, DUR
EMP
PROJ
ASG
L1
L2
L3
Quan hệ nằmtại đuôi của link là owner và qhệ nằmtại đầu(cómũi tên) củalink là member
Member(L1)= EMP
37. Distributed DBMS Page 5. 37
Chon link L với owner(L)=S và member(L)=R, các mảnh ngang suy dẫncủaR được định nghĩanhư sau:
Ri = R F Si, 1≤i≤w
Với w là số lớnnhất các mảnh đượcxácđịnh trên R và
Si = σFi (S) , Si là các phân mảnh ngang củaowner
Với Fi là công thứctheođóxácđịnh phân mảnh ngang nguyên thủy Si.
DHF – Định nghĩa
38. Distributed DBMS Page 5. 38
Given link L1 where owner(L1)=SKILL and member(L1)=EMP
EMP1 = EMP SKILL1
EMP2 = EMP SKILL2
where
SKILL1 = σ SAL≤30000 (SKILL)
SKILL2 = σSAL30000 (SKILL)
DHF – Ví dụ
ENO
ENAME
TITLE
E3
A. Lee
Mech. Eng.
E4
J. Miller
Programmer
E7
R. Davis
Mech. Eng.
EMP1
ENO
ENAME
TITLE
E1
J. Doe
Elect. Eng.
E2
M. Smith
Syst. Anal.
E5
B. Casey
Syst. Anal.
EMP2
E6
L. Chu
Elect. Eng.
E8
J. Jones
Syst. Anal.
TITLE,
SAL
SKILL
ENO, ENAME, TITLE
EMP
L1
42. Distributed DBMS Page 5. 42
„
CácmảnhchồngnhauOverlapping fragments
Æ
Gomnhóm( grouping )
„
Cácmảnhkhôngchồngnhau
Æ
Tách( splitting )
Ta không xem xét các thuộc tính khóa được nhân bảnlàcóchồng nhau.
Tiệnlợi:
Dễ ép thỏa các Phụ thuộchàm
(kiểmtraràngbuộc...)
Phân mảnh ngang Vertical Fragmentation
43. Distributed DBMS Page 5. 43
„
Thôngtin ứngdụng
Æ
Cácáilựcthuộctính(Attribute affinities)
‹
Độđophảnánhcácthuộctínhquanhệgầnnhau
‹
Nhậnđượctừdữliệusửdụngban đầu
Æ
Giátrịsửdụngthuộctính(Attribute usage values)
‹
ChotậpcáctruyvấnQ= {q1, q2,…, qq} chạytrênquanhệR[A1, A2,…, An],
use(qi,•) được định nghĩatương ứng
VF – Yêu cầu thông tin
⎨
use(qi,Aj) =
1 nếuthuộc tính Aj được tham chiếubớitruyvấn qi
0 ngượclại
⎧
⎩
44. Distributed DBMS Page 5. 44
Xét 4 truy vấnchoquanhệ PROJ
q1:SELECT BUDGET q2: SELECT PNAME,BUDGET
FROM PROJ FROM PROJ
WHERE PNO=Value
q3:SELECT PNAME q4: SELECT SUM(BUDGET)
FROM PROJ FROM PROJ
WHERE LOC=Value WHERE LOC=Value
Gọi A1= PNO, A2= PNAME, A3= BUDGET, A4= LOC
VF – Định nghĩa use(qi,Aj)
q1
q2
q3
q4
A1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
A2
A3
A4
45. Distributed DBMS Page 5. 45
Độ đoáilựcthuộc tính giữa2 thuộctínhAi và Aj của quan hệ R[A1, A2, …, An] ứng vớitậpquanhệ Q = (q1, q2, …, qq) được định nghĩanhư sau:
VF – Độ đóáilực aff(Ai,Aj)
aff (Ai, Aj) =
(query access)
all queries that access Ai and Aj
Σ
query access =
access frequency of a query ∗
access
execution
all sites
Σ
46. Distributed DBMS Page 5. 46
Giả sử từng truy vấn trong ví dụ trướctruycập trong từng lầnthựchiện.
Giảđịnh tầnsố truy cập
Thì
aff(A1, A3) = 15*1 + 20*1+10*1
= 45 ( dòng q1)
Các ma trậnáilựcthuộctính AA is
VF – tính aff(Ai, Aj)
q
1
q
2
q
3
q
4
S
1
S
2
S
3
15
20
10
5
0
0
25
25
25
3
0
0
A
A
A
A
1
2
3
4
A
A
A
A
1
2
3
4
45
0
45
0
0
80
5
75
45
5
53
3
0
75
3
78
47. Distributed DBMS Page 5. 47
„
Lấyma trậnáilựcAAvàtổchứclạicácthứtựcủathuộctínhđểtạocáccụmcócácthuộctínhứngvớicụmcóđộáilựccaohơncụmkhác
„
Thuậttoánnănglượngliênkết-Bond Energy Algorithm (BEA) đượcdùngđểgomcụmcácthựcthể. BEA tìmthứtựcácthựcthể( trongtrườnghợpnàylàcácthuộctính) saochođộđóáilựctoàncụcsau
là cực đại.
VF – Thuật toán gom cụm
AM =
(affinity of Ai and Aj with their neighbors)
j
Σ
i
Σ
48. Distributed DBMS Page 5. 48
Nhập: Ma trận AA
Xuất: Ma trậnáilựcgomcụm CA là mộtsắpxếpcủa các hoán vị AA
œ
Khởitạo: ĐặtvàcốđịnhmộttrongcáccộtcủaAAvàoCA.
Lặp:Đặtn-icộtcònlạivàoi+1 vịtrícònlạitrongma trậnCA. Đốivớitừngcột, chọn vịtríđónggóp(contribution) lớnnhấtvàođộđoáilựctoàncục.
ž
Sắpthứtựdòng:Sắpxếpcácdòngtheothứtựcột.
Thuật toán năng lượng liên kết Bond Energy Algorithm
49. Distributed DBMS Page 5. 49
Vị trí “tốtnhất”? Xác định mức đóng góp củabố trí:
cont(Ai, Ak, Aj) = 2bond(Ai, Ak)+2bond(Ak, Al) –2bond(Ai, Aj)
Với
Thuật toán năng lượng liên kết Bond Energy Algorithm
bond(Ax,Ay) =
aff(Az,Ax)aff(Az,Ay)
z = 1
n
Σ
50. Distributed DBMS Page 5. 50
Xét ma trận AA và ma trậntương ứng CA sau đây với A1 và A2 đã được đặt. Đặt A3:
Thứ tự (0-3-1) :
cont(A0,A3,A1) = 2bond(A0 , A3)+2bond(A3 , A1)–2bond(A0 , A1)
= 2* 0 + 2* 4410 – 2*0 = 8820
Thứ tự (1-3-2) :
cont(A1,A3,A2) = 2bond(A1 , A3)+2bond(A3 , A2)–2bond(A1,A2)
= 2* 4410 + 2* 890 – 2*225 = 10150
Thứ tự (2-3-4) :
cont (A2,A3,A4) = 1780
AAAA1234AAAA123445050080575455533075378AA= AA12450080455075CA=
BEA – Ví dụ
45
51. Distributed DBMS Page 5. 51
Do vậtma trận CA có dạng
BEA – Ví dụ
A1
A2
A3
45
0
45
0
45
5
53
3
0
80
5
75
52. Distributed DBMS Page 5. 52
Sau khi đặt A4, dạng cuốicùngcủama trận CA (sau khi tổ chức dòng) là
BEA – Ví dụ
A
A
A
A
1
2
3
4
A
A
A
A
1
2
3
4
45
45
0
0
45
53
5
3
0
5
80
75
0
3
75
78
53. Distributed DBMS Page 5. 53
Cách chia tập các thuộc tính gom cụm{A1, A2, …, An} thành hai (hay nhiềuhơn) các tập {A1, A2, …, Ai} và {Ai, …, An} sao cho không có (hay có tốithiểu) các ứng dụng truy cậpcả hai (hay nhiềuhơnmột) của các tậphợp.
VF – Thuật toán
A1
A2
Ai
Ai+1
Am
…
A1
A2
A3
Ai
Ai+1
Am
BA
. . .
. . .
. . .
TA
54. Distributed DBMS Page 5. 54
Định nghĩa
TQ=tập các ứng dụng chỉ truy cập TA
BQ=tập các ứng dụng chỉ truy cập BA
OQ = tập các ứng dụng chỉ truy cậpvừa TA và BA
và
CTQ= tổng số các truy cập đến các thuộc tính bởi các ứng dụng chỉ truy cập TA
CBQ = tổng số các truy cập đếnthuộc tính bởi ứng dụng chỉ truy cập BA
COQ = tổng số các truy cập đếnthuộc tính bởi ứng dụng truy cậpcả TA và BA
Sau đótìmđiểmdọctheođường chéo làm cực đại
VF – Algorithm
CTQ∗ CBQ− COQ2
55. Distributed DBMS Page 5. 55
Có hai vấn đề:
œ
TạoCluster ở điểmgiữama trậnCA
Æ
Dịchlênmộtdòngvàdịchtráimộtcột, ápdụngthuậttoántìmđiểmphânhoạchtốtnhất
Æ
Làmđiềunàychotấtcảcácdịchchuyểnkhảdĩ
Æ
Chi phíO(m2)
Nhiềuhơn2 clusters
Æ
Phânhoạchtheom-cách
Æ
Thửvới1, 2, …, m–1 điểmtáchdọctheođườngchéovàtìmđiểmtốtnhấtchotừngđiểm
Æ
Chi phíO(2m)
VF – Algorithm
56. Distributed DBMS Page 5. 56
A relation R, defined over attribute set A and key K, generates the vertical partitioning FR = {R1, R2, …, Rr}.
„
Completeness
Æ
The following should be true for A:
A =∪ARi
„
Reconstruction
Æ
Reconstruction can be achieved by
R = cKRi∀Ri∈FR
„
Disjointness
Æ
TID'sare not considered to be overlapping since they are maintained by the system
Æ
Duplicated keys are not considered to be overlapping
VF – Correctness
57. Distributed DBMS Page 5. 57
Phân mảnh hỗnhợp Hybrid Fragmentation
R
HF
HF
R1
VF
VF
VF
VF
VF
R11
R12
R21
R22
R23
R2
z
z
z
z
z
z
z
z
58. Distributed DBMS Page 5. 58
Bố trí phân mảnh theo các vị trí
„
Phátbiểubàitoán
Cho :
F = {F1, F2, …, Fn} mảnh
S ={S1, S2, …, Sm} cácvị trí trên mạng
Q = {q1, q2,…, qq} ứng dụng, truy vấn
Tìm phân bố “tối ưu” của F trên S.
„
Tốiưu
Æ
Chi phícựctiểu
‹
Truyềnthông+ bộnhớ+ xửlý( đọc cậpnhật)
‹
Chi phítheothờigian(thôngthường)
Æ
Côngnăng
Thờigianđáp ứng và/hay kếtquả
Æ
Ràngbuộc
‹
Ràngbuộctrêntừngvịtrí(bộnhớ xửlý)
61. Distributed DBMS Page 5. 61
Yêu cầu thông tin
„
Thôngtin vềCSDL
Æ
Sựalựachọncácbộtruyvấncủacácmảnh
Æ
Kíchthướccủamảnh
„
Thôngtin vềứngdụng
Æ
Sốcáctruycậpđọccủatruyvấnđếnmộtmảnh
Æ
Sốcáctruycậpcậpnhậtcủatruyvấnđếnmộtmảnh
Æ
Ma trậnbiểuthịcáctruyvấncậpnhậtmảnh
Æ
Ma trậntươngtựđểđọc
Æ
Vịtrínguyênthủycủatừngtruyvấn
„
Thôngtin vịtrí
Æ
Đơngiálưutrữdữliệutại vịtrí
Æ
Đơngiáxửlýtại vịtrí
„
Thôngtin vềmạng
Æ
Chi phítruyềnthông/khungsườn(frame) giữa2 vịtrí
Æ
Kichthướckhungsườn
62. Distributed DBMS Page 5. 62
Dạng tổng quát
min(Total Cost)
thỏamãn
ràng buộcvề thờigianđáp ứng
ràng buộcvề bộ nhớ
ràng buộcxử lý
Biến quyết định
Mô hình cấpphát
xij =
1 nếumảnh Fi đượclưu ở vị trí Sj
0 ngượclại
⎧
⎨
⎩
63. Distributed DBMS Page 5. 63
„
Tổngchi phí
„
Chi phíbộnhớ(củaFjtại vịtríSk)
„
Chi phíxửlýtruyvấn(chomộttruyvấn)
processing component + transmission component
Mô hình cấpphát
(unit storage cost at Sk) ∗ (size of Fj) ∗xjk
query processing cost +
all queries
Σ
cost of storing a fragment at a site
all fragments
Σ
all sites
Σ
64. Distributed DBMS Page 5. 64
„
Chi phíxửlýtruyvấn
Processing component
access cost + integrity enforcement cost + concurrency control cost
Æ
Access cost
Æ
Integrity enforcement and concurrency control costs
‹
Can be similarly calculated
Mô hình cấpphát
(
no. of update accesses+ no. of read accesses) ∗
all fragments
Σ
all sites
Σ
xij ∗local processing cost at a site
65. Distributed DBMS Page 5. 65
„
Chi phíxửlýtruyvấn
Thành phầntruyền thông
Chi phí xử lý cậpnhật + chi phí xử lý đọc
Æ
Cost of updates
Æ
Retrieval Cost
Mô hình cấpphát
update message cost +
all fragments
Σ
all sites
Σ
acknowledgment cost
all fragments
Σ
all sites
Σ
(
min
all sites
all fragments
Σ
cost of retrieval command +
cost of sending back the result)
66. Distributed DBMS Page 5. 66
„
Ràngbuộc
Æ
Thờigianđápứng
execution time of query ≤ max. allowable response time for that query
Æ
Ràngbuộcbộnhớ(for a site)
Æ
Ràngbuộcxửlý(for a site)
Mô hình cấpphát
storage requirement of a fragment at that site ≤
all fragments
Σ
storage capacity at that site
processing load of a query at that site ≤
all queries
Σ
processing capacity of that site
67. Distributed DBMS Page 5. 67
„
Cácphươngphápgiải
Æ
FAP is NP-complete
Æ
DAP also NP-complete
„
CácHeuristics dựatrên
Æ
Vịtríkhohoàngduynhất(for FAP)
Æ
Bàitoánxếpbalô(knapsack problem)
Æ
Kỹthuậtnhánhvàcận(branch and bound techniques)
Æ
Bàitoánluồng(network flow)
Mô hình cấpphát