1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng hệ cơ sở dữ liệu phân tán chuong 2 thiết kế dữ liệu

51 550 3

Đ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 51
Dung lượng 1,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các chiến lược thiết kế • Thiết kế phân tán là phần trọng tâm của thiết kế trong các hệ qtcsdl phân tán ngoài các nhiệm vụ truyền thống khác cho csdl – Mục tiêu : thiết kế các lược đồ q

Trang 1

CHƯƠNG II: THIẾT KẾ

CSDL PHÂN TÁN

1

Trang 2

CHƯƠNG II: THIẾT KẾ CSDL PHÂN

TÁN

2.1 Những vấn đề thiết kế

2.2 Phân mảnh trong cơ sở dữ liệu phân tán 2.3 Định vị trong cơ sở dữ liệu phân tán

Trang 3

Khung thiết kế csdl phân tán

• Các định hướng cho phân tích các hệ thống phân tán

– Mức chia sẻ: không chia sẻ, chia sẻ dữ liệu, chia sẻ dữ liệu+chương trình – Hành vi các mẫu truy nhập: tĩnh , động

– Mức nhận biết hành vi các mẫu truy nhập: không có thông tin, thông tin phân chia, thông tin đầy đủ

Trang 4

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

Trang 5

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

• Chiến lược thiết kế top-down

5

Trang 6

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

• Chiến lược thiết kế bottom-up

Trang 7

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

• Thiết kế phân tán là phần trọng tâm của thiết kế trong các hệ qtcsdl phân tán ( ngoài các nhiệm vụ truyền thống khác cho csdl) – Mục tiêu : thiết kế các lược đồ quan niệm cục bộ(LCS) bằng cách phân tán các thực thể (quan hệ) qua các site

– Hai khía cạnh:

• Phân mảnh: Quan hệ có thể được chia thành các quan hệ con phân tán

• Định vị và nhân bản:

• Mỗi phân mảnh được lưu ở site với phân tán tối ưu

• Bản sao phân mảnh có thể được duy trì ở một vài site

• Tập trung chủ yếu 2 khía cạnh này

7

Trang 8

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

• Những vấn đề thiết kế:

– Tại sao phân mảnh?

– Phân mảnh như thế nào?

– Phân bao nhiêu mảnh?

– Kiểm tra tính đúng đắn như thế nào?

– Định vị như thế nào?

Trang 9

CHƯƠNG II: THIẾT KẾ CSDL PHÂN

TÁN

2.1 Những vấn đề thiết kế

2.2 Phân mảnh trong cơ sở dữ liệu phân tán

2.3 Định vị trong cơ sở dữ liệu phân tán

9

Trang 10

Phân mảnh

• Đơn vị nào là phù hợp cho phân tán? Phân mảnh hay quan hệ?

• Các quan hệ là đơn vị cho phân tán:

– Nêu quan hệ không được nhân bản, ta đạt được dung lượng từ xa lớn

– Nếu quan hệ được nhân bản, ta có các quan hệ không cần thiết được nhân bản, gây ra nhiều vấn đề về vận hành cập nhật và lãng phí không gian đĩa – Phải có 1 giải pháp tốt nếu các truy vấn cần mọi dữ liệu trong quan hệ và dữ liệu chỉ ở 1 site dùng dữ liệu.

• Các phân mảnh là đơn vị cho phân tán:

– Các khung ứng dụng thường là tập con của quan hệ

– Vị trí của truy nhập các ứng dụng được định nghĩa là tập con của các quan hệ – Cho phép các giao dịch vận hành tương tranh do chúng sẽ truy nhập các

phần khác nhau của quan hệ.

– Vận hành song song các truy vấn đơn(tương tranh trong truy vấn)

– Điều khiển dữ liệu ngữ nghĩa(đảm bảo tính toàn vẹn) khó hơn

> Phân mảnh quan hệ thường là đơn vị phân tán phù hợp.

Trang 11

• Các thông tin hỗ trợ cho quyết định phân mảnh:

– Thông tin số lượng : Tần số truy vấn, các site chạy truy vấn và chọn các truy vấn

– Thông tin chất lượng : Các kiểu truy nhập dữ liệu, đọc/ghi

11

Trang 12

Phân mảnh

• Các kiểu phân mảnh

– Ngang: Phân chia quan hệ theo các bộ của nó

– Dọc: phân chia quan hệ theo các thuộc tính của nó

– Hỗn hợp/lai: tổ hợp phân mảnh ngang và phân mảnh dọc

Trang 14

Phân mảnh

• Phân mảnh ngang của quan hệ PROJ

