200 likes | 530 Views
CHỦ ĐỀ 5. CHUẨN H Ó A CSDL (NORMALISATION). Chuẩn hóa CSDL nhằm mục đích: tránh dư thừa thông tin, tạo được thông tin nhất quán và khi cập nhật dữ liệu không có trường hợp bất thường (anomalies) xảy ra . Có những dạng chuẩn: Dạng chuẩn 1 (NF1) Dạng chuẩn 2 (NF2) Dạng chuẩn 3 (NF3)
E N D
CHỦ ĐỀ 5 CHUẨN HÓA CSDL (NORMALISATION) Chuẩn hóa CSDL nhằm mục đích: tránh dư thừa thông tin, tạo được thông tin nhất quán và khi cập nhật dữ liệu không có trường hợp bất thường (anomalies)xảy ra . Có những dạng chuẩn: Dạng chuẩn 1 (NF1) Dạng chuẩn 2 (NF2) Dạng chuẩn 3 (NF3) Dạng chuẩnBoyce-Codd
Một quan hệ đạt dạng chuẩn 1, nếu giá trị của mọi thuộc tính là nguyên tố (không thể phân chia được) hay đơn. Dạng chuẩn 1 (NF1) STAFF
Quan hệ đạt NF2, nếu mọi thuộc tính không phải là khóa phải phụ thuộc đầy đủ vào khóa Dạng chuẩn 2 Thuật toán kiểm tra quan hệ Q dạng chuẩn 2 Bước 1: Tìm các khóa của Q bằng tập phụ thuộc hàm Bước 2: Tìm bao đóng C của mỗi khóa K của Q Bước 3: nếu có C bất kỳ, mà nó có chứa thuộc tính không khóa thì Q không đạt dạng chuẩn 3, ngược lại Q đạt dạng chuẩn 3 Coi Q(A,B,C,D) và F={ABC; BD; BCA}.Q có đạt NF2? Khóa của Q là: K1=AB và K2=BC, và K1+ = K2+ = ABCD Ta có: B K1+, nghĩa là tồn tại BD, D là thuộc tính không khóa, D không phụ thuộc đầy đủ vào khóa AB Q không đạt NF2.
1) Cho Q(G,M,V,N,H,P) và tập phụ thuộc hàm F={GM; GN; GH; GP; MV; NHPM}, Q đạt NF2 ? bài tập Khóa của Q là G, Q đạt NF2, nhận xét: Khóa có một thuộc tính, quan hệ luôn đạt NF2. 2) Q(A,B,C,D,E,H) F={A E; C D; E DH}, Dạng chuẩn ? Khóa của Q là K = {ABC} mà C K+, nên tồn tại CD, D là thuộc tính không khóa D phụ thuộc không đầy đủ vào khóa, nên Q không đạt dạng chuẩn NF2. Table names
Dạng chuẩn 3, NF3 Thuộc tính phụ thuộc bắc cầu Coi quan hệ Q, X,Y là tập thuộc tính của Q, A là một thuộc tính trong Q A là phụ thuộc bắc cầu vào X, nếu A thỏa các điều sau: 1)X Y, Y A 2) Y X 3) A XY Q đạt dạng chuẩn 3, nếu Q đạt dạng chuẩn 2 và mọi thuộc tính không khóa không phụ thuộc bắc cầu vào khóa
Ví dụ: dạng chuẩn 3 • Cho Q(ABCDEG) và tập PTH • F= {ABDEG, BC; DEGB} • Khóa của Q là A, Q đạt dạng chuẩn 2. C phụ thuộc bắc cầu vào A vì: • AB F+ (suy từ ABDEG) • BA không thuộc F+ vì A không thuộc B+ =BC • C không thuộc (AB) =AB • Q không đạt dạng chuẩn 3.
BÀI TẬP: dạng chuẩn 3 Q(N,G,P,M) và F= {NGP M, M P} Q(ABCD) và F={ABC; DB; CABD} Q(SV,MH,THAY) và F = {SV,MH THAY;THAY MH} Kết qủa: 1), 2) 3) Đạt dạng chuẩn 3
Dạng chuẩn BCNF • Phụ thuộc hàm hiển nhiên là những phụ thuộc hàm có vế trái chỉ là khóa • Quan hệ đạt dạng chuẩn BCNF, nếu mọi phụ thuộc hàm không hiển nhiên có vế trái chứa khóa • Quan hệ đạt dạng chuẩn BCNF thì cũng đạt dạng chuẩn 3 (ngược lại có thể sai)
Bài tập • Q(SV,MH,THAY), F = {SV,MH THAY; • THAY MH} đạt NF3, không đạt BCNF • 2) Q(A,B,C,D), F={AB C, D B, C ABD} • thì Q là 3NF nhưng không là BCNF • Q(A,B,C,D,E,I) F={ACDEBI, CEAD} • (khóa là ACD, CE), Q đạt dạng chuẩn BCNF.
Q(ABCDEG), F={AE C, CG A, BD G, GA E} Khóa chính BDA, Q không đạt 3NF vì BD G Phân rã đạt dạng chuẩn 3, bảo toàn thông tin Q(ABCDEG) (BD G) Q1(BDG) Q2(BDAEC) F1={BD G} F2={AE C} Q21(AEC) Q22(BDAE) F21={AE C} F22{BDA E}
Kiểm tra các quan hệ sau, nếu chưa đạt NF3, thì phân rã thành những quan hệ và bảo toàn thông tin BÀI TẬP: Phân rã bảo toàn thông tin 1) Cho Kehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN) F={NGAY,GIO,PHONGMONHOC; MONHOC,NGAYGIAOVIEN NGAY,GIO,PHONGGIAOVIEN;MONHOCGIAOVIEN} 2) Q(GHABCD) và F={GHAD,AGB,CDGH, CA,BHC} 3) Q(C,D,E,G,H,K) và tập PTH như sau: F = {CK H, C D, EC, E G, CK E} a) Chứng minh EK DH b) Tìm tất cả các khoa của Q. c) Xác định dạng chuẩn cao nhất của Q. d) Nếu Q chưa đạt dạng chuẩn 3 thì phân rã Q thành những quan hệ và bảo toàn thông tin
Phân rã bảo tòan thông tin và phụ thuộc hàm - Tìm phủ tối thiểu Ftt của F - Nếu có PTH của Ftt mà liên quan đến tất cả những thuộc tính của Q, thì Q là kết quả phân rã ( nói khác đi không cần phân rã Q) - Nếu tồn tại phụ thuộc hàm nào của Ftt không chứa đủ các thuộc tính của Q, thì nó là một quan hệ cần tìm. - Cứ mỗi PTH: X A Ftt thì XA là một quan hệ cần tìm - Nếu có một quan hệ 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 quan hệ con K
Cho Q(CTHRSG) và F={CT,HRC,THR,CSG,HSR}. Phân rã Q Ví dụ: Phân rã bảo toàn thông tin và phụ thuộc hàm Phủ tối thiểu: Ftt={CT,HRC,THR,CSG,HSR} Khóa của q là HS Những phụ thuộc hàm trong Ftt không chứa đủ các thuộc tính của Q thì tạo thành một quan hệ, ta có: Q1(CT),Q2(HRC),Q3(THR),Q4(CSG),Q5(HSR) Quan hệ Q5 chứa khóa, nên dừng thuật toán ( nếu không có như thế thì phải thêm quan hệ Q6(HS)) Kết quả phân rã Q thành Q1, Q2, Q3, Q4 và Q5
Tìm tất cả khóa của quan hệ Q(A,B,Z) có tập phụ thuộc hàm F = {AB C, C A} Tìm tất cả khóa chính của quan hệ Gọi : NG tập những thuộc tính chỉ ở vế trái của tập F DI tập những thuộc tính ở vế phải của F TG tập những thuộc tính không có trong NG và DI Trong ví dụ trên thì: NG={B}, DI= , TG= {A, C} Khóa chính: CB hay AC (khóa chính là những Xi có chiều dài ngắn nhất và Xi+ chứa đủ các thuộc tính của Q
Bài tập tìm khóa chính Cho quan hệ Q hãy tìm các khóa chính cho Q 1) Q( TENTAU,LOAITAU,MACHUYEN,LUONGHANG,BENCANG, NGAY) F={TENTAU LOAITAU MACHUYEN TENTAU, LUONGHANG TENTAU,NGAY BENCANG, MACHUYEN} 2) Q(A,B,C,D,E,G) F={ABC,C A,BCD,ACDB,DEG,BEC,CGBD,CEG} 3)Q(BROKER,OFFICE,STOCK,QUANTITY,INVESTOR,DIVIDENT) F={STOCK DIVIDENT INVESTOR BROKER INVESTOR,STOCK QUANTITY BROKER OFFICE }
Phủ tối thiểu cho tập phụ thuộc hàm F ñöôïc goïi laø moät taäp phuï thuoäc haøm toái thieåu (hay phuû toái thieåu) neáu F thoûa ñoàng thôøi ba ñieàu kieän sau: 1) F laø taäp phuï thuoäc haøm coù veá traùi khoâng dö thöøa 2) F laø taäp phuï thuoäc haøm coù veá phaûi moät thuoäc tính. 3) F laø taäp phuï thuoäc haøm khoâng dö thöøa Thuaät toaùn tìm phuû toái thieåu cuûa moät taäp phuï thuoäc haøm Böôùc 1:loaïi khoûi F caùc phuï thuoäc haøm coù veá traùi dö thöøa. Böôùc 2:Taùch caùc phuï thuoäc haøm coù veá phaûi treân moät thuoäc tính thaønh caùc phuï thuoäc haøm coù veá phaûi moät thuoäc tính. Böôùc 3: loaïi khoûi F caùc phuï thuoäc haøm dö thöøa.
Cho löôïc ñoà quan heä Q(A,B,C,D) vaø taäp phuï thuoäc F nhö sau: F= {AB CD,B C,C D} Haõy tính phuû toái thieåu (Ftt) cuûa F. Tìm phủ tối thiểu Böôùc 1:ABCD laø PTH coù veá traùi dö thöøa? B CD F+? traû lôøi: B+=BCD B CD F+ Vaäy AB CD laø PTH coù veá traùi dö thöøa A keát quaû cuûa böôùc 1 laø: F{B CD, B C, C D} Böôùc 2: keát quaû cuûa böôùc 2 laø: F{B D, B C, C D}=F1tt Böôùc 3: trong F1tt, B C laø PTH dö thöøa? B C G+? vôùi G = F1tt - {B C}={B D;C D} BG+=BD B C G+ trong F1tt B C khoâng dö thöøa. trong F1tt,B D laø PTH dö thöøa? B D G+? vôùi G = F1tt - {B D}={B C, C D} BG+=BCD B D G+ trong F1tt,B D dö thöøa. keát quaû cuûa böôùc 3 cho phuû toái thieåu: F{B C, C D}=Ftt
Bài tập Cho löôïc ñoà quan heä Q(MSCD,MSSV,CD,HG) vaø taäp phuï thuoäc F nhö sau: F = {MSCD CD; CD MSCD; CD,MSSV HG; MSCD,HG MSSV; CD,HG MSSV; MSCD,MSSV HG} Haõy tìm phuû toái thieåu cuûa F keát quaû: Ftt = {MSCD CD; CD MSCD; CD,HG MSSV; MSCD,MSSV HG}