You are on page 1of 37

21/01/2021

1
21/01/2021

 Thiết kế CSDL tập trung


– Thiết kế lược đồ quan niệm
– Thiết kế CSDL vật lý
 Thiết kế CSDL phân tán
– Thiết kế lược đồ toàn cục
– Thiết kế phân mảnh
– Thiết kế định vị mảnh
– Thiết kế CSDL vật lý cục bộ

 Cần phải hiểu biết thật chính xác về các yêu


cầu của ứng dụng, nhất là các ứng dụng quan
trọng hơn.
 Cần quan tâm đến:
– Nơi chạy ứng dụng
– Tần suất chạy ứng dụng
– Số lượng, loại và sự phân tán của các truy
xuất trong mỗi ứng dụng đến mỗi đối tượng
dữ liệu cần thiết.
4

2
21/01/2021

 Tính cục bộ xử lý – processing locality


– Phân tán dữ liệu để làm cực đại hóa tính
cục bộ xử lý và đặt dữ liệu càng gần các
ứng dụng sử dụng các dữ liệu này càng tốt.
– Một quan hệ không là một đơn vị phân tán
thích hợp.
– Tính cục bộ xử lý dựa vào các tham chiếu
cục bộ và tham chiếu từ xa.
– Tính cục bộ hoàn toàn (complete locality).
5

 Tính sẵn sàng và độ tin cậy của dữ liệu


– Tính sẵn sàng (availability)
– Độ tin cậy (reliability)
 Điều phối tải làm việc
– Cực đại hóa mức độ thực hiện song song
các ứng dụng.
– Điều phối tải làm việc có thể ảnh hưởng
ngược lại với tính cục bộ xử lý.
– Tính đồng thời nội truy vấn.
6

3
21/01/2021

 Chi phí lưu trữ và khả năng lưu trữ có


sẵn
– Khả năng lưu trữ có sẵn tại mỗi nơi.
– Chi phí lưu trữ dữ liệu là không đáng kể so
với các chi phí CPU, nhập/xuất và truyền
thông của các ứng dụng, nhưng phải xét
giới hạn lưu trữ có sẵn tại mỗi nơi.
– Sử dụng cùng lúc các tiêu chuẩn là rất khó
khăn có thể xem một số đặc điểm là ràng
buộc hơn là mục tiêu.
7

 Có 2 cách tiếp cận trong thiết kế CSDL


phân tán
– Thiết kế từ trên xuống (top-down design)
• Thiết kế hệ thống từ đầu
• Các hệ thống đồng nhất (homogeneous
systems)
– Thiết kế từ dưới lên (bottom-up design)
• Khi đã có CSDL ở một số vị trí

4
21/01/2021

 Thiết kế lược đồ toàn cục


 Thiết kế phân mảnh CSDL
 Định vị các mảnh tại các nơi
 Thiết kế dữ liệu vật lý đặt tại các nơi

10

5
21/01/2021

11

 Chọn một mô hình CSDL chung để mô tả lược


đồ toàn cục của CSDL.
 Chuyển đổi mỗi lược đồ cục bộ thành mô hình
dữ liệu chung.
 Tích hợp các lược đồ cục bộ thành lược đồ
toàn cục chung.

12

6
21/01/2021

 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

13

 Phân mảnh ngang


– Phân mảnh ngang chính
– Phân mảnh ngang dẫn xuất
 Phân mảnh dọc
 Phân mảnh hỗn hợp

14

7
21/01/2021

 Các yêu cầu thông tin của phân mảnh ngang


– Thông tin về CSDL
– Thông tin về ứng dụng

15

 Liên quan đến lược đồ quan niệm toàn cục:


các quan hệ của CSDL được kết nối với nhau
như thế nào?
– Mô hình quan hệ: các mối liên kết này được thể
hiện thông qua các quan hệ
– Mô hình thực thể kết hợp: các mối liên kết giữa
các đối tượng CSDL được biểu diễn tường
minh.
 Gồm thông tin định tính và thông tin định
lượng.
16

8
21/01/2021

 Thông tin định tính


Với link L1:
Owner(L1) = PAY
Member(L1) = EMP

 Thông tin định lượng


