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. Từtrên xuống (Topdown) ÆThiết kếhệthống từ đầu ÆCác hệthống đồng chất (homogeneoussystems) Từ dưới lên (Bottomup) ÆKhi đã cóCSDL ởmột sốvịtrí
Trang 1Thiết kế CSDL phân tán
Trường Đại học Công nghệ thông tin, ĐHQG-HCM
Trang 2Bà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
Trong Hệ QTCSDLPT, việc bố trí ứng dụng bao gồm:
Trang 3Các khía cạnh của bài toán
Level of sharing
Level of knowledge
Access pattern behavior
partialinformation
dynamicstatic
data
data +
Trang 5Thiết kế từ trên xuống
User Input View Integration
User Input
Requirements Analysis Objectives
Conceptual
Access Information ES’s GCS
Distribution Design
Physical Design LCS’s
Trang 6Cá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?
Trang 7Phân mảnh dữ liệu
Chỉ để phân tán các quan hệ?
Đơn vị phân tán nào là hợp lý?
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
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ệ
Views không được định nghĩa trê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
Trang 8PROJ1 : các projects có kinh phí
budgets) nhỏ hơn $200,000 PROJ2 : các projects có kinh phí lớn
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 New York
Trang 9Cá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
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 New York
Trang 10Mứ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
Trang 11 Tính đầy đủ (completeness)
Æ Phân rã quan hệ R thành các mảnh R1, R2, , Rn là đầ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ệ
Ri nà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 di thuộc về Rj, thì di khô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
Trang 12Các cách cấp phát
Æ 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
read - only queriesupdate queries ≥ 1
Trang 13CONTROL Moderate Difficult Easy
RELIABILITY Very high High Low
REALITY Possible
application Realistic
Possible application
Trang 14 Có 4 nhóm:
Trang 15 Phân mảnh ngang (HF)
Phân mảnh dọc (VF)
Phân mảnh hỗn hợp (HF)
Phân mảnh
Trang 16 Thông tin về CDSL
TITLE, SAL SKILL
ENO, ENAME, TITLE PNO, PNAME, BUDGET, LOC
ENO, PNO, RESP, DUR
đuôi của link là owner và qhệ nằm tại đầu (có mũi tên) của link là member
Trang 19 Thông tin ứng dụng
Æ Độ tuyển hội sơ cấp: minterm selectivities : 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 minterm predicate m i
Æ Tần số truy cập: access frequencies : 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 cho minterm predicate
Trang 20Tậ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
Trang 21Cho: 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 :
ÆPr phải đầy đủ (complete) xem slide tiếp theo
ÆPr phải tối tiểu (minimal)
Trang 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 (minterm fragments) được định nghĩa theo Pr
yêu cầu hai bộ của cùng một minterm fragment phải
có cùng xác suất truy cập của một ứng dụng bất kỳ.
Trang 23Theo (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
Trang 24 Để một vị tự phát sinh phân mảnh, (vd, biến mảnh f
Nếu tất cả các predicates của tập Pr đều có liên đới
thì Pr is tối tiểu (minimal).
acc(m ) acc(m )
acc(mi): tần số truy cập của ứng
Trang 25Ví 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).
Đầ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.
Trang 26Cho: 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
Trang 27z Tìm pj ∈ Pr sao cho pj phân hoạch fk được định nghĩa theo
minterm predicate trên Pr' theo quy tắc 1
Trang 28 Xác định tập I các phép kéo theo giữa các pi ∈ Pr
Khử các minterms mâu thuẫn khỏi M
Thuật toán PHORIZONTAL
Trang 29 Cho các quan hệ ứng viên: PAY và PROJ.
Phân mảnh quan hệ PAY
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.
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
Trang 30PHF – Ví dụ (2/2)
Pr‘ <- p1
Pr = {p2}
F ={f 1 } , f 1 là mảnh hội sơ cấp theo p1
Trong Pr còn p2 , nhưng p 2 không thể phân hoạch mảnh f1 do đó
Pr‘ = { p1 } là đầy đủ và tối thiểu
m1 : (SAL ≤ 30000)
m2 : NOT(SAL ≤ 30000) = (SAL > 30000)
Trang 31PHF – Ví dụ: phân mảnh ngang
TITLEMech Eng
Programmer
SAL2700024000
TITLEElect Eng
Syst Anal
SAL4000034000
Trang 33 D ùng thuật toán COM-MIN ta có
Pr = Pr' = {p1,p2,p3,p4,p5}
Phân mảnh quan hệ PROJ tiếp theo
Æ Minterm fragments 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)
Trang 34PNO PNAME BUDGET LOC
P3 CAD/CAM 250000 New York
PNO PNAME BUDGET LOC
Maintenance P4 310000 Paris
Trang 36 Được xác định theo quan hệ member của link dựa trên
phép chọn được chỉ định trên owner của nó
Æ Mỗi link là một equijoin.
Derived Horizontal Fragmentation
TITLE, SAL SKILL
ENO, ENAME, TITLE PNO, PNAME, BUDGET, LOC
L1
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
Member(L1)=
Trang 37Chon link L với owner(L)=S và member(L)=R, các mảnh
ngang suy dẫn của R được định nghĩa như sau:
Ri = R F Si, 1≤i≤w
Với w là số lớn nhất các mảnh được xác định trên R và
Si = σFi (S) , Si là các phân mảnh ngang của owner
Với Fi là công thức theo đó xác định phân mảnh ngang
nguyên thủy Si.
Trang 38Given link L1 where owner(L1)=SKILL and member(L1)=EMP
EMP1 = EMP SKILL1EMP2 = EMP SKILL2
where
SKILL1 = σ SAL≤30000 (SKILL)SKILL2 = σSAL>30000 (SKILL)
ENO ENAME TITLE
E3 A Lee Mech Eng.
ENO, ENAME, TITLE EMP
L1
Trang 39 Tính đầy đủ
được phân mảnh thành FS = {S1, S2, , Sn} Ngoài ra gọi A là thuộc tính kết nối giữa R và S Thì với từng bộ t của R, tồn tại
bộ t' của S sao cho
Trang 40Phân mảnh dọc
Vertical Fragmentation
Trang 41 Đã được nghiên cứu trong ngữ cảnh tập trung
Trang 42 Các mảnh chồng nhau Overlapping fragments
Vertical Fragmentation
Trang 43 Thông tin ứng dụng
Æ Các ái lực thuộc tính (Attribute affinities)
Độ đo phản ánh các thuộc tính quan hệ gần nhau
Nhận được từ dữ liệu sử dụng ban đầu
Æ Giá trị sử dụng thuộc tính (Attribute usage values)
Cho tập các truy vấn Q = {q1, q2,…, q q } chạy trên quan hệ R[A1,
A2,…, A n],
use(q i ,•) được định nghĩa tương ứng
Trang 44Xét 4 truy vấn cho quan hệ PROJ
Gọi A1= PNO, A2= PNAME, A3= BUDGET, A4= LOC
Trang 45Độ đo ái lực thuộc tính giữa 2 thuộc tính Ai và Aj của
quan hệ R[A1, A2, …, An] ứng với tập quan hệ Q = (q1,
q2, …, qq) được định nghĩa như sau:
∑
Trang 46Giả sử từng truy vấn trong ví dụ trước truy cập trong
Trang 47 Lấy ma trận ái lực AA và tổ chức lại các thứ tự của
thuộc tính để tạo các cụm có các thuộc tính ứng với cụm có độ ái lực cao hơn cụm khác
Thuật toán năng lượng liên kết - Bond Energy
Algorithm (BEA) được dùng để gom cụm các thực thể BEA tìm thứ tự các thực thể ( trong trường hợp này là các thuộc tính) sao cho độ đó ái lực toàn cục sau
là cực đại.
AM = (affinity of A i and A j with their neighbors)
j
∑
i
∑
Trang 48 Lặp: Đặt n-i cột còn lại vào i+1 vị trí còn lại trong ma trận
CA Đối với từng cột, chọn vị trí đóng góp (contri bution)
lớn nhất vào độ đo ái lực toàn cục.
Sắp thứ tự dòng: Sắp xếp các dòng theo thứ tự cột.
Thuật toán năng lượng liên kết
Bond Energy Algorithm
Trang 49Vị trí “tốt nhất”? Xác định mức đóng góp của bố 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(A x ,A y) = aff(A z ,A x )aff(A z ,A y)
z = 1 n
∑
Trang 50Xét ma trận AA và ma trận tương ứng CA sau đây với A1 và A2 đã được đặt
A A A
1 2 3 4
Trang 51Do vật ma trận CA có dạng
A1 A3 A2
450450
455533
080575
Trang 52Sau khi đặt A4, dạng cuối cùng của ma trận CA (sau khi tổ chức dòng) là
A1 A3 A2 A4A
A
A
1
2 3
45450
45535
0580
0375
Trang 53Cách chia tập các thuộc tính gom cụm {A1, A2, …, An}
thành hai (hay nhiều hơn) các tập {A1, A2, …, Ai} và {Ai,
…, An} sao cho không có (hay có tối thiểu) các ứng dụng
truy cập cả hai (hay nhiều hơn một) của các tập hợp.
Trang 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
TA và BA
Sau đó tìm điểm dọc theo đường chéo làm cực đại
Trang 55Có hai vấn đề:
Æ Dịch lên một dòng và dịch trái một cột, áp dụng thuật toán tìmđiểm phân hoạch tốt nhất
Æ Làm điều này cho tất cả các dịch chuyển khả dĩ
Æ Chi phí O(m2)
Nhiều hơn 2 clusters
Æ Phân hoạch theo m-cách
Æ Thử với 1, 2, …, m–1 điểm tách dọc theo đường chéo và tìm điểm
tốt nhất cho từng điểm
Æ Chi phí O(2 m)
Trang 56A relation R, defined over attribute set A and key K, generates the vertical
Trang 57Phân mảnh hỗn hợp
Hybrid Fragmentation
R
HF HF
R1
VF VF
zz
z
Trang 58 Truyền thông + bộ nhớ + xử lý ( đọc & cập nhật)
Chi phí theo thời gian (thông thường)
Æ Công năng
Thời gian đáp ứng và/hay kết quả
Æ Ràng buộc
Trang 59Yêu cầu thông tin
Æ Đơn giá lưu trữ dữ liệu tại vị trí
Æ Đơn giá xử lý tại một vị trí
Æ Băng thông
Æ latency
Æ Tổn phí truyền thông
Trang 60Cấp phát tập tin(FAP) so với cấp phát CSDL (DAP):
Cần duy trì các mối quan hệ
Không thể áp dụng mô hình truy cập tập tin từ xa
Mối quan hệ giữa cấp phát và xử lý truy vấn
Cấp phát
Trang 61Yêu cầu thông tin
Æ Sựa lựa chọn các bộ truy vấn của các mảnh
Æ Kích thước của mảnh
Æ Số các truy cập đọc của truy vấn đến một mảnh
Æ Số các truy cập cập nhật của truy vấn đến một mảnh
Æ Ma trận biểu thị các truy vấn cập nhật mảnh
Æ Ma trận tương tự để đọc
Æ Vị trí nguyên thủy của từng truy vấn
Thông tin vị trí
Æ Đơn giá lưu trữ dữ liệu tại vị trí
Æ Đơn giá xử lý tại vị trí
Æ Chi phí truyền thông/khung sườn (frame) giữa 2 vị trí
Æ Kich thước khung sườn
Trang 62Dạng tổng quát
min(Total Cost) thỏa mãn
ràng buộc về thời gian đáp ứng ràng buộc về bộ nhớ
ràng buộc xử lý
Biến quyết định
Mô hình cấp phát
Trang 63 Tổng chi phí
Chi phí bộ nhớ (của Fj tại vị trí Sk)
Chi phí xử lý truy vấn (cho một truy vấn)
processing component + transmission component
Mô hình cấp phát
(unit storage cost at S k) ∗ (size of F j) ∗xjk
query processing cost +all queries
Trang 64 Chi phí xử lý truy vấn
Processing component
access cost + integrity enforcement cost + concurrency control cost
Æ Integrity enforcement and concurrency control costs
Can be similarly calculated
Trang 65all sites
∑
(min all sitesall fragments
∑ cost of retrieval command +
cost of sending back the result)
Trang 66 Ràng buộc
execution time of query ≤ max allowable response time for that query
Æ Ràng buộc xử lý (for a site)
Trang 67 Các phương pháp giải
Các Heuristics dựa trên
Mô hình cấp phát
Trang 68 Cố gắng giảm không gian lời giải
Æ Giá đình tất các các phân hoạch ứng viên đều đã biết; chọn phân hoạch “tốt nhất”
Mô hình cấp phát