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. 1
Bài toán thiết kế
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.
Nguyên tắc chung:
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. 2
Trong Hệ QTCSDLPT, việc bố trí ứng dụng bao
Các khía cạnh của bài toán
Access pattern behavior
dynamic
static
partial information
data Level of knowledge
data + program complete information
Distributed DBMS
Page 5. 3
Level of sharing
Thiết kế phân tán
Thiết kế hệ thống từ đầu
Các hệ thống đồng chất (homogeneous systems)
Từ trên xuống (Top-down)
Khi đã có CSDL ở một số vị trí
Distributed DBMS
Page 5. 4
Từ dưới lên (Bottom-up)
Thiết kế từ trên xuống
Requirements Analysis
Objectives
User Input
View Design
View Integration
Conceptual Design
GCS
ES’s
Access Information
User Input
Distribution Design
GCS: Global conceptual schema
LCS’s
ES:External Schema
LCS:Local conceptual schema
Physical Design
LIS’s
Distributed DBMS
Page 5. 5
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. 6
Phân mảnh dữ liệu
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ệ
Chỉ để phân tán các quan hệ? Đơn vị phân tán nào là hợp lý?
đượ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
Views không được định nghĩa trên một mảnh duy nhất
phần khác nhau của quan hệ
Kiểm soát dữ liệu ngữ nghĩa (đặc biệt là ép thỏa toàn
sẽ yêu cầu nhiều xử lý.
Distributed DBMS
Page 5. 7
vẹn) là điều khó khăn
Các kiểu phân mảnh– ngang
PROJ
PNO
PNAME
BUDGET
LOC
PROJ1 : các projects có kinh phí
150000 Montreal New York New York New York New York
P1 Instrumentation P2 Database Develop. 135000 250000 P3 CAD/CAM 310000 Paris P4 Maintenance 500000 Boston P5 CAD/CAM
nhỏ hơn $200,000 PROJ2 : các projects có kinh phí lớn hơn hay bằng $200,000
PROJ1
PROJ2
LOC
LOC
PNO
PNAME
PNO
PNAME
BUDGET
BUDGET
P1 Instrumentation
150000 Montreal
P3 CAD/CAM
250000 New York
P2 Database Develop. 135000 New York
P4 Maintenance
310000 Paris
P5 CAD/CAM
500000 Boston
Distributed DBMS
Page 5. 8
Các kiểu phân mảnh– dọc
PROJ
PNO
PNAME
BUDGET
LOC
PROJ1: thông tin về kinh phí
của đề án
150000 Montreal New York New York New York New York
PROJ2: thông tin về tên và vị trí của đề án
P1 Instrumentation P2 Database Develop. 135000 250000 P3 CAD/CAM 310000 Paris P4 Maintenance 500000 Boston P5 CAD/CAM
PROJ1
PROJ2
PNO BUDGET
PNO
PNAME
LOC
P1 P2 P3 P4 P5
150000 135000 250000 310000 500000
Montreal P1 Instrumentation P2 Database Develop. New York New York P3 CAD/CAM Paris P4 Maintenance Boston P5 CAD/CAM
Distributed DBMS
Page 5. 9
Mức độ phân mảnh
Số hữu hạn các kiểu
Bộ
Quan hệ (không phân mảnh)
hay Thuộc tính Phân mảnh (ngang, dọc)
Phân mảnh đến mức độ nào sẽ 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
Distributed DBMS
Page 5. 10
Tính đúng đắn trong phân mảnh
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
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 ).
Distributed DBMS
Page 5. 11
Tính rời nhau (disjointness)
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í, đây là bản sao
Nhân bản (replicated)
Nhân bản đầy đủ: một mảnh ở một vị trí ( full replication),
duy nhất của một mảnh trên mạng.
Nhân bản từng phần: mỗi mảnh ở vài vị trí ( partial
toàn bộ CSDL đều tồn tại ở từng vị trí.
Quy tắc:
replication)
1 read - only queries update queries
Distributed DBMS
Page 5. 12
If thì nên nhân bản , otherwise nhân bản có thể phát sinh vấn đề
So sánh các kiểu nhân bản
Full-replication
Partial-replication
Partitioning
Same Difficulty
Easy
QUERY PROCESSING
Same Difficulty
DIRECTORY MANAGEMENT
Easy or Non-existant
Moderate
Difficult
Easy
CONCURRENCY CONTROL
RELIABILITY
Very high
High
Low
Realistic
REALITY
Possible application
Possible application
Distributed DBMS
Page 5. 13
Các yêu cầu về thông tin
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
Distributed DBMS
Page 5. 14
Có 4 nhóm:
Phân mảnh
Phân mảnh ngang nguyên thủy (PHF)
Phân mảnh ngang được suy(DHF)
Phân mảnh ngang (HF)
Phân mảnh dọc (VF)
Distributed DBMS
Page 5. 15
Phân mảnh hỗn hợp (HF)
Phân mảnh ngang nguyên thủy PHF – yêu cầu thông tin
Với link L1
Quan hệ
Owner(L1)=SKILL
SKILL
Member(L1)=EMP
TITLE, SAL
L 1
EMP
PROJ
ENO, ENAME, TITLE
PNO, PNAME, BUDGET, LOC
L 3
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
L 2 ASG
ENO, PNO, RESP, DUR
Lực lượng của từng quan hệ: card(R)
Distributed DBMS
Page 5. 16
Thông tin về CDSL
Phân mảnh ngang nguyên thủy PHF – Yêu cầu thông tin
simple predicates : Cho R[A1, A2, …, An], vị từ đơn pj là
pj : Ai Value
với {=,<,≤,>,≥,≠}, ValueDi 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
Thông tin về ứng dụng
minterm predicates : Cho R và Pr={p1, p2, …,pm}
định nghĩa M={m1,m2,…,mr} là
M={ mi|mi = pjPrpj* }, 1≤j≤m, 1≤i≤z
với pj* = pj hay pj* = ¬(pj).
Distributed DBMS
Page 5. 17
PNAME = "Maintenance" BUDGET ≤ 200000
Phân mảnh ngang nguyên thủy PHF – Yêu cầu về thông tin
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)
Distributed DBMS
Page 5. 18
Phân mảnh ngang nguyên thủy PHF – yêu cầu về thông tin
Độ tuyển hội sơ cấp: minterm selectivities:
sel(mi) Số các bộ (tuple) của quan hệ được câu truy vấn truy
Thông tin ứng dụng
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
cập. Câu truy vấn được chỉ định bằng minterm predicate mi.
Distributed DBMS
Page 5. 19
predicate.
Phân mảnh ngang nguyên thủy Primary Horizontal Fragmentation
Định nghĩa :
(R ), 1 ≤ j ≤ w Rj = Fj
Do vậy,
Với Fj là công thức chọn, thích hợp là minterm predicate.
Distributed DBMS
Page 5. 20
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 PHF – Thuật toán
Quan hệ R, tập các vị từ đơn Pr
Cho: 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)
Distributed DBMS
Page 5. 21
Tính đầy đủ của các Simple Predicates
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ộ (tuple) của các mảnh hội tối thiểu (minterm fragments) được định nghĩa theo Pr phải thỏa yêu cầu với một ứng dụng bất kỳ, hai bộ của cùng một minterm fragment phải có cùng xác suất truy cập
Cho PROJ[PNO,PNAME,BUDGET,LOC], trên quan hệ này có hai ứng dụng.
(1) (2)
Tìm các kinh phí của từng đề án tại từng vị trí. Tìm các đề án có kinh phí nhỏ hơn $200000.
Distributed DBMS
Page 5. 22
Ví dụ :
Tính đầy đủ của các Simple Predicates
Theo (hình 5.8 trang 124 sách GK),
Pr={LOC=“Montreal”,LOC=“New York”,LOC=“Paris”}
Là không đầy đủ vì ứng dụng (2). Xác suất truy vấn hai bộ 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 đủ.
Distributed DBMS
Page 5. 23
Tính tối tiểu của vị từ đơn
mảnh f thành các mảnh con fi và fj) thì cần phải có một ứng dụng truy cập fi và fj vớ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, simple predicate phải liên ứng (relevant) với việc tạo ra phân mảnh.
Để một vị tự phát sinh phân mảnh, (vd, biến
ứng thì Pr is tối tiểu (minimal).
acc(mi): tần số truy cập của ứng dụng
≠
acc(mi) ––––– card(fi)
acc(mj) ––––– card(fj)
Distributed DBMS
Page 5. 24
Nếu tất cả các predicates của tập Pr đều có liên
Tính cực tiểu của vị từ đơn
Ví dụ :
BUDGET≤200000,BUDGET>200000}
Là tối tiểu (ngoài ra nó còn đầy đủ).
Tuy vậy, nếu thêm
Đầy đủ: xác suất truy cập các bộ giống nhau
Pr ={LOC=“Montreal”,LOC=“New York”, LOC=“Paris”,
Thì Pr không cực tiểu vì vị từ này không có liên ứng 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ố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. 25
PNAME = “Instrumentation”
Thuật toán COM_MIN
quan hệ R và tập các vị từ Pr Cho: 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.
Distributed DBMS
Page 5. 26
Thuật toán COM_MIN
Khởi tạo :
Tìm pi Pr sao cho pi phân hoạch R theo quy tắc 1 ; Pr Pr – pi ; F fi Gọi Pr' = pi Lặp lại việc thêm các vị từ vào Pr' cho đến khi
nó đầy đủ
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
Đặt Pr' = Pr' pi ; Pr Pr – pi; F F fi Nếu pk Pr' là không liên ứng thì
Distributed DBMS
Page 5. 27
Pr' Pr' – pk F F – fk
Thuật toán PHORIZONTAL
Dùng COM_MIN để phân mảnh. Nhập: Xuất:
quan hệ R và tập các vị từ đơn Pr 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 định tập M các minterm predicates 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
Distributed DBMS
Page 5. 28
Phân mảnh ngang nguyên thủy PHF – Ví dụ (1/2)
Ứ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à:
Cho các quan hệ ứng viên: PAY và PROJ. Phân mảnh quan hệ PAY
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
Distributed DBMS
Page 5. 29
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.
Phân mảnh ngang nguyên thủy 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
Các Minterm predicates
f1 do đó Pr‘ = { p1 } là đầy đủ và tối thiểu
Distributed DBMS
Page 5. 30
m1 : (SAL ≤ 30000) m2 : NOT(SAL ≤ 30000) (SAL > 30000)
PHF – Ví dụ: phân mảnh ngang cho quan hệ PAY
PAY1 PAY2
SAL SAL TITLE TITLE
Mech. Eng. 27000 Elect. Eng. 40000
Distributed DBMS
Page 5. 31
Programmer 24000 Syst. Anal. 34000
PHF – Ví dụ phân mảnh nganh quan hệ PROJ
Các ứng dụng:
Tìm tên và kinh phí của các đề án theo vị trí -location
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ập
(LOC) Được phát sinh ỏ 3 vị trí
>200000 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)
Distributed DBMS
Page 5. 32
p4 : BUDGET ≤ 200000 p5 : BUDGET > 200000
Phân mảnh ngang nguyên thủy PHF – Ví dụ
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)
Distributed DBMS
Page 5. 33
Phân mảnh ngang nguyên thủy PHF – Ví dụ
PNO PNAME
BUDGET
LOC
PNO PNAME
BUDGET
LOC
P2
135000 New York
P1
Instrumentation 150000 Montreal
Database Develop.
PROJ2 PROJ1
PNO PNAME
BUDGET
LOC
PNO PNAME
BUDGET
LOC
P3 CAD/CAM
250000
New York
P4
Maintenance
310000
Paris
Distributed DBMS
Page 5. 34
PROJ4 PROJ6
Phân mảnh ngang nguyên thủy PHF – Tính đúng đắn
Tình đầy đủ
Do Pr' là đầy đủ và tối tiểu, các vị từ chọn là đầy đủ
Tái tạo
Nếu quan hệ R được phân mảnh thành FR = {R1,R2,…,Rr}
Rời nhau
Các minterm predicates làm cơ sở cho phân mảnh cần phải
R = Ri FR Ri
Distributed DBMS
Page 5. 35
rời nhau từng đôi.
Phân mảnh ngang được suy Derived Horizontal Fragmentation
Mỗi link là một equijoin. Có thể hiện thực Equijoin bằng semijoins.
SKILL
TITLE, SAL
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
L1
EMP
PROJ
ENO, ENAME, TITLE
PNO, PNAME, BUDGET, LOC
Member(L1)= EMP
L2
L3
ASG
ENO, PNO, RESP, DUR
Distributed DBMS
Page 5. 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ó .
Phân mảnh ngang được suy DHF – Định nghĩa
Chon link L với owner(L)=S và member(L)=R, các mảnh ngang được suy 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à
(S) , Si là các phân mảnh ngang của owner
Si = Fi
Với Fi là công thức theo đó xác định phân mảnh ngang nguyên thủy Si.
Distributed DBMS
Page 5. 37
Phân mảnh ngang được suy DHF – Ví dụ
Given link L1 where owner(L1)=SKILL and member(L1)=EMP
SKILL
TITLE, SAL
where
L1
EMP
EMP1 = EMP SKILL1 EMP2 = EMP SKILL2
ENO, ENAME, TITLE
SKILL1 = SAL≤30000(SKILL) SKILL2 = SAL>30000(SKILL)
ENO
ENAME
TITLE
ENO
ENAME
TITLE
E3 E4 E7
A. Lee J. Miller R. Davis
Mech. Eng. Programmer Mech. Eng.
E1 E2 E5 E6 E8
J. Doe M. Smith B. Casey L. Chu J. Jones
Elect. Eng. Syst. Anal. Syst. Anal. Elect. Eng. Syst. Anal.
Distributed DBMS
Page 5. 38
EMP1 EMP2
Phân mảnh ngang được suy DHF – Tính đúng đắn
Toàn vẹn tham chiếu Cho R là quan hệ member của link có owner là quan
hệ S đượ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
t[A]=t'[A]
Tính đầy đủ
Giống phân mảnh ngang nguyên thủy.
Tái tạo
Chi có join graphs giữa owner và các member
fragments.
Distributed DBMS
Page 5. 39
Rời nhau
Phân mảnh dọc Vertical Fragmentation
Distributed DBMS
Page 5. 40
Phân mảnh dọc Vertical Fragmentation
Phương pháp luận thiết kế ( bài ôn về PTH, thiết kế
CSDL)
Gom cụm vật lý
Đã được nghiên cứu trong ngữ cảnh tập trung
Hai tiếp cận:
nhóm
Các thuộc tính tới phân mảnh
tách
Quan hệ tới phân mảnh
Distributed DBMS
Page 5. 41
Khó hơn phân mảnh ngang vì có nhiều cách.
Phân mảnh ngang Vertical Fragmentation
Các mảnh chồng nhau Overlapping fragments
Gom nhóm ( grouping )
Các mảnh không chồng nhau
Tách ( splitting )
Ta không xem xét các thuộc tính khóa được nhân bản là có
chồng nhau.
Tiện lợi:
Dễ ép thỏa các Phụ thuộc hàm
Distributed DBMS
Page 5. 42
(kiểm tra ràng buộc...)
VF – Yêu cầu thông tin
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,…, qq} chạy trên quan
Thông tin ứng dụng
hệ R[A1, A2,…, An],
use(qi,Aj) =
1 nếu thuộc tính Aj được tham chiếu bới truy vấn qi 0 ngược lại
Distributed DBMS
Page 5. 43
use(qi,•) được định nghĩa tương ứng
VF – Định nghĩa use(qi,Aj)
q2: SELECT PNAME,BUDGET
FROM PROJ
Xét 4 truy vấn cho quan hệ PROJ q1: SELECT BUDGET FROM PROJ WHERE PNO=Value
q4: SELECT SUM(BUDGET)
q3: SELECT PNAME FROM PROJ WHERE LOC=Value
FROM PROJ WHERE LOC=Value
Gọi A1= PNO, A2= PNAME, A3= BUDGET, A4= LOC A2
A4 A1 A3
q1 1 0 0 1
0 1 1 0
q2 q3 0 1 0 1
Distributed DBMS
Page 5. 44
1 0 0 1 q4
VF – Độ đó ái lực aff(Ai,Aj)
Độ đ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:
all queries that access Ai and Aj
(query access) aff (Ai, Aj)
all sites
Distributed DBMS
Page 5. 45
access frequency of a query query access access execution
VF – tính aff(Ai, Aj)
Giả sử từng truy vấn trong ví dụ trước truy cập
trong từng lần thực hiện.
Giả định tần số truy cập
S1 S2 20 15 q1 S3 10
Thì
5 0 0
aff(A1, A3) = 15*1 + 20*1+10*1
25 25 25 q 2 q3
= 45 ( dòng q1) Các ma trận ái lực thuộc tính AA is
1
2
0 3 0 q4
3
5 53 45
4
Distributed DBMS
Page 5. 46
A A A A 4 3 2 1 0 45 0 45 5 75 0 80 3 3 78 0 75 A A A A
VF – Thuật toán gom cụm
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
Lấy ma trận ái lực AA và tổ chức lại các thứ tự
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 độ đo ái lực toàn cục sau
AM (affinity of Ai and Aj with their neighbors)
i
j
là cực đại.
Distributed DBMS
Page 5. 47
Thuật toán năng lượng liên kết Bond Energy Algorithm
Nhập: Ma trận AA
Xuất: Ma trận ái lực gom cụm CA là một sắp xếp
của các hoán vị AA
Khởi tạo: Đặt và cố định một trong các cột của AA
vào CA.
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.
Distributed DBMS
Page 5. 48
Thuật toán năng lượng liên kết Bond Energy Algorithm
Vị 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
n
aff(Az,Ax)aff(Az,Ay) bond(Ax,Ay) =
z 1
Distributed DBMS
Page 5. 49
BEA – Ví dụ
Xét ma trận AA và ma trận tương ứng CA sau đây với A1 và A2 đã được đặt. Đặt A3:
A
A
2
2
3
4
1
5 5
A1 0 80
2
CA =
AA =
3
5 75
5 75
53 3
45 0 45 0
A A 1 0 45 80 0 45 0
A 0 75 3 78
A A A A
4
Thứ tự (0-3-1) :
Thứ tự (1-3-2) :
cont(A0,A3,A1) = 2bond(A0 , A3)+2bond(A3 , A1)–2bond(A0 , A1) = 2* 0 + 2* 4410 – 2*0 = 8820
cont(A1,A3,A2) = 2bond(A1 , A3)+2bond(A3 , A2)–2bond(A1,A2)
Thứ tự (2-3-4) :
= 2* 4410 + 2* 890 – 2*225 = 10150
Distributed DBMS
Page 5. 50
cont (A2,A3,A4) = 1780
BEA – Ví dụ
Do vậy ma trận CA có dạng
A1 A3 A2
45 45 0
0 5 80
45 53 5
Distributed DBMS
Page 5. 51
0 3 75
BEA – Ví dụ
Sau khi đặt A4, dạng cuối cùng của ma trận CA (sau khi tổ chức dòng) là
A A
1 45
2 0
4 0
1
A AA 3 45
3
A 45 53 5 3
2
A 0 5 80 75
4
Distributed DBMS
Page 5. 52
A 0 3 75 78
VF – Thuật toán
Cá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.
… . . . Am A1 A2 A3 Ai Ai+1
A1 A2
TA
Ai
Ai+1
BA
Distributed DBMS
Page 5. 53
Am
VF – Algorithm
Đị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ập vừ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 đến thuộc tính bởi ứng dụng chỉ
truy cập BA
COQ = tổng số các truy cập đến thuộc tính bởi ứng dụng truy
cập cả TA và BA
Sau đó tìm điểm dọc theo đường chéo làm cực đại
CTQCBQCOQ2
Distributed DBMS
Page 5. 54
VF – Algorithm
Có hai vấn đề:
Tạo Cluster ở điểm giữa ma trận CA
Dịch lên một dòng và dịch trái một cột, áp dụng thuật toán
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 phân hoạch tốt nhất
Chi phí O(2m)
Distributed DBMS
Page 5. 55
tìm điểm tốt nhất cho từng điểm
VF – Correctness
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 = K
Ri Ri FR
Disjointness
TID's are not considered to be overlapping since they are maintained
Duplicated keys are not considered to be overlapping
Distributed DBMS
Page 5. 56
by the system
Phân mảnh hỗn hợp Hybrid Fragmentation
R
HF
HF
R1
VF R11
VF R12
R2 VF VF R23 R22
VF R21
Distributed DBMS
Page 5. 57
Bố trí phân mảnh theo các vị trí
Phát biểu bài toán
mảnh các vị trí trên mạng ứng dụng, truy vấn
F = {F1, F2, …, Fn} S ={S1, S2, …, Sm} Q = {q1, q2,…, qq} Tìm phân bố “tối ưu” của F trên S.
Tối ưu
Chi phí cực tiểu
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
Ràng buộc trên từng vị trí (bộ nhớ & xử lý)
Distributed DBMS
Page 5. 58
Cho :
Yêu cầu thông tin
Thông tin về CSDL
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
Thông tin về ứng dụng
Kiểu truy cập và số truy cập Tính cục bộ của truy cập
Thông tin về mạng truyền thông Đơn giá lưu trữ dữ liệu tại vị trí Đơn giá xử lý tại một vị trí Thông tin về hệ thống máy tính
Băng thông latency Tổn phí truyền thông
Distributed DBMS
Page 5. 59
Cấp phát
Cấp phát tập tin(FAP) so với cấp phát CSDL (DAP):
Các phân mảnh không phải là các tập tin riêng rẻ
Cần duy trì các mối quan hệ
Truy cập đến CSDL thường phức tạp hơn
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ần xem xét việc ép thỏa ràng buộc toàn vẹn
Cần xem xét kiểm soát đồng hành
Distributed DBMS
Page 5. 60
Yêu cầu thông tin
Thông tin về CSDL
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
Thông tin về ứng dụng
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í
Thông tin về mạng
Chi phí truyền thông/khung sườn (frame) giữa 2 vị trí Kich thước khung sườn
Distributed DBMS
Page 5. 61
Mô hình cấp phát
Dạ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
xij
1 nếu mảnh Fi được lưu ở vị trí Sj 0 ngược lại
Distributed DBMS
Page 5. 62
Mô hình cấp phát
Tổng chi phí
all queries
query processing cost
all fragments
cost of storing a fragment at a site
all sites
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
Distributed DBMS
Page 5. 63
(unit storage cost at Sk) (size of Fj) xjk
Mô hình cấp phát
Chi phí xử lý truy vấn Processing component
Access cost
access cost + integrity enforcement cost + concurrency control cost
all fragments
(no. of update accesses+ no. of read accesses)
all sites
Integrity enforcement and concurrency control costs
Can be similarly calculated
Distributed DBMS
Page 5. 64
xijlocal processing cost at a site
Mô hình cấp phát
Chi phí xử lý truy vấn Thành phần truyền thông
Cost of updates
Chi phí xử lý cập nhật + chi phí xử lý đọc
all fragments
update message cost
all sites
all fragments
acknowledgment cost
all sites
Retrieval Cost
all fragments
cost of retrieval command ( minall sites
Distributed DBMS
Page 5. 65
cost of sending back the result)
Mô hình cấp phát
Thời gian đáp ứng
Ràng buộc
execution time of query ≤ max. allowable response time
Ràng buộc bộ nhớ (for a site)
for that query
all fragments
storage requirement of a fragment at that site
Ràng buộc xử lý (for a site)
storage capacity at that site
all queries
processing load of a query at that site
Distributed DBMS
Page 5. 66
processing capacity of that site
Mô hình cấp phát
FAP is NP-complete
DAP also NP-complete
Các phương pháp giải
Vị trí kho hoàng duy nhất (for FAP)
Bài toán xếp ba lô (knapsack problem)
Kỹ thuật nhánh và cận (branch and bound
techniques)
Bài toán luồng (network flow)
Distributed DBMS
Page 5. 67
Các Heuristics dựa trên
Mô hình cấp phát
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”
Bỏ đi các đầu tiên
Trượt cửa sổ trên các mảnh
Distributed DBMS
Page 5. 68
Cố gắng giảm không gian lời giải