– Số bộ (lực lượng) của mỗi quan hệ: card(R)
17

18

9
21/01/2021

 Gồm thông tin định tính giúp cho việc phân


mảnh và thông tin định lượng liên quan chủ yếu
đến các mô hình định vị.
 Thông tin định tính cơ bản gồm các vị từ được
sử dụng trong các truy vấn của người sử dụng.
 Nếu không thể phân tích tất cả các ứng dụng để
xác định các vị từ này  nghiên cứu các ứng
dụng quan trọng nhất.
 Quy tắc 80/20 (Wiederhold, 1982): 20% các
truy vấn thiết thực nhất cần đến 80% tổng số
lần truy xuất dữ liệu.
19

 Vị từ đơn giản (predicate simple): cho LĐQH


R(A1,A2,…,An), một vị từ đơn giản pj định
nghĩa trên R là một biểu thức luận lý:
Pj : Ai  value
– Trong đó,  = {=,<,≤,>,≥,≠},
value  Dom(Ai)
– Với một quan hệ R, chúng ta định nghĩa tập
các vị từ đơn giản được định nghĩa trên R:
Pr ={p1,p2,…,pm}
 Ví dụ : PNAME = "Maintenance"
BUDGET< 200000 20

10
21/01/2021

 Vị từ giao tối thiểu (minterm predicate) mj


đối với tập các vị từ đơn giản Pr ={p1,p2,…,pm}
là một tổ hợp giao của tất cả các vị từ xuất
hiện trong Pr, các vị từ này ở dạng thông
thường hoặc dạng phủ định để sao cho mj
không bị mâu thuẩn.
 Cho R và Pr = {p1, p2, …,pm}, định nghĩa tập
vị từ giao tối thiểu M = {m1,m2,…,mr},
M = {mi |mi = pjPr pj* }, 1≤j≤m, 1≤i≤z
Trong đó, pj* = pj or pj* = ¬(pj).
21

 Ví dụ:
– Pr gồm 2 vị từ sơ cấp là PNAME
= "Maintenance" và BUDGET<= 200000.
– Các vị từ giao tối thiểu:

22

11
21/01/2021

 Thông tin định lượng gồm:


 Độ chọn giao tối thiểu (minterm
selectivity): số bộ của quan hệ sẽ được truy
xuất bởi một câu truy vấn tương ứng với
một vị trừ giao tối thiểu cho trước. Ký hiệu:
sel(mi)
– Tần số truy xuất (access frequency): là
tần số của các ứng dụng truy xuất dữ liệu.
Nếu Q={q1, q2,…, qn} là tập các truy vấn thì
acc(qi) cho biết tần suất truy vấn của qi
trong một khoảng thời gian cho trước. 23

 Mảnh ngang chính được xác định bằng phép


chọn trên quan hệ toàn cục.

 Fi là điều kiện chọn của mảnh Ri (là một vị từ


giao tối thiểu mi).
 Cho trước tập vị từ giao tối thiểu M thì số
mảnh ngang bằng số vị từ giao tối thiểu.
 Tập mảnh ngang này cũng được gọi là tập các
mảnh giao tối thiểu (minterm fragment).
24

12
21/01/2021

 Một tập các vị từ đơn giản Pr là đầy đủ, nếu


và chỉ nếu bất kỳ hai bộ nào thuộc bất kỳ
mảnh giao tối thiểu nào được định nghĩa trên
Pr thì bất kỳ ứng dụng nào đều tham chiếu
đến hai bộ này với cùng một xác suất.
 Ví dụ:
– Giả sử PROJ (JNO,JNAME,BUDGET,LOC) có hai
ứng dụng được định nghĩa trên nó:
(1). Tìm thông tin về dự án tại mỗi thành phố (LOC)
(2). Tìm các dự án có BUDGET nhỏ hơn $200000
25

Giả sử ta có:
Pr={LOC=“Montreal”,LOC=“New York”,LOC=“Paris”}

26

13
21/01/2021

Pr={LOC=“Montreal”,LOC=“New York”,LOC=“Paris”}
 Đầy đủ theo (1) nhưng không đầy đủ theo (2)
 Chỉnh sửa???

27

 Một vị từ đơn là thích hợp (relevant) đến một


