Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Nghề: Công nghệ thông tin - Cao đẳng) - Trường CĐ Nghề Công nghiệp Thanh Hóa (Trang 100 - 109)

CHƢƠNG 6 : CHUẨN HÓA CƠ SỞ DỮ LIỆU

3.2.Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc

3. THIẾT KẾ CƠ SỞ DỮ LIỆU BẰNG CÁCH PHÂN RÃ

3.2.Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc

thuộc hàm

* Thuật Toán phân rã Q, F thành dạng chuẩn 3, bảo toàn thông tin, bảo toàn phụ thuộc hàm:

Dữ liệu vào: lƣợc đồ quan hệ Q và tập phụ thuộc hàm F.

Dữ liệu ra: một phân rã sao cho mỗi lƣợc đồ quan hệ con đều đạt chuẩn 3

vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm. Tìm phủ tối thiểu Ftt của F

Nếu có một phụ thuộc hàm nào của Ftt mà liên quan đến tất cả các thuộc tính của Q thì kết quả phân rã chính là Q ( Q không thể phân rã)

Nếu có những thuộc tính của Q không nằm trong một phụ thuộc nào của Ftt - dù ở vế phải hay vế trái của F thì chúng tạo thành một lƣợc đồ cần tìm.

Cứ mỗi phụ thuộc hàm X  A Ftt thì XA là một lƣợc đồ cần tìm Nếu có một lƣợc đồ con chứa khóa K của Q thì kết thúc thuật toán Ngƣợc lại tạo một lƣợc đồ con K

Ví dụ: cho lƣợc đồ Q(CTHRSG), F={CT, HR C,THR, CS G, HS

R}. Hãy phân rã Q thành các lƣợc đồ con đạt dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm.

Giải:

+F = Ftt={C T, HR C, TH R, CSG, HS R} là phủ tối thiểu. + áp dụng thuật toán trên Q đƣợc phân rã thành các lƣợc đồ con

Q1(CT), Q2(HRC), Q3(THR), Q4(CSG), Q5(HSR) Tất cả khóa của Q là:

Xi TNXi (TNXi)+ Siêu khóa Khóa

 HS CTHRSG HS HS

C HSC CTHRSG HSC

T HST CTHRSG HST

CT HSCT CTHRSG HSCT

101

CR HSC CTHRSG HSCR

TR HSTR CTHRSG HSTR

CTR HSCTR CTHRSG HSCTR

+ Q5 chứa khóa của Q nên Q1, Q2, Q3, Q4, Q5 là kết quả của phân rã.

Định lý: Thuật toán trên tạo ra một phân rã ở dạng chuẩn 3 vừa bảo toàn thông tin

vừa bảo toàn phụ thuộc hàm

Chứng minh:

1. Nếu Ftt có phụ thuộc hàm fi liên quan đến tất cả thuộc tính thì Q đạt chuẩn 3. Thật vậy:

fi  Ftt  fi là phụ thuộc hàm có vế phải 1 thuộc tính  fi có dạng KA  K là siêu khóa. Nếu khóa của Q là K‟è K thì ta có K‟A KA là phụ thuộc hàm có vế trái dƣ thừa điều này mâu thuẫn với fi Ftt. Vậy K là khóa của Q nếu Q có thuộc tính không khóa thì A là thuộc tính không khóa duy nhất của Q và mọi phụ thuộc hàm có vế phải là A phải có vế trái là Klƣợc đồ quan hệ Q không có phụ thuộc hàm có vế trái không là siêu khóa và vế phải không là thuộc tính khóa ị Q đạt chuẩn 3.

2. Nếu lƣợc đồ Q‟(W) gồm các thuộc tính không xuất hiện trong Ftt thì Q đạt chuẩn 3. Thật vậy:

V là tập con bất kỳ của W ta có V+

=V  F‟ của Q‟ chỉ gồm các phụ thuộc hàm hiển nhiên trong F‟ không có phụ thuộc hàm có vế trái không là siêu khóa và vế phải là thuộc tính không khóa  Q‟ đạt chuẩn 3. (adsbygoogle = window.adsbygoogle || []).push({});

