Tải bản đầy đủ (.pdf) (68 trang)

THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (565.46 KB, 68 trang )

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


×