– PROJ1: các dự án với ngân sách nhỏ hơn 2000000

– PROJ2: các dự án với ngân sách >= 200000

Trang 15

Phân mảnh

• Ví dụ: phân mảnh dọc của quan hệ PROJ

– PROJ1: thông tin về ngân sách dự án

– PROJ2: thông tin về tên và vị trí dự án

15

Trang 16

Các luật đúng đắn của phân mảnh

• Tính đúng đắn: Phân rã quan hệ R thành các phân mảnh R1,R2, ,Rn là

đúng khi và chỉ khi hạng mục dữ liệu trong R có thể tìm thấy trong Ri

• Xây dựng lại : Nếu quan hệ R được phân rã đúng thành các phân mảnh

R1,R2, ,Rn thì có thể tồn tại thao tác xây dựng lại R từ các phân mảnh của nó

R = R1  Rn

– Phép hợp tổ hợp các phân mảnh ngang

– Phép kết nối tổ hợp các phân mảnh dọc

• Không kết nối: Nếu quan hệ R được phân rã thành các mảnh R1,R2, ,Rn

và hạng mục dữ liệu d i xuất hiện trong phân mảnh R j thì d i sẽ không xuất hiện trong bất kỳ phân mảnh Rk nào khác (k ≠ j) trừ thuộc tính khóa sơ cấp cho phân mảnh dọc )

– Với phân mảnh ngang, hạng mục dữ liệu là một bộ

– Với phân mảnh dọc , hạng mục dữ liệu là một thuộc tính

Trang 17

Phân mảnh ngang

• Trực giác phía sau phân mảnh ngang:

– Mọi site nên giữ tất cả các thông tin được dùng để truy vấn ở site

• Phân mảnh ngang là thao tác chọn đã định

Trang 18

Phân mảnh ngang

• Tính toán phân mảnh ngang(ý tưởng)

– Tính toán tần số của các truy vấn riêng của site q1, ,qQ

– Viết lại các truy vấn site dạng tuyển chuẩn (hội các tuyển)-

minterm

– Tính toán chọn các minterm

– Tìm tập tối thiểu và đầy đủ của các minterm(các vị từ )

• Tập các vị từ là đầy đủ khi và chỉ khi 2 bộ bất kỳ trong cùng một phân mảnh được tham chiếu với cùng xác suất với mọi ứng dụng.

• Tập các vị từ là tối thiểu khi và chỉ khi có ít nhất 1 truy vấn truy nhập phân mảnh

