SlideShare a Scribd company logo
1 of 68
Download to read offline
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
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.
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
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í
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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)
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)
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
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
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ụ
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
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
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
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
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
Distributed DBMS Page 5. 39 
„ 
Tínhđầyđủ 
Æ 
Toànvẹnthamchiếu 
Æ 
ChoRlàquanhệmember củalink cóowner làquanhệSđượcphânmảnhthànhFS= {S1, S2, ..., Sn}. NgoàiragọiAlàthuộctínhkếtnốigiữaRvàS. ThìvớitừngbộtcủaR,tồntạibột' củaSsaocho 
t[A]=t'[A] 
„ 
Táitạo 
Æ 
Giốngphânmảnhngangnguyênthủy. 
„ 
Rờinhau 
Æ 
Chi cójoin graphs giữaowner vàcácmember fragments. 
DHF – Tính đúng đắn Correctness
Distributed DBMS Page 5. 40 
Phân mảnh dọc Vertical Fragmentation
Distributed DBMS Page 5. 41 
„ 
Đãđượcnghiêncứutrongngữcảnhtậptrung 
Æ 
Phươngphápluậnthiếtkế( bàiônvềPTH, thiếtkếCSDL) 
Æ 
Gomcụmvậtlý 
„ 
Khóhơnphânmảnhngangvìcónhiềucách. 
Hai tiếpcận: 
Æ 
nhóm 
‹ 
Cácthuộctínhtớiphânmảnh 
Æ 
tách 
‹ 
Quanhệtớiphânmảnh 
Phân mảnh dọc Vertical Fragmentation
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
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 
⎧ 
⎩
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
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 
Σ
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
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 
Σ
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
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 
Σ
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
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
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
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
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
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
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
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
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ý)
Distributed DBMS Page 5. 59 
Yêu cầuthôngtin 
„ 
Thôngtin vềCSDL 
Æ 
Sựalựachọncácbộtruyvấncủacácmảnh 
Æ 
Kíchthướccủamảnh 
„ 
Thôngtin vềứngdụng 
Æ 
Kiểutruycậpvàsốtruycập 
Æ 
Tínhcụcbộcủatruycập 
„ 
Thôngtin vềmạngtruyềnthông 
Æ 
Đơngiálưutrữdữliệutại vịtrí 
Æ 
Đơngiáxửlýtạimột vịtrí 
„ 
Thôngtin vềhệthốngmáytính 
Æ 
Băngthông 
Æ 
latency 
Æ 
Tổnphítruyềnthông
Distributed DBMS Page 5. 60 
Cấppháttập tin(FAP) so vớicấp phát CSDL (DAP): 
Æ 
Cácphânmảnhkhôngphảilàcáctậptin riêngrẻ 
‹ 
Cầnduytrìcácmốiquanhệ 
Æ 
TruycậpđếnCSDL thườngphứctạphơn 
‹ 
Khôngthểápdụngmôhìnhtruycậptậptin từxa 
‹ 
Mốiquanhệgiữacấpphátvàxửlýtruyvấn 
Æ 
Cầnxemxétviệcépthỏaràngbuộctoànvẹn 
Æ 
Cầnxemxétkiểmsoátđồnghành 
Cấpphát
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
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 
⎧ 
⎨ 
⎩
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 
Σ
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
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)
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
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
Distributed DBMS Page 5. 68 
„ 
Cốgắnggiảmkhônggianlờigiải 
Æ 
Giáđìnhtấtcáccácphânhoạchứngviênđềuđãbiết; chọnphânhoạch“tốtnhất” 
Æ 
Bỏ đicácđầutiên 
Æ 
Trượtcửasổtrêncácmảnh 
Mô hình cấpphát

More Related Content

What's hot

Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Cấu trúc hệ điều hành
Cấu trúc hệ điều hànhCấu trúc hệ điều hành
Cấu trúc hệ điều hànhPhamTuanKhiem
 
Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)realpotter
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhnataliej4
 
Hệ thống thông tin quản lý-website tin tức nhà đất
Hệ thống thông tin quản lý-website tin tức nhà đấtHệ thống thông tin quản lý-website tin tức nhà đất
Hệ thống thông tin quản lý-website tin tức nhà đấtKali Back Tracker
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệHưởng Nguyễn
 
thiet ke-co-so-du-lieu-phan-tan
thiet ke-co-so-du-lieu-phan-tanthiet ke-co-so-du-lieu-phan-tan
thiet ke-co-so-du-lieu-phan-taniamchi
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchBIC
 
Naming - Định danh trong các hệ thống phân tán
Naming - Định danh trong các hệ thống phân tánNaming - Định danh trong các hệ thống phân tán
Naming - Định danh trong các hệ thống phân tánPhan Khanh Toan
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3pisu412
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệutrieulongweb
 
De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006Tran Tien
 
Hỗ trợ ra quyết định
Hỗ trợ ra quyết địnhHỗ trợ ra quyết định
Hỗ trợ ra quyết địnhlmphuong06
 
