Các th ut toán liên quan ậ

Một phần của tài liệu Bài giảng môn Cơ sở dữ liệu ppt (Trang 82 - 87)

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ụ ộ (adsbygoogle = window.adsbygoogle || []).push({});

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)ộ ứ ạ ờ ở

Một phần của tài liệu Bài giảng môn Cơ sở dữ liệu ppt (Trang 82 - 87)