hành động phân mảnh nếu nó phân mảnh f
thành hai mảnh fi, fj và có ít nhất một ứng
dụng truy xuất đến các mảnh fi, fj với xác suất
trên các bộ là khác nhau.
 Nếu tất cả các vị từ đơn giản trong Pr đều
thích hợp đến các hành động phân mảnh thì
Pr được gọi là tối thiểu.

28

14
21/01/2021

 Ví dụ:
Pr ={LOC=“Montreal”, LOC=“New York”,
LOC=“Paris”, BUDGET≤200000,
BUDGET>200000}

29

 Input: một quan hệ R, tập các vị từ đơn giản


Pr.
 Output: Một tập phân mảnh của
R={R1,R2,…Rn} thỏa hai tính chất:
– Đầy đủ
– Tối thiểu

30

15
21/01/2021

 Input: Một quan hệ R và tập các vị từ đơn


giản Pr.
 Output: Một tập Pr’ đầy đủ và tối thiểu của
Pr.
 Qui tắc 1: Một quan hệ hoặc một mảnh được
phân thành ít nhất hai phần khác nhau và
được ít nhất một ứng dụng truy xuất các bộ
với xác suất khác nhau.
31

1. Khởi tạo
– Tìm một Pi  Pr sao cho Pi phân hoạch R theo
qui tắc 1.
– Pr’  pi; Pr  Pr - pi; F  fi
2. 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ủa Pr’
theo qui tắc 1.
Đặt Pr’Pr’pj; Pr  Pr – pj; F  F fj
Nếu  pk  Pr’, là một vị từ không phù hợp thì
Pr’  Pr’ – pk; F  F – fk
32

16
21/01/2021

33

 Sử dụng thuật toán COM_MIN để phân mảnh.


 Input: Quan hệ R, tập các vị từ đơn giản Pr.
 Output: Tập các vị từ giao tối thiểu M ấn định
cách phân mảnh quan hệ R.
1. Pr’  COM_MIN(R, Pr).
2. Xác định tập M của các vị từ giao tối thiểu.
3. Xác định tập I của các phép suy diễn giữa
các pi  Pr’.
4. Lọai bỏ các vị từ giao tối thiểu mâu thuẫn
khỏi M. 34

17
21/01/2021

35

 Ứng dụng: kiểm tra thông tin lương và quyết


định tăng lương.
 Các mẩu tin của nhân viên được lưu trữ ở 2 vị
trí  ứng dụng chạy ở 2 nơi (một nơi xử lý
các mẩu tin có lương <= 30000, nơi khác xử
lý các mẩu tin có lương > 30000).
 Các vị từ đơn giản được dùng để phân hoạch
quan hệ PAY:
p1 : SAL ≤ 30000, p2 : SAL > 30000

36

18
21/01/2021

 Thuật toán COM-MIN


– 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.
– 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.
37

 Sử dụng thuật toán COM-MIN


– Các minterm predicateas
• m1: (SAL  30000)
• m2: NOT (SAL  30000) = (SAL > 30000)

38

19
21/01/2021

 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)
• Vị trí 1 truy cập kinh phí  200000
• Vị trí 2 truy cập kinh phí > 200000
 Các vị từ đơn giản

39

Sử 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
– Các minterm fragment còn lại sau khi khử

40

20
21/01/2021

41

 Tính đầy đủ
 Do Pr’ là đầy đủ và tối thiểu nên các vị từ
chọn là đầy đủ.
 Tính tái tạo
Nếu quan hệ R được phân mảnh thành FR =
{R1,R2,…,Rr} R = Ri FR Ri
 Tính rời nhau
Các minterm predicates làm cơ sở để phân
mảnh cần phải rời nhau từng đôi.
42

21
21/01/2021

 Được định nghĩa trên các quan hệ bộ phận


(member) của đường liên kết theo phép chọn
trên quan hệ chủ (owner) của đường liên kết
này.
 Đường liên kết giữa quan hệ chủ và quan hệ
bộ phận được định nghĩa là một phép liên kết
bằng.
 Một phép kết bằng có thể được thực hiện
bằng các phép nửa kết.

43

PAY
TITLE, SAL

