1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế CSDL Phân tán

86 383 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 1,61 MB

Nội dung

Các loại phân mảnh Phân mảnh dọc: Tách lược đồ của quan hệ R thành các lược đồ có số cột nhỏ hơn thực ra là thực hiện phép chiếu quan hệ R lên tập các thuộc tính của các quan hệ Ri... P

Trang 1

Thiết kế CSDL Phân tán

Nhóm thực hiện: Trần Anh Dũng

Nguyễn Thanh Huy Nguyễn Thành Nam

Trường Đại học Khoa học Tự nhiên

Khoa Công Nghệ Thông Tin

Môn học: CSDL Phân tán Giảng viên: PGS TS Đồng Thị Bích

Thuỷ

Trang 2

Nội dung

 Giới thiệu thiết kế cơ sở dữ liệu phân tán

 Các chiến lược thiết kế

 Thiết kế từ trên xuống

 Thiết kế từ dưới lên

Trang 4

 Chia sẻ dữ liệu và chương trình

 Dữ liệu và chương trình được chia sẻ ở các nơi

Trang 5

Kiểu truy cập

 Mối quan hệ giữa thiết kế cơ sở dữ liệu phân tán và xử

lý truy vấn

 Static: không thay đổi theo thời gian

 Dynamic: thay đổi theo thời gian

Trang 6

Mức độ hiểu biết về kiểu truy cập

 Không có sự hiểu biết

 Khó khăn để thiết kế cơ sở dữ liệu phân tán có hiệu quả với vị trí này

 Hiểu biết một phần

 Có thể có sự thay đổi so với dự đoán

 Hiểu rõ hoàn toàn

 Kiểu truy cập có thể được dự báo trước

Trang 7

Các chiến lược thiết kế

Trang 8

Chiến lược Top – Down

 Top – Down là hướng tiếp cận thích hợp khi một hệ thống dữ liệu được thiết kế từ đầu

Trang 9

Chiến lược Bottom – Up

 Khi đã tồn tại một vài CSDL và công việc thiết kế để kết hợp lại với nhau thành một dữ liệu chung

 Điểm khởi đầu là lược đồ khái niệm cục bộ

 Quy trình là việc kết hợp các lược đồ cục bộ thành lược

đồ khái niệm toàn cục

Trang 11

Các loại phân mảnh

 Phân mảnh dọc: Tách lược đồ của quan hệ R thành các lược đồ có số cột nhỏ hơn (thực ra là thực hiện phép chiếu quan hệ R lên tập các thuộc tính của các quan hệ Ri)

Trang 12

 Phân mảnh ngang: Tách quan hệ R theo cách mà mỗi n_bộ của R có mặt trong một hay nhiều quan hệ thành phần

Các loại phân mảnh (2)

Trang 13

 Phân mảnh hỗn hợp: sự kết hợp giữa phân mảnh ngang, dọc.

Các loại phân mảnh (3)

Trang 15

Yêu cầu thông tin

 Có nhiều yếu tố ảnh hưởng việc thiết kế một hệ CSDL phân tán tối ưu: Tổ chức csdl, ứng dụng, mạng,…

Trang 16

Phân mảnh ngang – HF

 Các loại phân mảnh ngang

 Phân mảnh ngang nguyên thủy: Dùng vị từ của quan

hệ cần phân mảnh

 Phân mảnh ngang dẫn xuất: Dùng vị từ của một quan

hệ khác để phân mảnh

 Hai khía cạnh ảnh hưởng phân mảnh:

 Thông tin dữ liệu

 Thông tin ứng dụng

Trang 17

HF – Thông tin dữ liệu

 Mối quan hệ (relationships): Rất quan trọng trong việc thiết kế phân tán

 Các đường nối (links): Thể hiện phép kết bằng giữa các quan hệ

 Thông tin định lượng: Số bộ của quan hệ R: card(R)

Trang 18

HF – Thông tin dữ liệu (tt)

 Ví dụ:

Trang 19

