Tải bản đầy đủ
2 Thuật toán thu gọn LĐQH

2 Thuật toán thu gọn LĐQH

Tải bản đầy đủ

E → BC} = {BC → E, E → BC}
Ta nhận thấy phép thu gọn thoả tính hợp thành và giao hoán, cụ thể nếu p là
LĐQH trên tập thuộc tính U và X, Y là hai tập con rời nhau của U thì
p\XY = (p\X)\Y = (p\Y)\X
 Ví dụ 3 : Cho LĐQH p = (U,F), U = ABCDEH
F= {AE → D,
BC → E,
E → BC }
Để tìm tập khoá Key (p) của lược đồ p chúng ta xây dựng một lược đồ q bằng
cách xoá khỏi lược đồ p các thuộc tính A,D,H.
Ta thu được lược đồ q = (V,G) trong đó:
V = U \ ADH = ABCDEH \ ADH = BCE,
G = { E→∅ (loại), BC→E, E→BC} = { BC→E, E→BC}
Ta dễ dàng tìm được Key (q) = {BC,E}. Để thu được Key (p) ta chỉ việc thêm tập
thuộc tính AH (không thêm D) vào mỗi khoá của lược đồ q.
Vậy Key (p) = {AHBC, AHE}. Dù F đã là tập PTH tối ưu theo nghĩa chứa ít ký
hiệu nhất, nhưng G còn chứa ít ký hiệu hơn F.
 Ví dụ 4 : Cho LĐQH p = (U,F), Với tập thuộc tính U = ABCDEIH.
Tập thuộc tính F = {A→D,
AB→DE,
CE→I,
E→H}
Tính Key (p)?
Để tìm tập khoá của p bằng cách thu gọn LĐQH p theo M= ABC.
Ta thu được LĐQH q = p\M = (V,G).

V= U \ M = ABCDEIH \ ABC = DEIH.
G = F \ M = {∅→D,
∅→DE,
E→I,
E→H} = {∅→DE, E→IH}
Ta dễ dàng suy ra Key (q) = ∅.
Để thu được Key (p), ta chỉ cần thêm vào Key (q) các thuộc tính vừa thu gọn
ABC. Ta được Key (p) =ABC.
 Ví dụ 5 : Cho LĐQH p = (U,F). Với tập thuộc tính U =ABCDEH.
Tập PTH F = {AB → C, C → A, BC → D, ACD → B, D → EH, BE → C, CH →
BD, CE → CH}.
Tìm Key(p)?
Ta thu gọn lược đồ quan hệ p theo thuộc tính C. Thu được LĐQH:
q = p\C = (V,G). V = ABDEH.
G = {AB → ∅ (loại), ∅ → A, B → D, AD → B, D → EH, BE → ∅ (loại),
H → BD, E→H } = { ∅ → A, B→D, AD→B, D→EH, H→BD, E→H}.
Ta tìm được khóa của lược đồ q Key (q)={B,D,E,H}. Để thu được Key(p), ta
thêm thuộc tính C vào khoá của lược q.
Ta được Key (p) = {BC, DC, EC, HC}.
2.3 Định lý thiết lập công thức biểu diễn bao đóng của tập thuộc tính theo phép
thu gọn lược đồ quan hệ
Cho LĐQH a=(U,F) và hai tập con rời nhau X và Y trong U. Khi đó (XY) +F =
XY+F\X .
Chứng minh

Đặt V=U\X và G=F\X. 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ó X∩Y+G = ∅.
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 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ể 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 thì hai tập (XY) (h) và XY(h) sẽ
được bổ sung thêm cùng một số thuộc tính.
Đầu tiên, do X∩Y=∅ và X không có mặt trong LĐQH p = p\X = (V,G) nên với
mọi h = 0,1,2,... ta luôn có X∩Y(h) = ∅.
Ngoài ra do dãy (XY)(h) đơn điệu không giảm và (XY)(0) = XY ⊆X nên 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
∀L⊆U: L⊆(XY)(h) = XY(h) ⇒ L\X ⊆ Y(h) và
∀Z⊆U\X: Z⊆Y(h) ⇒ XZ⊆XY(h)=(XY)(h)
Giả sử PTH L→R∈F thoả 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 thu gọn theo X,
trong F, tồn tại một PTH L→R để Z=L\X và P=R\X. Khi đó ta có L ⊆XZ⊆XY(h)=(XY)
(h)

và do đó:
R(XY)(h) = RXY(h) = (R\X)XY(h) = PXY(h).
Ta thấy, 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:

Cho LĐQH p = (U,F) và tập X⊆U. Khi đó X+F =X(∅)+F/X.
 Ví dụ 6: Cho LĐQH a = (U,F). U=ABCDEH.