3. Ta chứng minh mỗi lƣợc đồ con ở dạng chuẩn 3. Thật vậy:

Theo thuật toán thì mỗi lƣợc đồ con Qi có dạng YB với YB  Y là siêu khóa. Giả sử trong Qi có phụ thuộc hàm XA có vế trái không là siêu khóa và vế phải không là thuộc tính khóa.

Ta phân làm hai trƣờng hợp:

Trƣờng hợp 1: A=B X BX Y  Y B là phụ thuộc có vế trái dƣ thừa, điều này trái với Y B là phụ thuộc hàm trong phủ tối thiểu.

Trƣờng hợp 2: A B AY (1). Gọi K là khóa của Qi K  Y (2). A là thuộc

tính không khóa nên A  K (3).(1)(2)(3) K  Y (4). K là khóa nên KB

YB là phụ thuộc hàm có vế trái dƣ thừa. Điều này trái với điều phụ thuộc hàm YB là phụ thuộc hàm của phủ tối thiểu Ftt

4. Ta chứng minh phép phân rã bảo toàn phụ thuộc hàm. Thật vậy:

Hiển nhiên Ftt  G = Qi(Ftt)  Ftt+  G+ (1)

Hơn nữa Ftt+ G = Qi(Ftt) Ftt++ G+ Ftt+ G+ (2) (1)và (2)  Ftt+ = G+

102 Thật vậy:

Lập bảng kiểm tra bảo toàn thông tin. Ta lần lƣợt đồng nhất các giá trị của bảng trên theo các phụ thuộc hàm đƣợc phát hiện ở mỗi bƣớc của thuật toán tìm bao đóng của tập thuộc tính Qi+

với Qi+ chứa khóa K của lƣợc đồ Q. Phụ thuộc hàm đầu tiên đƣợc phát hiện là YAj  Ftt sao cho Qi+ Y và Aj Qi+.ở dòng của lƣợc đồ Ql(YAj) có giá trị aj ở cột Aj nên khi làm bằng giá trị kết quả là ở cột Aj của dòng có lƣợc Qi có thêm giá trị aj. Tiếp tục cho các phụ thuộc hàm phát hiện tiếp theo ta sẽ có thêm các giá trị a ở các cột khác của dòng Qi. Do Qi chứa khóa nên các giá trị a mới thêm vào của dòng Qi sẽ xuất hiện ở tất cả các thuộc tính của lƣợc đồ Q. Suy ra hàng của lƣợc đồ Qi sẽ chứa toàn a là điều phải chứng minh. Để làm sáng tỏ ý tƣởng của phần chứng minh này ta xét trƣờng hợp cụ thể của ví dụ trên :

Bƣớc 1: Ta lập bảng kiểm tra bảo toàn thông tin:

Bƣớc 2: Ta chứng minh dòng Q5 của bảng trên sẽ chứa toàn giá trị a. Thật vậy: ta

lần lƣợt đồng nhất các giá trị của bảng trên theo các phụ thuộc hàm đƣợc phát hiện theo thuật toán tìm bao đóng của X={HSR}  K;

F={CT, HRC,THR, CSG, HSR}

X0=HSR

X1=HSRC do HRđC. Đồng nhất các giá trị theo phụ thuộc hàm này. Trên dòng Q2 ở cột C chứa giá trị a nên trên dòng Q5 sẽ có thêm giá trị a ở cột C

X2=HSRCT do C T. Đồng nhất các giá trị theo phụ thuộc hàm này. X3=HSRCTG do CS G đồng nhất các giá trị theo phụ thuộc hàm này.

C T H R S G Q1(CT) a1 a2 Q2(HRC) a1 a2 a3 a4 Q3(THR) a1 a2 a3 a4 Q4(CSG) a1 a2 a5 a6 Q5(HSR) a1 a2 a3 a4 a5 a6

103 Do X+=Q+ nên dòng Q5 chứa toàn giá trị a