HF – Thông tin ứng dụng

 Hai loại: thông tin định lượng và định tính

 Thông tin định tính là các vị từ định tính được sử dụng trong truy vấn, dựa trên sự phân tích các ứng dụng:

 Trong đó:

Trang 20

HF – Thông tin ứng dụng (tt)

 Ví dụ:

Trang 21

HF – Thông tin ứng dụng (tt)

 Thông tin định lượng:

 Độ tuyển hội sơ cấp: sel(mi) – số bộ của một quan hệ được trả về bởi truy vấn dựa vào vị từ hội sơ cấp mi

 Tần suất truy cập: acc(mi) – tần suất truy cập dữ liệu của ứng dụng khi truy vấn sử dụng vị từ hội sơ cấp

Trang 22

Phân mảnh ngang nguyên thủy

 Định nghĩa: Phân mảnh Ri = δ Fi (R) i = 1, 2,…, t Trong

 Ví dụ:

 Phân rã quan hệ PROJ thành PROJ1 và PROJ2

dùng các vị từ cơ bản: Budget <= 100000 và Budget

> 100000

 Ta được 2 quan hệ:

 PROJ1 = δ budget <= 100000 (PROJ)

 PROJ2 = δ budget > 100000 (PROJ)

Trang 23

Phân mảnh ngang dẫn xuất

 Là sự phân mảnh quan hệ member dựa trên cơ sở phân mảnh quan hệ owner

 Cho trước đường nối L, ta có: Owner(L) = S và

Member(L) = R Định nghĩa các mảnh ngang dẫn xuất của R như sau:

 Ri = R Φ Si với i=1 s

 s: số lượng các mảnh ngang trên S

 Si = δFi(S) là mảnh ngang nguyên thủy được xây dựng

từ vị từ hội sơ cấp Fi

 Φ: phép kết bằng trên khóa của member và owner

Trang 24

Phân mảnh ngang dẫn xuất (tt)

 Ví dụ: Xét quan hệ PAY và EMP trong sơ đồ bên trên

 Quan hệ PAY có: MPAY = {m1: sal<=3500; m2: sal>3500}

 Vậy PAY có hai phân mảnh: PAY1 và PAY2

 PAY1 = δsal<=3500 (PAY)

 PAY2 = δsal>3500 (PAY)

 Ta sẽ được hai phân mảnh ngang dẫn xuất:

 EMP1 = EMP Φ PAY1

 EMP2 = EMP Φ PAY2

Trang 25

 Cực tiểu: Một vị từ là thừa nếu không có ứng dụng nào truy xuất đến mảnh do nó sinh ra

Trang 26

HF – Các bước thực hiện (tt)

 Bước 2: Tính tập vị từ hội sơ cấp từ tập đầy đủ và cực tiểu

 Bước 3: Loại bỏ những vị từ hội sơ cấp vô nghĩa

 Bước 4: Thuật toán tìm tập vị từ hội sơ cấp có nghĩa (thuật toán Phorizontal)

Trang 27

Bước 1 – Thuật toán com_min (1)

 Quy tắc cơ bản:

 Một quan hệ hoặc một mảnh được phân hoạch thành

ít nhất 2 phần và chúng được truy xuất khác nhau bởi

ít nhất một ứng dụng

 Thuật toán: Gọi fi của PR là mảnh fi được sinh ra từ một vị

từ hội sơ cấp trong PR

 Đầu vào: R là quan hệ, PR là tập vị từ đơn giản

 Đầu ra: PR’ là tập vị từ đơn giản và cực tiểu

Trang 28

Bước 1 – Thuật toán com_min (2)

Tìm một pj thuộc PR sao cho pj phân hoạch một mảnh

fk của PR’ theo quy tắc cơ bản;

PR’=PR’ + {pj}; PR = PR - {pj}; F = F + {fj};

If tồn tại pk thuộc PR’ là một vị từ không có liên đới thì Begin PR’ = PR’ - {pk}; F = F-{fk}; End ;

End

Trang 29