L1
EMP PROJ
ENO, ENAME, TITLE PNO, PNAME, BUDGET, LOC

L2 L3
Member(L1) = EMP
Owner(L1) = PAY ASG
ENO, PNO, RESP, DUR

44

22
21/01/2021

 Cho liên kết L với owner(L)=S và member(L)=


R, các mảnh ngang dẫn xuất của R được định
nghĩa như sau:

– n là số lượng lớn nhất các mảnh được định


nghĩa trên R.
– Si=Fi(S),Si là các phân mảnh ngang của owner.
– Fi là công thức dùng để xác định mảnh ngang
chính Si.

45

 Để thực hiện phân mảnh ngang dẫn xuất cần


có:
– Tập các mảnh của quan hệ chủ
– Quan hệ bộ phận
– Tập các vị từ nửa kết giữa quan hệ chủ và
quan hệ bộ phận.

46

23
21/01/2021

 Phép kết phân tán (distributed join)


– Là phép kết giữa các quan hệ được phân
mảnh ngang

– Phép kết phân tán được biểu diễn bằng đồ


thị kết (join graph)

47

 Đồ thị kết được gọi là hoàn toàn (total) nếu nó


chứa tất cả các cạnh có thể có giữa các mảnh của
R và S.
 Đồ thị kết được gọi là suy giảm (reduced) nếu
không có một số cạnh giữa các mảnh của R và S.
– Đồ thị kết suy giảm được gọi là phân hoạch
(partitioned) nếu nó bao gồm hai hoặc nhiều
đồ thị con và không có các cạnh giữa chúng.
– Đồ thị kết suy giảm gọi là đơn giản (simple)
nếu nó là phân hoạch và mỗi đồ thị con có
đúng một cạnh.
48

24
21/01/2021

49

Cho liên kết L1 với owner(L1)=PAY và member(L1)=EMP


EMP1 = EMP ⋉ PAY1 PAY

EMP2 = EMP ⋉ PAY2 TITLE, SAL

Trong đó,
L1
PAY1 = SAL≤30000(PAY)
EMP
PAY2 = SAL>30000(PAY)
ENO, ENAME, TITLE

50

25
21/01/2021

 Tính đầy đủ
 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 tái tạo
Giống phân mảnh ngang chính
 Tính rời nhau
chỉ có đồ thị kết giữa owner và các member
fragments. 51

 Phân mảnh dọc là việc gom nhóm các thuộc


tính của quan hệ toàn cục R thành tập thuộc
tính mà chúng được các ứng dụng tham chiếu
đến cùng một cách thức.
 Mục đích: xác định các mảnh Ri sao cho
nhiều ứng dụng có thể thực hiện bằng cách
chỉ sử dụng một mảnh.
 Xét quan hệ toàn cục R được phân thành 2
mảnh R1, R2. Phân mảnh dọc có ưu điểm khi
có nhiều ứng dụng sử dụng R1 và nhiều ứng
dụng sử dụng R2 chạy tại các nơi khác nhau. 52

26
21/01/2021

 Hai cách tiếp cận


– Phân tách (split): các quan hệ toàn cục
được phân tách dần để thành các mảnh.
– Gom nhóm (grouping): các thuộc tính được
kết hợp dần để thành các mảnh.
 Hai loại phân mảnh
– Phân mảnh dọc tách biệt: Các tập thuộc tính
không giao nhau.
– Phân mảnh dọc gom tụ: Các tập thuộc tính
có thể giao nhau.
53

 Ví dụ: xét quan hệ toàn cục


EMP(EMPNUM,NAME,SAL,TAX,MGRNUM,DEPTNUM)
Giả sử có các ứng dụng sử dụng quan hệ EMP:
– Ứng dụng quản trị, tập trung tại nơi 3, yêu
cầu thông tin Name, Sal, Tax.
– Ứng dụng về các công việc của mỗi phòng
ban, yêu cầu Name, MgrNum, DeptNum.
Phân mảnh dọc quan hệ EMP thành 2 mảnh.

54

27
21/01/2021

 Phân mảnh dọc tách biệt


EMP1(EMPNUM,NAME,SAL,TAX)
EMP2(EMPNUM,MGRNUM,DEPTNUM)
 Phân mảnh dọc gom tụ