Ví dụ: Cho Q(ABCDEGH), F={ABD; EHG ; G C; D C} hãy phân rã Q thành các lƣợc đồ con ở dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc.

Giải:

Tìm phủ tối thiểu Ftt của F

Ftt= F ={AB D; EH G; G C; D C}

áp dụng thuật toán, Q đƣợc phân rã thành lƣợc đồ CSDL sau: Q1{ABD), Q2(EHG), Q3(GC), Q4(DC)

Tìm khóa của Q

TN={ABEH} TG={GD}

Xi TNXi (TNXi)+ Siêu khóa Khóa (adsbygoogle = window.adsbygoogle || []).push({});

 ABEH ABCDEGH ABEH ABEH

G ABEHG ABCDEGH ABEHG

D ABEHD ABCDEGH ABEHD

GD ABEHGD ABCDEGH ABEHGD

Q1, Q2, Q3, Q4 không chứa khóa để bảo toàn thông tin ta cần có Q5(A,B,E,H).Vậy kết quả của phân rã là Q1, Q2, Q3, Q4, Q5

BÀI TẬP:

Bài 1: Định nghĩa các dạng chuẩn 1NF,2NF,3NF,BCNF. Bài 2: Phụ thuộc hàm nào cần tránh khi một quan hê ở 3NF?

Bài 2: dạng chuẩn BCNF khác gì so với 3NF? Vì sao nó dc coi là mạnh hơn 3NF? Bài 2: Tính chất bảo toàn phụ thuộc hàm đối với 1 phép tách là gì? Vì sao nó là

quan trọng? Vì sao ko thể đảm bảo rằng 1 phép tách các lƣợc đồ quan hệ ko BCNF thành BCNF là bảo toàn phụ thuộc hàm? Hãy cho 1 phản ví dụ.

Bài 3: Tính chất kết nối bảo toàn thông tin của 1 phép tách là gì? Giữa các tính

chất bảo đảm phụ thuộc hàm và kết nối bảo toàn thông tin của phép tách, cái nào là quan trọng hơn? Vì sao?

Bài 4: Cho quan hệ sau:r

A B C D E a1 b1 c1 d1 e1 a1 b2 c2 d2 d1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1

104 AD, AB D, CBDE, EA, AE

Bài 5: Cho Q+

={ABCD}

a. Tìm tất các các tập con của Q.

b. Tìm tất cả các phụ thuộc hàm có thể có của Q (không liệt kê phụ thuộc hàm hiển nhiên).

Bài 6: Tìm bao đóng F+

của quan hệ

phanCong(PHICONG, MAYBAY, NGAYKH, GIOKH)

Bài 7: Cho F = {AB C, BD, CDE, CEGH, GA}

a. Hãy chứng tỏ phụ thuộc hàm AB E, AB G đƣợc suy diễn từ F nhờ luật dẫn Armstrong.

b. Tìm bao đóng của AB (với bài toán không nói gì về lƣợc đồ quan hệ Q ta ngầm hiểu Q+

là tập thuộc tính có trong F nghĩa là Q+={ABCDEGH})

Bài 8: Cho F = {AD, ABDE, CEG, EH}. Hãy tìm bao đóng của AB.

Bài 9: Cho F={AB E, AGI, BEI, EG, GIH}.

a. Hãy chứng tỏ phụ thuộc hàm ABGH đƣợc suy diễn từ F nhờ luật dẫn Armstrong

b. Tìm bao đóng của {AB}

Bài 10: Cho F={AD, ABE, BIE, CDI, EC} tìm bao đóng của {AE}+={ACDEI} (adsbygoogle = window.adsbygoogle || []).push({});

Bài 11: Cho G={ABC, AB, BC, AC}. F={ABC, AB, BC} có tƣơng đƣơng với G không?

Bài 12: Cho lƣợc đồ CSDL Kehoach(NGAY, GIO, PHONG, MONHOC,

GIAOVIEN) F={NGAY, GIO, PHONG MONHOC; MONHOC,

NGAYGIAOVIEN; NGAY, GIO, PHONG GIAOVIEN; MONHOC

GIAOVIEN}

