Tải bản đầy đủ
6 Bổ đề về khoá trong phép thu gọn LĐQH

6 Bổ đề về khoá trong phép thu gọn LĐQH

Tải bản đầy đủ

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,

BC→E}
Gọi UI là giao các khoá. Ta có: UI = ABCDEH\DE = ABCH.
Đặt q = (V,G) với V=U\ABCH = DE, G=F\ABCH={E→D, ∅→E}.
Ta tính được Key(q) = {∅}.
Vậy Key(p) = ABCH ⊕ Key(q) = {ABCH}
2. Với lược đồ đã cho ta tính được UK = ABCH, suy ra
Uo=U\UK =ABCDEH\ABCH = DE.
Đặt c = p\DE = (P,W).
P = U\DE = ABCH.
W = F\DE = {A→∅(loại),
BC→∅(loại)} ≡ ∅.
Do đó Key(c) = ABCH. Theo định lý thứ nhất về cách biểu diễn khoá, vì U o = DE
nên Key(p) = Key(c) = ABCH.
 Ví dụ 12: 1. Cho LĐQH p = (U,F). Với U = ABCDEHIK.
F={AB→C,
C→EH,
H→AB}
Ta tính được UI = U\ABCEH = DIK.
Ta thu gọn lược đồ a theo DIK ta được: LĐQH q = (V,G).
V=U\DIK=ABCEH.
G = {AB→C,
C→EH,
H→AB}
Ta tính được Key(q) = H. Vậy Key(p) = DIK⊕Key(q) = DHIK.
2. Với lược đồ trên ta tính được UK = DHIK
⇒ Uo = U\UK = ABCDEHIK\DHIK = ABCE.

Đặt c = p\ABCE =(P,W) ta có P = U\ABCE = DHIK.
W=F\ABCE = {∅→∅ (loại) ,
∅→H,
H→∅ (loại)} ≡ ∅.
Suy ra Key(c) = DHIK.
Theo định lý thứ nhất về cách biểu diễn khoá, vì Uo = ABCE nên:
Key(p) = Key(c) = DHIK.

2.7.1 Hệ quả về phép thu gọn LĐQH theo các bộ phận không khoá và các
giao khoá
Cho LĐQH p = (U,F) và các tập thuộc tính X⊆Uo, Y⊆UI. Nếu thực hiện phép thu
gọn theo XY để nhận được LĐQH q = p\XY thì:
Key(p) = Y ⊕ Key(q)
Chứng minh
Do X⊆Uo, Y⊆UI nên X∩Y = ∅. Đặt c = p\X, ta có q = p\XY = (p\X)\Y = c\Y.
Áp dụng dạng biểu diễn thứ nhất của khoá ta thu được:
Vì X⊆Uo nên Key(p) = Key(c) và do giao các khoá của c vẫn là UI
Xét trong c nên Key(c) = Y⊕Key(q). Vậy Key(p) = Y ⊕ Key(q).
 Ví dụ 13: Cho LĐQH a = (U,F).Với U = ABCDEHIK.
F= {AB→C,
D→EH,
H→I }
Ta có UI = U\CEHI = ABDK, UK = ABDK.
Ta có Uo = U\UK = U\ABDK = CEHI.
Ta thu gọn p theo X = Uo và Y = UI ta được:
LĐQH q = p\XY = (V,G) .
V = U\XY = U\U = ∅.