Tài liệu data warehouse vietsub
Tài liệu data warehouse  vietsubTài liệu data warehouse  vietsub
Tài liệu data warehouse vietsubhoangdat1361
 
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Duc Tran
 
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfPHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfMan_Ebook
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonjackjohn45
 

What's hot (20)

Đề tài: Quản lí Tour du lịch, HAY, 9đ
Đề tài: Quản lí Tour du lịch, HAY, 9đĐề tài: Quản lí Tour du lịch, HAY, 9đ
Đề tài: Quản lí Tour du lịch, HAY, 9đ
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Cấu trúc hệ điều hành
Cấu trúc hệ điều hànhCấu trúc hệ điều hành
Cấu trúc hệ điều hành
 
Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
 
Hệ thống thông tin quản lý-website tin tức nhà đất
Hệ thống thông tin quản lý-website tin tức nhà đấtHệ thống thông tin quản lý-website tin tức nhà đất
Hệ thống thông tin quản lý-website tin tức nhà đất
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
thiet ke-co-so-du-lieu-phan-tan
thiet ke-co-so-du-lieu-phan-tanthiet ke-co-so-du-lieu-phan-tan
thiet ke-co-so-du-lieu-phan-tan
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
 
Naming - Định danh trong các hệ thống phân tán
Naming - Định danh trong các hệ thống phân tánNaming - Định danh trong các hệ thống phân tán
Naming - Định danh trong các hệ thống phân tán
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3
 
Đề tài: Chương trình quản lý bán hàng theo chuỗi cung cấp, HAY
Đề tài: Chương trình quản lý bán hàng theo chuỗi cung cấp, HAYĐề tài: Chương trình quản lý bán hàng theo chuỗi cung cấp, HAY
Đề tài: Chương trình quản lý bán hàng theo chuỗi cung cấp, HAY
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệu
 
De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006
 
Hỗ trợ ra quyết định
Hỗ trợ ra quyết địnhHỗ trợ ra quyết định
Hỗ trợ ra quyết định
 
Tài liệu data warehouse vietsub
Tài liệu data warehouse  vietsubTài liệu data warehouse  vietsub
Tài liệu data warehouse vietsub
 
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
 
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfPHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
 

Similar to Bai 3 thietke_csdlpt

Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Hồ Lợi
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 
6.1 query optimization overview
6.1 query optimization overview6.1 query optimization overview
6.1 query optimization overviewTrần Thanh
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánduysu
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánduysu
 
Hệ PhâN TáN
Hệ PhâN TáNHệ PhâN TáN
Hệ PhâN TáNit
 
Mapreduce simplified-data-processing
Mapreduce simplified-data-processingMapreduce simplified-data-processing
Mapreduce simplified-data-processingViet-Trung TRAN
 
Bài 2 1 Mô hình hóa dl.ppt
Bài 2 1 Mô hình  hóa dl.pptBài 2 1 Mô hình  hóa dl.ppt
Bài 2 1 Mô hình hóa dl.pptDngDonTun
 
Bài 2 1 Mô hình hóa dl.ppt
Bài 2 1 Mô hình  hóa dl.pptBài 2 1 Mô hình  hóa dl.ppt
Bài 2 1 Mô hình hóa dl.pptDngDonTun
 
csdl - buoi1
csdl - buoi1csdl - buoi1
csdl - buoi1kikihoho
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Designyht4ever
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxdong92356
 
Cơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcCơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcChu TheKop
 
Pregel: Hệ thống xử lý đồ thị lớn
Pregel: Hệ thống xử lý đồ thị lớnPregel: Hệ thống xử lý đồ thị lớn
Pregel: Hệ thống xử lý đồ thị lớnViet-Trung TRAN
 

Similar to Bai 3 thietke_csdlpt (20)

Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1
 
Chuong 3 CSDL phân tán
Chuong 3 CSDL phân tánChuong 3 CSDL phân tán
Chuong 3 CSDL phân tán
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
6.1 query optimization overview
6.1 query optimization overview6.1 query optimization overview
6.1 query optimization overview
 
Chuong 2 CSDL phân tán
Chuong 2 CSDL phân tánChuong 2 CSDL phân tán
Chuong 2 CSDL phân tán
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tán
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tán
 
01 tong-quan-ado
01 tong-quan-ado01 tong-quan-ado
01 tong-quan-ado
 
Hệ PhâN TáN
Hệ PhâN TáNHệ PhâN TáN
Hệ PhâN TáN
 
Mapreduce simplified-data-processing
Mapreduce simplified-data-processingMapreduce simplified-data-processing
Mapreduce simplified-data-processing
 
Bài 2 1 Mô hình hóa dl.ppt
Bài 2 1 Mô hình  hóa dl.pptBài 2 1 Mô hình  hóa dl.ppt
Bài 2 1 Mô hình hóa dl.ppt
 
Bài 2 1 Mô hình hóa dl.ppt
Bài 2 1 Mô hình  hóa dl.pptBài 2 1 Mô hình  hóa dl.ppt
Bài 2 1 Mô hình hóa dl.ppt
 
CSDLPT
CSDLPTCSDLPT
CSDLPT
 
