Định lý cơ bản của phép dịch chuyển LĐQH

Một phần của tài liệu ứng dụng phép dịch chuyển lược đồ quan hệ trong cơ sở dữ liệu (Trang 44 - 48)

- Phép tách = (X1, X2, ,Xk) Output

PHÉP DỊCH CHUYỂN LƯỢC ĐỒ QUAN HỆ

2.3. Định lý cơ bản của phép dịch chuyển LĐQH

Đ ị n h l ý

(Công thức biểu diễn bao đóng theo phép dịch chuyển LĐQH [7])

Cho LĐQH a = (U,F) và hai tập con không giao nhau X và Y trong U. Khi đó

(XY)+F = XY+F\X

C h ứ n g m i n h

Đặt V = U\XG = F\X và để ý rằng do XY = Ø và X không xuất hiện trong V và G nên theo định nghĩa bao đóng của tập thuộc tính ta có XY+G = Ø.

Ta chứng minh bằng quy nạp theo số bước xây dựng các dãy (XY)(h) và Y(h),

h = 0,1,… theo thuật toán tính bao đóng của các tập thuộc tính XYY tương ứng

với các tập PTH FG. Cụ thể là ta chứng minh bất biến (XY)(h) = XY(h) , h = 0,1,…

Cơ sở: h = 0. Ta có (XY)(0) = XYY(0) = Y, do đó(XY)(0) = XY(0) = XY.

Quy nạp: Giả sử với h ≥ 0 ta có (XY)(h) = XY(h). Ta cần chứng minh (XY)(h+1) = XY(h+1).

Ta sẽ chỉ ra rằng khi chuyển từ bước h sang bước h+1 hai tập (XY)(h) và XY(h) sẽ

được bổ sung thêm cùng một số thuộc tính. Trước hết để ý rằng do XY =  và X

không có mặt trong LĐQH b = a \ X = (V, G) nên với mọi h = 0,1,2,... ta luôn có

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

với mọi h = 0,1,2,... ta luôn có (XY)(h) X. Từ các nhận xét này và từ giả thiết quy nạp (XY)(h) = XY(h) ta suy ra

LU: L (XY)(h) = XY(h)L\XY(h) và

ZU\X: ZY(h)XZ XY(h) =(XY)(h)

Giả sử PTH LRF thỏa tính chất L  (XY)(h). Khi đó L\XR\XG

L\XY(h). Từ (XY)(h) = XY(h) ta suy ra R(XY)(h) = RXY(h) =(R\X) XY(h).

Ngược lại, giả sử Z PGZY(h). Theo định nghĩa của phép dịch chuyển theo X, trong F, tồn tại một PTH LR để Z = L\XP = R\X. Khi đó ta có

LXZXY(h) = (XY)(h) và do đó R(XY)(h) = RXY(h) =(R\X)XY(h) = PXY(h) ■ Để ý rằng với mọi tập X, ta có X = X và X  = . Từ nhận xét này ta suy ra hệ quả sau,

H ệ q ủ a

(Công thức tính bao đóng cho một tập thuộc tính)

Cho LĐQH a = (U,F) và tập X U. Khi đó X+F = X()+F\X.

T h í d ụ

Cho LĐQH a = (U,F), U = ABCDEH, F = {AED, BC E, EBC}. Tính

1. (AHE)+ và 2. E+ ?

Ta có, theo hệ quả về công thức tính bao đóng cho một tập thuộc tính 1. (AHE)+F = AHE()+F\AHE

G = F\AHE = {D, BC (loại), BC} ≡ { BCD}. Từ đây ta tính được ()+G =BCD. Do đó (AHE)+ = AHEBCD = U. 2. E+ = E()+F\E.

G = F\E = {AD, BC  (loại),  BC} ≡ {AD, BC}. Từ đây ta tính được ()+G =BC. Do đó E+ = EBC.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Uo là tập các thuộc tính không khóa, hay phi nguyên thủy, tức là thuộc tính không xuất hiện trong bất kỳ khóa nào của a,

UK là tập các thuộc tính khóa, hay nguyên thủy, tức là thuộc tính có trong một khóa nào đó của a (hợp của các khóa),

UI là tập các thuộc tính có trong mọi khóa, tức là giao của các khóa

của a. Rõ ràng, UIUK.

Ta cũng đã biết phân hoạch U = Uo | UK

KKey(a), XUo  (KUK )  (KX = KUo = ) Ngoài ra,

