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 1CHƯƠNG II: THIẾT KẾ
CSDL PHÂN TÁN
1
Trang 2CHƯƠ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 3Khung 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 4Các chiến lược thiết kế
Trang 5Các chiến lược thiết kế
• Chiến lược thiết kế top-down
5
Trang 6Các chiến lược thiết kế (…)
• Chiến lược thiết kế bottom-up
Trang 7Cá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 8Cá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 9CHƯƠ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 10Phâ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 12Phâ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 14Phâ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 15Phâ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 16Cá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 17Phâ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 18Phâ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 19Phâ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 20Phâ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 21Phâ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 22Phâ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 23Phâ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 24Phâ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 25Phâ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 26Phâ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 27Phâ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 28Phâ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 29Phâ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 30Phâ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 31Phâ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 32Phâ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 33Tí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 34Phâ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 35Nhâ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 36NHÂ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 38CHƯƠ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 43LPC 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 47KẾ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 48BÀ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 493 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