M nh ề Cho s = <R, F> là m t s đ quan h Đ t Fộ ơ ồệặ n là
3.5. Các th ut toán liên quan ậ
Trên c s các đ nh lí đã trình bày các m cơ ở ị ở ụ
trên, chúng ta xây d ng các thu t toán đ xác đ nhự ậ ể ị
d ng chu n cho các quan h ho c s đ quan h choạ ẩ ệ ặ ơ ồ ệ
Đ u tiên chúng ta xây d ng thu t toán xác đ nhầ ự ậ ị
m t quan h cho trộ ệ ước có là 3NF hay không. Thu t toán 1. ậ
Đ u vào: r = {hầ 1, ..., hm }là m t quan h trên Rộ ệ
Đ u ra : r là 3NF ?ầ
Bước 1: T r chúng ta xây d ng m t t p Eừ ự ộ ậ r = {Ei j : m ≥ j > i ≥1}, đây Eở i j = { a ∈ R : hj(a) = hj(a)}.
Bước 2: T Eừ r chúng ta xây d ng m t t p M =ự ộ ậ
{B ∈P(R) : T n t i Eồ ạ i j∈Er : Ei j = B}.
Bước 3: T M xây d ng t p Mừ ự ậ r = { B ∈ M : V iớ
m i B' ọ ∈ M : B ⊄ B'}.
Có th th y r ng Mể ấ ằ r tính được b ng m t thu tằ ộ ậ
toán th i gian đa th c.ờ ứ
Bước 4: Xây d ng t p V = ự ậ ∩Mr.
Bước 5: r là 3NF n u v i m i B ế ớ ọ ∈ Mr , a ∈ V : {B - a }r+ = B - a. Ngượ ạc l i r không là 3NF.
Ví d : Cho quan h r sauụ ệ
A B C D E 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 2 2 0 1 3 1 2 3 1 0
1 1 1 0 2 Khi đó E12= DE, E13= ∅, E14= ∅, E15= D, E23= C, Khi đó E12= DE, E13= ∅, E14= ∅, E15= D, E23= C, E24= A, E25=AB, E34=BD, E35=∅, E45=A. Nh v y ta có Mư ậ r= {DE,AB,BD,C}. D th yễ ấ DE ∩ AB ∩ BD ∩ C = ∅. Cho nên r là 3NF.
Trên c s Đ nh lí 4 m c trên chúng ta xây d ngơ ở ị ụ ự
thu t toán dậ ưới đây Thu t toán 2.ậ
Đ u vào: r = {hầ 1, ..., hm }là m t quan h trên Rộ ệ
Đ u ra: r là BCNF ?ầ Bước 1: T r chúng ta xây d ng m t t p Eừ ự ộ ậ r = {Ei j : m ≥ j > i ≥1} và Ei j = {a ∈ R : hj(a) = hj(a)} Bước 2: T Eừ r chúng ta xây d ng m t t p M =ự ộ ậ {B ∈P(R) : T n t i Eồ ạ i j∈Er : Ei j = B} Bước 3: T M xây d ng t p Mừ ự ậ r = {B ∈ M : V iớ m i B' ọ ∈ M : B ⊄ B'}. Có th th y r ng Mể ấ ằ r tính được b ng m t thu t toán th i gian đa th c.ằ ộ ậ ờ ứ
Bước 4: r là BCNF n u v i m i B ế ớ ọ ∈ Mr , a ∈ B : {B - a }r+ = B - a. Ngượ ạc l i r không là BCNF. Ví d : Cho quan h r :ụ ệ A B C D E 2 0 1 1 1 1 1 0 0 1 2 2 0 3 3 1 2 3 3 0 1 1 1 0 2
Khi đó E12= {E}, E13= {A}, E14=∅ , E15= {C}, E23= {C}, E24= {A}, E25={A,B}, E34={B,D}, E35=∅, E45={A}. Nh v y ta có Mư ậ r= {{A,B},{B,D},{C},{E}}. Có th ki m tra r ng {A,D} - A = D và {D}ể ể ằ + r = {B,D}. Vì th r không là BCNF.ế
Nh Đ nh lí thu t toán dờ ị ậ ưới đây được xây d ngự
Thu t toán 3.ậ
Đ u vào: s = <R,F> là m t s đ quan h trên R,ầ ộ ơ ồ ệ
v i ớ
F = { A1→ B1,..., Am→ Bm } Đ u ra: s là BCNF ?ầ
Bước 1: N u Aế 1→ B1 là ph thu c hàm khôngụ ộ
t m thầ ường và A1+ # R thì d ng và k t lu n s khôngừ ế ậ
là BCNF. Ngượ ạc l i thì chuy n sang bể ước ti p theo. ế
... Bước m: Gi ng nh bố ư ước 1 nh ng đ i v i Aư ố ớ m→ Bm . Bước m+1: s là BCNF. Ví d : Cho s đ quan h s =<R,F> ụ ơ ồ ệ R = {a,b,c,d,e} F={{a,b}→{d},{b,c}→{e}, {d}→{c}} Ta có {a,b}+ = R, nh ng {b,c}ư +≠ R. V y sậ không là BCNF.
Vì th i gian tính bao đóng c a m t t p thu c tínhờ ủ ộ ậ ộ
b t kì c a m t s đ quan h ho c m t quan h làấ ủ ộ ơ ồ ệ ặ ộ ệ
đa th c. Cho nên chúng ta có các k t lu n sau. ứ ế ậ
Đ nh lí 4.ị
Cho trước m t quan h r và m t s đ quan hộ ệ ộ ơ ồ ệ
s. Khi đó đ u t n t i m t thu t toán có đ ph c t pề ồ ạ ộ ậ ộ ứ ạ
th i gian đa th c theo kích thờ ứ ước c a r (s) đ ki mủ ể ể
tra r (s) có là BCNF hay không.
Đ nh lí 5ị
Cho trước r là m t quan h trên R. Khi đó t nộ ệ ồ
t i m t thu t toán có đ ph c t p th i gian đa th cạ ộ ậ ộ ứ ạ ờ ứ
Tuy v y, đ i v i đ u vào là s thì đây l i là bàiậ ố ớ ầ ạ
toán NP đ y đ .ầ ủ
Đ nh lí 6ị
Cho trước s là m t s đ quan h trên R. Khi đóộ ơ ồ ệ
bài toán xác đ nh s có là 3NF hay không là NP - đ yị ầ
đ .ủ
Có nghĩa là cho đ n nay, đ ph c t p th i gianế ộ ứ ạ ờ
c a bài toán này không là đa th c.ủ ứ
- V i trớ ường h p 2NF, các câu h i tợ ỏ ương t choự
c r l n s còn là bài toán m (Chúng tôi ph ng đoánả ẫ ở ỏ
có đ ph c t p th i gian là hàm mũ tr lên)ộ ứ ạ ờ ở