Bước 2

 Tính tập vị từ hội sơ cấp từ tập đầy đủ và cực tiểu

 Việc tính toán này rất dễ nhưng hay dẫn đến những tập vị từ hội sơ cấp lớn do việc tính toán máy móc

 Việc giản ước tập vị từ hội sơ cấp được thực hiện ở bước 3

Trang 30

Bước 3

 Loại bỏ những vị từ hội sơ cấp vô nghĩa

 Cách làm: xác định những vị từ mâu thuẫn với tập các phép kéo theo

 Ví dụ: PR’={p1,p2}; giả sử Att là thuộc tính và {V1,V2} là miền thuộc tính của Att, ta có:

 p1: Att=V1 và p2: Att=V2

 Ta có các phép kéo theo

 (Att=V1)→⌐(Att=V2)

⌐(Att=V )→ (Att=V )

Trang 32

Bước 4 – Thuật toán PHORIZONTAL

Begin

PR’ = COM_MIN(R,PR);

Tính tập M các vị từ hội sơ cấp từ PR’;Tính tập I các phép kéo theo giữa các pi thuộc PR’;

For mỗi mi thuộc M do

IF mi mâu thuẫn với I then M = M - {mi};

Trang 34

Phân mảnh dọc – Hướng tiếp cận

 Phân mảnh dọc là bài toán rất phức tạp Có hai hướng tiếp cận chính đã được nghiên cứu:

 Phương pháp nhóm: Khởi đầu bằng tập các mảnh, mỗi mảnh có một thuộc tính, tại mỗi bước ghép một

số mảnh lại cho đến khi thỏa một tiêu chí nào đó

 Phương pháp tách: Tại mỗi bước tìm một phân hoạch có lợi cho việc truy xuất của ứng dụng trên các thuộc tính của nó

 Trong hai phương pháp trên thì phương pháp tách tỏ ra hiệu quả hơn

Trang 35

Phân mảnh dọc – Hướng tiếp cận

 Hướng tiếp cận bằng phương pháp tách gồm 3 bước

sau:

 Xây dựng ma trận ái lực thuộc tính (attribute affinity

matrix)

 Sử dụng thuật toán gom cụm (clustering algorithm)

để gom nhóm các thuộc tính dựa trên ma trận ái lực thuộc tính  clustered affinity matrix

 Sử dụng thuật toán phân hoạch (partitioning

algorithm)

Trang 36

 Thông tin dùng để phân mảnh dọc có liên quan đến các ứng dụng, một mảnh dọc thường chứa các thuộc tính thường xuyên được truy xuất chung bởi một ứng dụng.

 Người ta đã tìm cách lượng hóa khái niệm này bằng một

số đo gọi là “ái lực” (affinity)

 Có thể tính được khi biết được tần số truy xuất tới các thuộc tính đó của ứng dụng

 Trên cơ sở khái niệm “ái lực” và tính được độ sử dụng thuộc tính của các câu vấn tin của ứng dụng người ta đã xây dựng giải thuật tách rất hữu hiệu

Phân mảnh dọc – Thông tin yêu cầu

Trang 37

 Gọi Q = {q1, q2, …, qm} là tập các câu vấn tin sẽ truy xuất trên quan hệ R(A1, A2, …, Am)

 Với mỗi câu vấn tin qi và thuộc tính Aj, chúng ta sẽ đưa

ra một giá trị sử dụng thuộc tính, ký hiệu là use(qi, Aj)

được định nghĩa như sau:

Phân mảnh dọc – Thông tin yêu cầu

Trang 38

 Ví dụ: Xét CSDL với quan hệ PROJ(PNo, PName, Budget, Loc)

 Giả sử có 4 ứng dụng như sau:

 q1: Tìm ngân sách của dự án theo mã số

SELECT Budget

FROM PROJ WHERE PNo = Value

 q2: Tìm tên và ngân sách của tất cả các dự án

SELECT PName, Budget

Phân mảnh dọc – Ví dụ

Trang 39

 Ví dụ (tt):

 q3: Tìm tên của dự án theo vị trí