csdl - buoi1
csdl - buoi1csdl - buoi1
csdl - buoi1
 
Luận án: Đánh giá chất lượng mạng truyền thông chuyển tiếp
Luận án: Đánh giá chất lượng mạng truyền thông chuyển tiếpLuận án: Đánh giá chất lượng mạng truyền thông chuyển tiếp
Luận án: Đánh giá chất lượng mạng truyền thông chuyển tiếp
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptx
 
Cơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcCơ sở dữ liệu đại học
Cơ sở dữ liệu đại học
 
Pregel: Hệ thống xử lý đồ thị lớn
Pregel: Hệ thống xử lý đồ thị lớnPregel: Hệ thống xử lý đồ thị lớn
Pregel: Hệ thống xử lý đồ thị lớn
 
Chapter0
Chapter0Chapter0
Chapter0
 

More from Hồ Lợi

Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cHồ Lợi
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functionsHồ Lợi
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequyHồ Lợi
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignmentHồ Lợi
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapcHồ Lợi
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitapHồ Lợi
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhHồ Lợi
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Hồ Lợi
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++Hồ Lợi
 
Epc assignment
Epc assignmentEpc assignment
Epc assignmentHồ Lợi
 
Epc test practical
Epc test practicalEpc test practical
Epc test practicalHồ Lợi
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --thHồ Lợi
 

More from Hồ Lợi (20)

Xu ly chuoi
Xu ly chuoiXu ly chuoi
Xu ly chuoi
 
Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
 
T4
T4T4
T4
 
Nguyen lyoop
Nguyen lyoopNguyen lyoop
Nguyen lyoop
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequy
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignment
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++
 
File trong c_
File trong c_File trong c_
File trong c_
 
Epc assignment
Epc assignmentEpc assignment
Epc assignment
 
Epc test practical
Epc test practicalEpc test practical
Epc test practical
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --th
 
Dethi c++ -lt
Dethi c++ -ltDethi c++ -lt
Dethi c++ -lt
 
Debug trong c
Debug trong cDebug trong c
Debug trong c
 
D05 stl
D05 stlD05 stl
D05 stl
 

Bai 3 thietke_csdlpt

  • 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
  • 39. Distributed DBMS Page 5. 39 „ Tínhđầyđủ Æ Toànvẹnthamchiếu Æ ChoRlàquanhệmember củalink cóowner làquanhệSđượcphânmảnhthànhFS= {S1, S2, ..., Sn}. NgoàiragọiAlàthuộctínhkếtnốigiữaRvàS. ThìvớitừngbộtcủaR,tồntạibột' củaSsaocho t[A]=t'[A] „ Táitạo Æ Giốngphânmảnhngangnguyênthủy. „ Rờinhau Æ Chi cójoin graphs giữaowner vàcácmember fragments. DHF – Tính đúng đắn Correctness
  • 40. Distributed DBMS Page 5. 40 Phân mảnh dọc Vertical Fragmentation
  • 41. Distributed DBMS Page 5. 41 „ Đãđượcnghiêncứutrongngữcảnhtậptrung Æ Phươngphápluậnthiếtkế( bàiônvềPTH, thiếtkếCSDL) Æ Gomcụmvậtlý „ Khóhơnphânmảnhngangvìcónhiềucách. Hai tiếpcận: Æ nhóm ‹ Cácthuộctínhtớiphânmảnh Æ tách ‹ Quanhệtớiphânmảnh Phân mảnh dọc Vertical Fragmentation
  • 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ý)
  • 59. Distributed DBMS Page 5. 59 Yêu cầuthôngtin „ Thôngtin vềCSDL Æ Sựalựachọncácbộtruyvấncủacácmảnh Æ Kíchthướccủamảnh „ Thôngtin vềứngdụng Æ Kiểutruycậpvàsốtruycập Æ Tínhcụcbộcủatruycập „ Thôngtin vềmạngtruyềnthông Æ Đơngiálưutrữdữliệutại vịtrí Æ Đơngiáxửlýtạimột vịtrí „ Thôngtin vềhệthốngmáytính Æ Băngthông Æ latency Æ Tổnphítruyềnthông
  • 60. Distributed DBMS Page 5. 60 Cấppháttập tin(FAP) so vớicấp phát CSDL (DAP): Æ Cácphânmảnhkhôngphảilàcáctậptin riêngrẻ ‹ Cầnduytrìcácmốiquanhệ Æ TruycậpđếnCSDL thườngphứctạphơn ‹ Khôngthểápdụngmôhìnhtruycậptậptin từxa ‹ Mốiquanhệgiữacấpphátvàxửlýtruyvấn Æ Cầnxemxétviệcépthỏaràngbuộctoànvẹn Æ Cầnxemxétkiểmsoátđồnghành Cấpphát
  • 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
  • 68. Distributed DBMS Page 5. 68 „ Cốgắnggiảmkhônggianlờigiải Æ Giáđìnhtấtcáccácphânhoạchứngviênđềuđãbiết; chọnphânhoạch“tốtnhất” Æ Bỏ đicácđầutiên Æ Trượtcửasổtrêncácmảnh Mô hình cấpphát