EMP1(EMPNUM,NAME,SAL,TAX)
EMP2(EMPNUM,NAME,MGRNUM,DEPTNUM)
Trong trường hợp này phân mảnh dọc gom
tụ hiệu quả hơn phân mảnh dọc tách biệt.

55

 Thông tin ứng dụng


– Các ái lực thuộc tính (Attribute affinities)
• Độ đo phản ánh các thuộc tính quan hệ gần nhau
• Nhận được từ dữ liệu sử dụng ban đầu
– Giá trị sử dụng thuộc tính (Attribute usage
values): Cho tập các truy Q = {q1, q2,…, qq}
thực thi trên quan hệ R(A1, A2,…, An)
 1 nếu truy vấn qi tham chiếu đến thuộc tính Aj
use(qi,Aj) = 
 0, ngược lại

56

28
21/01/2021

 Xét 4 truy vấn cho quan hệ PROJ

 Gọi A1=PNO, A2=PNAME, A3=BUDGET, A4=LOC

57

 Độ đo ái lực (Affinity) 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,…qn) được định nghĩa như sau:

58

29
21/01/2021

 Độ đo ái lực (Affinity) 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,…qn) được định nghĩa như sau:

– refl(qk): số lần truy xuất đến các thuộc tính


(Ai,Aj) đối với mỗi lần thực hiện ứng dụng qk tại
nơi Sl.
– accl(qk): số đo tần số truy xuất của ứng dụng

59

 Giả sử mỗi truy vấn trong ví dụ trước truy cập các


thuộc tính 1 lần trong mỗi lần thực hiện.
Giả sử tần suất truy cập

Ma trận ái lực thuộc tính AA là:

60

30
21/01/2021

 Lấy ma trận ái lực AA và tổ chức lại các thứ tự


của thuộc tính để tạo ra các cụm có các thuộc
tính có độ đo ái lực cao hơn các cụm khác.
 Thuật toán năng lượng liên kết – Bond Energy
Algorithm (BEA) được dùng để gom cụm các
thực thể. BEA tìm thứ tự các thực thể (trong
trường hợp này là các thuộc tính) sao cho độ
ái lực toàn cục là cực đại.

61

 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á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 (contribution) 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. 62

31
21/01/2021

63

 Ví trí “tốt nhất”? Xác định mức đóng góp của


bố trí:

với

64

32
21/01/2021

 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:

65

 Do vậy, ma trận CA có dạng

 Sau khi đặt A4, dạng cuối cùng của ma trận CA


(sau khi tổ chức dòng) là:

66

33
21/01/2021

 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.

67

Đị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 vừa truy cập TA vừa truy cập 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 các thuộc tính bởi các
ứng dụng chỉ truy cập BA
COQ = tổng số các truy cập đến các thuộc tính bởi các
ứ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
CTQ*CBQ-COQ2 68

34
21/01/2021

Có 2 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 tìm điểm phân hoạch tốt nhất.
– Làm điều này cho tất cả các dịch chuyển khả dĩ
– Chi phí O(n2)
 Nhiều hơn 2 clusters
– Phân hoạch theo m-cách
– Thử với 1, 2,…,m-1 điểm tách dọc theo đường
chéo và tìm điểm tốt nhất cho từng điểm.
– Chi phí O(2n) 69

70

35
21/01/2021

 Bài toán: Cho


– F={F1,F2,…,Fn}: các mảnh
– S={S1,S2,…,Sm}: các vị trí trên mạng
– Q={q1,q2,…,qn}: ứ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ực tiểu: truyền thông + bộ nhớ + xử lý
(đọc và cập nhật)…
– Công năng: thời gian đáp ứng và/hoặc kết quả
– Ràng buộc: ràng buộc trên từng vị trí (xử lý và
bộ nhớ) 71

 Thông tin về CSDL


– Sự lựa chọn các bộ truy vấn của các mảnh
– Kích thước các 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
72

36
21/01/2021

Dạng tổng quát


Min(tổng chi phí)
Ràng buộc
– Thời gian đáp ứng
– Lưu trữ
– Xử lý

73

37

You might also like