SELECT PName

FROM PROJ WHERE Loc = Value

 q4: Tìm tổng ngân sách của dự án tại mỗi vị trí

SELECT SUM(Budget) FROM PROJ

WHERE Loc = Value

Phân mảnh dọc – Ví dụ

Trang 40

 Để thuận tiện, đặt A1 = PNo, A2 = PName, A3 = Budget, A4

00

10

10

01

10

01

01

Trang 41

 Số đo ái lực (Affinity) của hai thuộc tính Ai, Aj ký hiệu là

aff(Ai, Aj) biểu thị cho cầu nối (bond) giữa hai thuộc tính, dựa vào sự truy xuất của các ứng dụng

 ref l (q k ) là số truy xuất đến các thuộc tính (Ai, Aj) cho mỗi ứng dụng của qk tại vị trí l

 acc l (q k ) là tần số truy xuất ứng dụng qk tại vị trí l

) (

) (

) ,

(

1 ) , ( 1

) , (

|

k l

k Aj

qk use Ai

qk use

l q acc q ref

A A

Trang 42

 Xét lại ví dụ trên và để cho đơn giản chúng ta giả sử

refl(qk)=1 và số mảnh là 3, số đo tần số truy xuất ứng dụng giả thuyết như sau:

 acc1(q1) = 15 acc2(q1) = 20 acc3(q1) = 10

 acc1(q2) = 5 acc2(q2) = 0acc3(q2) = 0

 acc1(q3) = 25 acc2(q3) = 25 acc3(q3) = 25

 acc1(q4) = 3 acc2(q4) = 0 acc3(q4) = 0

Ma trận ái lực thuộc tính – Ví dụ

Trang 43

 Như vậy số đo ái lực giữa hai thuộc tính A1 và A3 là:

11

00

10

10

01

10

01

01

3

2525

25

00

5

1020

()

,(A A ref q acc q

Trang 44

 Vậy ma trận ái lực thuộc tính đầy đủ như sau:

Ma trận ái lực thuộc tính – Ví dụ

78 3

75 0

3 53

5 45

75 5

80 0

0 45

0 45

Trang 45

Thuật toán gom cụm

 Thuật toán gom cụm (Clustering Algorithm)

 Mục tiêu của thuật toán này là tìm một phương pháp

để nhóm các thuộc tính của một quan hệ lại dựa trên các giá trị ái lực thuộc tính trong AA

 Thuật toán BEA (Bond Energy Algorithm), tác giả Hofer & Severance, 1975 và Navathe et al, 1984

 Ý tưởng: Từ ma trận ái lực thuộc tính AA sinh ra ma trận ái lực cụm CA (Cluster affintity matrix) dựa trên các hoán vị hàng và cột Hoán vị được thực hiện sao cho số đo ái lực chung AM (global affinity measure) là

Trang 46

Số đo ái lực chung – AM

 Trong đó:

 Vì ma trận AA có tính đối xứng nên ta có:

)]

, (

) ,

(

) ,

( )

, ( )[

, (

1 1

1

1

A A

aff A

A aff

A A

aff A

A aff

A A aff

AM

j i

j i

j i

j i

j

n i

n j

+

0)

,()

,(

),

()

,(A0 A = aff A A0 = aff A +1 A = aff Ai A +1 =

)]

, ( )

, ( )[

,

aff

AM = ∑∑n n i j i j− + i j+

Trang 47

Số đo ái lực chung – AM (tt)

 Chúng ta định nghĩa cầu nối (bond) giữa hai thuộc tính

Ax, Ay như sau:

 Do đó:

)] ,

( )

, ( )

, ( )

, (

1 1

A A A

A A

A A

x z

y

x A aff A A aff A A A

bond

1

),

()

,()

,(

]),

()

,(

[

1

1 1

j

j A bond A A A

bond AM

Trang 48

 Bây giờ chúng ta xét n thuộc tính sau:

 A1 A2 … Ai-1 Ai Aj Aj+1 … An

 Số đo ái lực chung cho các thuộc tính này là:

AM old = AM ’ + AM ’’ + bond(A i-1 , A i ) + bond(A i , A j ) + bond(A j , A i ) + bond(A j , A j+1 )

=

)]

