Tải bản đầy đủ (.ppt) (51 trang)

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

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 (652.42 KB, 51 trang )

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

1


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

2


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 đủ

Thiết kế các
csdl phân
tán nên xem
xét trong
khung tổng
quát này.
3




Các chiến lược thiết kế
• Các tiếp cận top-down
– Thiết kế các hệ thống từ ban đầu
– Các hệ thống thuần nhất .

• Cách tiếp cận bottom-up
– Csdl đã tồn tại ở một số site
– Các csdl nên được nối kết để giải quyết các nhiệm
vụ chung

4


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

5


Các chiến lược thiết kế (…)
• Chiến lược thiết kế bottom-up

6


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


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?

8


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


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
10


Phân mảnh
• Các mục đích phân mảnh nhằm cải thiện:

– Độ tin cậy
– Hiệu năng
– Dung lượng nhớ và giá thành
– An ninh

• 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


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

12


Phân mảnh
• Ví dụ

Dữ liệu

Biểu đồ E-R

13



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

14


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


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 di xuất hiện trong phân mảnh Rj thì di 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ộ
16
– Với phân mảnh dọc , hạng mục dữ liệu là một thuộc tính


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
nghĩa σp(R)
• Ví dụ:
σBUDGET<200000(PROJ)
σBUDGET≥200000(PROJ)
17


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
18


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

– 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'}
PROJ1 =σ LOC=′Montreal′ (PROJ)
PROJ2 =σ LOC=′New York′ (PROJ)

PROJ3 =σ LOC=′Parisl′ (PROJ)

19


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)
20


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 ′ ∧ BUDGET≥200000(PROJ)
PROJ1 = σLOC=′Montreal′ (PROJ)
PROJ3 = σ LOC=′Paris′ (PROJ)

– PROJ1 và PROJ3 cũng được chia theo cùng cách cho ngân sách
21
lớn hơn, nhỏ hơn hay bằng 200000


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:

22



Phân mảnh dọc
• 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 R1,R2, . . ..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
23


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 .

24


Phân mảnh dọc
• 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.
25
Ta sẽ xét kiểu này


×