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ế
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. 2
Các khía cạnh của bài toán
Access pattern behavior
dynamic
static
data
data +
program
partial
information
Level of knowledge
complete
information
Level of sharing
Distributed DBMS
Page 5. 3
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 (homogeneous systems)
Từ dưới lên (Bottom-up)
Æ Khi đã có CSDL ở một số vị trí
Distributed DBMS
Page 5. 4
Thiết kế từ trên xuống
Requirements
Analysis
Objectives
User Input
Conceptual
Design
View Integration
View Design
Access
Information
GCS
Distribution
Design
ES’s
User Input
GCS: Global conceptual schema
ES:External Schema
LCS’s
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
Chỉ để phân tán các quan hệ?
Đơn vị phân tán nà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ệ
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
Distributed DBMS
Page 5. 7
Các kiểu phân mảnh– ngang
PROJ
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
P1
P1
P2
P3
P4
P5
PNAME
BUDGET
Instrumentation
150000
Database Develop. 135000
CAD/CAM
250000
Maintenance
310000
CAD/CAM
500000
LOC
Montreal
New York
New
New York
York
Paris
Boston
PROJ2
PNAME
Instrumentation
BUDGET
150000
P2 Database Develop. 135000
Distributed DBMS
PNO
LOC
PNO
PNAME
BUDGET
LOC
Montreal
P3
CAD/CAM
250000
New York
New York
P4
Maintenance
310000
Paris
P5
CAD/CAM
500000
Boston
Page 5. 8
Các kiểu phân mảnh– dọc
PROJ
PROJ1: thông tin về kinh phí của
đề án
PROJ2: thông tin về tên và vị trí
của đề án
Distributed DBMS
PNO
P1
P2
P3
P4
P5
PROJ1
PROJ2
PNO
BUDGET
PNO
P1
P2
P3
P4
P5
150000
135000
250000
310000
500000
P1
P2
P3
P4
P5
PNAME
BUDGET
Instrumentation
150000
Database Develop. 135000
CAD/CAM
250000
Maintenance
310000
CAD/CAM
500000
PNAME
Instrumentation
Database Develop.
CAD/CAM
Maintenance
CAD/CAM
LOC
Montreal
New York
New
New York
York
Paris
Boston
LOC
Montreal
New York
New York
Paris
Boston
Page 5. 9
Mức độ phân mảnh
Số hữu hạn các kiểu
Bộ
hay
Thuộc tính
Phân mảnh (ngang, dọc)
Quan hệ (không 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
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
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 ).
Distributed DBMS
Page 5. 11
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:
read - only queries
≥ 1 thì nên nhân bản ,
If
update queries
otherwise nhân bản có thể phát sinh vấn đề
Distributed DBMS
Page 5. 12
So sánh các kiểu nhân bản
Full-replication
QUERY
PROCESSING
Partial-replication
Partitioning
Easy
Same Difficulty
DIRECTORY
MANAGEMENT
Easy or
Non-existant
Same Difficulty
CONCURRENCY
CONTROL
Moderate
Difficult
Easy
RELIABILITY
Very high
High
Low
REALITY
Possible
application
Realistic
Possible
application
Distributed DBMS
Page 5. 13
Các yêu cầu về thông tin
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
Distributed DBMS
Page 5. 14
Phân mảnh
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)
Distributed DBMS
Page 5. 15
PHF – yêu cầu thông tin
Thông tin về CDSL
Với link L1
Æ Quan hệ
Owner(L1)=SKILL
SKILL
Member(L1)=EMP
TITLE, SAL
EMP
L1
PROJ
ENO, ENAME, TITLE
L2
PNO, PNAME, BUDGET, LOC
L3
ASG
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
ENO, PNO, RESP, DUR
Æ Lực lượng của từng quan hệ: card(R)
Distributed DBMS
Page 5. 16
PHF – Yêu cầu thông tin
Thông tin về ứng dụng
Æ simple predicates : Cho R[A1, A2, …, An], vị từ đơn pj là
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
Æ minterm predicates : Cho R và Pr={p1, p2, …,pm}
định nghĩa M={m1,m2,…,mr} là
M={ mi|mi = ∧p ∈Pr pj* }, 1≤j≤m, 1≤i≤z
j
với pj* = pj hay pj* = ¬(pj).
Distributed DBMS
Page 5. 17
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
PHF – yêu cầu về thông tin
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 mi.
Æ Tần số truy cập: access frequencies: acc(qi)
Distributed DBMS
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.
Page 5. 19
Phân mảnh ngang nguyên thủy
Primary Horizontal Fragmentation
Định nghĩa :
Rj = σF (R ), 1 ≤ j ≤ w
j
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.
Distributed DBMS
Page 5. 20
PHF – Thuật toán
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 :
Æ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ộ 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ỳ.
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í.
ÆTìm các đề án có kinh phí nhỏ hơn $200000.
Distributed DBMS
(1)
(2)
Page 5. 22
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ì 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 đủ.
Distributed DBMS
Page 5. 23
Tính tối tiểu của vị từ đơn
Để một vị tự phát sinh phân mảnh, (vd, biế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 có liên đới (relevant) trong việc gây ra
phân mảnh.
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(mi)
–––––
card(fi)
Distributed DBMS
acc(mj)
≠ –––––
acc(mi): tần số
truy cập của ứng
dụng
card(fj)
Page 5. 24
Tính cực tiểu của vị từ đơn
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
Đầy đủ: xác
suất truy cập
các bộ giống
nhau
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ố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