, ( )

, ( [

)]

, ( )

, (

+ +

n

l l i

l

l l

A A bond A

A bond

A A bond A

A bond

Số đo ái lực chung – AM (tt)

Trang 49

 Khi đặt một thuộc tính mới Ak giữa các thuộc tính Ai và Ajthì số đo ái lực chung mới là:

 AMnew = AM’ + AM’’ + bond(Ai, Ak) + bond(Ak, Ai)

+ bond(Ak, Aj) + bond(Aj, Ak) = AM’ + AM’’ + 2bond(Ai, Ak) + 2bond(Ak, Aj)

 Vì vậy, đóng góp thực cho số đo ái lực chung khi đặt Akgiữa Ai và Aj là:

cont(Ai, Ak, Aj) = AMnew- AMold

= 2bond(A, A ) + 2bond(A , A) – 2bond(A, A)

Đóng góp thực – Net contribution

Trang 50

 Ví dụ: Xét ma trận AA được tính ở trên, tính đóng góp thực khi chuyển thuộc tính A4 vào giữa các thuộc tính A1

Đóng góp thực – Net contribution

Trang 52

 Quá trình sinh ma trận ái lực cụm (CA) gồm 3 bước:

 Khởi gán: Đặt và cố định một trong các cột của AA vào trong CA Cột 1 được chọn

 Thực hiện lặp: Lấy lần lượt 1 trong n-i cột còn lại (i là

số cột đã được đặt vào CA) và thử đặt vào i+1 vị trí còn lại trong ma trận CA Chọn đặt sao cho AM là lớn nhất Lặp đến hết các cột

 Sắp thứ tự hàng: Khi thứ tự cột đã xác định, các hàng cũng cần đặt lại để các vị trí tương đối của

Thuật toán BEA

Trang 53

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

For i:=1 To index-1 Do

Tính cont(Ai-1, Aindex, Ai);

Thuật toán BEA

Trang 54

Tính cont(Aindex-1, Aindex, Aindex+1);

loc := Nơi đặt được chọn bởi giá trị cont lớn nhất

For j:=index DownTo loc Do

CA(*, j) := CA(*, j-1);

End For

CA(*, loc) := AA(*, index);

index := index + 1;

End //End While

Thuật toán BEA (tt)

Trang 55

 Với những kết quả tính toán ở các ví dụ trên, chúng ta xem xét quá trình tạo CA như sau:

 Bước 1: Khởi gán

Thuật toán BEA – Ví dụ

783

750

353

545

755

800

045

045

800

045

Trang 56

Thuật toán BEA – Ví dụ (tt)

 Bước 2: Xác định thứ tự cho A3

 Tính:

 cont(A0, A3, A1)

 cont(A1, A3, A2)

 cont(A2, A3, A4)

z y

, ( )

, (

) , ( 2

) , ( 2

) , ( 2

) , , (A i A k A j bond A i A k bond A k A j bond A i A j cont = ⋅ + ⋅ − ⋅

)()

()

,(A A ref l q k acc l q k

Trang 58

 Bước 2: Xác định thứ tự cho A4

Thuật toán BEA – Ví dụ (tt)

783

750

353

545

755

800

045

045

0

5 53

45

80 5

0

0 45

5345

7580

50

00

4545

A1 A3 A2 A4

Trang 59

 Bước 3: Sắp thứ tự hàng

 Nếu ma trận CA lớn ta sẽ thấy có nhiều cụm hơn vì vậy

sẽ dẫn đến có nhiều phân hoạch để lựa chọn hơn

Thuật toán BEA – Ví dụ (tt)

7875

30

35

5345

7580

50

00

4545

30

7580

50

35

5345

00

4545

Trang 60

 Từ ma trận CA (Clustered Affinity matrix) chúng ta cần định nghĩa nơi để phân hoạch các thuộc tính để tạo ra một mảnh.

Phân hoạch thuộc tính

7875

30

7580

50

35

5345

00

4545

Trang 61

 Xét tập ứng dụng Q = {q1, q2, …, qt}, ta định nghĩa:

 AQ(qi) = {Aj|use(qi, Aj)=1}: Tập thuộc tính được truy xuất bởi ứng dụng qi

 TQ = {qi|AQ(qi) ⊆ TA}: Tập ứng dụng chỉ truy xuất TA

 BQ = {qi|AQ(qi) ⊆ BA}: Tập ứng dụng chỉ truy xuất BA

 OQ = Q - {TQ U BQ}

Phân hoạch thuộc tính

Trang 62

 Giả sử có n thuộc tính của một quan hệ, thì chúng ta có

n-1 vị trí có thể chọn cho điểm phân chia Vị trí tốt nhất

để chọn sao cho tổng các truy xuất chỉ một mảnh là lớn nhất còn tổng truy xuất hai mảnh là nhỏ nhất

 Vì vậy, chúng ta định nghĩa phương trình chi phí như sau:

Thuật toán phân hoạch thuộc tính

Trang 63

 Tìm một điểm phân chia x (1 ≤ x < n) sao cho:

Trang 64

 Input:

 Ma trận ái lực cụm CA

 Quan hệ R

 Ma trận sử dụng thuộc tính ref

 Ma trận tần số truy xuất acc

 Tập thuộc tính khóa chính K của R

 Output: Tập các mảnh dọc F

Thuật toán PARTITION

Trang 65

Thuật toán PARTITION

Trang 66

if z > best then Begin

best = z Ghi nhận vị trí phân hoạch trong dịch chuyển

End if End For

call SHIFT(CA)

until no more SHIFT is possiple

reconstruct the matrix according to the shift position

R1 := ΠTA(R) U K

R2 := ΠBA(R) U K

Thuật toán PARTITION

Trang 67

Thuật toán phân hoạch thuộc tính

 Ví dụ: Xét lại ví dụ trên

z = CTQ * CBQ – COQ 2

11

00

10

10

01

10

01

01

3

2525

25

00

5

1020

Trang 68

Ví dụ (tt)

TA BA TQ BQ OQ CTQ CBQ COQ z

A1 A3,2,4 Q2,3,4 Q1 0 83 45 -2025 A1,3 A2,4 Q1 Q3 Q2,4 45 75 8 3367

Trang 69

Phân mảnh hỗn hợp

Trong hầu hết những trường hợp dùng phân mảnh ngang hoặc phân mảnh dọc của một mô hình dữ liệu thì không đủ để thỏa mãn

những yêu cầu của chương trình ứng dụng người dùng  phân

mảnh kết hợp (hay còn gọi là phân mảnh hỗn hợp hay phân mảnh

tổ hợp)

Trang 70

 Để tái xây dựng mối quan hệ tổng thể ban đầu trong trường hợp của phân mảnh kết hợp, một phân mảnh kết hợp bắt đầu tại những nút lá của cây phân chia và di chuyển ngược lên bằng việc nối ghép (joins) và hợp nhất (unions)

Phân mảnh hỗn hợp

Trang 71

Phân bổ (Allocation)

Vấn đề trong phân bổ

Những thông tin yêu cầu

Mô hình phân bổ

Trang 73

Chúng ta hãy xem xét công thức rất đơn giản để tiếp cận vấn

đề tối ưu Đối với thời gian chúng ta chỉ xem xét trên một phân

mảnh đơn lẻ F k Chúng ta đưa ra một số các giả định và các

định nghĩa mà chúng ta có thể thực hiện được các mô hình về vấn đề phân bổ

1 Giả sử Q có thể thay đổi để nó có thể nhận ra việc cập

nhật và những truy vấn thu hồi

Trang 74

2 Giả sử rằng chi phí trao đổi là khác biệt đối với

những cập nhật và thu nhận để có thể được xác định như sau:

Ngày đăng: 29/06/2015, 14:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w