PHÉP TÁCH KẾT NỐI KHÔNG MẤT THÔNG TIN 1 Định nghĩa:

Một phần của tài liệu Cơ sở dữ liệu 3 (Trang 50 - 51)

1. Định nghĩa:

Nếu R là một sơ đồ quan hệ tách thành các sơ đồ R1, R2,…, Rk và F là tập phụ thuộc hàm, ta nói phép tách có kết nối không mất thông tin nếu với mọi quan hệ r của R thoả F:

r = πR1(r) * πR2(r) *…* πRk(r)

2. Bổ đề:

Cho R là một sơ đồ quan hệ, ρ = {R1, R2,…, Rk} là một phép tách R, r là một quan hệ trên R. Đặt: mρ(r) = πR1(r) * πR2(r) *…* πRk(r) Ta có: (i): r ⊆ mρ(r) (ii): Nếu s = mρ(r) thì πRi(s) = ri (iii): mρ(s) = mρ(r)

3. Kiểm tra kết nối không mất thông tin:

a. Giải thuật:

Input: Một sơ đồ quan hệ R = (A1,…,An), một tập phụ thuộc hàm F và một phép tách

ρ = (R1, R2,…, Rk)

Output: Một quyết định xem có là một phép tách với một kết nối không mất thông tin.

Method:

- Ta xây dựng một bảng k dòng và n cột, cột j tương ứng thuộc tính thứ j và dòng i tương ứng sơ đồ quan hệ Ri. Tại vị trí giao của dòng i và cột j ta đặt ký hiệu aj nếu Aj có trong Ri, ký hiệu bij nếu ngược lại.

- Lặp lại việc xét từng phụ thuộc hàm X  Y trong F, cho đến khi không còn thay đổi được bảng. Mỗi lần xét X  Y ta tìm các dòng mang trị bằng nhau trên tập thuộc tính X. Nếu tìm được hai dòng như vậy, làm cho các ký hiệu trên hai dòng đó giống nhau tại các thuộc tính của Y (nếu một ký hiệu là aj ta cho ký hiệu thứ hai cũng là aj; nếu chúng là bij và blj ta cho chúng cùng là bij hoặc cùng là blj.

- Nếu sau khi sửa bảng theo cách như trên, ta thấy có dòng nào đó có dạng a1, a2,…, ak thì kết nối là không mất thông tin, ngược lại là mất.

b.Ví dụ:

Ta hãy xét phép tách SAIP thành SA và SIP. Các phụ thuộc hàm gồm S  A và

SI  P, và bảng ban đầu là:

S A I P

SA a1 a2 b13 b14

SIP a1 b22 a3 a4

Xét S  A, ta thấy hai dòng có giá trị giống nhau ở cột S, vì vậy giá trị ở cột A cần thay đổi thành a2.

S A I P

SA a1 a2 b13 b14

SIP a1 a2 a3 a4

Vì bảng có một dòng chứa toàn aj nên phép tách này là phép tách không mất

thông tin.

c. Định lý 1:

Thuật toán trên xác định đúng nếu phép tách là không mất mát thông tin.

d. Định lý 2:

* Phát biểu:

Nếu ρ = (R1, R2) là một phép tách sơ đồ quan hệ R và F là tập phụ thuộc hàm, thì có một phép tách không mất thông tin thoả F nếu và chỉ nếu:

(R1∩ R2)  (R1 – R2) hoặc

(R1∩ R2)  (R2 – R1)

Chú ý: Các PTH này không cần thuộc F, chỉ cần thuộc F+. * Áp dụng:

Trong khi giải thuật trên có thể áp dụng cho một phép tách thành một số bất kỳ các sơ đồ quan hệ, định lý 2 cho một cách kiểm tra đơn giản hơn đối với phép tách R thành hai sơ đồ quan hệ.

* Ví dụ:

Giả thiết R = ABC và F = {A B}.

Như vậy, phép tách R thành AB và AC là phép tách không mất thông tin vì

AB ∩ AC = A

AB – AC = B và ta có: A  B

Một phần của tài liệu Cơ sở dữ liệu 3 (Trang 50 - 51)