Tr c khi đi vào chi ti t chúng ta tìm hi u m t s khái ni m:ướ ế
- T p thu c tính ngu n (TN): bao g m các thu c tính ch xu t hi n v trái, không ế
xu t hi n v ph i c a pth và các thu c tính không xu t hi n v trái l n v ph i ế ế ế
c a pth.
- T p thu c tính đích (TĐ) : bao g m các thu c tính ch xu t hi n v ph i không ế
xu t hi n v trái c a pth. ế
- T p thu c tính trung gian (TG): Ch a thu c tính v trái l n v ph i c a pth. ế ế
Thu t toán:
B c 1: ướ
- T o t p ngu n TN và t p trung gian TG
B c 2: ướ
- N u TG=0(r ng) thì K=TN, k t thúc. ng c l i qua b c 3.ế ế ượ ướ
B c 3: ướ
- tìm t t c
- t p con Xi c a t p trung gian.
B c 4: ướ
- tìm siêu khóa Si b ng cách v i m i Xi,
n u (TN U Xi)+=Q+ thì Si = TN U Xiế
B c 5: ướ
- tìm khóa b ng cách lo i b các siêu khóa không t i thi u
- v i m i Si, Sj thu c S
n u Si ch a trong Sj thì lo i b t p Sj ra kh i siêu khóa (VD: Si=AB, Sj=ABC thì lo iế
b Sj ra kh i t p siêu khóa)
S còn l i chính là t p khóa c n tìm.
Ví d :
cho l c đ quan h Q={CSZ} t p ph thu c hàm F={CS → Z; Z → C} tìm t t c cácượ
khóa c a l c đ quan h trên. ượ
B c 1: ướ
- TN={S}, TG={CZ}
B c 2: ướ
- TG khác r ng nên qua b c 3 ướ
B c 3: ướ
- t p con Xi c a t p trung gian X={0,C,Z,CZ} ghi chú 0: là r ng
B c 4: ướ
- S+=S Khác Q có nghĩa không có siêu khóa.
- SC+=CZS b ng v i Q nên siêu khóa SC.
- SZ+=CZ b ng v i Q nên Siêu khóa là CZ
- SCZ+= b ng v i Q nên Siêu khóa là CSZ
B c 5: ướ
- V y t p siêu khóa S={SC, CZ, CSZ} Vì SC ch a trong CSZ và CZ ch a trong CSZ
nên lo i b siêu khóa CSZ kh i t p siêu khóa.
- K t qu khóa c a l c đ quan h trên là SC và CZ. K={SC, CZ}ế ượ
Thu t toán tìm m t khóa trên l c đ quan h ượ
SUNDAY, 31. MAY 2009, 17:05:46
COSODULIEU
M c tiêu : cho m t l c đ U có các thu c tính {A1,A2,...An} và t p Ph thu c hàm ượ
F. hãy tìm m t khóa cho l c đ đó. ượ
Thu t toán:
B c 1 :ướ
+ Gán K0=U+ (U+ là t p thu c tính c a U)
B c 2 : ta có A là thu c tính c a U.ướ
+ Tính bao đóng c a (Ki-1\A)+ n u b ng U+ ((Ki-1\A)+ =U+) thì lo i b A ra kh i K ế
t c là Ki =(Ki-1\A). n u (Ki-1\A)+ !=U+ thì Ki =Ki-1. ế
L p l i b c trên n l n ướ
B c n: k t qu K=Knướ ế
Ví d : cho U={A,B,C,D,E} và F={AB->C, AC->B, BC->DE} tìm m t khóa c a l c ượ
đ quan h r xác đ nh trên U và F ?
B c 1:ướ
+ K=U t c là K=ABCDE
B c 2:ướ
+ Tính Bao đóng c a (K\A)+ nghĩa là tính (BCDE)+ = BCDE ta th y k t qu tính bao ế
đóng không b ng U+ nên K=ABCDE
B c 3:ướ
+ Tính Bao đóng c a (K\B)+ nghĩa là tính (ACDE)+ = ABCDE ta th y k t qu tính bao ế
đóng b ng U+ nên lo i B ra t p K ban đ u K=ACDE
B c 4:ướ
+ Tính Bao đóng c a (K\C)+ nghĩa là tính (ADE)+ = ADE ta th y k t qu tính bao ế
đóng Không b ng U+ nên không b C ra t p K ta có K=ACDE
B c 5:ướ
+ Tính Bao đóng c a (K\D)+ nghĩa là tính (ACE)+ = ACEBD ta th y k t qu tính bao ế
đóng b ng U+ nên b D ra t p K ta có K=ACE
B c 6:ướ
+ Tính Bao đóng c a (K\E)+ nghĩa là tính (AC)+ = ACBDE ta th y k t qu tính bao ế
đóng b ng U+ nên b E ra t p K ta có K=AC
=>>K t qu Khóa là K=ACế
Thu t toán tìm ph t i thi u c a m t t p ph thu c hàm
1. Tách các ph thu c hàm sao cho v ph i ch còn m t thu c tính. (ví d : A->BC ế
thành A->B và A->C)
2. B các thu c tính d th a v trái. (ví d : cho F = {A → B, B → C, AB → D} các ư ế
ph thu c hàm có v trái 1 thu c tính là đ y đ nên ta không xét, xét AB → D có B d ế ư
th a(b B) vì bao đóng c a A có ch a B. A+=ABC) (d hi u là chúng ta b thu c tính
bên v trái, khi và ch khi bao đóng c a các thu c tính còn l i có ch a thu c tính đó)ế
3. Lo i kh i F các ph thu c hàm d th a. (Các thu c tính v ph i c a PTH ch ư ế
xu t hi n di nh t 1 l n thì không th lo i b . Còn l i tính bao đóng c a t p thu c tính
v trái n u có xu t hi n thu c tính v ph i thì có th lo i b thu c tính đó và đó làế ế ế
PTH d th a.)ư
Ví d : Cho l c đ quan h Q(A,B,C,D) và t p pth F={AB->CD, B->C, C->D} Tìm ượ
ph t i thi u?
1. Tách các ph thu c hàm sao cho v ph i ch còn m t thu c tính. ế
+ ta có F={AB->C, AB->D, B->C, C->D}
2. B các thu c tính d th a v trái. ư ế
+ B->C, C->D Không xét vì v trái ch có m t thu c tính.ế
+ xét AB->C : N u B A thì B+=BCD không ch a A nên không th B A. N u B Bế ế
thì A+=A. không b đ c thu c tính nào. ượ
+ xét AB->D : N u B A thì B+=BCD không ch a A nên không th B A. N u B Bế ế
thì A+=A. không b đ c thu c tính nào. ượ
3. Lo i kh i F các ph thu c hàm d th a. ư
+ xét AB->C : Tính AB+=ABCD = Q nên lo i b AB->C
+ xét AB->D : tính AB+=ABCD = Q nên lo i b AB->D
+ B->C : tính B+=B không th b .
+ C->D : tính C+=C không th b .
Ph t i thi u là Ftt = {B->C, C->D}
Tìm bao đóng
Ví d : Cho l c đ quan h R(U, F) ượ
V i U = ABCDE và F = { AB -->CD, E --> C, D -->CE, A -->E}. Tìm A+
- Đ u tiên gán A+=A
- Ti p theo xét xem có PTH nào A->X không? n u có b X vào A+, đây ta có A->Eế ế
nên A+=AE
- Ta th y E->C nên A+=ACE
- Cu i cùng ta có A+=ACE