X, YU: XY =  X \ Y = X

Để ý rằng nếu M là siêu khóa của LĐQH a = (U,F) thì Z Uo ta có M\Z

cũng là siêu khóa của a. Nói cách khác từ một siêu khóa bất kỳ bỏ đi một số thuộc

tính không khóa ta vẫn thu được siêu khóa.

B ổ đ ề

(Bổ đề về siêu khóa trong phép dịch chuyển LĐQH)

Cho hai LĐQH a = (U,F), b = (V,G) và X U. Biết b = a\X. Khi đó

(i) Nếu M là siêu khóa của a thì M\X là siêu khóa của b.

(ii) Nếu Z là siêu khóa của b thì XZ là siêu khóa của a. Nói riêng, nếu X Uo và Z là siêu khóa của b thì Z là siêu khóa của a.

C h ứ n g m i n h

(i) Giả sử M là siêu khóa của a. Đặt P = M\X, ta có XP =  và MXP. Vì M

siêu khóa của a, vận dụng tính đồng biến của bao đóng và công thức biểu diễn bao

đóng ta có, U = XV = M+F  (XP)+F = XP+F\X . Từ các đẳng thức XV = XP+F\X,

XV=  và XP+F\X =  ta suy ra P+F\X = V. Vậy P = M\X là siêu khóa của b. (ii) Đảo lại, giả sử Z là siêu khóa của b = a\X. Khi đó ZX =  và Z+G= V. Đặt

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

a. Nếu XUo thì ta có thể loại bỏ khỏi XZ bộ phận thuộc tính không khóa X để thu được Z là siêu khóa của a

H ệ q ủ a

(Hệ quả về siêu khóa trong phép dịch chuyển LĐQH)

Cho LĐQH a = (U,F) và tập thuộc tính X U. Khi đó nếu Z là siêu khóa của lược đồ a\X + thì XZ là siêu khóa của lược đồ a.

C h ứ n g m i n h

Đặt b = a \ X+. Theo bổ đề về siêu khóa trong phép dịch chuyển LĐQH, nếu Z

siêu khóa của b thì X+Z là siêu khóa của a, ta có (X+Z)+ = U. Theo tính chất C5 của bao đóng của tập thuộc tính, (X+Z)+ = (XZ)+ = U. Từ đây suy ra XZ là siêu khóa của

a

C h ú ý

Để ý rằng hệ quả trên không hoàn toàn tương tự như bổ đề về siêu khóa trong phép dịch chuyển LĐQH. Điểm khác nhau chính là lượng dịch chuyển trong bổ đề về siêu khóa là X, trong hệ quả này là bao đóng của X, X +X.

(Bổ đề về khóa trong phép dịch chuyển LĐQH)

Cho hai LĐQH a = (U,F), b = (V,G) và tập thuộc tính XUo. Biết b = a\X. Khi đó

Key(a) = Key(b)

C h ứ n g m i n h

Giả sử KKey(a). Khi đó nói riêng K là siêu khóa của a. Do KUK, XUo,

UKUo =  nên theo bổ đề về siêu khóa trong phép dịch chuyển LĐQH, K = K\X

là siêu khóa của b. Giả sử K chứa một siêu khóa M của b. Khi đó lại theo bổ đề về

siêu khóa trong phép dịch chuyển LĐQH ta có M là siêu khóa của a. Do K là khóa

của a, M là siêu khóa của a chứa trong K, nên theo tính chất tối tiểu của khóa ta phải có M = K. Vậy K là khóa của b.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Đảo lại, Nếu K là khóa của b thì KX =  và theo bổ đề về siêu khóa trong phép

dịch chuyển LĐQH ta có K là siêu khóa của a. Gỉa sử K chứa một siêu khóa M của

a. Khi đó ta có MK và do đó MX = . Theo bổ đề về siêu khóa trong phép

dịch chuyển LĐQH ta có M = M\X là siêu khóa của b. Do K là khóa của bK

chứa M nên M = K. Vậy K là khóa của a

Cho ,   SubSet(U) và M, PSubSet(U). Ta định nghĩa phép toán  trên

SubSet(U) như sau

MP = MP (hợp của hai tập con MP, M P)

M  = {MX | X} và

  = { XY | X, Y }

Một phần của tài liệu ứng dụng phép dịch chuyển lược đồ quan hệ trong cơ sở dữ liệu (Trang 44 - 48)

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

(65 trang)