a. Tính{NGAY, GIO, PHONG}+; {MONHOC}+ b. Tìm phủ tối thiểu của F

c. Tìm tất cả các khóa của Kehoach

Bài 13: Cho lƣợc đồ CSDL Q(TENTAU, LOAITAU, MACHUYEN,

LUONGHANG, BENCANG, NGAY) F={TENTAU LOAITAU; MACHUYEN TENTAU, LUONGHANG;

TENTAU, NGAY  BENCANG, MACHUYEN} a. Hãy tìm tập phủ tối thiểu của F

b. Tìm tất cả các khóa của Q

Bài 14: Q(A,B,C,D,E,G)

Cho phụ thuộc hàm F={ABC; CA; BCD; ACDB; DEG; BEC; CGBD; CEAG} X={B,D}, X+=?

Y={C,G}, Y+=?

105

a. F={AB E;AGI; BEI; EG; GI H} chứng minh rằng AB  GH.

b. F={ABC; BD;CDE; CEGH; GA }chứng minh rằng ABE; ABG

Bài 16: Cho quan hệ r

Trong các phụ thuộc hàm sau đây, PTH nào không thỏa

A  B; A  C; B  A; C  D; D  C; DA

Bài 17: Hãy tìm tất cả các khóa cho lƣợc đồ quan hệ sau:

Q(BROKER, OFFICE, STOCK, QUANTITY, INVESTOR, DIVIDENT)

F={STOCK DIVIDENT; INVESTOR BROKER; INVESTOR, STOCK QUANTITY; BROKER  OFFICE }

Bài 18: Xét lƣợc đồ quan hệ và tập phụ thuộc dữ liệu:

Q(C,T,H,R,S,G)

f={f1: C T;f2: HR C;f3: HTR;f4: CS G; f5: HSR} Tìm phủ tối thiểu của F.

Bài 19: Q(A,B,C,D,E,H)

F={A  E; CD; EDH} Chứng minh K={A,B,C} là khóa duy nhất của Q

Bài 20: Q(A,B,C,D)

F={AB C; D B; C ABD} Hãy tìm tất cả các khóa của Q (adsbygoogle = window.adsbygoogle || []).push({});

Bài 21: Q(A,B,C,D,E,G)

F={AB C; C A; BC D; ACD B; D EG; BE C; CG BD; CE G} Hãy tìm tất cả các khóa của Q.

Bài 22: Xác định phủ tối thiểu của tập phụ thuộc hàm sau:

a. Q(A,B,C,D,E,G),

F={ABC; C A; BCD; ACDB; DEG; BEC; CGBD; CEAG} b) Q(A,B,C) F={AB, AC, BA, CA, BC}

Bài 23: Xác định phủ tối thiểu của các tập phụ thuộc hàm sau:

a. Q1(ABCDEGH) F1={A H, ABC, BCD; GB} b. Q2(ABCSXYZ) F2={SA; AXB; SB; BYC; CZX} c. Q3(ABCDEGHIJ) F3={BGD; GJ; AIC; CEH; BDG; JHA; DI } A B C D x u x Y y x z x z y y y y z w z

106

d) Q4(ABCDEGHIJ) F4={BHI; GCA; IJ; AEG; DB; IH}

Bài 24: Cho biết dạng chuẩn của các lƣợc đồ quan hệ sau:

a. Q(ABCDEG); F={A BC, C DE, E G} b. Q(ABCDEGH); F={C AB, D E, B G} c. Q(ABCDEGH) ; F={A BC, D E, HG}

d. Q(ABCDEG); F={ABC, C B, ABD E, G A}

e. Q(ABCDEGHI);F={ACB, BIACD, ABCD, HI, ACEBCG, CGAE}

Bài 25: Kiểm tra sự bảo toàn thông tin ?

Q(ABCDE); R1(AD); R2(AB); R3(BE); R4(CDE); R5(AE) F={A  C; B  C;C  D; DE  C;CE  A}

