Thuật toán kiểm tra phân mảnh dọc có nối không mất thông tin và

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu các đặc tính của phân mảnh dọc trong cơ sở dữ liệu phân tán và ứng dụng (Trang 30 - 33)

các phụ thuộc F bảo toàn trong các Wi và R = R1 R2 R3… Rk

Ví dụ 2.6:

Xét W = <A, B, C, D, E, G, H, I, M, N}, {ABCD, DEGB, HAEG, EG D, GI}>. Khi đó ta có phân mảnh W thành các Wi con:

W1 = <ABCD, ABCD >; W2 = <DEGB, DEGB>; W3 = <HAEG, HAEG>; W4 = <EGD, EGD>; W5 = <GI, GI>;

W6 = <MN, >. Rõ ràng phân mảnh bảo toàn phụ thuộc vì Ri(F) = F

Chú ý [8]: có nhiều cách phân mảnh có bảo toàn phụ thuộc của một sơ đồ quan hệ.

Kết luận:

-Phân mảnh có bảo toàn phụ thuộc là không duy nhất;

- Với mọi sơ đồ quan hệ W = <R, F> luôn tồn tại phân mảnh có bảo toàn phụ thuộc.

2.3.4. Thuật toán kiểm tra phân mảnh dọc có nối không mất thông tin và bảo toàn phụ thuộc bảo toàn phụ thuộc

Thuật toán 2.5(Kiểm tra phân mảnh W có bảo toàn phụ thuộc và có nối không mất thông tin):

Input: W = <R, F>;

= (R1, R2, ...Rk) là một phân mảnh của R;

Output: Khẳng định có nối không mất thông tin và bảo toàn phụ thuộc

Quy trình:

Lần lượt kiểm tra từng tính chất của phân mảnh

Tính nối không mất kiểm tra bằng thuật toán Chase. Tính bảo toàn phụ thuộc kiểm tra bằng thuật toán 2.3.

Chú ý: Có nhiều cách đểphân mảnh một sơ đồ quan hệ thành các sơ đồ con có nối không mất thông tin và bảo toàn phụ thuộc.

Ví dụ hai phép phân mảnh lược đồ R = {A, B, C, D} thành 1= (AB, BC, CD) và 1= (ABC, CD) của sơ đồ quan hệ trong thí dụ 2.5 đều có nối không mất thông tin và bảo toàn phụ thuộc.

Kết luận:

Với mỗi W có thể có nhiều phân mảnh khác nhau bảo toàn phụ thuộc và có nối không mất thông tin của W

2.3.5. Thuật toán phân mảnh dọc có nối không mất và bảo toàn phụ thuộc

Thuật toán 2.6 (Phân mảnh W thành các Wi bảo toàn phụ thuộc và có nối không mất thông tin):

Input: W = <R, F>

Output: W1,W2,…,Wk có nối không mất thông tin và bảo toàn phụ thuộc; Chú ý: Nên tránh phân mảnh lược đồ đạt BCNF.

Quy trình:

Để đảm bảo tính bảo toàn phụ thuộc ta lấy tất cả các phụ thuộc hàm của F: {XY} cho vào các sơ đồ con Wi = <XY, XY>; vậy Ri = XY;

Nếu có các thuộc tính không thuộc F ta lập sơ đồ con gồm các thuộc tính đó với tập phụ thuộc rỗng.

Để đảm bảo tính nối không mất ta đưa vào phân mảnh một sơ đồ con <K. (F)> với tập thuộc tính là khóa K, tập phụ thuộc là chiếu của F lên K

Người tađã chứng minh rằng phân mảnh như thế có nối không mất thông tin [8].

Ví dụ 2.7:

Xét W = <A, B, C, D, E, G, H, I, M, N}, {ABCD, DEGB, HA EG, EGD, GI}>. Khóa của W là K ={A, H, M, N}

Khi đó ta có phân mảnh W thành các Wi con bảo toàn phụ thuộc: W1 = <ABCD, ABCD >;

W2 = <DEGB, DEGB>; W3 = <HAEG, HAEG>; W4 = <EGD, EGD>; W5 = <GI, GI>;

Để bảo toàn tính nối không mất thông tin ta thêm W6 = < AHMN, > Kiểm tra lại tính bảo toàn phụ thuộc hiển nhiên, tính nối không mất thông tin bằng thuật toán Chase:

Bảng khởi đầu A B C D E G H I M N R1 a a a a R2 a a a a R3 a a a a R4 a a a R5 a a R6 a a a a

Bảng sau khi sửa cho hợp với các phụ thuộc hàm trong F

R1 a a a a R2 a a a a R3 a a a a R4 a a a R5 a a R6 a a a a a a a a a a

Bảng có một hàng (hàng chứa các thuộc tính khóa) toàn a nên phân

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu các đặc tính của phân mảnh dọc trong cơ sở dữ liệu phân tán và ứng dụng (Trang 30 - 33)

Tải bản đầy đủ (PDF)

(71 trang)