F = {AE→D,
BC→E,
E→BC}.
Tính:

(CE)+, (AHE)+ và E+ ?

Áp dụng hệ quả về công thức tính bao đóng cho mọi tập thuộc tính, ta có:
1. (CE)+F = CE(∅)+F\CE.
G = F\CE={A→D, B→∅ (loại), ∅→B} ≡ {A→D, ∅→B}.
Từ đây ta tính được (∅)+G = B. Do đó (CE)+ = BCE
2. (AHE)+F = AHE(∅)+F\AHE.
G = F\AHE={∅→D, BC→∅ (loại), ∅→BC} ≡ {∅→BCD}.
Từ đây ta tính được (∅)+G = BCD. Do đó (AHE)+ = U
3. E+ = E(∅)+F\E
G = F\E={A→D, BC→∅ (loại), ∅→BC}≡{A→D, ∅→BC}.
Từ đây ta tính được (∅)+G = BC. Do đó E+ = EBC.
 Ví dụ 7: Cho LĐQH a= (U,F). U =ABCDEHKIL
F = {AB→C,
D→EH,
H→KI,
E→AB}
Tính (DHE)+ , (ABDE)+ ?
1. Tính (DHE)+
Áp dụng hệ quả của công thức bao đóng ta có:
(DHE)+ = DHE(∅)+F\DHE .

G = F\DHE = {AB→C, ∅→∅, ∅→KI, ∅→AB}
Suy ra (∅)+F\DHE = ABKI
Vậy (DHE)+ = DHEABKI.
2. Tính (ABDE)+
Áp dụng hệ quả của công thức bao đóng: X+ = X(∅)+F\X
Ta có (ABDE)+ = ABDE(∅)+F\ABDE
G = F\ABDE = {∅→C, ∅→H, H→KI, ∅→∅ (loại)}
= {∅→CH, H→KI}. Suy ra (∅)+F\X = CH
Vậy (ABDE)+ = ABCDEHKI.
2.4 Bổ đề về siêu khoá trong phép thu gọn LĐQH
Cho hai LĐQH p = (U,F), q = (V,G) và X ⊆ U. Biết q = p\X. Khi đó:
i) Nếu M là siêu khóa của p thì M \ X là siêu khoá của q.
ii) Nếu Z là siêu khoá của q thì ZX là siêu khoá của p. Nói riêng nếu X⊆Uo và Z
là siêu khoá của q thì Z là siêu khoá của p.
Chứng minh
i) Giả sử M là siêu khoá của a. Đặt P = M\X, ta có X∩P = ∅ và M ⊆ XP. Vì M là
siêu khoá của p, 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ừ đẳng thức XV = XP +F\X, X∩V=∅ và
X∩P+F\X = ∅ ta suy ra P+F\X = V. Vậy P = M\X là siêu khoá của q.
ii) Đảo lại, giả sử Z là siêu khóa của q = p\X. Khi đó Z∩X = ∅ và Z+G = V. Đặt
M = XZ, ta có M+F = (XZ)+F = XZ+F\X = XZ+G = XV = U. Vậy XZ là siêu khoá của p.
Nếu X⊆Uo thì ta có thể loại bỏ XZ bộ phận thuộc tính không khoá X để thu được
Z là siêu khoá của p.
 Ví dụ 8: Cho LĐQH p = (U,F). Với U = ABCDEHKI.
F = {AB→C,
C→DEH,

H→K}
 Ta có siêu khoá Key(p) = ABI.
Ta thu gọn p theo X = BI ta được lược đồ q = p\BI = (V,G)
V = ABCDEHKI\BI = ACDEHK
G = {A→C,
C→DEH,
H→K}
 Ta có siêu khoá Key(q) = A
Ta kiểm tra Key(p)\BI = ABI\BI = A = Key(q)
Hay nói cách khác Key(p) = Key(q)X = ABI.
2.5 Hệ quả về siêu khoá trong phép thu gọn LĐQH
Cho LĐQH p = (U,F) và tập thuộc tính X ⊆ U. Khi đó nếu Z là siêu khoá của lược
đồ p\X+ thì XZ là siêu khoá của lược đồ p.
 Ví dụ 9: Cho LĐQH p = (U,F). Với U = ABCDEHKI
F = {AB→C,
C→DEH,
H→K}
Ta dễ dàng tính được siêu khoá Key(p) = ABI. Cho X = AB suy ra
X+ = (AB)+ = ABCDEHK.
Ta thu gọn lược đồ p theo X+ = ABCDEHK ta thu được lược đồ
q = p\X+ = p\ABCDEHK = (V,G).
V = U\BI = ABCDEHKI\ABCDEHK = I.
G = F\ABCDEHK = {∅→∅ (loại) ,
∅→∅ (loại) ,
∅→∅ (loại)}
Ta tính được siêu khoá Key(q) = I.
Như vậy Key(p) = Key(q)X = ABI.