− Có giải thuật tìm phân mảnh (giải thuật COM_MIN và

PHORIZONTAL

Trang 19

Phân mảnh ngang

• Ví dụ: Phân mảnh của quan hệ PROJ

– Xem xét truy vấn sau: Tìm tên và ngân sách của dự án theo PNO của nó

– Truy vấn được phát ra đến cả 3 site

– Phân mảnh dựa trên LOC dùng vị từ/minterm

{LOC = Montreal ,LOC = NewY ork ,LOC = Paris ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris '}

PROJ 1 = LOC=′Montreal′ (PROJ) PROJ 2 = LOC=′New York′ (PROJ)

PROJ 3 = LOC=′Parisl′ (PROJ)

19

Trang 20

Phân mảnh ngang

• Ví dụ

– Thêm BUDGET ≤ 200000 and BUDGET > 200000 để tập vị từ là đầy đủ

==> {LOC =′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris′,

BUDGET ≥ 200000,BUDGET < 200000} là tập đầy đủ

- Minterm để phân mảnh quan hệ sẽ là:

(LOC =′ Montreal′)  (BUDGET ≤ 200000)

(LOC =′ Montreal′)  (BUDGET > 200000)

(LOC =′ NewY ork′)  (BUDGET ≤ 200000)

(LOC =′ NewY ork′)  (BUDGET > 200000)

(LOC =′ Paris′)  (BUDGET ≤ 200000)

(LOC =′ Paris′)  (BUDGET > 200000)

Trang 21

Phân mảnh ngang

– Có thể chia PROJ2 thành hai phân mảnh

PROJ2 =  LOC=′NY ′  BUDGET<200000 (PROJ)

PROJ′2 =  LOC= NY ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris ′ Montreal′,LOC =′ NewY ork′,LOC =′ Paris BUDGET≥200000(PROJ)

PROJ 1 =  LOC=′Montreal′ (PROJ)

PROJ3 =  LOC=′Paris′ (PROJ)

nhỏ hơn hay bằng 200000

21

Trang 22

Phân mảnh ngang

• Ta thực hiện phân mảnh ngang Cho {t1, t2,

t3}, {t4, t5}, và {t2, t3, t4, t5} là các kết quả truy vấn Các bộ này sẽ được phân mảnh theo cách sau:

Trang 23

Phân mảnh dọc

23

• Mục tiêu của phân mảnh dọc là phân chia quan hệ thành các quan

hệ nhỏ hơn sao cho nhiều ứng dụng sẽ chỉ chạy trên một phân

mảnh.

• phân mảnh dọc một quan hệ tạo ra các phân mảnh R 1 ,R 2 , mỗi

một trong chúng chứa một tập con các thuộc tính R'

• phân mảnh dọc được định nghĩa dùng phép chiếu của đại số quan

hệ

Ví dụ:

• Phân mảnh dọc cũng đã được nghiên cứu trong Hệ quản trị CSDL tập trung: quan hệ nhỏ hơn và truy nhập trang ít hơn

Trang 24

Phân mảnh dọc

• Phân mảnh dọc phức tạp hơn nhiều phân mảnh

ngang

– Trong phân mảnh ngang, với số bộ n vị từ đơn, số

minterm khả dĩ là 2n; có thể loại bỏ bớt nhờ các kéo

theo/ ràng buộc.

– Trong phân mảnh dọc: với m thuộc tính không khóa, số các phân mảnh khả dĩ là B(m) (số Bell thứ m), số phân chia là tập với m thành viên

• Với các số lớn B(m)  mm

• Nếu các giải pháp tối ưu hóa không khả dĩ, dùng heuristic

Trang 25

Phân mảnh dọc

25

• Hai kiểu heuristic cho phân mảnh dọc:

– Gom nhóm: Gán mỗi thuộc tính cho một phân mảnh, ở mỗi

bước kết nối vài phân mảnh cho tới khi các tiêu chuẩn được thỏa mãn

 Cách tiếp cận bottom-up

– Tách rời: Quyết định phân chia dựa trên hành vi truy nhập

của các ứng dụng đối với các thuộc tính

Tiếp cận top-down

Các kết quả trong các phân mảnh không chồng lấn

Giải pháp "tối ưu" gần với quan hệ đầy đủ hơn tập các quan

hệ nhỏ chỉ với 1 thuộc tính

Ta sẽ xét kiểu này

Trang 26

Phân mảnh dọc

• Các thông tin ứng dụng: Các thông tin vào

chủ yếu cho phân mảnh dọc quan hệ với ứng dụng

– Do phân mảnh dọc đặt vào một phân mảnh các

thuộc tính thường được truy nhập với nhau, cần có

đo lường xác định "tính cùng nhau" , các thuộc

tính quan hệ với nhau như thế nào.

– Thông tin này có được từ truy vấn và được thu

thập trong ma trận sử dụng thuộc tính và ma trận

ái lực thuộc tính.

Trang 27

Phân mảnh dọc

27

• Các truy vấn/ứng dụng người dùng Q=(q1,q2, ,qq) sẽ chạy trên quan hệ R(A1,A2, ,An)

• Ma trận sử dụng thuộc tính: thể hiện thuộc tính nào

được sử dụng:

use(qi,Aj)= /1 nếu qi dùng Aj

\0 nếu khác đi

Trang 28

Phân mảnh dọc

• Ví dụ xet quan hệ sau:

PROJ(PNO, PNAME,BUDGET,LOC)

Các truy vấn sau:

q1 = SELECT BUDGET FROM PROJ WHERE PNO =Value

q2 = SELECT PNAME,BUDGET FROM PROJ

q3 = SELECT PNAME FROM PROJ WHERE LOC =Value

q4 = SELECT SUM( BUDGET ) FROM PROJ WHERE LOC =Value

• Quy ước A1 = PNO,A2 = PNAME,A3 = BUDGET,A4 = LOC

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

Trang 29

Phân mảnh dọc

29

• Ma trận ái lực thuộc tính: Thể hiên tần suất của 2

thuộc tính đối với tập các truy vấn Q=(q1, ,qn)

– với refl(qk) là giá(=số các truy nhập (Ai,Aj) ) của truy vấn

qk ở site l

– accl(qk) là tần suất của truy vấn tại site l

Trang 30

Phân mảnh dọc

• Ví dụ: Giá mỗi truy vấn là ref l (qk)=1 và tần suất acc l (qk) của truy vấn là:

• Ma trận ái lực thuộc tính aff(Ai,Aj)=

(q1 là truy vấn trên cả A1 và A3)

Trang 31

Phân mảnh dọc

31

• Đem ma trận thuộc tính(AA) và tổ chức lại để hình thành các bó, ở đó thuộc tính trong mỗi bó biểu thị ái lực cao với thuộc tính khác

• Giải thuật buộc năng lương (BEA): thuận tiện cho việc tổ chức vì:

– Được thiết kế đặc biệt xác định nhóm các hạng mục có thứ bậc gần nhau

– Những gom nhóm cuối cùng thì không nhậy với thứ bậc được thể hiện – Thời gian tính toán là O(n 2 ), n là số thuộc tính

• BEA

– Đầu vào : ma trận AA (A 0j =Ai0=Ai(j+1)=Ai(j+1)=0)

– Đầu ra: ma trận bó AA (CA)

– Tính giao hoán được thực hiện để cực đại đo lường ái lực tổng thể( ái

lực Ai và Aj với các láng giềng của chúng)

Trang 32

Phân mảnh dọc

• Ma trận ái lực thuộc

tính CA sau khi chạy BEA

• Các phần tử với giá trị tương tự được nhóm lại, hai bó có thể được xác định.

• Một giải thuật phân chia bổ sung để xác định các bó trong CA: (nhằm chọn cách bó tốt nhất )

PROJ1 = {PNO,BUDGET}

PROJ2 = {PNO, PNAME,LOC}

Trang 33

Tính đúng đắn của phân mảnh dọc

• Quan hệ R được phân rã thành R1,R2, Rn

Ví dụ PROJ={PNO,BUDGET, PNAME, LOC} thành

Trang 34

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

• Trong hầu hết các trường hợp, phân mảnh ngang hay phân mảnh dọc đơn giản sẽ không thỏa mãn các yêu cầu ứng dụng

• Phân mảnh hỗn hợp(lai) : Phân mảnh ngang tiếp sau phân

mảnh dọc hay ngược lại

• Phân mảnh sử dụng phép chọn và phép chiếu của đại số quan hệ

Trang 35

Nhân bản và định vị

• Nhân bản :Phân mảnh nào sẽ được lưu với nhiều bản sao?

- Nhân bản hoàn toàn : Bản sao đầy đủ của csdl được duy trì ở mỗi site.

- Nhân bản có chọn: Các phân mảnh lựa chọn được nhân bản ở một số site

• Định vị: Các phân mảnh khác nhau được lưu trên site nào

- Tập trung: gồm csdl và hệ qtcsdl đơn được lưu ở một site với người dùng phân tán trên mạng

- Phân chia: csdl được phân chia thành nhiều phân mảnh tách rời, mỗi phân mảnh trên một site

35

Trang 36

NHÂN BẢN

• Csdl nhân bản

- Nhân bản đầy đủ: mỗi phân mảnh trên mỗi site

- Nhân bản phân chia: mỗi phân mảnh ở 1 vài site

• Luật định hướng: Nếu

Truy_vấn_chỉ_đọc/Truy_vấn_ cập_nhật 1

thì nhân bản cho hiệu quả cao, ngược lại có thể gặp khó khăn.

Trang 38

CHƯƠNG II: THIẾT KẾ CSDL PHÂN

TÁN

2.1 Những vấn đề thiết kế

2.2 Phân mảnh trong cơ sở dữ liệu phân tán

2.3 Định vị trong cơ sở dữ liệu phân tán

Trang 39

- Giá tối ưu

– Truyền thông+ Lưu trữ xử lý(đọc và cập nhật)

– Giá thời gian(thường sử dụng)

- Hiệu năng: Thời gian đáp ứng hay thông lượng

- Các ràng buộc: Trên site (lưu trữ và xử lý)

39

Trang 40

• RR ij : Số các truy nhập đọc của truy vấn q i tại phân mảnh F j

• UR ij : Số các truy nhập cập nhật của truy vấn q i tại phân mảnh F j

• uij: một ma trận chỉ thị truy vấn nào cập nhật phân mảnh nào

• site khởi động mỗi truy vấn.

- Thông tin site

• USC k : giá đơn vị của lưu trữ dữ liệu ở site k

• LPC k : giá xử lý một đơn vị dữ liệu ở site k

- Thông tin mạng:

• Giá truyền thông một khung giữa 2 site

• Kích thước khung

Trang 41

Định vị phân mảnh

• Mô hình định vị nhằm

– Tối thiểu hóa giá thành tổng cộng lưu trữ và xử lý

– Giải quyết những nghiêm ngặt về thời gian đáp ứng.

• Dạng chung: min( giá thành tổng cộng)

Trang 42

Định vị phân mảnh

• Giá thành tổng cộng của hai thành phần: lưu trữ và xử lý truy vấn:

– Giá lưu trữ phân mảnh Fi được lưu trong site Sj

* USCk: giá đơn vị của lưu trữ dữ liệu ở site k

– Giá xử lý truy vấn cho truy vấn qi gồm 2 thành phần : Giá

xử lý (PC) và giá truyền thông (TC)

Trang 43

LPC k : giá xử lý một đơn vị dữ liệu ở site k

– Giá toàn vẹn và tương tranh: có thể tính toán tương tự phụ

thuộc các ràng buộc đặc tả

• Chú ý : ACi giả thiết xử lý 1 truy vấn dẫn đến phân rã thành tập các truy vấn con, làm việc trên các phân mảnh.

– Mô hình đơn giản

– Chưa quan tâm đên các phép toán hay các giải thuật khác nhau được áp dụng

Trang 44

Định vị phân mảnh

• Giá truyền thông gồm 2 thành phần :

– Giá xử lý cập nhật(TCU) và giá xử lý đoc(TCR)

– Giá cập nhật: Thông báo mọi site có nhân bản+ thông báo xác nhận

*(giá thông điệp cập nhật+giá xác nhận)

– Giá đọc: Gửi yêu cầu đọc đến mọi site có 1 bản sao của phân mảnh

cần thiết + xác nhận từ các site này đến site khởi thủy

Trang 45

Định vị phân mảnh

45

• Mô hình ràng buộc

– Ràng buộc thời gian đáp ứng cho truy vấn qi

thời gian vận hành của qi ≤ max thời gian đáp ứng cho phép cho qi

– Ràng buộc lưu trữ của site Sk

yêu cầu dung lượng Fj ở Sk ≤ dung lượng của Sk

– Ràng buộc xử lý cho site Sk

tải xử lý của qi tai site Sk ≤ dung lượng xử lý của Sk

Trang 46

Định vị phân mảnh

• Các phương pháp giải quyết

– Mô hình/bài toán định vị có độ khó NP

– Các giải pháp trong phạm vi này có thể sử dụng lại

– Sử dụng các phép heuristic khác nhau để giảm nhỏ không gian tìm kiếm

• Giả thiết các phân chia đã xác định giá : bài toán rút về tìm cách phân chia và vị trí tối ưu cho mỗi quan hệ

• Chưa xét đến nhân bản

Trang 47

KẾT LUẬN

• Thiết kế phân tán quyết định về vị trí các phần dữ liệu và chương trình ngang qua các site của mạng

• Hai cách tiếp cận: top-down và bottom-up

• Thiết kế chi tiết với 2 vấn đề cơ bản : phân mảnh và định vị(nhân bản) dữ liệu:

mỗi site trong phép tuyển chuẩn và tìm ra tập đầy đủ và tối thiểu các tuyển chuẩn để xác định các phân mảnh

– phân mảnh dọc qua phép chiếu Tính toán ma trận ái lực thuộc tính

và nhó các thuộc tính tương tự với nhau

– Phân mảnh hỗn hợp là tổ hợp cả 2 cách trên

• Định vị/Nhân bản dữ liệu

– Kiểu nhân bản: không nhân bản, nhân bản riêng phần, nhân bản đầy đủ

– Định vị/Nhân bản tối ưu được mô hình như hàm giá dưới tập các ràng

Trang 48

BÀI TẬP

1 Giả sử một cty vận tải có CSDL gồm các thuộc tính MT(mã tuyến

đường), TT(tên tuyến đường),D(Độ dài tuyến đường), MX(mã xe),LX(Loại xe) và SL(Số lượng xe hoạt động trên tuyến).

Hãy xây dựng một phép tách phân mảnh dọc CSDL trên thành các quan hệ

có dạng chuẩn 3NF với kết nối không tổn thất thông tin và bảo toàn phụ thuộc

2 Xét quan hệ PAY cho các vị từ đơn giản sau:

P1: SAL<3000

P2: SAL  3000

a) Hay thực hiện phân mảnh ngang cho PAY ứng với các vị từ trên

b) Sử dụng kết quả (a) , thực hiện phân mảnh dẫn xuất cho quan hệ EMP và chứng tỏ rằng việc phân mảnh này thỏa mãn các điều kiện phân mảnh.

Trang 49

3 Giả sử các quan hệ EMP và PAY được phân mảnh ngang như

a) Hãy thực hiện phân tích bán kết nối EMP2 và PAY2

b) Kết nối tự nhiên EMP1 và PAY

49

Ngày đăng: 15/01/2016, 22:28

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w