Bài 26: Cho lƣợc đồ quan hệ Q(A,B,C,D) và tập phụ thuộc hàm

F = {AB; B C; AD; D C}

Và một lƣợc đồ CSDL nhƣ sau: C ={Q1(AB);Q2(AC);Q3(BD)} a. C có bảo toàn thông tin đối với F

b. C có bảo toàn phụ thuộc hàm ?

Bài 27: Kiểm tra dạng chuẩn Q(C,S,Z) F={CS Z; Z C}

Bài 28: Phân rã Q(G,H,A,B,C,D) F={GHAD; AGB; CDGH; CA; BHC}

Bài 29: Cho lƣợc đồ CSDL

Kehoach(NGAY, GIO, PHONG, MONHOC, GIAOVIEN)

F={NGAY, GIO, PHONGMONHOC; MONHOC, NGAYGIAOVIEN NGAY, GIO, PHONGGIAOVIEN; MONHOC GIAOVIEN}

a. Xác định dạng chuẩn cao nhất của Kehoach

b. Nếu Kehoach chƣa đạt dạng chuẩn 3, hãy phân rã Kehoach thành lƣợc đồ CSDL dạng chuẩn

c. Nếu Kehoach chƣa đạt dạng chuẩn BC, hãy phân rã KeHoach thành lƣợc đồ CSDL dạng BC

Bài 30: Cho lƣợc đồ quan hệ Q(A,B,C,D) và tập phụ thuộc hàm F

F = {AB; B C; DB}; C = {Q1(A,C,D); Q2(B,D)}

a. Xác định các Fi (những phụ thuộc hàm F đƣợc bao trong Qi) (adsbygoogle = window.adsbygoogle || []).push({});

b. Lƣợc đồ CSDL C có đạt dạng chuẩn BCNF ? Nếu không có thể phân rã tiếp các Qi của C để biến C thành dạng chuẩn BCNF ?

Bài 31: Giả sử ta có lƣợc đồ quan hệ Q(C,D,E,G,H,K) và tập phụ thuộc hàm F

nhƣ sau;

F = {CK H; C  D; E C; E  G; CK E} a. Từ tập F, hãy chứng minh EK DH

b. Tìm tất cả các khóa của Q. c. Xác định dạng chuẩn của Q.

107

d. Hãy tìm cách phân rã Q thành một lƣợc đồ CSDL đạt dạng chuẩn BCNF (hoặc dạng chuẩn 3). tìm tập phụ thuộc hàm và khóa cho mỗi lƣợc đồ quan hệ con.

Bài 32: Cho lƣợc đồ quan hệ Q(S,I,D,M)

F = {f1:SI  DM; f2:SD M; f3:D M} a. Tính bao đóng D+, SD+, SI+

b. Tìm tất cả các khóa của Q. c. Tìm phủ tối thiểu của F.

d. Xác định dạng chuẩn cao nhất của Q.

e. Nếu Q chƣa đạt dạng chuẩn 3, hãy phân rã Q thành lƣợc đồ CSDL dạng chuẩn 3 vừa bảo toàn phụ thuộc hàm vừa bảo toàn thông tin.

f. Nếu Q chƣa đạt dạng chuẩn BCNF, hãy phân rã Q thành lƣợc đồ CSDL dạng BCNF.

g. Kiểm tra phép tách Q thành các lƣợc đồ con (SID, SIM) có bảo toàn thông tin h. Kiểm tra phép tách Q thành các lƣợc đồ con (SID, SIM) có bảo toàn phụ thuộc hàm.

Bài 33: Cho lƣợc đồ quan hệ

R(W,A,Z,Y,Q,P)

R1(A,Z); R2(W,Y,Q,P) R3(Y,Q,P,A) F = {W AYQP, A Z, YQP A} Hãy kiểm tra tính kết nối không mất thông tin.

Bài 34: Cho lƣợc đồ quan hệ Q(Môn, GiảngViên,Giờ giảng, Phòng, SinhViên, Hạng) với