2.6 Bổ đề về khoá trong phép thu gọn LĐQH
Cho hai LĐQH p = (U,F), q = (V,G) và tập thuộc tính X ⊆ Uo. Biết q = p\X. Khi
đó Key(p) = Key(q).
Chứng minh
Giả sử K∈ Key(p). Khi đó nói riêng K là siêu khoá của p. Do K ⊆ UK, X ⊆ Uo,
UK ∩Uo = ∅ nên theo bổ đề về siêu khóa trong phép thu gọn LĐQH, K = K\X là siêu
khoá của q. Giả sử K chứa siêu khoá M của q. Khi đó lại theo bổ đề về siêu khoá trong
phép thu gọn LĐQH ta có M là siêu khoá của p. Do K là khoá của p, M là siêu khoá
của p chứa trong K, nên theo tính chất tối thiểu của khoá ta phải có M = K. Vậy K là
khoá của q.
Đảo lại, nếu K là khóa của q thì K∩X=∅ và theo bổ đề về siêu khoá trong phép
thu gọn LĐQH ta có M\X là siêu khoá của q. Do K là khoá của q và K chứa M nên M
= K . Vậy K là khoá của p.
 Ví dụ 10: Cho LĐQH p = (U,F). Với U = ABCDEHIK.
F={AB→C,
C→EH,
H→AB}
Ta có Key(p) = HDIK.
Ta tính được UK = HDIK suy ra Uo = U\UK = ABCE.
Ta thu gọn lược đồ p theo ABCE được lược đồ q = (V,G) với
V = U\ABCE = DHIK.
G = F\ABCE = {∅→∅ (loại),
∅→H,
H→∅(loại)}
Ta tính được Key(q) = HDIK. Vậy Key(p) = Key(q).
2.7 Định lý thứ nhất về cách biểu diễn khoá

Nếu thu gọn LĐQH p = (U,F) theo tập X⊆U để nhận được LĐQH
q = p\X thì:
1.

Key(p) = Key(q) khi và chỉ khi X⊆Uo

2.

Key(p) = X⊕Key(q) khi và chỉ khi X⊆UI
Chứng minh

1. Giả sử Key(p) = Key(q), A∈X và A∉Uo. Theo phân hoạch của các thuộc tính trong
U, A∈UK thì phải tồn tại một khoá K trong Key(p) để A∈K.
Do Key(p) = Key(q) nên K = Key(q). Từ đây ta suy ra K ⊆ U\X hay là K∩X =
∅. Điều chỉnh mâu thuẫn với A∈K và A∈X. Vậy ta phải có X⊆Uo (Suy từ bổ đề về
khoá trong phép thu gọn LĐQH).
2. Đẳng thức Key(p) = X⊕Key(q) cho biết X có mặt trong mọi khoá của p, tức là
X⊆UI. Giả sử X⊆UI.
Ta sẽ chứng minh rằng mọi khoá K∈Key(p) đều được biểu diễn dạng XM, trong
đó M∈Key(q) và ngược lại, nếu M∈Key(q) thì MX∈Key(p).
Cho K=Key(p). Khi đó , vì X⊆UI nên X phải có trong mọi khoá của p, nói riêng
X ⊆K. Đặt M=K\X, ta có M∩X=∅ và K=XM. Theo bổ đề về siêu khoá trong phép thu
gọn LĐQH ta suy ra M=K\X là siêu khoá của q. Giả sử M chứa một siêu khoá P của q.
Khi đó XP lại là siêu khoá của p và XP⊆K. Vì K là khoá của p nên XP = K = XM. Để
ý rằng X∩P = X∩M = ∅, ta suy ra P = M. Vậy M là khoá của q.
Cho M∈Key(q). Ta có X∩M = ∅. Theo bổ đề về siêu khoá trong phép thu gọn
LĐQH thì XM là siêu khoá của p. Gọi K là khoá của p chứa trong siêu khoá XM. Lại
theo bổ đề về siêu khoá trong phép thu gọn LĐQH, K\X là siêu khoá của q. Vì K là
khoá của p và X ⊆ UI nên X ⊆ K. Từ đây suy ra K\X=M, hay K = XM. Điều này
chứng tỏ XM là khoá của p.
 Ví dụ 11: 1. Cho LĐQH p = (U,F). Với U = ABCDEH.
F={AE→D,