G = F\XY = ∅ suy ra Key(q) = ∅.
Vậy Key(p) = Y⊕Key(q) = ABDK.
2.8 Định lý thứ hai về cách biểu diễn khoá
Cho LĐQH p = (U,F). Khi đó mọi khoá K của p đều biểu diễn được dưới dạng K
= LM trong đó L là một vế trái cực tiểu của F và M là khoá của LĐQH p\L+.
Chứng minh
Giả sử K ∈ Key(p). Nếu K=U thì đương nhiên chứa mọi vế trái của PTH trong F,
khi đó ta chọn một vế trái cực tiểu tuỳ ý. Giả sử K ⊂ U, khi đó để tính bao đóng K + ta
phải tìm được một PTH f: X→Y ∈ F thoả tính chất X⊆K. Vì X là vế trái của f nên
trong ML(F) phải tồn tại một vế trái cực tiểu L để L ⊆ X. Ta chọn một số vế trái cực
tiểu này.
Như vậy ta đã chứng minh được rằng mọi khoá K đều chứa một vế trái cực tiểu L
nào đó. Đặt M=K\L, ta có K=LM. Ta chứng minh M là khoá của LĐQH p\L +. Nếu L+
= U thì p\L+ = p\U = (∅,∅). Lược đồ này có khóa duy nhất là M=∅. Khi đó K=L∅.
Giả sử L+ ⊂ U. Từ đây suy ra L ⊂ K vì nếu L = K thì phải có L+ = K+ = U, trái với
giả thiết L+ ⊂ U. Theo tính bộ phận của khoá L+ ∩K = L hay K\L = K\L+ = M. Từ đây
suy ra M⊆U\L+. Theo bổ đề về siêu khoá trong phép thu gọn LĐQH, M sẽ là siêu khoá
của lược đồ p\L+ . Giả sử M chứa siêu khoá P của lược đồ p\L +. Khi đó theo bổ đề về
siêu khoá trong phép thu gọn LĐQH, L +P sẽ là siêu khoá của p, do đó (L +P)+ = U. Áp
dụng tính chất của bao đóng ta có (L+P)+ = (LP)+ = U, do đó LP là siêu khoá của p.
Vì P ⊆ M ⊆ K = LM nên LP⊆K. Vì K là khoá của p nên LP = K = LM. Để ý
rằng L∩P=∅, L∩M=∅ và P⊆M ta suy ra P = M. Điều này chứng tỏ M là khoá của
p\L+ .
2.8.1 Định nghĩa tập các vế trái cực tiểu
Cho LĐQH p = (U,F). Ta ký hiệu ML(F) là tập các vế trái cực tiểu của F, ML(F)
= MIN{LS(f)|f∈F}.

2.8.2 Bổ đề vế trái cực tiểu
Cho LĐQH p = (U,F). Nếu L∈ ML(F) thì L ∈ Key(p) khi và chỉ khi L+ = U.
 Ví dụ 14: Cho lược đồ quan hệ p = (U,F). U= ABCDEH.
F = { AE→D, A→C, E→BC, EH→A, AC→EH, BD→C }
Ta có ML (F) = {A,E,BD}.
- Trường hợp 1: Xét A trong ML(F). Ta thấy A + = ABCDEH = U. Vậy A là khoá của
p.
- Trường hợp 2: Xét E trong ML(F). Ta thấy E + = EBC ≠U. Vậy E không phải là khoá
của p.
Ta thu gọn p theo E+. Đặt q = p\E+ = (V,G), ta có:
V = ABCDEH\EBC = ADH,
F = {A→D, A→∅ (loại), ∅→∅ (loại), H→A, A→H, D→∅ (loại)}
= { A→D, H→A, A→H} = {A→DH, H→A}.
Dễ dàng thấy H là một khóa của q. Như vậy EH là khoá của p, trong đó E là một vế trái
cực tiểu, H là khoá của p\E+.
- Trường hợp 3: Xét BD trong ML(F). Ta thấy BD + = BDC ≠ U. Vậy BD không phải là
khoá của p.
Ta thu gọn p theo BD+. Đặt q = p\BD+ = (V,G). Ta có
V = ABCDEH\BCD = AEH,
G = F\BCD = {AE→∅ (loại),
A→∅ (loại),
E→∅ (loại),
EH→A,
A→EH,
∅→∅ (loại)}
= { EH→A, A→EH }.