F ={MGV; G,PM; G,GVP; M, SVH; G,SVP} C = {Q1(M,G,P); Q2(M,GV);Q3( M,SV,H)}

Kiểm tra xem lƣợc đồ cơ sở dữ liệu sau đây có bảo toàn thông tin đối với F ?

Bài 35: Kiểm Tra dạng Chuẩn của các lƣợc đồ quan hệ sau:

a. Q(A,B,C,D) F={CAD; AB} b. Q(S,D,I,M) F={SID;SDM}

c Q(N,G,P,M,GV) F={N,G,PM; MGV} d Q(S,N,D,T,X) F={SN; SD; ST; SX}

Bài 36: Phân rã lƣợc đồ thành dạng 3NF vừa bảo toàn phụ thuộc hàm vừa bảo toàn

thông tin

a. Q(A,B,C), F={AB; AC; BA; CA; BC}

b. Q(MSCD, MSSV, CD, HG); F={MSCD CD; CDMSCD; CD, MSSVHG; MSCD, HGMSSV;CD,HGMSSV; MSCD, MSSVHG} c. Q(A,B,C,D) F={ ABC; CB}

Bài 37: Cho lƣợc đồ quan hệ R(U,F) với U = {ABCDEG}

108 a. Tìm một khoá K của R.

b. Lƣợc đồ còn khoá nào khác không? vì sao? c. Tập BCG có phải là khoá của R không? vì sao? (adsbygoogle = window.adsbygoogle || []).push({});

Bài 38: Xét quan hệ R(A,B,C,D,E) và tập các phụ thuộc hàm sau: F= {AB C, CD E, DE  B}

a. Tìm một khóa của lƣợc đồ quan hệ trên. b. Tìm tất cả các khóa của lƣợc đồ quan hệ.

c. Xác định dạng chuẩn cao nhất của lƣợc đồ quan hệ.

d. Phân rã lƣợc đồ quan hệ về 3NF bảo toàn phụ thuộc hàm.

e. Kiểm tra kết quả phân rã ở câu d có phải là một phân rã bảo toàn thông tin không?

f. Phân rã lƣợc đồ quan hệ ban đầu về BCNF bảo toàn thông tin.

g. Kiểm tra kết quả phân rã ở câu f có phải là một phân rã bảo toàn phụ thuộc hàm không?

Bài 39: Cho lƣợc đồ quan hệ R(U, F) với U = ABCDEHIKJ F = { C EHI, HI

ABC, AC  DJ, EC  AB }

a. Tìm tất cả các khóa của lƣợc đồ quan hệ trên b. Lƣợc đồ quan hệ trên đã thỏa 2NF chƣa? Tại sao?

c. Dùng phép tách bảo tồn phụ thuộc hàm để tách R thành các LĐQH thỏa dạng chuẩn 3NF

d. Dùng phép tách có nối kết không mất thông tin để tách R thành các LĐQH thỏa BCNF

Bài 40: Cho lƣợc đồ quan hệ R(U, F) với U = ABCDEG F = { A  B, BE C, EC  A, AD  G, ED  C}

a. Phụ thuộc hàm f: ECD  ABG có đƣợc suy dẫn từ F? b. Tìm tất cả các khóa của R

c. Chứng minh R chƣa thỏa BCNF?

d. Dùng phép tách có nối kết không mất thông tin để tách R thành các LĐQH thỏa BCNF?

109

TÀI LIỆU THAM KHẢO

[1]. Phạm Đức Nhiệm (2005), Giáo trình cơ sở dữ liệu quan hệ, NXB

Hà Nội.

[2]. Đồng Thị Bích Thủy - Nguyễn An Tế, Nhập môn cơ sở dữ liệu.

[3]. Nguyễn Bá Tƣờng, Cơ sở dữ liệu - Lý thuyết và thực hành.

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Nghề: Công nghệ thông tin - Cao đẳng) - Trường CĐ Nghề Công nghiệp Thanh Hóa (Trang 100 - 109)