- 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\X và G = F\X và để ý rằng do X Y = Ø 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 XY và Y tương ứng
với các tập PTH F và G. 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) = XY và Y(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 X Y = 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 L R F thỏa tính chất L (XY)(h). Khi đó L\X R\X G và
L\X Y(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 P G và Z Y(h). Theo định nghĩa của phép dịch chuyển theo X, trong F, tồn tại một PTH L R để Z = L\X và P = 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, UI UK.
Ta cũng đã biết phân hoạch U = Uo | UK và
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ó X P = và M XP. Vì M là
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 đó Z X = 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 là
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ử K Key(a). Khi đó nói riêng K là siêu khóa của a. Do K UK, X Uo,
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ì K X = 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ó M K và do đó M X = . 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 b và K
chứa M nên M = K. Vậy K là khóa của a ■
Cho , SubSet(U) và M, P SubSet(U). Ta định nghĩa phép toán trên
SubSet(U) như sau
M P = MP (hợp của hai tập con M và P, M P)
M = {MX | X} và
= { XY | X, Y }