Dễ dàng thấy Key(q) = {A,EH}.Ta thấy {A, EH} lại là khoá của p trong 2 trường hợp
trên.
 Như vậy p có 2 khoá Key(p) = {A, EH}
Chú ý: Ở ví dụ này, trong trường hợp 2 ta đã tính được LĐQH q = p\E + = (V,G),
V=ADH, G={A→DH, H→A}. Ngoài khoá H, lược đồ q còn có khoá A, tuy nhiên EA
không phải là khoá riêng của p vì bản thân A đã là khoá của p.
 Ví dụ 15: Minh hoạ sự tồn tại LĐQH có vế trái cực tiểu L không tham gia vào
bất kỳ khoá nào.
Xét LĐQH p = (U,F), Với U = ABCDE.
F={ BD→CE,
AE→D,
CE→ABD,
BE→ACD}.
Ta thấy cả 4 vế trái đều là cực tiểu, như vậy ML(F) = {BD, AE, CE, BE}. Ngoài
ra do (BD)+ = (CE)+ = (BE)+ = U nên {BD, CE, BE} ⊆ Key(a).
Mặt khác, (AE)+ = ADE ≠ U nên AE không thể là khoá. Ta chứng tỏ rằng vế trái
cực tiểu AE không có bất kỳ khoá nào. Thật vậy, vì (AE) + = ADE nên để xây dựng một
khoá chứa AE ta cần thêm vào AE một vài thuộc tính khác với A, D và E cụ thể là B
hoặc C. Nếu thêm cho AE một thuộc tính B thì ABE chứa khoá BE; nếu thêm cho AE
thuộc tính C thì ACE chứa khoá CE. Vậy vế trái cực tiểu AE không thể là bộ phận của
bất kỳ khoá nào của p.
Bổ đề sau đây cho ta một dấu hiệu tạo và chọn các khoá từ tập khoá của lược đồ thu
gọn.
2.8.3 Bổ đề các khoá sinh từ khoá của lược đồ sau khi thu gọn
Cho LĐQH p = (U,F) và vế trái cực tiểu L. Khi đó nếu K ∈L⊕Key(p\L+) và K
không chứa vế trái cực tiểu nào khác ngoài L thì K là khoá của p.

Chứng minh
Giả sử ta có phân hoạch K = L⊕M, M∈Key (p\L+) và K không chứa vế trái cực
tiểu khác L của F.
Theo hệ quả về siêu khoá trong phép thu gọn LĐQH thì K là siêu khoá của p. Gọi
P là khoá của p chứa trong K. Ta chứng minh P = K. Nếu P không chứa vế trái cực tiểu
nào của F thì U = P+ = P ⊆ K, do đó P = K = U.
Giả sử P chứa một vế trái cực tiểu nào đó của F. Do P⊆K mà K chỉ chứa vế trái
cực tiểu L duy nhất nên đương nhiên L⊆P.
Đặt Q=P\L, ta có phân hoạch P = L|Q và do đó Q⊆M. Vì L là bộ phận của khoá P
nên theo định lý về đặc trưng của khoá ta có:
L+ ∩P = L hay P\L+ = P\L = Q.
Theo bổ đề về siêu khoá trong phép thu gọn LĐQH, Q sẽ là siêu khoá của p\L +.
Vì M cũng là khoá của p\L+ và Q⊆M nên Q = M và do đó:
P = LQ = LM = K.
Vậy K là khoá của p.


Ví dụ 16: Xét LĐQH a = (U,F). Với U = ABCDEH.
F = {AE→D, A→C, E→BC, EH→A, AC→EH, BD→C}.

Ta có ML(F) = {A, E, BD}.
Xét vế trái cực tiểu E. Ta thấy, E+ = EBC ≠U. Vậy E không phải là khoá của p. Ta
thực hiện phép thu gọn lược đồ p theo E+.
Ta có q = p\E+ = (V,G), V = ABCDEH\EBC = ADH,
G = F\EBC = {A → D, A → ∅ (loại), ∅ → ∅ (loại), H → A, A → H,
D → ∅ (loại)} = {A → DH, H → A}.
Dễ dàng tính được Key(q) = {A, H}, do đó E⊕Key(q) = {EA,EH}.
Thành phần EH không chứa thêm vế trái cực tiểu nào khác, do đó EH là khoá của
p.



