Giáo trình cơ sở dữ liệu chương 6: Chuẩn hóa lược đồ cơ sở dữ liệu quan hệ

Khóa - Siêu Khóa „Giải thuật tìm tất cả các khóa „Các dạng phụ thuộc hàm „Sự dư thừa dữ liệu và các dị thường khi cập nhật „Dạng chuẩn 1 „Dạng chuẩn 2 „Dạng chuẩn 3 „Dạng chuẩn BCNF „Phi chuẩn hóa

pdf24 trang | Chia sẻ: haohao89 | Lượt xem: 3396 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Giáo trình cơ sở dữ liệu chương 6: Chuẩn hóa lược đồ cơ sở dữ liệu quan hệ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 6. CHUẨN HÓA LƯỢC ĐỒ CSDL QUAN HỆ GV: Trần Ngân Bình tnbinh@cit.ctu.edu.vn 6.2 Nội Dung „ Khóa - Siêu Khóa „ Giải thuật tìm tất cả các khóa „ Các dạng phụ thuộc hàm „ Sự dư thừa dữ liệu và các dị thường khi cập nhật „ Dạng chuẩn 1 „ Dạng chuẩn 2 „ Dạng chuẩn 3 „ Dạng chuẩn BCNF „ Phi chuẩn hóa 6.3 Khóa - Siêu Khóa „ Khái niệm: Cho lược đồ quan hệ α = , K ⊆ U )K được gọi là siêu khóa của α nếu : K+ = U ( hay K -> U) )K được gọi là khóa của α nếu: K là siêu khóa K là siêu khóa nhỏ nhất: ∀ X ⊂ K, X không là siêu khóa, hay X --> U „ Nhận xét: )Một LĐQH có thể có một hoặc nhiều siêu khóa, và một hoặc nhiều khóa. )Các khóa có thể có số lượng thuộc tính khác nhau. )Hai khóa phân biệt không thể bao nhau: Nếu K1 ≠ K2, thì K1 ⊄ K2 và K2 ⊄ K1. 6.4 Ví dụ khóa & siêu Khóa „ Ví dụ: Dữ liệu về các cầu thủ bóng đá gồm các thuộc tính: )U = { TENCT, MAU_AO, SO_AO, DOI, TINH, HLV, DIEM, Km } )F = { TINH → Km MAU_AO → TINH, DOI, HLV DOI, TINH → MAU_AO, HLV MAU_AO, SO_AO → U } „ Từ tập PTH F ta có thể suy ra: )Có siêu khóa K: K={DOI, TINH, SO_AO, MAU_AO } )Và có khóa K1, K2 : K1= { MAU_AO, SO_AO} và K2= {DOI, TINH, SO_AO} 6.5 Giải Thuật Tìm Tất Cả Các Khóa (1) „ Phép dịch chuyển LĐQH: ) Cho LĐQH α = , X ⊆ U. ) Phép dịch chuyển LĐQH trên X cho ta một LĐQH α’ = α\X = , trong đó:  U’ = U \ X  F’ = { Li \ X → Ri \ X , i= 1..m}. Nếu Ri \ X = φ thì bỏ đi PTH đó. „ Ðịnh lý cơ bản: )Cho LĐQH α = , X, Y ⊆ U, X∩Y =φ ) thì: (XY)+α = X (Y)+α \ X 6.6 Giải Thuật Tìm Tất Cả Các Khóa (1) „ Ví dụ: Giả sử tìm (AGHI)+ trên lược đồ quan hệ α gồm: U = { ABCDEGHIJ } F = { AG → BC BCE→ G C → DAB } AD → EC IB→ DJ Ta có thể tìm AGH(I)+α \ {AGH} α’ = α \ {AGH } = , U’ = BCDEIJ F’ = { φ → BC BCE → φ D → EC IB→ DJ C → DB } Ö I+α’ = IBCDJE Ö (AGHI)+α = AGH (I)+α’ = AGHIBCDJE = ABCDEGHIJ „ Hệ quả: X+α = X (φ)+α \ X 6.7 Giải Thuật Tìm Tất Cả Các Khóa (2) „ Ðịnh lý: Gọi Kα là tập hợp tất cả các khóa của LĐQH α, và: )U0 = ∩ Kα : là tập các thuộc tính nằm trong mọi khóa. )M = ∪ Kα : là tập các thuộc tính khóa hay tập thuộc tính nguyên thủy. ) I = U\M: là tập các thuộc tính không nằm trong mọi khóa. )Khi đó: với X ⊆ U thì: Kα = X ⊕ Kα \ X ⇔ X ⊆ U0 Kα = Kα \ X ⇔ X ⊆ I „ Chú ý: phép tóan ⊕: )X ⊕ { Y1, Y2,...Yn} = {XY1,XY2,... XYn} 6.8 Giải Thuật Tìm Tất Cả Các Khóa (2) „ Giải thuật tìm Kα: )Bước1: Ðưa F về dạng rút gọn tự nhiên )Bước 2:Tính U0 = U - ∪ R i )Bước 3: Tính I = ∪ R i - ∪ L i )Bước 4: Xác định α’= α\U0I )Bước 5: Tìm Kα’ )Bước 6: Kα = U0 ⊕ Kα’ m i=1 m i=1 m i=1 6.9 Ví Dụ Tìm Tất Cả Các Khóa „ Ví dụ: Cho α= với U = ABCDEGHIJL „ F = { AI → ECD ABJ → GH CDL → ABEH} 1. F đã ở dạng rút gọn tự nhiên. 2. U0 = U - ∪ Ri = IJL 3. I = ABCDEGHIJL - ABCDIJL = EGH 4. α’ = α \ U0I =  U’ = U - U0I = ABCD  F’ = { A → CD CD→ AB} 5. Vì A+ = ABCD = U’, (CD)+ = ABCD Î K α’ = { A, CD} 6. K α = U0 ⊕ K α’ = IJL ⊕ {A, CD } = {AIJL, CDIJL} 6.10 Các Dạng Phụ Thuộc Hàm „ Phụ thuộc từng phần: Phụ thuộc hàm X Æ A được gọi là phụ thuộc từng phần nếu X là tập con thật sự của một khóa của R. )Ví dụ: SAIP, F = {SÆ A, SI Æ P} => khóa là SI. A: không là thuộc tính nguyên tố. S Æ A: là phụ thuộc hàm từng phần „ Phụ thuộc hàm đầy đủ (phụ thuộc hàm sơ cấp): Phụ thuộc hàm X Æ A được gọi là phụ thuộc đầy đủ nếu không tồn tại tập con thật sự Y ⊂ X nào để Y Æ A xảy ra. Như vậy, phụ thuộc đầy đủ vào khóa ngược lại với phụ thuộc từng phần. 6.11 Các Dạng Phụ Thuộc Hàm „ Phụ thuộc truyền: Phụ thuộc hàm X Æ A được gọi là phụ thuộc truyền nếu X không là tập con thật sự của bất kỳ khóa nào. )Ví dụ : SIDM, F = {SI Æ D, SD Æ M}, khóa là SI M không là thuộc tính nguyên tố. SD ⊄ SI => SD Æ M là phụ thuộc hàm truyền. Hay tồn tại sơ đồ: SI Æ SD Æ M, nên SD Æ M là phụ thuộc hàm truyền. „ Phụ thuộc trực tiếp: Phụ thuộc hàm X Æ A được gọi là phụ thuộc trực tiếp nếu không tồn tại tập thuộc tính Y, với Y ≠ X, Y ≠ A thỏa: XÆ Y và Y Æ A 6.12 Chuẩn hóa CSDL „ Một CSDL được thiết kế không tốt sẽ dẫn đến nhiều vấn đề rắc rối nảy sinh khi sử dụng như dư thừa dữ liệu, dị thường khi cập nhật. „ Vấn đề đặt ra là làm sao thiết kế được một CSDL tốt. „ Chuẩn hóa CSDL là một kỹ thuật dùng để tạo ra một tập các quan hệ với các thuộc tính đáp ứng được các yêu cầu cho trước về dữ liệu của một công ty „ Có nhiều dạng chuẩn: 1NF, 2NF, 3NF, BCNF,… „ Một CSDL không chuẩn đạt chuẩn 3 sẽ: )Dẫn đến dữ liệu dư thừa => dữ liệu không nhất quán )Có thể dẫn đến những tình trạng dị thường khi cập nhật dữ liệu 6.13 Các Dạng Chuẩn Của Một LĐQH Các bảng được chuẩn hóa hoàn toàn Dạng chuẩn thứ tư Dạng chuẩn thứ hai Dạng chuẩn thứ nhất Loại bỏ các dị thường có thể có Loại bỏ các phụ thuộc hàm đa trị Dạng chuẩn Boyce-Codd Dạng chuẩn thứ ba Loại bỏ các phụ thuộc hàm không khóa Loại bỏ các phụ thuộc hàm truyền Loại bỏ các phụ thuộc hàm từng phần Loại bỏ các nhóm lặp lại Các bảng chưa chuẩn : : 6.14 Dạng Chuẩn 1 (1NF) „ Một quan hệ thỏa 1NF nếu mọi thuộc tính của R đều khác trống, PTH vào khóa và không được mang giá trị kép. Ví dụ: Bảng không chuẩn 6.15 Đưa về 1NF: Cách 1: San phẳng => tạo ra nhiều dữ liệu dư thừa 6.16 Đưa về 1NF: Cách 2: Tách thành các bảng 6.17 Dị thường khi cập nhật „ Dị thường khi xen: )Thêm vào một Tài sản mới cần cho thuê? „ Dị thường khi xóa )Muốn xóa một hợp đồng cho thuê „ Dị thường khi cập nhật )Khi cập nhật tên của một chủ nhà ? )=> phải cập nhật tất cả các dòng liên quan? 6.18 Dạng chuẩn 2 (2NF) „ Một quan hệ thỏa 2NF là một quan hệ thỏa 1NF và không tồn tại bất cứ một PTH từng phần nào trong quan hệ „ Nhận xét: )Ðể biết một quan hệ R có thỏa dạng chuẩn 2 hay không, ta phải xác định khóa của R. Từ đó, mới có thể xác định các PTH nào là PTH từng phần. )Chỉ có các quan hệ có khóa gồm hai thuộc tính trở lên thì mới có thể không thỏa dạng chuẩn 2. 6.19 Ví dụ: QH không thỏa 2NF Khóa chính Không thoả dạng chuẩn 2 6.20 Đưa về 2NF „ Tách các thuộc tính phụ thuộc một phần vào khóa => đưa vào quan hệ mới Khóa chính 6.21 Dạng chuẩn 3 (3NF) „ Một quan hệ thỏa 3NF là một quan hệ thỏa 2NF và không tồn tại bất cứ một PTH truyền nào trong quan hệ Khóa chính Khóa chính Khóa chínhKhông thoả dạng chuẩn 2 6.22 Đưa về 3NF „ Tách các thuộc tính không phụ thuộc trực tiếp vào khóa => đưa vào quan hệ mới „ CSDL thỏa dạng chuẩn 3 là: 1. Customer (Customer_No, Cname) 2. Rental (Customer_No, Property_No, RentStart, RentFinish) 3. Property_for_Rent (Property_No, Paddress, Rent, Owner_N) 4. Owner (Owner_No, Oname) 6.23 Dạng chuẩn Boyce-Codd (BCNF) „ Ðịnh nghĩa: Một sơ đồ QH được xem là ở dạng chuẩn BCNF nếu nó thỏa dạng chuẩn thứ 3 và không tồn tại bất cứ PTH nào mà vế trái không phải là siêu khóa. „ Ví dụ: R = (CSZ), F ={ CS Æ Z, Z Æ C}, khóa là CS, CZ. ) Có phụ thuộc hàm Z Æ C với Z không là siêu khóa ) => R(CSZ) không thỏa BCNF. „ Ví dụ: Một khách hàng khi mua một loại hàng nào đó thì chỉ liên hệ với một nhân viên duy nhất: )LIÊN_HỆ (MAKH, LOẠI_HÀNG, MANV) )Nếu Cty qui định: mỗi nhân viên chỉ phụ trách một loại hàng hóa: MANV Æ LOAI_HANG )=> Quan hệ LIEN_HE không thỏa chuẩn BCNF 6.24 Phi chuẩn hóa (Denormalization) „ Tạo sự rườm rà để cho hệ thống tránh )Phải kết nối thường xuyên nhiều quan hệ )VD: THISINH(SOBD, HO, TEN, NSINH, MABTS) BTS(MABTS, TENBTS) => THISINH(SOBD, HO, TEN, NSINH, MABTS, TENBTS) Mặc dù có PTH truyền => Phải phát biểu ràng buộc này „ Phải tính toán thường xuyên các giá trị dẫn xuất )VD: HÓAĐƠN (STT_HĐ, NGÀY, TENKH, TRIGIA_HĐ) CHITIẾT_HĐ (STT_HĐ, MA_HANG, DGIA, SOLG)
Tài liệu liên quan