Tập bài giảng Cơ sơ dữ liệu phân tán - Phần 1

Chương 1

TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN

Với việc phân bố ngày càng rộng rãi của các công ty, xí nghiệp, dữ liệu bài toán là

rất lớn và không tập trung được. Các cơ sở dữ liệu (CSDL) thuộc thế hệ một và hai

không giải quyết được các bài toán trong môi trường mới không tập trung mà phân

tán, song song với các dữ liệu và hệ thống không thuần nhất, thế hệ thứ ba của hệ quản

trị CSDL ra đời vào những năm 80 trong đó có CSDL phân tán để đáp ứng những nhu

cầu mới.

Ngày nay, CSDL phân tán đã trở thành một lĩnh vực quan trọng của xử lý thông tin

và tầm quan trọng của nó ngày càng tăng nhanh. Có hai lý do về mặt công nghệ và về

mặt tổ chức để đi theo hướng này:

- Các CSDL phân tán khắc phục nhiều thiếu sót của các CSDL tập trung

(centralized database).

- Thích hợp một cách tự nhiên với các cấu trúc không tập trung (decentralized

structure) của nhiều tổ chức (organization).

1.1. Các khái niệm cơ bản

Nguyên lý các hệ cơ sở dữ liệu phân tán được xây dựng dựa trên sự hợp nhất của

hai hướng tiếp cận đối với quá trình xử lý dữ liệu, đó là lý thuyết các hệ cơ sở dữ liệu

và công nghệ mạng máy tính.

Một trong những động lực thúc đẩy sự phát triển nhanh việc sử dụng các hệ CSDL

là nhu cầu tích hợp các loại dữ liệu, cung cấp đa dạng các loại hình dịch vụ và các dịch

vụ đa phương tiện cho người sử dụng. Mặt khác, kết nối máy tính thành mạng với mục

tiêu chia sẻ tài nguyên, khai thác có hiệu quả các tài nguyên thông tin, nâng cao khả

năng tích hợp và trao đổi các loại dữ liệu giữa các thành phần trên mạng.

Nhu cầu thu thập, lưu trữ xử lý và trao đổi thông tin ngày càng tăng, các hệ thống

xử lý tập trung đã bộc lộ những nhược điểm sau:

- Tăng khả năng lưu trữ thông tin là khó khăn, bởi bị giới hạn tối đa của thiết bị

nhớ.

- Độ sẵn sàng phục vụ của CSDL không cao khi số người sử dụng tăng.

- Khả năng tính toán của các máy tính đơn lẻ đang dần tới giới hạn vật lý.

- Mô hình tổ chức lưu trữ, xử lý dữ liệu tập trung không phù hợp cho những tổ

chức kinh tế, xã hội có hoạt động rộng lớn, đa quốc gia.

Những nhược điểm này đã được khắc phục khá nhiều trong hệ thống phân tán.

Những sản phẩm của các hệ thống phân tán đã xuất hiện nhiều trên thị trường và từng

bước chứng minh tính ưu việt của nó hơn hẳn các hệ thống tập trung truyền thống. Các

hệ thống phân tán sẽ thay thế dần các hệ thống tập trung.