Ví dụ 17: Xét LĐQH a = (U,F), U = ABCD, F = {A→B, C→D}.

Ta có khoá K=AC chứa đồng thời 2 vế cực trái cực tiểu A và C.
Vậy, ta thấy rằng tồn tại LĐQH có khoá chứa một vài vế trái cực tiểu.
2.8.4 Bổ đề
Cho LĐQH p = (U,F) và vế trái cực tiểu L. Khi đó ∀M∈Key(p\L+), thì mọi khoá K
của p chứa trong LM đều phải chứa M.
Chứng minh
Ta đã biết LM là siêu khoá. Giả sử K là khoá của p và K ⊆LM. Ta xét phân
hoạch K = P|Q, trong đó P = K∩L, Q = K∩M.
Vì L∩M = L+∩M = ∅ nên P∩Q=∅. Theo bổ đề về siêu khoá trong phép thu gọn
LĐQH ta có K\L+ = K\L = PQ\L = Q là siêu khoá của a\L+ .
Do đó, theo tính chất tối tiểu của khoá ta phải có Q= M, hay K ⊇ M.
Bổ đề trên cho phép ta xây dựng thuật toán GetKey nhận một khoá từ tập LM∈L ⊕
Key(p\L+) với L là vế trái cực tiểu của LĐQH nguồn p.
Trước hết ta để ý rằng LM đã là một siêu khoá của LĐQH p. Như vậy, để tìm
khoá từ LM, ta chỉ cần xét để loại bỏ các phần tử trong vế trái cực tiểu L, vì M chứa
trong mọi khoá của a có trong LM.
 Thuật toán
Algorithm GetKey
//Tìm một khoá từ LM
Format: GetKey (U,F,L,M)
Input:
- Vế trái cực tiểu L của LĐQH p = (U,F)
- M ∈Key (p\L+)
Output: - Khoá K của lược đồ p chứa trong LM
Method
K := L∪M;
For each attribute A in L do
If A∈Closure(K\A,F) then

K:=K\A;
Endif
Endfor
Return K;
EndGetKey.
 Ví dụ 18: Cho LĐQH p = (U,F). Với U = ABCDEHG.
