Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và Chuẩn hóa CSDL quan hệ 13:18 Khoa CNTT 1 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Mục tiêu: • Một số vấn đề lý thuyết thiết kế để có lược đồ tốt. • Một lược đồ tốt được thể hiện qua 2 mức: o Mức khái niệm (hay logic):ngữ nghĩa rõ ràng,dễ hiểu, đầy đủ, chính xác... o Mức cài đặt: các bộ được lưu trữ như thế nào.. • Lý thuyết chuẩn hóa (dựa trên phụ thuộc hàm, …) là nền tảng cơ sở để thực hiện việc phân tích và chuẩn hóa lược đồ. 13:18 Khoa CNTT 2 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Nội dung chính Sự dư thừa và dị thường dữ liệu Một số nguyên tắc thiết kế Phụ thuộc hàm Hệ suy diễn Armstrong Bao đóng Phủ tối thiểu Các dạng chuẩn 13:18 Khoa CNTT 3 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.1 - Sự dư thừa và dị thường dữ liệu Ví dụ 1: NHANVIEN_PHONG Manv Ho Dem Ten Donvi Maql 11001 Trần Văn An Nghiên cứu 11001 11002 Lê Đình Bắc Đào tạo 11002 11003 Trần Thị Hảo Đào tạo 11002 11004 Vũ Đức Lâm Hành chính 11005 11005 Phạm Hải Ngọc Hành chính 11005 11006 Trần Văn Cường Nghiên cứu 11001 11007 Vũ Vân Long Đào tạo 11002 Dư thừa về Đơn vị / Người quản lý 13:18 Khoa CNTT 4 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.1 - Sự dư thừa và dị thường dữ liệu Dư thừa Ví dụ 2 Masv 13:18 Ho Dem Ten Mamon Tenmon Diem T1 Trần Văn An Int1001 CSDL 8 T1 Trần Văn An Int1002 NNLT 9 C2 Lê Đình Bắc Int1003 TRR 7 C2 Lê Đình Bắc Int1002 NNLT 3 T3 Trần Thị Hảo Int1003 TRR 10 T4 Vũ Đức Lâm Int1002 NNLT 8 C2 Lê Đình Bắc Int1001 CSDL 8 T4 Vũ Đức Lâm Int1001 CSDL 7 C3 Phạm Hải Ngọc Int1003 TRR 6 Khoa CNTT 5 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.1 - Sự dư thừa và dị thường dữ liệu Ví dụ 3 Masv Ho Dem Ten TRR CSDL NNLT TB Xeploai T1 Trần Văn An 7 6 8 7.0 Khá T2 Trần Thị Hảo 8 8 10 8.7 Giỏi T3 Vũ Đức Lâm 5 9 8 7.3 Khá T4 Phạm Hải Ngọc 6 5 6 5.7 Tbình Dư thừa 13:18 Khoa CNTT 6 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.1 - Sự dư thừa và dị thường dữ liệu Sự phụ thuộc lẫn nhau giữa các thuộc tính Tại sao có sự dư thừa ?? Ví dụ: Điểm các môn học Điểm trung bình xếp loại Mã phòng ->Tên phòng, người quản lý Thuộc tính đa trị trong lược đồ ER nhiều bộ Ví dụ: NHANVIEN(TENNV, HONV, NS,DCHI,GT,LUONG, BANGCAP) 13:18 Khoa CNTT 7 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.1 - Sự dư thừa và dị thường dữ liệu 1. Lãng phí không gian nhớ 2. Dị thường cập nhật: Manv 11001 11002 11003 11004 11005 11006 11007 13:18 Ho Trần Lê Trần Vũ Phạm Trần Vũ Dem Văn Đình Thị Đức Hải Văn Vân Ten An Bắc Hảo Lâm Ngọc Cường Long Donvi Nghiên cứu Đào tạo Đào tạo Hành chính Hành chính Nghiên cứu Đào tạo Maql 11001 11002 11002 11005 11005 11001 11002 • Thao tác sửa đổi: phải cập nhật tất cả các giá trị, bộ liên quan • Thao tác xóa: người cuối cùng của đơn vị mất thông tin về đơn vị • Thao tác chèn Khoa CNTT 8 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu 4.2- Một số nguyên tắc thiết kế lược đồ Nguyên tắc 1: Rõ ràng về ý nghĩa (quan hệ, thuộc tính), tránh các phụ thuộc (về ý nghĩa) giữa các thuộc tính với nhau Mỗi lược đồ quan hệ tương ứng với một kiểu thực thể hoặc một liên kết Nguyên tắc 2: Tránh các khả năng phát sinh dị thường cập nhật trong các quan hệ Tránh dư thừa, trùng lặp thông tin. Nếu có xuất hiện dị thường phải đảm bảo thao tác cập nhật thực hiện đúng đắn Nguyên tắc 3: Tránh đặt các thuộc tính có nhiều giá trị Null Nguyên tắc 4: Các lược đồ quan hệ kết nối với điều kiện bằng trên các thuộc tính nên là khoá chính hoặc khoá ngoài theo cách đảm bảo không sinh ra các bộ “giả” 13:18 Khoa CNTT 9 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.3 Nhập môn Cơ sở Dữ liệu – Phụ thuộc hàm Định nghĩa: Cho lược đồ quan hệ R; X, Y là các tập thuộc tính trên R. Một phụ thuộc hàm giữa X và Y được kí hiệu XY là một ràng buộc: Với mỗi thể hiện r của lược đồ quan hệ R, với 2 bộ bất kỳ t1 và t2 trong r nếu có t1[X]= t2[X] thì t1[Y]=t2[Y] (tức là 2 bộ bất kỳ bằng nhau trên X thì cũng bằng nhau trên Y) Ta nói Y phụ thuộc hàm vào X hay X xác định hàm Y ; X gọi là vế trái, Y là vế phải của phụ thuộc hàm Phụ thuộc hàm là tính chất ngữ nghĩa trên các thuộc tính của lược đồ, được xác định khi thiết kế chứ không suy đoán trên một thể hiện của lược đồ. 13:18 Khoa CNTT 10 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.3 Nhập môn Cơ sở Dữ liệu – Phụ thuộc hàm Ví dụ: SINHVIEN(Masv, Ho, Dem,Ten, Ngaysinh, Noisinh, Lop) Phụ thuộc hàm: Masv Ho, Dem,Ten, Ngaysinh, Noisinh, Lop SINHVIEN_DIEM(Masv,Mamon, Ngaythi, Diem) Phụ thuộc hàm Masv,Mamon Diem MUON(Sothe, Masach, Tennguoimuon, Tensach, Ngaymuon, Ngaytra) Với các phụ thuộc hàm: Sothe Tennguoimuon Masach Tensach Sothe, Masach, Ngaymuon Ngaytra 13:18 Khoa CNTT 11 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.3 Nhập môn Cơ sở Dữ liệu – Phụ thuộc hàm Thể hiện phụ thuộc hàm trên lược đồ MUON Sothe Masach Tennguoimuon Tensach Ngaymuon Ngaytra SINHVIEN_DIEM Masv Mamon Diem Sothe Tennguoimuon 13:18 Khoa CNTT 12 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 – Quy tắc suy diễn Phụ thuộc hàm Cho lược đồ R (A), F là tập các phụ thuộc hàm; X Y gọi là suy diễn được từ mãn các phụ thuộc hàm Kí hiệu F nếu với mọi thể hiện r của R thỏa F thì X Y cũng đúng trong r F |= X Y Ví dụ: MUON(Sothe, Masach, Tennguoimuon, Tensach, Ngaymuon, Ngaytra) F={ Sothe Tennguoimuon; Masach Tensach; Sothe,Masach Ngaymuon , Ngaytra } F |= Sothe,masach Tensach, Ngaytra 13:18 Khoa CNTT 13 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 Nhập môn Cơ sở Dữ liệu – Quy tắc suy diễn Phụ thuộc hàm a. Quy tắc suy diễn Armstrong (hệ tiên đề Armstrong) X Y thì X Y { X Y } |= XZ YZ { X Y, Y Z } |= X Z Quy tắc 1 (quy tắc phản xạ) : Nếu Quy tắc 2 (quy tắc tăng) : Quy tắc 3 (quy tắc bắc cầu): Khoa CNTT 14 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 Nhập môn Cơ sở Dữ liệu – Quy tắc suy diễn Phụ thuộc hàm b. Bổ đề 1: Quy tắc suy diễn Armstrong là đúng Chứng minh Quy tắc 1 (quy tắc phản xạ) : Nếu X Y thì X Y Giả sử : t1 và t2 là 2 bộ bất kỳ trên r, với r là thể hiện của R, và X Y Ta có: Nếu t1[X]= t2[X], vì X Y nên t1[Y]=t2[Y] theo định nghĩa ta có X Y 13:18 Khoa CNTT 15 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 – Quy tắc suy diễn Phụ thuộc hàm Chứng minh Quy tắc 2 (quy tắc tăng) : { X Y } |= XZ YZ Phản chứng: Giả sử có X Y nhưng XZ YZ không đúng. tức là : t, s và nếu t[X] = s[X] t[Y] = s[Y]; t[XZ] = s[XZ] nhưng t[YZ] # s[YZ] từ t[X] = s[X] và t[XZ] = s[XZ] t[Z] = s[Z] do t[Y] = s[Y] và t[Z] = s[Z] t[YZ] = s[YZ] mẫu thuẫn với giả thiết phản chứng vậy Quy tắc 2 đúng. 13:18 Khoa CNTT 16 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 – Quy tắc suy diễn Phụ thuộc hàm Chứng minh Quy tắc 3 (bắc cầu): { X Y, Y Z } |= X Z với t, s bất kỳ, nếu t[X] = s[X], cần chứng minh t[Z] = s[Z] Do X Y nên nếu t[X] = s[X] ta có t[Y] = s[Y] Do Y Z, t[Y] = s[Y] nên t[Z] = s[Z] Vậy nếu t[X] = s[X] thì ta có t[Z] = s[Z] tức là X Z 13:18 Khoa CNTT 17 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 Nhập môn Cơ sở Dữ liệu – Quy tắc suy diễn Phụ thuộc hàm C. Bổ đề 2 - Quy tắc suy diễn Quy tắc 4 (quy tắc chiếu) : { XYZ } |= {X Y, X Z} Quy tắc 5 (quy tắc hợp) { X Y , X Z } |= X YZ : Quy tắc 6 (quy tắc tựa bắc cầu): {XY, Khoa CNTT WYZ }|= WX Z 18 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 – Quy tắc suy diễn Phụ thuộc hàm C. Bổ đề 2 - Quy tắc suy diễn Chứng minh Quy tắc 4 (quy tắc chiếu): Theo giả thiết ta có { XYZ } |= {X Y, X Z} X YZ Theo quy tắc 1: ta có YZ Y, YZ Z X Y X Z Vậy ta có { XYZ } |= {X Y, X Z} 13:18 Khoa CNTT 19 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 Nhập môn Cơ sở Dữ liệu – Quy tắc suy diễn Phụ thuộc hàm Chứng minh Quy tắc 5 (quy tắc hợp): { X Y , X Z } |= X YZ theo QT 2 ta có X YX và YX YZ theo QT 3 ta có X YZ Chứng minh Quy tắc 6 Theo QT 2 ta có (tựa bắc cầu): {XY, WYZ }|=WX Z WX WY kết hợp với WYZ ta có WX Z Định lý 1: Quy tắc (tiên đề) Armstrong là đúng và đầy đủ. Tính đúng: Đã Chứng minh Tính đầy đủ: Tức là nếu F suy dẫn ra f, thì f có thể suy diễn được từ F bằng cách sử dụng các quy tắc Armstrong 13:18 Khoa CNTT 20 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.4 – Quy tắc suy diễn Phụ thuộc hàm 6 quy tắc suy diễn Quy tắc 1 (quy tắc phản xạ) : Nếu X Y thì X Y Quy tắc 2 (quy tắc tăng) : { X Y } |= XZ YZ Quy tắc 3 (quy tắc bắc cầu): { X Y, Y Z } |= X Z Quy tắc 4 (quy tắc chiếu) : { XYZ } |= {X Y, X Z} Quy tắc 5 (quy tắc hợp) { X Y , X Z } |= X YZ : Quy tắc 6 (quy tắc tựa bắc cầu): {XY,WYZ } |= WX Z Bài tập Khoa CNTT 21 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Bài tập: Những phụ thuộc hàm nào sau đây là đúng: A → B , B → C, C → B, B → A, C → A. Nếu có những phụ thuộc hàm sai, hãy giải thích vì sao. Khoa CNTT 22 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.5 Nhập môn Cơ sở Dữ liệu – Bao đóng của tập Phụ thuộc hàm Đinh nghĩa: Cho lược đồ R (A), F là một tập các phụ thuộc hàm trên R; Tập tất cả các phụ thuộc hàm suy dẫn ra được từ F gọi là bao đóng của F, kí hiệu là F+ Tức là F+ = F { f / F |= f} Ví dụ : F = {X Y , Y Z } Thì 13:18 F+ = {X Y , Y Z , X Z , X YZ} Khoa CNTT 23 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.5 Nhập môn Cơ sở Dữ liệu – Bao đóng của tập Phụ thuộc hàm ví dụ: BANGDIEM(Masv, Dtoan, Dtin, Dtb, Xeploai) F= {Dtoan, DtinDtb; DtbXeploai} Xác định bao đóng ? F+= {Dtoan, DtinDtb; DtbXeploai; Dtoan, Dtin Xeploai} 13:18 Khoa CNTT 24 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.5 Nhập môn Cơ sở Dữ liệu – Bao đóng của tập Phụ thuộc hàm ví dụ: F= {ABC; AD, D E} Xác định F+ F+= F {A E, AB BD, ABBCD , ABBCDE, BCDBCDE, ABCDE } 13:18 Khoa CNTT 25 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu 4.6– Bao đóng của tập thuộc tính Định nghĩa : Cho lược đồ quan hệ R (U), tập phụ thuộc hàm F; X là một tập thuộc tính của R; gọi X+F là bao đóng của X theo F X+F = { A U sao cho X A F+} Ví dụ: DA(Manv, Hoten, Mada, Tenda, DD, Sogio} F ={ Manv ->Hoten; Mada->Tenda, DD; Manv, Mada->Sogio} {Manv}+ = {Manv, Hoten} {Mada}+ = {Mada, Tenda, DD} {Manv, Mada}+ = 13:18 {Manv, Hoten, Mada, Tenda, DD, Sogio} Khoa CNTT 26 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 – Bao đóng của tập thuộc tính Bổ đề 3: X Y được suy diễn từ tập phụ thuộc hàm F theo quy tắc Armstrong khi và chỉ khi Y X+F Ví dụ 1: Cho F={ AB C, A D, D E, AC B} Xác định các bao đóng sau: A+ = AB+ = {A, D,E } {A, B, C, D, E } B+ = D+ = {B} {D, E} AD+ = {A, D, E} 13:18 Khoa CNTT F |= AB E ? F |= DC ? F |= AD CDE ? F |=AB CDE 27 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 – Bao đóng của tập thuộc tính Ví dụ 2: Cho F ={ A B, C DE, AC F} Xác định các bao đóng sau: A+ = {A, B } C+ = {C, D, E } AC+ = {A, B, C, D, E, F} 13:18 Khoa CNTT F |= A E ? F |= ACBDF ? 28 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 Nhập môn Cơ sở Dữ liệu – Bao đóng của tập thuộc tính Thuật toán (4.6) tìm bao đóng X+ F X+ = X; Repeat Old X+ = X+ ; Với mỗi phụ thuộc hàm Y Z trong F thực hiện : nếu X+ Y thì X+ = X+ Z; Until ( X+ = Old X+ ); Định lý 2 - Thuật toán tìm bao đóng (4.6) là đúng 13:18 Khoa CNTT 29 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 – Bao đóng của tập thuộc tính Ví dụ 1: Cho F ={ A D, E H , AB DE, CE G} Tìm {ABC}+ Đặt X+ = {ABC} (Lặp: ) Old X+ = X+ với A D ta có X+ = {ABCD} với E H ta có X+ = {ABCD} với AB DE ta có X+ = {ABCDE} với CE G ta có X+ = {ABCDEG} ……. với E H ta có X+ = {ABCDEGH} .. Vậy {ABC}+ = {ABCDEGH} 13:18 Khoa CNTT 30 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 Nhập môn Cơ sở Dữ liệu – Bao đóng của tập thuộc tính Ví dụ 2: Cho R(ABCDEG), tìm {AB }+ với tập phụ thuộc hàm : 13:18 Khởi tạo: X+ ={AB} Dùng (a): X+ ={ABC} Dùng (b): X+ ={ABCD} Dùng (c): X+ ={ABCDE} Dùng (d): X+ ={ABCDE} Khoa CNTT 31 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 – Bao đóng của tập thuộc tính Ví dụ 3: Cho F ={ AG I, BE I,E G, AB E, Hãy chứng minh F GI H} |= AB GH bằng cách sử dụng bao đóng Đặt X+ = {AB} (Lặp: ) Old X+ = X+ với AB E ta có X+ = {ABE} với BE I ta có X+ = {ABEI} với E G ta có X+ = {ABEGI} với GI H ta có X+ = {ABEGHI} với AG I ta có X+ = {ABEGHI} Vậy GH {AB}+ do đó F 13:18 Khoa CNTT |= AB GH 32 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.6 Nhập môn Cơ sở Dữ liệu – Bao đóng của tập thuộc tính Ví dụ 4: Cho F ={ A D, B C,BC EF, D G} Chứng minh F |= AB EFG bằng cách sử dụng bao đóng Đặt X+ = {AB} với A D ta có X+ = {ABD} với B C ta có X+ = {ABCD} với BC EF ta có X+ = {ABCEF} với D G ta có X+ = {ABCDEFG} do đó F |= AB EFG 13:18 Khoa CNTT Bài tập 33 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Bài tâp Bài tâp 1: Hãy chứng minh các suy diễn sau bằng các sử dụng các quy tắc suy diễn Y, X Z } |= WXYZ 1. {W ta có {X Z } |= {XYYZ} quy tắc 2 {W Y } |= {WX XY} {WXXY , XY Vậy 13:18 {W YZ} Y, X Z } Khoa CNTT quy tắc 2 |= |= {WX YZ} quy tắc 3 {WX YZ} 34 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Bài tâp Bài tâp 1: Hãy chứng minh các suy diễn sau 2. {X Z } và Y Z |= XY ta có Y Z nên {Z Y } quy tắc 1 {XZ , Z Y} |= {X Y } Vậy {X Z } và Y Z 13:18 Khoa CNTT |= quy tắc 3 XY 35 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Bài tâp Bài tâp 1: Hãy chứng minh các suy diễn sau 3. {XY,XW,WYZ} |= {XZ} ta có {XY,XW} |= {XWY} {XWY , WYZ} |= {X Z } Vậy {XY,XW,WYZ} 13:18 Khoa CNTT |= quy tắc hơp quy tắc bắc cầu {XZ} 36 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Bài tâp Bài tâp 1: Hãy chứng minh các suy diễn sau 4. {X Y,YZ} |= XYZ ta có {X Y,YZ} |= XZ {X Y,XZ} |= XYZ Vậy {X Y,YZ} |= quy tắc bắc cầu quy tắc hợp XYZ Quay lại 13:18 Khoa CNTT 37 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Bài tâp Bài tâp 2: Cho R với tập phụ thuộc hàm F ={ AB C, B D, CD E, CE GH, G A} Chứng minh các phụ thuộc hàm sau bằng cách dùng bao đóng: AB E AB GH 13:18 Khoa CNTT 38 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.7 Nhập môn Cơ sở Dữ liệu – Tập Phụ thuộc hàm tương đương Định nghĩa: • Tập phụ thuộc hàm E được phủ bởi tập phụ thuộc hàm F nếu mỗi phụ thuộc hàm trong E đều thuộc F+ hay mỗi phụ thuộc hàm trong E có thể suy dẫn ra được từ F. • Hai tập phụ thuộc hàm E và F là tương đương nếu E+ = F+ Hai tập phụ thuộc hàm Tương đương có nghĩa là mỗi phụ thuộc hàm trong trong tập này có thể suy dẫn từ tập kia. 13:18 Khoa CNTT 39 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.7 Nhập môn Cơ sở Dữ liệu – Tập phụ thuộc hàm tương đương Cho 2 tập phụ thuộc hàm F = {A C, AC D, EAD, E H } E = { A CD, E AH } Chứng minh E tương đương F ? Cần chứng minh các phụ thuộc hàm của E suy dẫn được từ F và ngược lại Cách 1: Dùng quy tắc suy diễn để chứng minh Cách 2: Dùng bổ đề về bao đóng 13:18 Khoa CNTT 40 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.7 – Phụ thuộc hàm tương đương F = {A C, AC D, EAD, E H } E = { A CD, E AH } Kiểm tra xem E tương đương F ? Cách 1: Dùng các quy tắc suy diễn {A C} |= {A AC} {AC D} |= {A D} |= {A CD} kết hợp với {A C} Vậy {E AD} |= {E A} {E H} |= {E AH} Vậy Tức là 13:18 Khoa CNTT F |= F F |= {A CD} {E AH} phủ E 41 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.7 – Tập phụ thuộc hàm tương đương F = {A C, AC D, EAD, E H } E = { A CD, E AH } Kiểm tra xem E tương đương F ? Cách 1: Dùng các quy tắc suy diễn Tương tự: chứng minh được Tức là 13:18 F tương đương E phủ F E Khoa CNTT 42 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ – Tập phụ thuộc hàm tương đương F = {A C, AC D, EAD, E H } E = { A CD, E AH } Kiểm tra xem E tương đương F ? 4.7 Cách 2: Dùng bổ đề về bao đóng và suy diễn để chứng minh {A}+F = {ACD} {A}+E = {ACD} {AC}+E = {ACD} + {E} F = {ADEH} vậy F phủ {E}+E = {ACDEH} E vậy E phủ F tức là E,F tương đương 13:18 Khoa CNTT 43 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.8 Nhập môn Cơ sở Dữ liệu – Tập phụ thuộc hàm tối thiểu Định nghĩa: Tập phụ thuộc hàm F gọi là tối thiểu nếu F thỏa mãn các điều kiện sau: Vế phải của mọi phụ thuộc hàm trong F chỉ có 1 thuộc tính Không thể thay thế X A trong F bằng Y A với Y X mà vẫn còn là tập phụ thuộc hàm tương đương với F. Không thể bớt được bất kỳ phụ thuộc hàm nào khỏi F mà vẫn là tập phụ thuộc hàm tương đương F Ví dụ: F = {A C, AC D, EAD, E H } E = { A C, A D, E H } G = { E C, A D, AD H } 13:18 Khoa CNTT Tối thiểu? 44 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.8 – Tập phụ thuộc hàm tối thiểu Phủ tối thiểu Tập phụ thuộc hàm Fmin gọi là phủ tối thiểu của F nếu Fmin là tập phụ thuộc hàm tối thiểu, tương đương F. Ví dụ: F = {A C, AC D, EAD, E H } Fmin = {A C, A D, EA, G= { E C, A D, AD H } Gmin= { E C, A D, 13:18 Khoa CNTT E H } AH} 45 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.8 – Tập phụ thuộc hàm tối thiểu Định lý (4.8) - Mọi tập phụ thuộc hàm đều có phủ tối thiểu Thuật toán (4.8) tìm 01 phủ tối thiểu của F Input : Tập phụ thuộc hàm Output : 01 tập 13:18 Khoa CNTT F Fmin 46 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.8 Nhập môn Cơ sở Dữ liệu – Tập phụ thuộc hàm tối thiểu Thuật toán (4.8) tìm một phủ tối thiểu của F 1. Đặt G =F 2. Thay mỗi pth X A1A2..Ak trong G bằng các pth X A1, X A2.. X Ak 3. Với mỗi pth XY B trong G, nếu G-{XY B} {X B} tương đương với G thì thay {XY B} bởi {X B} 4. Với mỗi pth X Y trong G, nếu G-{X Y} tương đương với G thì loại {X Y} G là phủ tối thiểu của F 13:18 Khoa CNTT 47 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Ví dụ: Tìm phủ tối thiểu của F = {A BC, B AC, CAB, AC D } 1. G = {A BC, B AC, CAB , AC D} 2. G= {A B, AC, B A, B C, CA, CB , AC D} G1 = {A B, AC, B A, B C, CA, CB , A D} 3b. G2= {A B, AC, B A, B C, CA, CB , C D} 3a. 13:18 Khoa CNTT 48 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Ví dụ: Tìm phủ tối thiểu của F = {A BC, B AC, CAB, AC D } 1. G = {A BC, B AC, CAB , AC D} 2. G= {A B, AC, B A,B C, CA, CB , AC D} Với 3a. G1 = {A B, AC, B A, B C, CA, CB , A D} 4.a. Loại {AC}, {CA} G1a= {A B, B A, B C, CB , A D} vậy Fmin1= {A B, B A, B C, CB , A D} 13:18 Khoa CNTT 49 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Ví dụ: Tìm phủ tối thiểu của F = {A BC, B AC, CAB, AC D } 1. G = {A BC, B AC, CAB , AC D} 2. G= {A B, AC, B A,B C, CA, CB , AC D} 3. G1= {A B, AC, B A, B C, CA, CB , A D} Với 4.b. Loại {CB}, {BC} G1b= {A B, A C, B A, CA , A D} vậy Fmin2= {A B, A C, B A, CA , A D} 13:18 Khoa CNTT 50 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Ví dụ: Tìm phủ tối thiểu của F = {A BC, B AC, CAB, AC D } 1. G = {A BC, B AC, CAB , AC D} 2. G= {A B, AC, B A,B C, CA, CB , AC D} Với 3. G1= {A B, AC, B A, B C, CA, CB , A D} 4.c. Loại {AB}, {BA} G1c= { A C, B C, CA , CB, A D} vậy Fmin3= { A C, B C, CA , CB, A D} 13:18 Khoa CNTT 51 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Ví dụ: Tìm phủ tối thiểu của F = {A BC, B AC, CAB, AC D } 1. G = {A BC, B AC, CAB , AC D} 2. G= {A B, AC, B A,B C, CA, CB , AC D} Với 3. G1= {A B, AC, B A, B C, CA, CB , A D} 4.D. Loại {AB}, {BC},{ CA} G1d= {AC, B A, CB , A D} vậy Fmin4= {AC, B A, CB , A D} 13:18 Khoa CNTT ! Một tập phụ thuộc hàm có thể có nhiều phủ tối thiểu 52 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Bài tập: Cho quan hệ R(A,B,C,D,E,F,G,H,I,J) với F ={ AB C, A DE, B F, F GH, F CD, D IJ} Tìm 13:18 F min Khoa CNTT 53 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Bài tập: F ={ AB C, A DE, B F, F GH, F CD, D IJ} 1. G ={ AB C, A DE, B F, F GH, F CD, D IJ} 2. G ={ AB C, A D, A E, B F, F G, F H, F C, F D, D I, D J} 3. Xét AB C: Vì B F, F C nên B C; loại A trong vế trái G ={ B C, A D, A E, B F, F G, F H, F C, F D, D I, D J} 4. Xét B C: Vì B F, F C nên B C; loại B C G ={ A D, A E, B F, F G, F H, F C, F D, D I, D J} 13:18 Khoa CNTT F min 54 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu 4.9– Bao đóng và khóa Siêu khóa, khóa, khóa chính và khóa dự tuyển Thuộc tính khóa Thuật toán tìm khóa K của R(U) dựa trên tập phụ thuộc hàm F Đặt K = U • Lặp với mỗi thuộc tính A trong K 13:18 o tính {K-A} o nếu {K-A}+ + F F = U thì K = K-{A}; Khoa CNTT 55 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Ví dụ: Tìm khóa của R(ABCD) với tập phụ thuộc hàm sau F = {A BC, B C, BCA, A D } {ABCD}+ = {ABCD} {ABC}+ = {ABCD} {AB}+ = {ABCD} {A}+ = {ABCD} Vậy, A là 1 khóa Nhận xét: Nếu có khóa, thì thuộc tính khóa sẽ thuộc vế trái của các phụ thuộc hàm 13:18 Khoa CNTT 56 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.10– Nhập môn Cơ sở Dữ liệu Các dạng chuẩn dựa trên khóa chính Chuẩn là gì? Mỗi một dạng chuẩn là một tập các điều kiện trên lược đồ nhằm đảm bảo các tính chất nào đó của nó. Chuẩn hóa : quá trình phân tích lược đồ quan hệ dựa trên các FD và các khóa chính để đạt được: Giảm tối đa sự dư thừa o Giảm tối đa các phép cập nhật dị thường o Chuẩn và chuẩn hóa do Codd đề xuất đầu tiên năm 1972 (1NF-3NF, sau đó Boyce-Codd NF, 4-5NF) 13:18 Khoa CNTT 57 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ 4.10– Nhập môn Cơ sở Dữ liệu Các dạng chuẩn dựa trên khóa chính Thủ tục chuẩn hoá • • Một cơ cấu hình thức để phân tích các lược đồ quan hệ dựa trên khoá và các phụ thuộc hàm. Một loạt các kiểm tra dạng chuẩn có thể thực hiện trên các lược đồ quan hệ riêng rẽ sao cho cơ sở dữ liệu quan hệ có thể được chuẩn hoá đến một mức cần thiết. Chuẩn hóa cần đảm bảo tính chất: • • Nối không mất mát (hoặc nối không phụ thêm- không thêm bộ giả) Bảo toàn sự phụ thuộc nó đảm bảo rằng từng phụ thuộc hàm sẽ được biểu hiện trong các quan hệ riêng rẽ nhận được sau khi tách. 13:18 Khoa CNTT 58 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Ví dụ về Nối thêm bộ giả NhanVien-DuAn Manv 13:18 Ho Dem Ten Dự án Địa điểm 11001 Trần Văn An X Hà Nội 11002 Lê Đình Bắc Y Hải Phòng 11003 Trần Thị Hảo Z Hải Phòng 11004 Vũ Đức Lâm A Quảng Ninh 11005 Phạm Hải Ngọc A Quảng Ninh 11006 Trần Văn Cường B Hà Nội 11007 Vũ Vân Long C Hải Phòng Khoa CNTT 59 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Ví dụ về Nối thêm bộ giả Tách NhanVien-DuAn thành R1 (Ho, Dem, Ten, Diadiem) và R2 (Manv, DuAn,DiaDiem) R2 R1 Ho Dem Ten Địa điểm Manv Dự án Địa điểm Trần Văn An Hà Nội 11001 X Hà Nội Lê Đình Bắc Hải Phòng 11002 Y Hải Phòng Trần Thị Hảo Hải Phòng 11003 Z Hải Phòng Vũ Đức Lâm Quảng Ninh 11004 A Quảng Ninh Phạm Hải Ngọc Quảng Ninh 11005 A Quảng Ninh Trần Văn Cường Hà Nội 11006 B Hà Nội Vũ Vân Long Hải Phòng 11007 C Hải Phòng Thực hiện phép nối R1 với R2 Xuất hiện nhiều bộ giả không có trong quan hệ NhanVien-DuAn ban đầu 13:18 Khoa CNTT 60 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ a. Dạng chuẩn 1 (1NF) Một quan hệ gọi là 1NF nếu : • Miền giá trị của mỗi thuộc tính chỉ chứa giá trị nguyên tử (đơn, ko phân chia được) • Giá trị của mỗi thuộc tính trong các bộ là một giá trị đơn (đơn trị) Ví dụ: SV_DIEM(Masv, Mamon, Diem) SV(Masv, Hoten, Gioitinh,Ngaysinh, Noisinh) Không thỏa mãn 1NF 13:18 Khoa CNTT 61 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ a. Dạng chuẩn 1 Ví dụ: NV_DA(Mada,Tenda,Mavn,Sogio) Mada TenDa Manv Sogio CO1 Cấp nước 001 002 20 35 DO2 Cung cấp thiết bị điện.. 002 004 20 40 Không thỏa mãn 1NF 13:18 Khoa CNTT 62 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu a. Dạng chuẩn 1 Chuyển quan hệ không đạt chuẩn về dạng chuẩn 1 1. Thuộc tính phức hợp các thuộc tính đơn SV(Masv, Hoten, Gioitinh,Ngaysinh, Noisinh) SV(Masv, Ho, Dem, Ten, Gioitinh,Ngaysinh, Noisinh) 2. Thuộc tính đa trị hoặc lặp tách quan hệ Đa trị DONVI(Madv,Tendv, MaNQL, Diadiem) DV (Madv,Tendv,MaNQL) DV_DD(Madv,Diadiem) 13:18 Khoa CNTT 63 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ a. Dạng chuẩn 1 Lặp NV_DA(Mada,Tenda,Mavn,Sogio) Mada TenDa Manv Sogio CO1 Cấp nước 001 002 20 35 DO2 Cung cấp thiết bị điện.. 002 004 20 40 DA(Mada,Tenda) 13:18 NV_DA(Mada,Mavn,Sogio) Mada Tenda Mada Manv Sogio CO1 Cấp nước CO1 001 20 Do2 Cung cấp thiết bị điện CO1 002 35 DO2 002 20 DO2 004 40 Khoa CNTT 64 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm X Y gọi là phụ thuộc hàm đầy đủ nếu khi loại bỏ bất kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm không còn đúng nữa. ∀ A X, (X – {A}) Y : là không đúng. Phụ thuộc hàm bộ phận: Một phụ thuộc hàm X Y là phụ thuộc hàm bộ phận nếu có thể bỏ một thuộc tính A X, ra khỏi X mà phụ thuộc hàm vẫn đúng ∃A X, (X – {A}) Y 13:18 Khoa CNTT 65 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Ví dụ: Phụ thuộc đầy đủ và bộ phận MUONTRA Sothe 13:18 Masach Tennguoimuon Tensach Ngaymuon Ngaytra Sothe,Masach Ngaymuon Phụ thuộc đầy đủ Sothe,Masach Tensach Phụ thuộc bộ phận Sothe,Masach Nguoimuon Phụ thuộc bộ phận Khoa CNTT 66 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Định nghĩa: Một lược đồ quan hệ R ở dạng chuẩn 2 (2NF) nếu: R thỏa mãn chuẩn 1 Mọi thuộc tính không khóa của R phụ thuộc hàm đầy đủ vào khóa chính tức là: Mỗi thuộc tính không khóa không phụ thuộc bộ phận vào khóa của R Kiểm tra lược đồ thỏa mãn dạng chuẩn 2 ? o Với các quan hệ có khóa gồm 1 thuộc tính thì luôn thỏa mãn 13:18 Khoa CNTT 67 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Chuẩn hóa về dạng chuẩn 2 MUONTRA Sothe Masach Tennguoimuon Tensach Ngaymuon Ngaytra Sothe,MasachTennguoimuon SotheTennguoimuon Sothe,MasachTensach MasachTensach Sothe,MasachNgaymuon Sothe,MasachNgaytra Phụ thuộc bộ phận vào khóa 13:18 Khoa CNTT 68 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ b. Dạng chuẩn 2 • Chuẩn hóa về dạng chuẩn 2 MUONTRA Sothe Masach Tennguoimuon Tensach Ngaymuon Ngaytra Tách các thuộc tính không khóa phụ thuộc bộ phận vào khóa chính thành quan hệ riêng; khóa của quan hệ mới là khóa bộ phận tương ứng ban đầu SACH(Masach,Tensach) MasachTensach BANDOC(Sothe,Tennguoimuon) SotheTennguoimuon MUONTRA(Sothe,Masach,Ngaymuon,Ngaytra) Sothe,MasachNgaymuon, 13:18 Khoa CNTT Sothe,MasachNgaytra 69 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Ví dụ 1: Chuẩn hóa quan hệ R thành dạng chuẩn 2 R(A,B,C,D,E) F ={ ABC, AB D, AB E, B C C, A E E} Khóa chính ?: AB Các phụ thuộc hàm bộ phận?: R1 (A,E) F1 = { A E} R2(B,C) F2 = { B C} R(A,B,D) F = { AB D} 13:18 Khoa CNTT 70 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Ví dụ 2: Chuẩn hóa quan hệ R thành dạng chuẩn 2 R(A,B,C,D,E,F,G,H) F ={ ABC, AB D, AB E, ABF, ABG, ABH B B C C, A E E, B G G} Khóa chính ?: Các phụ thuộc hàm bộ phận?: R1 (A,E) R2(B,C, G) R(A,B,D,F,H) 13:18 F1= {A E } F2= {B C, B G } F ={ AB D, ABF, ABH } Khoa CNTT 71 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Bài tập 1: Đưa về dạng chuẩn 2 với quan hệ sau: R(A,B,C,D,E,F,G,H,I,J) với tập phụ thuộc hàm F ={ AB C, A DE, B F, F GH, D IJ} Khóa của quan hệ R ? AB Chuyển về dạng chuẩn 2? R2(BFGH) F1 = {A D, A E, D I, D J} F2 = {B F, F G,F H } R(A,B,C) F = {AB C} R1(ADEIJ) 13:18 Khoa CNTT 72 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Bài tập 2: Cho quan hệ R(A,B,C,D,E,F,G,H,I,J) với tập phụ thuộc hàm F ={ ABCDEF, ABC EF, D G, AB F, A DG, ABC HIJ } Khóa của quan hệ R ? ABC Chuyển về dạng chuẩn 2? F1 = {A DG, D G} R1(ADG) 13:18 R2(ABF) F2 = {AB F} R(ABCEHIJ) F = {ABC E, ABC HIJ} Khoa CNTT 73 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Bài tập 3: Cho quan hệ (1NF) SV(MSV, HT, NS, QQ, MMH, TMH, STC, DIEM) Khóa: MSV,MMH với tập phụ thuộc hàm F ={ MSV HT, NS, QQ; MMH TMH, STC; MSV,MMH HT,NS,QQ,TMH,STC,DIEM } Chuyển về dạng chuẩn 2? 13:18 Khoa CNTT 74 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Bài tập 4: Cho quan hệ R(ABCDEFGH) F ={ AB CDEFGH, B GH, HC } Chuyển về dạng chuẩn 2? 13:18 Khoa CNTT 75 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Bài tập 5: Cho quan hệ R(ABCDEFGH) F ={ ABC DEFGH, BC GH, BH } Chuyển về dạng chuẩn 2? 13:18 Khoa CNTT 76 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu b. Dạng chuẩn 2 Bài tập 6: Cho quan hệ R(ABCDEFGHIJ) F ={ ABC CDEFGHIJ, BC GH, H E, I A, J BC } Chuyển về dạng chuẩn 2? 13:18 Khoa CNTT 77 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu c. Dạng chuẩn 3 Phụ thuộc bắc cầu: Phụ thuộc hàm X Z được gọi bắc cầu nếu trong R có X Y và YZ; với Y là tập thuộc tính không thuộc khóa (không khóa). Ta nói Z phụ thuộc bắc cầu vào X Ví dụ: R(ABCDEF) F = {AB CDEF, D F, E F, D E} Phụ thuộc hàm bắc cầu: 13:18 Khoa CNTT AB F, AB E,.. 78 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu c. Dạng chuẩn 3 Lược đồ R là dạng chuẩn 3 nếu: • Thỏa mãn chuẩn 2 • Không có thuộc tính không khoá nào của R là phụ thuộc bắc cầu vào khoá chính. Tức là: mỗi phụ thuộc hàm X Y thì • Hoặc X siêu khóa • Hoặc Y là thuộc tính khóa. 3NF Ví dụ: R(A,B,C,D,E,F) với F1 = {AB C, AB D, AB E, AB F, E B} S(A,B,C,D,E,F) 13:18 không thỏa 3NF với F2 = {AB C, AB D, AB E, AB F, E D} Khoa CNTT 79 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ c. Dạng chuẩn 3 Chuẩn hóa lược đồ R : • Tách quan hệ mới gồm các thuộc tính phụ thuộc bắc cầu và thuộc tính không khóa mà nó phụ thuộc vào. • Loại các thuộc tính phụ thuộc bắc cầu vào thuộc tính khóa trong quan hệ ban đầu; R(A,B, C, D, E, F, G) AB: Khóa, các thuộc tính phụ thuộc hàm vào AB D F, D G R1(D,F,G) 13:18 R(A,B,C,D,E) Khoa CNTT 80 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu c. Dạng chuẩn 3 Ví dụ: NV_DV(Manv, Hoten, Ngaysinh, Madv, Tendv, MaQl) Với các phụ thuộc hàm { ManvHoten, ManvNgaysinh, ManvMadv, ManvMaQl, ManvTendv, MaDvTendv, MaDvMaQl } Các thuộc tính phụ : Tendv, MaQl phụ thuộc bắc cầu vào khóa chính DV(Madv, Tendv, MaQl) NV(Manv, Hoten, Ngaysinh, Madv) 13:18 Khoa CNTT 81 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu c. Dạng chuẩn 3 Ví dụ: S(A,B,C,D,E,F) với F = {AB C, AB D, AB E, E D, AB F } Đưa về dạng chuẩn 3 D phụ thuộc bắc cầu vào khóa chính S1(D,E) với F1 = {E D} S(ABCEF) với F2 = {AB C, AB E, AB F} 13:18 Khoa CNTT 82 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Chuẩn hóa(1-3) NF Nhận biết (chưa đạt chuẩn) Cách chuẩn hóa 1 •Có thuộc tính phức hợp •Tách thuộc tính phức hợp •Có thuộc tính đa trị /(quan •Tách thuộc tính lặp hoặc đa hệ) lặp trị thành 1 quan hệ mới 2 Có thuộc tính phụ thuộc bộ Tách thuộc tính phụ thuộc bộ phận vào thuộc tính khóa phận thành lược đồ mới 3 Phụ thuộc bắc cầu, tồn tại Tách các thuộc tính phụ thuộc phụ thuộc hàm giữa các bắc cầu thành lược đồ mới thuộc tính ko phải là khóa 13:18 Khoa CNTT 83 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Chuẩn hóa(1-3) Bài tập1 : Cho lược đồ: R(ABCDEFGHIJK) Với F ={ ABC, A DE, B F, F GH, D IJK } Xác định khóa của R, chuyển về dạng chuẩn 2, 3 Khóa: Chuẩn 2:? AB D, E, F phụ thuộc bộ phận vào khóa chính F1 ={ A D, A E, D IJK với F2 ={ BF, F GH } với F ={ ABC} R1(ADEIJK) với R2(BFGH) R(ABC) } Chuẩn 3:? Có phụ thuộc bắc cầu? 13:18 Khoa CNTT 84 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Chuẩn hóa(1-3) Bài tập 1 (cont): Khóa: AB Chuẩn 2: R1(ADEIJK) với R2(BFGH) R(ABC) Chuẩn 3:? } F2 ={ BF, F GH } với F ={ ABC} với Có phụ thuộc bắc cầu? R11(DIJK) với 13:18 F1 ={ A D, A E, D IJK F11 ={ D IJK R21(FGH) với F21 ={ R(ABC) với F } F GH } R12(ADE) với R22(BF) F12 ={ A D, A E } với F2 2={ B F } ={ ABC} Khoa CNTT 85 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Chuẩn hóa(1-3) Bài tập 2 : Cho lược đồ: R(ABCDEFGHIJK) Với F ={ ABC, BD EF, AD GH, A I, H JK } Xác định khóa của R, chuyển về dạng chuẩn 2, 3 Khóa: Chuẩn 2:? Chuẩn 3:? 13:18 Khoa CNTT 86 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu d. Dạng chuẩn Boyce-Codd (BCNF) Lược đồ quan hệ R được gọi là ở dạng chuẩn Boyce-Codd (BCNF) nếu: • Thỏa mãn dạng chuẩn 3NF • Không có thuộc tính khóa phụ thuộc hàm vào thuộc tính không khóa. Ví dụ Sothe Masach Ngaymuon Ngaytra BCNF NV(Manv, Hoten, Ngaysinh, Madv) BCNF Với pth: {ManvHoten, ManvNgaysinh, ManvMadv} R (A,B,C,D,E) không BCNF F={AB C, AB D, AB E, C A} 13:18 Khoa CNTT 87 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ d. Dạng chuẩn Boyce-Codd (BCNF) Chuẩn hóa lược đồ về dạng BCNF Ví dụ 1: Cho R (A,B,C,D,E) không thỏa mãn BCNF Với các phụ thuộc hàm: F={AB C, AB D, AB E, D B} R1 (B,D) R2 (A,D,C,E) 13:18 Khoa CNTT F1={D B} F2={AD C, AD E} 88 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu d. Dạng chuẩn Boyce-Codd (BCNF) Chuẩn hóa lược đồ về dạng BCNF Ví dụ 2: Cho R (ABCDEGH) F={ABC D, ABC E, ABC G, ABC H ,DE AB} R1 (ABDE) F1={DE A, DE B} R2 (CDEGH) F2={CDE G, CDE H} 13:18 Khoa CNTT 89 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu d. Dạng chuẩn Boyce-Codd (BCNF) Các bước Chuẩn hóa lược đồ về dạng BCNF o b1: Tách các thuộc tính không khóa và thuộc tính khóa phụ thuộc hàm vào thuộc tính không khóa đó thành quan hệ mới, thuộc tính không khóa đó trở thành khóa trong quan hệ mới. o b2: Loại các thuộc tính khóa ở bước 1 khỏi lược đồ gốc o b3: Bổ sung thuộc tính không khóa xác định hàm thuộc tính khóa đã loại bỏ (bước 2) vào khóa của quan hệ gốc 13:18 Khoa CNTT 90 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu d. Dạng chuẩn Boyce-Codd (BCNF) Chuẩn hóa lược đồ về dạng BCNF Ví dụ 3: Cho R (ABCDEGH) F={ABC D, ABC E, ABC G, ABC H, D A, E C} 13:18 R1 (AD) F1={D A} R2 (EC) F2={E C} R(BDEGH) F={BDE G, BDE H} Khoa CNTT 91 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Bài tập về Các dạng chuẩn Bài tập ví dụ: Cho quan hệ R(ABCDEFG) ; khóa AB F={AB C, AB D, AB E, AB F, AB G, A E, AF, AG, FG} ? R đạt chuẩn nào. ? Hãy chuẩn hóa từng bước để đạt chuẩn cao hơn. 13:18 Khoa CNTT 92 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Bài tập về các dạng chuẩn 1. cho R(ABCDEFG); F={AB C, AB D, AB E, AB F, AB G, A E, AF, AG, FG, D B} • 1NF ? • 2NF ? có phụ thuộc bộ phận vào khóa ? R1(AEFG); F1={ A E, AF, AG, FG} R2(ABCD); F2={AB C, AB D, D B} • 3NF ? R1 R11(FG); F11={ FG} • BCNF ? R21(BD); 13:18 có thuộc tính không khoá phụ thuộc bắc cầu? R12(AEF); F12={A E, AF} BCNF có thuộc tính khóa phụ thuộc vào thuộc tính không khóa ? F21={D B} Khoa CNTT R22(ACD); F22={AD C} 93 Nhập môn Cơ sở Dữ liệu Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Bài tập về các dạng chuẩn 2. Cho R(ABCDEFGHIJ) F ={ ABC, BDEF, AD GH, A I, H J} Xác định khóa của R; Chuẩn hóa R về dạng chuẩn cao hơn Khóa của R: ABD 2NF có phụ thuộc bộ phận? R2(ABC),F2 ={ ABC} R1(AI) ,F1 ={ A I} R3(BDEF),F3 ={ BDEF} R4(ADGHJ),F4 ={ AD GH, H J} 3NF có phụ thuộc bắc cầu? R41(HJ),F41={ H J} 13:18 Khoa CNTT R42(ADGH),F42 ={ AD GH} 94 Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu Nội dung ôn tập 1. Mô hình ER 6. Chuẩn hóa (1NF-BCNF) 2. Mô hình CSDL Quan hệ 3. Chuyển từ lược đồ ER sang lược đồ quan hệ 4. Các phép toán trên mô hình quan hệ a. Định nghĩa các dạng chuẩn trên khóa chính b. Chuẩn hóa lược đồ 5. Phụ thuộc hàm a. Định nghĩa b. Các quy tắc suy diễn c. Chứng minh các suy diễn d. Bao đóng và khóa e. Phủ tối thiểu 13:18 Khoa CNTT 95