pdf182 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 416 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Tập bài giảng Cơ sơ dữ liệu phân tán - Phần 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
sở dữ liệu phân tán 123 Cho một quan hệ toàn cục R thì các mảnh ngang Ri của R là: Ri = iF  (R); 1 ni  Trong đó: + Fi là điều kiện chọn hoặc công thức chọn (selection formula) của mảnh Ri. + Nếu Fi ở dạng chuẩn giao thì nó là một vị từ giao tối thiểu mi. Tính đúng đắn của phân mảnh ngang chính là mỗi bộ của quan hệ toàn cục đƣợc đƣa vào trong một và chỉ một mảnh. Xác định phân mảnh ngang chính của một quan hệ toàn cục là xác định một tập hợp các vị từ chọn (selection predicate) đầy đủ và tách biệt. Các bộ của một mảnh phải đƣợc tham chiếu giống nhau trong tất cả các ứng dụng. Ví dụ 3.7: Xét quan hệ NV đƣợc phân thành hai mảnh ngang chính NV1 và NV2 với hai vị từ đơn giản LUONG 35000 và LUONG >35000 nhƣ sau: NV1 = 35000LUONGσ  (NV) NV2 = 35000LUONG σ  (NV) Nếu các miền của các thuộc tính có trong các điều kiện chọn là liên tục và vô hạn thì khó định nghĩa một tập hợp các điều kiện F={F1, F2,, Fn} dùng để phân mảnh quan hệ một cách đúng đắn. Nếu thêm một bộ có LUONG=50000 vào NV thì phải xét lại việc phân mảnh để quyết định thêm một bộ mới vào mảnh NV2 hoặc phân mảnh lại và định nghĩa thêm một mảnh mới NV3: NV2 = σ SAL≥35000 AND SAL ≤ 40000 ( NV) NV3 =  SAL > 40000 (NV) Các giá trị của SAL phải không âm nên phải thêm một vị từ đơn giản 0 ≤ SAL vào tập Pr Trong thực tế, vấn đề này có thể đƣợc giải quyết bằng cách giới hạn miền của các thuộc tính phù hợp với các yêu cầu của ứng dụng. Định nghĩa một mảnh ngang: Một mảnh ngang Ri của quan hệ R bao gồm tất cả các bộ của quan hệ R thỏa mãn vị từ giao tối thiểu mi. Cho trƣớc một tập hợp các 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 hợp các mảnh ngang này cũng thƣờng đƣợc gọi là tập hợp các mảnh giao tối thiểu (minterm fragment). Ví dụ 3.8: Xét ví dụ 3.5 có tập vị từ giao tối thiểu: M={m1, m2, m3, m4}. Do đó số mảnh ngang là 4. Tập các mảnh ngang là: Tập bài giảng Cơ sở dữ liệu phân tán 124 DA1= 1m σ (DA) MADA TENDA NS VT D3 Nâng cấp hệ thống mạng 28000 Hà Nội D5 Xây dựng hệ thống quản lý tài chính 30000 Hà Nội DA2= 2m σ (DA) MADA TENDA NS VT D2 Thiết kế trang Web bán hàng 12000 Hà Nội DA3= 3m σ (DA) MADA TENDA NS VT D4 Xây dựng phần mềm quản lý điểm 25000 Nam Định DA4= 4m σ (DA) MADA TENDA NS VT D1 Xây dựng phần mềm quản lý lƣơng 20000 Nam Định Ví dụ 3.9: Xét ví dụ 3.6 có tập vị từ giao tối thiểu: M={m1, m2}. Do đó số mảnh ngang là 2. Tập các mảnh ngang là: NV= 1m σ (NV) MANV HOTEN LUONG THUE MAQL MAP NV2 Hà Tấn Đạt 2000 20 QL2 12 NV5 Lê Diệu Huyền 1300 14 QL4 5 NV= 2m σ (NV) MANV HOTEN LUONG THUE MAQL MAP NV1 Nguyễn Minh Anh 4000 10 QL1 10 NV3 Trung Khang 3500 15 QL3 15 NV4 Nguyễn Kiên Nam 3000 8 QL3 15 2) Các bƣớc thiết kế phân mảnh ngang chính theo chiến lƣợc từ trên xuống. Bƣớc 1: Tìm lƣợc đồ toàn cục Bƣớc 2: Vẽ đồ thị kết nối biểu diễn mối liên hệ giữa các quan hệ toàn cục Bƣớc 3: Tìm tập các vị từ đơn giản PR Bƣớc 4: Tìm tập các vị từ đầy đủ và tối thiểu PR‟=COM_MIN(Pr, R)={p1, p2,, pn} Bƣớc 5: Tìm tập hợp các vị từ giao tối thiểu M= {m1, m2,, mk} có thể đƣợc định nghĩa trên PR‟ Bƣớc 6: Tìm tập các phép suy diễn I={i1, i2, , ih} Bƣớc 7: Tìm tập các vị từ giao tối thiểu có nghĩa M‟= PHORIZONTAL(PR, R)={m1, m2,, mg} Tập bài giảng Cơ sở dữ liệu phân tán 125 Bƣớc 8: Viết biểu thức phân mảnh ngang chính theo M‟ Ri = im σ (R); 1 i g  3) Đặc tính của vị từ đơn giản Chúng ta vẫn chƣa nêu ra đƣợc một giải thuật có thể phân mảnh một quan hệ R và một tập hợp các ứng dụng sẽ tham chiếu đến nó. Việc chọn lựa các vị từ không thể dựa vào các quy tắc chính xác, bởi vì việc nhận biết một vị từ có ích cho việc mô tả phân mảnh sẽ dựa vào trực giác của ngƣời thiết kế. Nhƣng chúng ta biết rằng, định nghĩa các mảnh ngang dựa vào các vị từ giao tối thiểu. Do đó, bƣớc đầu tiên của bất kỳ giải thuật phân mảnh nào là xác định một tập hợp các vị từ đơn giản có một đặc tính nào đó. Chúng ta có thể định nghĩa hai đặc tính đặc trƣng cho sự phân mảnh thích hợp, đó là tính đầy đủ (completeness) và tính tối thiểu (minimality) của các vị từ đơn giản. Một vị từ đơn giản pi đƣợc gọi là thích hợp (relevant) đối với một tập Pr các vị từ đơn giản, nếu tồn tại ít nhất hai vị từ giao tối thiểu mi và mj của Pr mà các biểu thức của chúng chỉ khác nhau ở pi (tức là mi chứa pi và mj chứa pi) và tồn tại ít nhất một ứng dụng tham chiếu khác nhau đến hai mảnh fi và fj (tƣơng ứng mi và mj). Do đó, pi là vị từ thích hợp nếu và chỉ nếu: )( )( i i fcard macc # )( )( j j fcard macc Một tập hợp các vị từ đơn giản Pr đƣợc gọi là đầy đủ (complete) 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 theo Pr thì bất kỳ ứng dụng nào đều tham chiếu đến hai bộ này cùng với một xác suất. Một tập hợp các vị từ đơn giản Pr đƣợc gọi là tối thiểu (minimal) nếu tất cả các vị từ của nó là các vị từ thích hợp. Ví dụ 3.10: Xét ví dụ 3.5 với tập vị từ đơn giản: PDA={p1, p2}. - Khi đó p1 là vị từ thích hợp vì: + Tồn tại m1 và m3 chỉ khác nhau ở p1 (m1=p1  p2 ,m3=p1  p2) + Ứng dụng 1, 2 truy xuất đến mảnh DA1; ứng dụng 2 truy xuất đến mảnh DA3 - Khi đó p2 là vị từ thích hợp vì: + Tồn tại m1 và m2 chỉ khác nhau ở p2 (m1=p1  p2 , m2=p1  p2) + Ứng dụng 1, 2 truy xuất đến mảnh DA1; ứng dụng 1 truy xuất đến mảnh DA3 Do đó PDA={p1, p2} là tối thiểu và đầy đủ Ví dụ 3.11: Xét ví dụ 3.6 với tập vị từ đơn giản: PNV={p1}. - Tồn tại m1 và m2 chỉ khác nhau ở p1 (m1=p1, m2=p1) - Ứng dụng 1 truy xuất đến mảnh DA1; không có ứng dụng nào truy xuất đến mảnh DA2 Khi đó p1 không là vị từ thích hợp Tập bài giảng Cơ sở dữ liệu phân tán 126 Do đó PNV={p1} là đầy đủ nhƣng không tối thiểu Ví dụ 3.12: Xét ví dụ 3.5 với tập vị từ đơn giản: PDA={p1}. Khi đó PDA={p1} là không đầy đủ, bởi vì các ứng dụng tham chiếu đến các bộ của mà có ngân sách lớn hơn 20000 ở trong mỗi mảnh đƣợc tạo ra bởi PDA có xác suất lớn hơn. 4) Điều kiện phân mảnh đúng đắn Cho Pr={ p1, p2, , pm} là một tập hợp các vị từ đơn giản. Để cho Pr biểu diễn phân mảnh đúng đắn và hiệu quả thì Pr phải đầy đủ và tối thiểu. 5) Các phép suy diễn Bƣớc thứ 5 trong quá trình thiết kế phân mảnh ngang chính là tìm tập hợp các vị từ giao tối thiểu có thể đƣợc định nghĩa trên các vị từ trong tập hợp Pr‟. Các vị từ giao tối thiểu này xác định các mảnh đƣợc sử dụng trong bƣớc định vị. Lƣu ý rằng, việc xác định một tập hợp đầy đủ các vị từ có thể rất tốn kém trong một số trƣờng hợp, bởi vì tập hợp này có thể rất lớn. Trong thực tế, tập hợp các vị từ giao tối thiểu là luỹ thừa của số vị từ đơn giản. Chẳng hạn, điều này xảy ra khi đƣa ra các vị từ để mô tả các tham chiếu khác nhau của các ứng dụng khác nhau, sử dụng các tiêu chí khác nhau. Trong trƣờng hợp này, các mảnh sẽ tƣơng ứng với các kết hợp của các tiêu chí này. Trong thực tế, việc tìm một tập hợp đầy đủ các vị từ phải đƣợc thực hiện theo một cách “hợp lý”, bằng cách: - Tập chung vào các ứng dụng khá quan trọng - Không phân biệt các mảnh có các đặc điểm rất giống nhau. Trong tập hợp đầy đủ các vị từ, chúng ta loại bỏ các vị từ vô nghĩa mà chúng mâu thuẫn với tập hợp các phép suy diễn I để tìm ra các vị từ giao tối thiểu. Việc tìm các phép suy diễn I dựa vào các quy tắc biến đổi tƣơng đƣơng sau: p1  p2  p2  p1 (1) p1  p2  p2  p1 (2)  ( p)  p (3) (p1  p2)   p1   p2 (4) p1  (p2  p3)  (p1  p2)  (p1  p3) (5) p1  (p2  p3)  (p1  p2)  p3 (6) p1  (p2  p3)  (p1  p2)  p3 (7) p1  (p2  p3)  (p1  p2)  (p1  p3) (8) (p1  p2)   p1   p2 (9) p  p = false (10) p  p = p (11) a) Trƣờng hợp 1: Đối với vị từ đẳng thức Tập bài giảng Cơ sở dữ liệu phân tán 127 Cho Pr = { p1, p2 } với: p1: att = value_1 p2: att = value_2 Và miền của att là {value_1, value_2}, thì tập hợp I bao gồm hai phép suy diễn (implication) là: i1: (att = value_1)   ( att = value_2) i2:  (att = value_1)  ( att = value_2) Do đó, I={i1, i2} b) Trƣờng hợp 2: Đối với các vị từ bất đẳng thức Cho Pr = { p1, p2 } với: p1: att > value_1 p2: att ≤ value_1 Thì tập hợp I bao gồm hai phép suy diễn (implication) là: i1: (att > value_1)   (att ≤ value_1) i2:  (att > value_1)  (att ≤ value_1) Do đó, I={i1, i2} Ví dụ 3.13: Xét hệ thống quản lý dự án trong ví dụ 3.2. Giả sử PDA={p1, p2} + p1: VT=„Nam Định„ + p2: VT=„Hà Nội„ Khi đó ta có tập các phép suy diễn I= i1, i2}, trong đó: + i1: (VT=„Nam Định„)   (VT=„Hà Nội„) + i2:  (VT=„Nam Định„)  (VT=„Hà Nội„) Ví dụ 3.14: Xét hệ thống quản lý dự án trong ví dụ 3.2. Giả sử PTL={p1, p2} p1: LUONG<3000 p2: LUONG≥3000 Khi đó ta có tập các phép suy diễn I= i1, i2}, trong đó: + i1: (LUONG<3000)   (LUONG≥3000) + i2:  (LUONG<3000 „)  (LUONG≥3000). 6) Thuật toán COM_MIN Thuật toán COM_MIN là thuật toán xây dựng một tập hợp các vị từ Pr‟ là đầy đủ và tối thiểu. Bắt đầu: Xét một vị từ pi phân chia các bộ của R thành hai phần và tồn tại ít nhất một ứng dụng tham chiếu khác nhau đến hai phần này. Cho Pr‟ = pi. Phương pháp: Tập bài giảng Cơ sở dữ liệu phân tán 128 Xét một vị từ đơn giản mới pj mà phân chia ít nhất một mảnh fk của Pr‟ thành hai phần và tồn tại ít nhất một ứng dụng tham chiếu khác nhau đến hai phần này. Bƣớc 1: Cho Pr‟ Pr‟pj Bƣớc 2: Loại bỏ các vị từ không thích hợp ra khỏi Pr‟. Bƣớc 3: Lặp lại bƣớc 2 cho đến khi tập hợp các mảnh giao tối thiểu của Pr‟ là đầy đủ. Quy tắc 1: Là quy tắc cơ bản về tính đầy đủ và tính tối thiểu mà một quan hệ hoặc một mảnh đƣợc phân chia thành ít nhất hai phần và tồn tại ít nhất một ứng dụng tham chiếu khác nhau đến hai phần này. fi của Pr‟: mảnh fi đƣợc xác định theo vị từ giao tối thiểu đƣợc định nghĩa trên các vị từ của Pr‟. Giải thuật 3.1 COM_MIN Đầu vào: Pr: tập hợp các vị từ đơn giản; R: quan hệ; Đầu ra: Pr‟: tập hợp các vị từ đơn giản là đầy đủ và tối thiểu Khai báo F: tập hợp các mảnh giao tối thiểu Begin Tìm pi  Pr sao cho pi phân chia R theo quy tắc1; Pr‟ = pi; Pr = Pr - pi; F = {fi}; { fi là mảnh giao tối thiểu theo pi } Repeat Begin tìm pj Pr sao cho pj phân chia mảnh fh nào đó của Pr‟ theo quy tắc 1; Pr‟ = Pr‟  pj; Pr = Pr - pj; F = F  {fj} - fh ; while pk Pr‟ là một vị từ không thích hợp do begin Pr‟ = Pr‟ - pk; F = F - fk; end End Until Pr‟ là đầy đủ End. {COM_MIN} 7) Thuật toán PHORIZONTAL Giải thuật để phân mảnh ngang chính đƣợc trình bày trong giải thuật 3.2 đƣợc gọi là PHORIZONTAL. Phần nhập là một quan hệ Ri cần đƣợc phân mảnh ngang chính, và Pri là tập hợp các vị từ đơn giản đƣợc xác định theo các ứng dụng tham chiếu đến Ri. Tập bài giảng Cơ sở dữ liệu phân tán 129 Phần xuất là tập hợp các vị từ giao tối thiểu Mi dùng để tạo ra các mảnh giao tối thiểu (là các mảnh ngang của Ri). Giải thuật 3.2 PHORIZONTAL Đầu vào: R: quan hệ; Pr: tập hợp các vị từ đơn giản. Đầu ra: M: tập hợp các mảnh giao tối thiểu . begin Pr‟ = COM_MIN(Pr, R) Xác định M là tập hợp các vị từ giao tối thiểu; Xác định I là tập các phép suy diễn giữa pi  Pr‟ For each mi  M do If mi là mâu thuẫn với I then M = M - mi end.{PHORIZONTAL} a) Trƣờng hợp 1: Đối với vị từ đẳng thức Ta có tập vị từ giao tối thiểu đƣợc định nghĩa theo Pr: m1: (att = value_1)  ( att = value_2) m2: (att = value_1)   ( att = value_2) m3:  (att = value_1)  ( att = value_2) m4:  (att = value_1)   ( att = value_2) M={m1, m2, m3, m4} Trong trƣờng hợp này, các vị từ m1, m4 mâu thuẫn với tập hợp các phép suy diễn I. Do đó có thể loại bỏ chúng ra khỏi tập hợp M. Trong tập hợp I, các vị từ m2 và m3 có thể rút gọn: m2: att = value_1 m3: att = value_2 b) Trƣờng hợp 2: Đối với các vị từ bất đẳng thức Ta có tập vị từ giao tối thiểu đƣợc định nghĩa theo Pr: m1: (att > value_1)  (att ≤ value_1) m2: (att > value_1)   ( att ≤ value_1) m3:  (att > value_1)  ( att ≤ value_1) m4:  (att > value_1)   ( att ≤ value_1) M={m1, m2, m3, m4} Trong trƣờng hợp này, các vị từ m1, m4 mâu thuẫn với tập hợp các phép suy diễn I. Do đó có thể loại bỏ chúng ra khỏi tập hợp M. Trong tập hợp I, các vị từ m2 và m3 có thể rút gọn: m2: att > value_1 m3: att ≤ value_1 Tập bài giảng Cơ sở dữ liệu phân tán 130 Ví dụ 3.15: Xét hệ thống quản lý dự án trong ví dụ 3.2. m1: (VT=„Nam Định„)  (VT=„Hà Nội„) m2: (VT=„Nam Định„)   (VT=„Hà Nội„) m3:  (VT=„Nam Định„)  (VT=„Hà Nội„) m4:  (VT=„Nam Định„)   (VT=„Hà Nội„) M={m1, m2, m3, m4} Khi đó, các vị từ m1, m4 mâu thuẫn với tập hợp các phép suy diễn I. Do đó có thể loại bỏ chúng ra khỏi tập hợp M. Trong tập hợp I, các vị từ m2 và m3 có thể rút gọn: m2: VT=„Nam Định„ m3: VT=„Hà Nội„ Cuối cùng, M={m2, m3} Ví dụ 3.16: Xét hệ thống quản lý dự án trong ví dụ 3.2. m1: (LUONG<3000) (LUONG≥3000) m2: (LUONG<3000)   (LUONG≥3000) m3:  (LUONG<3000)  (LUONG≥3000) m4:  (LUONG<3000)   (LUONG≥3000) M={m1, m2, m3, m4} Khi đó, các vị từ m1, m4 mâu thuẫn với tập hợp các phép suy diễn I. Do đó có thể loại bỏ chúng ra khỏi tập hợp M. Trong tập hợp I, các vị từ m2 và m3 có thể rút gọn: m2: LUONG<3000 m3: LUONG≥3000 Cuối cùng, M={m2, m3} Ví dụ 3.17: Xét hệ thống quản lý dự án trong ví dụ 3.2. Giả sử có một ứng dụng truy xuất DA theo vị trí thực hiện dự án, áp dụng thuật toán COM_MIN và PHORIZONTAL để: - Phân mảnh ngang chính quan hệ DA - Phân mảnh ngang dẫn xuất quan hệ HS Các bước thiết kế phân mảnh ngang chính quan hệ toàn cục DA: Bƣớc 1: Lƣợc đồ toàn cục (Theo đề bài) Bƣớc 2: Vẽ đồ thị kết nối biểu diễn mối liên hệ giữa các quan hệ toàn cục (Trong ví dụ 3.2) Bƣớc 3: Tìm tập các vị từ đơn giản PDA PDA={p1, p2} + p1: VT=„Nam Định„ + p2: VT=„Hà Nội„ Bƣớc 4: Tìm tập các vị từ đầy đủ và tối thiểu PDA„ =COM_MIN(PDA, DA): Tập bài giảng Cơ sở dữ liệu phân tán 131 F= Xét p1 chia DA theo quy tắc 1 thành 2 phần f1= 1p σ (DA) và f2= 1p σ  (DA); PDA„={p1} PDA={p2} F={f1, f2} Xét p2 không chia mảnh nào của F PDA„={p1} PDA={p2} F={f1, f2} Vậy PDA„={p1} là tối thiểu và đầy đủ Chú ý: Nếu xét p2 trƣớc thì PDA„={ p2} là tối thiểu và đầy đủ. Bƣớc 5: Tìm tập hợp các vị từ giao tối thiểu định nghĩa trên PDA‟: M={m1, m2} m1=p1, m2=p1 Bƣớc 6: Tìm tập các phép suy diễn I= Bƣớc 7: Tìm tập các vị từ giao tối thiểu có nghĩa M‟= PHORIZONTAL(PDA, DA)={m1, m2} + PDA„ =COM_MIN(PDA, DA): + M={m1, m2} + I= Nên M‟= {m1, m2} Bƣớc 8: Viết biểu thức phân mảnh ngang chính theo M‟ DA1= 1m σ (DA) = 1p σ (DA)=σ VT=„Nam Định„ (DA) DA2= 2m σ (DA)= 1p σ  (DA)=σ (VT=„Nam Định„) (DA) Kết quả phân mảnh: DA1 MADA TENDA NS VT D1 CSDL 20000 Nam Định D4 PHÁT TRIỂN 25000 Nam Định DA2 MADA TENDA NS VT D2 CÀI ĐẶT 12000 Hà Nội D3 BẢO TRÌ 28000 Hà Nội Ví dụ 3.18: Xét hệ thống quản lý dự án trong ví dụ 3.2. Giả sử hệ thống có các ứng dụng sau: Ứng dụng 1: Truy xuất các bộ của DA theo vị trí là “Nam Định” Tập bài giảng Cơ sở dữ liệu phân tán 132 Ứng dụng 2: Truy xuất các bộ của DA có ngân sách bằng 25000 Ứng dụng 3: Truy xuất các bộ của DA có ngân sách khác 25000 Áp dụng thuật toán COM_MIN và PHORIZONTAL để: - Phân mảnh ngang chính quan hệ DA - Phân mảnh ngang dẫn xuất quan hệ HS Các bước thiết kế phân mảnh ngang chính quan hệ toàn cục DA: Bƣớc 1: Lƣợc đồ toàn cục (Theo đề bài) Bƣớc 2: Vẽ đồ thị kết nối biểu diễn mối liên hệ giữa các quan hệ toàn cục (Trong ví dụ 3.2) Bƣớc 3: Tìm tập các vị từ đơn giản PDA PDA={p1, p2, p3} + p1: VT=„Nam Định„ + p2: NS= 25000 + p3: NS ≠ 25000 Bƣớc 4: Tìm tập các vị từ đầy đủ và tối thiểu PDA„ =COM_MIN(PDA, DA): F= Xét p1 chia DA theo quy tắc 1 thành 2 phần f1= 1p σ (DA) và f2= 1p σ  (DA); PDA„={p1} PDA={p2, p3} F={f1, f2} Xét p2 chia f1 theo quy tắc 1 thành 2 phần f11= 2p σ (f1) và f12= 2p σ  (f1); PDA„={p1, p2} PDA={p3} F={f11, f12, f2} p1 là vị từ thích hợp vì: + Tồn tại m1 và m3 chỉ khác nhau ở p1 (m1=p1  p2 ,m3=p1  p2) + Ứng dụng 1, 2 truy xuất đến mảnh DA1= 1m σ (DA); ứng dụng 2 truy xuất đến mảnh DA3== 3m σ (DA); p2 là vị từ thích hợp vì: + Tồn tại m1 và m2 chỉ khác nhau ở p2 (m1=p1  p2 , m2=p1  p2) + Ứng dụng 1, 2 truy xuất đến mảnh DA1= 1m σ (DA); ứng dụng 1, 3 truy xuất đến mảnh DA2= 2m σ (DA); Xét p3 chia f3 theo quy tắc 1 thành 2 phần f21= 3 p σ (f2) và f22= 3 p σ  (f2); PDA„={p1, p2, p3} Tập bài giảng Cơ sở dữ liệu phân tán 133 PDA=  F={f11, f12, f21, f22} Khi đó ta có tập vị từ giao tối thiểu M={m1, m2, m3, m4, m5, m6, m7, m8} Sử dụng tính chất phủ định của đẳng thức Attribute=Value là Attribute  Value p3  p2 ta có m1=p1  p2  p3 = False m2=p1  p2  p3 = p1  p2 m3=p1  p2  p3 = p1  p2 m4=p1  p2  p3 =False m5=p1  p2  p3 = False m6=p1  p2  p3 = p1  p2 m7=p1  p2  p3 = p1  p2 m8=p1  p2  p3 = False p1 là vị từ thích hợp vì: + Tồn tại m1 và m3 chỉ khác nhau ở p1 (m2=p1  p2 ,m6=p1  p2) + Ứng dụng 1, 2 truy xuất đến mảnh DA2= 2m σ (DA); ứng dụng 2 truy xuất đến mảnh DA6= 6m σ (DA); p2 là vị từ thích hợp vì: + Tồn tại m1 và m2 chỉ khác nhau ở p2 (m2=p1  p2 , m3=p1  p2) + Ứng dụng 1, 2 truy xuất đến mảnh DA2= 2m σ (DA); ứng dụng 1, 3 truy xuất đến mảnh DA3= 3m σ (DA); p3 là không là vị từ thích hợp vì không tồn tại mi chứa p3 và mj chứa p3 Vậy PDA„={p1, p2} là tối thiểu và đầy đủ Chú ý: Nếu sử dụng phép biến đổi tƣơng tƣơng p2  p3 ta có PDA„={p1, p3} là tối thiểu và đầy đủ. Bƣớc 5: Tìm tập hợp các vị từ giao tối thiểu định nghĩa trên PDA‟: M={m1, m2, m3, m4} m1=p1  p2 m2=p1  p2 m3=p1  p2 m4=p1  p2 Bƣớc 6: Tìm tập các phép suy diễn I= Bƣớc 7: Tìm tập các vị từ giao tối thiểu có nghĩa M‟= PHORIZONTAL(PDA, DA)={m1, m2, m3, m4} + PDA„ =COM_MIN(PDA, DA): + M={m1, m2, m3, m4} Tập bài giảng Cơ sở dữ liệu phân tán 134 + I= Nên M‟= {m1, m2, m3, m4} Bƣớc 8: Viết biểu thức phân mảnh ngang chính theo M‟ DA1= 1m σ (DA) = 1 2pp σ  (DA)=σ VT=„Nam Định„ NS= 25000 (DA) DA2= 2m σ (DA)= 21p p σ  (DA)=σ VT=„Nam Định„ (NS= 25000) (DA) DA3= 3m σ (DA)= 21 pp σ   (DA)=σ (VT=„Nam Định„)  NS= 25000 (DA) DA4= 4m σ (DA)= 1 2pp σ   (DA)=σ (VT=„Nam Định„) (NS= 25000) (DA) Kết quả phân mảnh: DA1 MADA TENDA NS VT D4 PHÁT TRIỂN 25000 Nam Định DA2 MADA TENDA NS VT D1 CSDL 20000 Nam Định DA3= MADA TENDA NS VT DA4 MADA TENDA NS VT D2 CÀI ĐẶT 12000 Hà Nội D3 BẢO TRÌ 28000 Hà Nội 3.3.3. Thiết kế phân mảnh ngang dẫn xuất 1) Định nghĩa thiết kế phân mảnh ngang dẫn xuất Phân mảnh ngang dẫn xuất của một quan hệ toàn cục R không dựa trên các đặc tính của các thuộc tính riêng của nó, mà đƣợc suy dẫn từ mảnh ngang của một quan hệ khác. Phân mảnh ngang dẫn xuất đƣợc định nghĩa trên trên các quan hệ bộ phận của đƣờng liên hệ theo phép chọn trên quan hệ chủ của đƣờng liên hệ này. Điều quan trọng cần nhớ hai điểm: Thứ nhất, đƣờng liên hệ giữa quan hệ chủ và quan hệ bộ phận đƣợc định nghĩa là một phép kết nối bằng. Thứ hai, một phép kết nối bằng có thể thực hiện bằng các phép nửa kết nối. Điểm thứ hai là đặc biệt quan trọng đối với các mục đích của chúng ta, bởi vì chúng ta muốn phân chia quan hệ bộ phận theo sự phân mảnh của quan hệ chủ của nó, Tập bài giảng Cơ sở dữ liệu phân tán 135 nhƣng chúng ta cũng muốn mảnh kết quả chỉ đƣợc định nghĩa trên các thuộc tính của quan hệ bộ phận. Cho trƣớc một đƣờng liên hệ 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: Ri =R  F Si , 1  i  n Trong đó: - n là số lƣợng lớn nhất các mảnh sẽ đƣợc định nghĩa trên R - Si = iF  (S) - Fi là công thức dùng để định nghĩa mảnh ngang chính Si - F là điều kiện nửa kết nối (semi - join condition). Quan hệ R có thể là quan hệ chủ của một đƣờng liên hệ khác L‟ và quan hệ bộ phận là T, và cứ nhƣ thế. Trong trƣờng hợp tổng quát, chúng ta có thể có một cây phân mảnh ngang dẫn xuất (derived horizontal fragmentation tree), trong đó nút cha là quan hệ chủ và các nút con của nó là các quan hệ bộ phận. Để thực hiện phân mảnh ngang dẫn xuất, có ba dữ liệu vào là: - Tập hợp các mảnh con của quan hệ chủ - Quan hệ bộ phận - Tập hợp các vị từ nửa kết nối giữa quan hệ chủ và quan hệ bộ phận 2) Các bƣớc thiết kế phân mảnh ngang dẫn xuất theo chiến lƣợc từ trên xuống. Bƣớc 1: Tìm lƣợc đồ toàn cục Bƣớc 2: Vẽ đồ thị kết nối biểu diễn mối liên hệ giữa các quan hệ toàn cục Bƣớc 3: Tìm tập các vị từ đơn giản PS Bƣớc 4: Tìm tập các vị từ đầy đủ và tối thiểu PS‟=COM_MIN(PS,S)={p1, p2,, pn} Bƣớc 5: Tìm tập hợp các vị từ giao tối thiểu M= {m1, m2,, mk} có thể đƣợc định nghĩa trên PS‟ Bƣớc 6: Tìm tập các phép suy diễn I={i1, i2, , ih} Bƣớc 7: Tìm tập các vị từ giao tối thiểu có nghĩa M‟= PHORIZONTAL(PS, S)={m1, m2,, mg} Bƣớc 8: Viết biểu thức phân mảnh ngang chính theo M‟ Tập bài giảng Cơ sở dữ liệu phân tán 136 Si = im σ (S); 1 i g  Bƣớc 9: Viết biểu thức phân mảnh dẫn xuất Ri =R  F Si , 1 i g  Ví dụ 3.19: Xét ví dụ 3.17 Các bước thiết kế phân mảnh ngang dẫn xuất quan hệ toàn cục HS: Từ bƣớc 1 đến bƣớc 8 đã đƣợc thực hiện trong ví dụ 3.17 Bƣớc 9: Các biểu thức phân mảnh ngang dẫn xuất HS1= HS  HS.MaDA= DA.MaDADA1 HS2= HS  HS.MaDA= DA.MaDADA2 Kết quả phân mảnh ngang dẫn xuất: HS1 MANV MADA NV TG A1 D1 Quản lý 12 A2 D1 Phân tích 34 A3 D4 Lập trình 10 A6 D4 Kỹ thuật 36 HS2 MANV MADA NV TG A2 D2 Phân tích 6 A3 D3 Kỹ thuật 12 A4 D2 Quản lý 6 A5 D2 Quản lý 20 A7 D3 Quản lý 48 A8 D3 Lập trình 15 Ví dụ 3.20: Xét ví dụ 3.18 Các bước thiết kế phân mảnh ngang dẫn xuất quan hệ toàn cục HS: Từ bƣớc 1 đến bƣớc 8 đã đƣợc thực hiện trong ví dụ 3.18 Bƣớc 9: Các biểu thức phân mảnh ngang dẫn xuất HS1= HS  HS.MaDA= DA.MaDADA1 HS2= HS  HS.MaDA= DA.MaDADA2 HS3= HS  HS.MaDA= DA.MaDADA3 HS4= HS  HS.MaDA= DA.MaDADA4 Kết quả phân mảnh ngang dẫn xuất: Tập bài giảng Cơ sở dữ liệu phân tán 137 HS1 MANV MADA NV TG A3 D4 Lập trình 10 A6 D4 Kỹ thuật 36 HS2 MANV MADA NV TG A1 D1 Quản lý 12 A2 D1 Phân tích 34 HS3= MANV MADA NV TG HS MANV MADA NV TG A2 D2 Phân tích 6 A3 D3 Kỹ thuật 12 A4 D2 Quản lý 6 A5 D2 Quản lý 20 A7 D3 Quản lý 48 A8 D3 Lập trình 15 3) Đồ thị kết nối Phân mảnh ngang dẫn xuất đƣợc dùng để tạo điều kiện thuận lợi cho phép kết nối giữa các mảnh. Một phép kết nối phân tán (distributed join) là một phép kết nối giữa các quan hệ đƣợc phân mảnh ngang. Khi một ứng dụng cần thực hiện phép kết nối giữa hai quan hệ toàn cục R và S, thì tất cả các bộ của R và của S phải đƣợc so sánh với nhau. Do đó theo nguyên tắc, cần phải so sánh tất cả các mảnh Ri của R với tất cả các mảnh Sj của S: R F S = (i Ri) F (j Sj) Tuy nhiên, đôi khi có thể suy diễn để xác định một số phép liên hệ từng phần Ri  Sj là rỗng: R F S = (ij(Ri F Sj) Đối với sự phân tán dữ liệu cho trƣớc, điều này xảy ra khi các giá trị của thuộc tính kết nối của Ri và Sj là khác nhau. Một phép kết nối phân tán đƣợc biểu diễn một cách hiệu quả bằng đồ thị kết nối (join graph). Tập bài giảng Cơ sở dữ liệu phân tán 138 Đồ thị kết nối G của phép kết nối phân tán R  S là một đồ thị (N, E) với các nút N biểu diễn các mảnh của R và S; các cạnh vô hƣớng giữa các nút biểu diễn các phép kết nối giữa các mảnh mà kết quả của phép kết nối là khác rỗng. Để đơn giản, chúng ta không đƣa vào trong N các mảnh của R hoặc của S mà chúng kết nối với tất các mảnh của quan hệ khác đều cho kết quả rỗng. Các loại đồ thị kết nối: Hình 3.3. Sơ đồ thiết kế tổng CSDL phân tán Đồ thi kết nối đƣợ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 nối đƣợ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 nối suy giảm có hai loại: - Đồ thị kết nối suy giảm đƣợc gọi là phân tách (partitioned) nếu đồ thị 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 nối suy giảm đƣợc gọi là đơn giản (simple) nếu nó phân tách và mỗi đồ thị con có đúng một cạnh. Việc xác định một phép kết nối có đồ thị kết nối đơn giản là rất quan trọng trong thiết kế CSDL. Một cặp mảnh đƣợc nối với nhau bằng một cạnh trong đồ thị kết nối đơn giản có một tập hợp các giá trị chung của các thuộc tính kết nối. Do đó có thể xác định phân mảnh và định vị của hai quan hệ toán hạng R và S sao cho đồ thị kết nối là đồ thị đơn giản và các cặp mảnh tƣơng ứng đƣợc đặt tại cùng một nơi, khi đó phép kết nối có thể đƣợc thực hiện theo cách phân tán bằng cách thực hiện phép kết nối cục bộ các cặp mảnh và sau đó tập hợp các kết q

Các file đính kèm theo tài liệu này:

  • pdftap_bai_giang_co_so_du_lieu_phan_tan_phan_1.pdf