F = { DE → G,
H → C,
E → A,
CG → H,
DG → EA,
D → B}.
Tìm Key (p)?
Ta có vế trái cực tiểu ML(F) = {D,E,H,CG}
Tính D+ = DB; E+ = EA; H+ = HC; CG+ = CGH
- Với L = D ta có:
q = p\L+ = p\DB = (ACEHG,{E→G, H→C, CG→H, G→EA}).
Ta dễ dàng tính được M = Key (b) = {GH,CE,HE}. Suy ra:
Key(p) = LM={DGH,DCE,DHE}
- Với L = E ta có:
q = p\L+= p\EA = (BCDHG, {D→G, H→C, ∅→∅(loại), CG→H, DG→∅(loại),
D→B}) = (BCDHG, D→BG, H→C, CG→H}).
Ta dễ dàng tính được M = Key(q) = {CD,DH}. Suy ra
Key(p) = LM = {ECD,EDH}.
- Với L = H ta có:
q = p\L+ = p\HC = (ABDEG, {DE→G, ∅→∅(loại), E→A, G→∅(loại),
DG→EA, D→B} = (ABDEG, {DE→G, E→A, DG→EA, D→B}).

Ta tìm được M = Key(q) = {DG,DE}. Suy ra
Key(p) = LM = {HDG,HDE}.
- Với L = CG ta có q = p\L + = p\CGH = (ABDE, {DE→∅(loại), ∅→∅(loại),
E→A, ∅→∅(loại), D→EA, D→B} = (ABDE, {E→A, D→EAB}).
Ta tìm được M = Key(q) = D. Suy ra Key (p) = LM = CGD.
Như vậy ta có: Key (p) = {DGH,DCE,DEH, CGD}.

2.9 Lược đồ cân bằng
LĐQH p = (U,F) được gọi là cân bằng nếu tập PTH F trong p thoả các tính chất
sau đây:
1. Hợp các vế trái, các vế phải của các PTH trong F đúng bằng tập thuộc tính U:
LS(F) = RS(F) = U
2. F không chứa các PTH tầm thường, tức là các PTH có vế trái chứa vế phải:
∀X,Y⊆U: X⊇Y ⇒ (X→Y∉F)
3. Cả hai vế trái và phải của mọi PTH trong F rời nhau (không giao nhau):
∀f ∈ F: LS(f)∩RS(f) = ∅
4. Các vế trái của mọi PTH trong F khác nhau đôi một:
∀f, g ∈ F: LS(f) = LS(g) ⇔ f = g
Các tính chất thứ 2, 3, 4 cho biết F có dạng thu gọn tự nhiên. Như vậy LĐQH là
cân bằng khi và chỉ khi tập PTH có dạng thu gọn tự nhiên và mọi thuộc tính đều xuất
hiện ít nhất một lần ở vế trái, một lần ở vế phải.
 Ví dụ 19:
1. Cho LĐQH p = (U,F). Với U = ABCD và
F = {A→DC, B→AC, BC→A, D→B}.
Suy ra p = (U,F) là lược đồ cân bằng.
2. Nếu thêm cho U một thuộc tính, chẳng hạn E và giữ nguyên tập PTH thì thu được
một LĐQH không cân bằng q = (UE,F) vì tính chất 1 bị vi phạm:

LS(F) = RS(F) = ABCD ≠ ABCDE.

2.9.1 Một số tính chất của lược đồ cân bằng
Ngoài các tính chất trên, lược đồ cân bằng (LĐCB) còn có những tính chất sau
đây:
5. Nếu tập PTH F trong LĐQH p = (U,F) ở dạng thu gọn tự nhiên và chỉ có một PTH
thì p không thể là LĐCB.
Thật vậy, nếu F = {X→Y} và F ở dạng thu gọn tự nhiên thì:
LS(F) = X ≠ Y = RS(F), vi phạm tính chất 1.
6. Từ tính chất 5 ta suy ra LĐQH chỉ có một thuộc tính thì không thể là LĐCB. Thật
vậy, gọi thuộc tính duy nhất là A, ta chỉ thấy có 4 khả năng tạo các PTH sau đây:
a. A→A (Tầm thường)
b. A→∅ (Tầm thường)
c. ∅→∅ (Tầm thường)
d. ∅→A
Như vậy chỉ có thể chọn U=A và F=∅ hoặc F={∅→A}.
- Trường hợp 1: U=A, F=∅ cho ta LS(F) = RS(F) = ∅ ≠ U.
- Trường hợp 2: U=A, F={∅→A} cho ta LS(F)=∅ ≠ A=RS(F). Cả hai trường hợp đều
không cho LĐCB.
Để ý rằng trường hợp U=∅ và F=∅ ta có LĐCB (∅,∅).
7. Trong LĐCB p = (U,F), tập giao các khoá U I = ∅. Thật vậy theo công thức tính giao
các khoá và theo tính chất 3 ∀f∈F: RS(f)∩LS(f) = ∅ ta suy ra :
∀f∈F: RS(f)\LS(f) = RS(f)
Do đó M =



( RS ( f ) \ LS ( f )) =

f ∈F



f ∈F

RS ( f ) = RS ( f )

theo tính 1 ta có:

RS(F)=U, do đó UI = U\M = U\U = ∅.
2.9.2 Thuật toán thu gọn LĐQH về dạng cân bằng