c4 1 tuan 14
TRANSCRIPT
Phụ thuộc hàm và Phụ thuộc hàm và Chuẩn hóa CSDL quan hệChuẩn hóa CSDL quan hệ
Nhập môn Cơ sở Dữ liệu
12:22 chiều 1Khoa CNTT
• Một số vấn đề lý thuyết thiết kế để có lược đồ Một số vấn đề lý thuyết thiết kế để có lược đồ tốt.tốt.
• Một lược đồ tốt được thể hiện qua2 mức:Một lược đồ tốt được thể hiện qua2 mức:o Mức khái niệm (hay logic):ngữ nghĩa rõ Mức khái niệm (hay logic):ngữ nghĩa rõ
ràng,dễ hiểu, chính xác...ràng,dễ hiểu, chính xác...o Mức cài đặt: các bộ được lưu trữ như thế Mức cài đặt: các bộ được lưu trữ như thế
nào..nào..• Lý thuyết chuẩn hóa (dựa trên phụ thuộc hàm, Lý thuyết chuẩn hóa (dựa trên phụ thuộc hàm,
…) sẽ là nền tảng cơ sở để thực hiện việc phân …) sẽ là nền tảng cơ sở để thực hiện việc phân tích và chuẩn hóa lược đồ.tích và chuẩn hóa lược đồ.
Nhập môn Cơ sở Dữ liệu
12:22 chiều 2Khoa CNTT
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
Sự dư thừa và dị thường dữ liệu
Phụ thuộc hàm
Hệ suy diễn Amstrong
Thuật toán tìm bao đóng X+F
Tìm phủ tối thiểu
Các dạng chuẩn
Nội dung chính
12:22 chiều 3Khoa CNTT
Nhập môn Cơ sở Dữ liệuPhụ 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
12:22 chiều 4Khoa CNTT
Ví dụ 1: NHANVIEN_PHONG
Dư thừa về Đơn vị / Người quản lý
Nhập môn Cơ sở Dữ liệuPhụ 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
12:22 chiều 5Khoa CNTT
Ví dụ 2 Dư thừa
Nhập môn Cơ sở Dữ liệuPhụ 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
12:22 chiều 6Khoa CNTT
Ví dụ 3
Dư thừa
Nhập môn Cơ sở Dữ liệuPhụ 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
12:22 chiều 7Khoa CNTT
Sự phụ thuộc lẫn nhau giữa các thuộc tính
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)
Tại sao có sự dư thừa ??
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 8Khoa CNTT
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:
• Thao tác sửa đổ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
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 9Khoa CNTT
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ả”
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 10Khoa CNTT
4.3 – 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.
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
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)
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 đồ
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 11Khoa CNTT
4.3 – 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
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 12Khoa CNTT
4.3 – Phụ thuộc hàm
Thể hiện phụ thuộc hàm trên lược đồ
Sothe Masach Tennguoimuon
Tensach
Ngaymuon
Ngaytra
Masv Mamon Diem
SINHVIEN_DIEM
MUON
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 13Khoa CNTT
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;
XY gọi là suy diễn được từ F , nếu với mọi thể hiện r của
R thỏa mãn các phụ thuộc hàm F thì XY cũng đúng trong r
Kí hiệu F |= XYVí dụ: MUON(Sothe, Masach, Tennguoimuon, Tensach, Ngaymuon,
Ngaytra)
F = { Sothe Tennguoimuon; Masach Tensach;
Sothe,Masach Ngaymuon , Ngaytra }
F |= Sothe,masach Tensach, Ngaytra
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
14Khoa CNTT
4.4 – Quy tắc suy diễn Phụ thuộc hàm
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
Quy tắc suy diễn Amstrong: Tập các quy tắc 1 -3
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 15Khoa CNTT
4.4 – Quy tắc suy diễn Phụ thuộc hàm
Quy tắc 1 (quy tắc phản xạ) : Nếu X Y thì X Y
Chứng minh
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 suy ra t1[Y]=t2[Y]
theo định nghĩa ta có X Y
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 16Khoa CNTT
4.4 – Quy tắc suy diễn Phụ thuộc hàm
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.
Chứng minh
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
Quy tắc 2 đúng.
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 17Khoa CNTT
4.4 – Quy tắc suy diễn Phụ thuộc hàm
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]
Chứng minh
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] ta có t[Z] = s[Z]
tức là X Z
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 18Khoa CNTT
4.4 – Quy tắc suy diễn Phụ thuộc hàm
Quy tắc 4 (quy tắc chiếu): { XYZ } |= {X Y, X Z}Chứng minh
Theo quy tắc 1: ta có YZ Y,
YZ Z
Theo giả thiết ta có X YZ X Y
X Z
Vậy ta có { XYZ } |= {X Y, X Z}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 19Khoa CNTT
4.4 – 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à XY YZ
Theo QT 3 ta có X YZ
Chứng minh Quy tắc 6 (tựa bắc cầu): {XY, WYZ }|=WX Z
Theo QT 2 ta có WX WY
kết hợp với WYZ ta có WX Z
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 20Khoa CNTT
4.4 – Quy tắc suy diễn Phụ thuộc hàm
Quy tắc 4-6 có thể suy dẫn từ tập quy tắc Amstrong
Định lý: Quy tắc Amstrong là đúng và đầy đủ.
Tức là nếu F bao f, thì f có thể suy diễn được từ F sử dụng hệ các quy tắc suy diễn Amstrong
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 21Khoa CNTT
4.5 – Bao đóng của tập Phụ thuộc hàm
Đinh nghĩa: Cho lược đồ R (A), F là tập các phụ thuộc hàm;
Tập tất cả các phụ thuộc hàm suy ra được từ F gọi là bao
đóng của F, được kí hiệu là F+
Tức là F+ = F { f , F |= f}
Ví dụ :
F = {X Y , Y Z }
Thì F+ = {X Y , Y Z , X Z , X YZ}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 22Khoa CNTT
4.5 – Bao đóng của tập Phụ thuộc hàm
ví dụ: BANGDIEM(Masv, Dtoan, Dtin, Dtb, Xeploai)
F= {Dtoan, DtinDtb; DtbXeploai}
F += {Dtoan, DtinDtb; DtbXeploai, Dtoan, Dtin
Xeploai}
Xác định bao đóng ?
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 23Khoa CNTT
4.5 – Bao đóng của tập Phụ thuộc hàm
ví dụ: F= {ABC; AD, D E}
F+= F {A E, AB BD, ABBCD, BCDBCDE,
ABCDE }
Xác định F+
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 24Khoa CNTT
Ví dụ: DA(Manv, Hoten,Mada, Tenda, DD, Sogio}
F ={ Manv ->Hoten; Mada->Tenda, DD; Manv, Mada->Sogio}
4.6– Bao đóng của tập thuộc tính
X+F = { A U sao cho X A F+}
{Manv}+ =
Đị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+ là bao đóng của X theo
F
{Manv, Hoten}
{Mada}+ =
{Mada, Tenda,DD}
{Manv, Mada}+ =
{Manv,Hoten, Mada, Tenda,DD,Sogio}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 25Khoa CNTT
4.6 – Bao đóng của tập thuộc tính
Bổ đề: X Y được suy diễn từ tập phụ thuộc hàm F theo quy tắc
Amstrong khi và chỉ khi Y X+F
Ví dụ: Cho F={ AB C, A D, D E, AC B}
Xác định các bao đóng sau:
A+ =
AB+ =
B+ =
D+ =
F |= AB E ? F |= DC ? F |= AD CDE ? F |=AB CDE
{A, D,E }
{A, B, C, D, E }
{B}
{D, E}
AD+ = {A, D, E}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 26Khoa CNTT
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+ =
C+ =F |= A E ?
F |= ACBDF ?
{A, B }
{C, D, E }
AC+ = {A, B,C, D, E, F}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 27Khoa CNTT
4.6 – Bao đóng của tập thuộc tính
Thuật toán 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ập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 28Khoa CNTT
4.6 – Bao đóng của tập thuộc tính
Ví dụ 1: Tìm bao đóng của AB với các phụ thuộc hàm sau
- 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}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 29Khoa CNTT
4.6 – Bao đóng của tập thuộc tính
Tìm {ABC}+
Ví dụ 2: Cho F ={ A D, E H , AB DE, CE G}
Đặ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}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 30Khoa CNTT
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, GI H}
Hãy chứng tỏ AB GH
Đặ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 đó AB GH
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 31Khoa CNTT
4.6 – 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
Đặ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
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 32Khoa CNTT
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
1. {W Y, X Z } |= WXY
ta có {X Z } |= {WXWZ} quy tắc 2
{WXWZ } |= {WX W} quy tắc 4
{WXW , W Y} |= {WX Y} quy tắc 3
Vậy {W Y, X Z } |= {WX Y}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 33Khoa CNTT
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 } quy tắc 3
Vậy {X Z } và Y Z |= XY
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 34Khoa CNTT
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} quy tắc hơp
{XWY , WYZ} |= {X Z } quy tắc bắc cầu
Vậy {XY,XW,WYZ} |= {XZ}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 35Khoa CNTT
Bài tâp
Bài tâp 1: Hãy chứng minh các suy diễn sau
4. {X Y,Z W } |= XZYW
ta có {X Y } |= XZYZ quy tắc tăng
{Z W} |= {YZ YW } quy tắc 3
Vậy {X Y,Z W } |= XZYW
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 36Khoa CNTT
Bài tâp
Bài tâp 1: Hãy chứng minh các suy diễn sau
5. {X Y,YZ} |= XYZ
ta có {X Y,YZ} |= XZ quy tắc bắc cầu
{X Y,XZ} |= XYZ quy tắc hợp
Vậy {X Y,YZ} |= XYZ
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 37Khoa CNTT
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
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 38Khoa CNTT
4.7 – Phụ thuộc hàm tương đương
Định nghĩa:
• Một tập phụ thuộc hàm E được phủ bởi tập
phụ thuộc hàm F nếu mỗi một phụ thuộc hàm
trong E đều thuộc F+
hay mỗi phụ thuộc hàm trong E có thể suy diễn
được từ F.• Hai tập phụ thuộc hàm E và F là tương đương nếu
E+ = F+
Tương đương có nghĩa là mỗi phụ thuộc hàm trong E có thể
suy diễn được từ F và mỗi phụ thuộc hàm trong F có thể suy
diễn được từ E.
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 39Khoa CNTT
4.7 – Phụ thuộc hàm tương đương
Cho hai tập phụ thuộc hàm
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 để 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 2: Dùng bổ đề về bao đóng và suy diễn để chứng minh
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 40Khoa CNTT
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}
kết hợp với {A C}|= {A CD}
Vậy F |= {A CD}
{E AD} |= {E A} {E H}
|= {E AH} Vậy F |= {E AH}
Tức là F phủ E
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 41Khoa CNTT
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
Tức là F tương đương E
Tương tự: chứng minh được E phủ F
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 42Khoa CNTT
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 2: Dùng bổ đề về bao đóng và suy diễn để chứng minh
{A}+
F = {ACD}
{E}+
F =
{ADEH} vậy F phủ E
{A}+
E = {ACD}
{AC}+
E = {ACD}
{E}+
E = {ACDEH}
vậy E phủ F
tức là E,F tương đương
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 43Khoa CNTT
4.8 – 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ế XA trong F bằng YA 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 }
Tối thiểu?
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 44Khoa CNTT
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 }
F= { E C, A D, AD H }
Fmin= { E C, A D, A H }
Fmin = {A C, A D, EA, E H }
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 45Khoa CNTT
4.8 – Tập phụ thuộc hàm tối thiểu
Thuật toán tìm 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
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 46Khoa CNTT
Ví dụ: Tìm phủ tối thiểu
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. G= {A B, AC, B A,B C, CA, CB , A D}
4. Loại {AC}, {CA}
G= {A B, B A, B C, CB , A D}
vậy Fmin= {A B, B A, B C, CB , A D}
! Một tập phủ thuộc hàm có thể có nhiều phủ tối thiểu
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 47Khoa CNTT
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
o tính {K-A}+
F
o nếu {K-A}+
F = U thì K = K-{A};
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 48Khoa CNTT
4.10– 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 của nó (liên quan tới dư thừa và dị thường trong cập nhật)
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:o Giảm tối đa sự dư thừao Giảm tối đa các phép cập nhật dị thường
Chuẩn và hóa do Codd đề xuất đầu tiên năm 1972 (1NF-3NF, sau đó Boyce-Codd, 4-5NF)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 49Khoa CNTT
4.10– Các dạng chuẩn dựa trên khóa chính
Thủ tục chuẩn hoá cung cấp • 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 tê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.
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 50Khoa CNTT
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
Ví dụ:
SV_DIEM(Masv, Mamon, Diem)
SV(Masv, Hoten, Gioitinh,Ngaysinh, Noisinh)
Không thỏa mãn 1NF
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 51Khoa CNTT
a. Dạng chuẩn 1
Mada TenDa Manv Sogio
CO1 Cấp nước 001002
2035
DO2 Cung cấp thiết bị điện..
002004
2040
Ví dụ:
Không thỏa mãn 1NF
NV_DA(Mada,Tenda,Mavn,Sogio)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 52Khoa CNTT
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
a. Dạng chuẩn 1
2. Thuộc tính đa trị hoặc lặp ->tách quan hệ
SV(Masv, Hoten, Gioitinh,Ngaysinh, Noisinh)
SV(Masv, Ho, Dem, Ten, Gioitinh,Ngaysinh, Noisinh)
DONVI(Madv,Tendv, MaNQL, Diadiem)
DV (Madv,Tendv,MaNQL)
DV_DD(Madv,Diadiem)
Đa trị
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 53Khoa CNTT
a. Dạng chuẩn 1
Mada TenDa Manv Sogio
CO1 Cấp nước 001002
2035
DO2 Cung cấp thiết bị điện..
002004
2040
NV_DA(Mada,Tenda,Mavn,Sogio)
Mada Tenda
CO1 Cấp nước
Do2 Cung cấp thiết bị điện
DA(Mada,Tenda) NV_DA(Mada,Mavn,Sogio)
Mada Manv
Sogio
CO1 001 20
CO1 002 35
DO2 002 20
DO2 004 40
Lặp
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 54Khoa CNTT
b. Dạng chuẩn 2
Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu 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, 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 phụ thuộc hàm vẫn đúng∃A X, (X – {A}) Y
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 55Khoa CNTT
Sothe Masach Tennguoimuon
Tensach
Ngaymuon
Ngaytra
MUONTRA
b. Dạng chuẩn 2
Sothe,Masach -> Ngaymuon
Sothe,Masach -> Tensach
Sothe,Masach -> Nguoimuon
Phụ thuộc đầy đủ
Phụ thuộc bộ phận
Phụ thuộc bộ phận
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 56Khoa CNTT
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
oVới các quan hệ có thuộc tính khóa đơn thì ko phải ktoChỉ kiểm tra các lược đồ có chứa phụ thuộc hàm bộ phận
Hay: Mỗi thuộc tính không là thuộc tính 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 ?
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 57Khoa CNTT
Sothe Masach Tennguoimuon
Tensach
Ngaymuon
Ngaytra
MUONTRA
b. Dạng chuẩn 2
Chuẩn hóa về dạng chuẩn 2
Sothe,MasachTennguoimuon
Sothe,MasachTensach
Sothe,MasachNgaymuon
Sothe,MasachNgaytra
SotheTennguoimuon
MasachTensach
Phụ thuộc bộ phận vào khóa
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 58Khoa CNTT
Sothe Masach Tennguoimuon
Tensach
Ngaymuon
Ngaytra
MUONTRA
b. Dạng chuẩn 2
Chuẩn hóa về dạng chuẩn 2
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
SACH(Masach,Tensach)
BANDOC(Sothe,Tennguoimuon)
MUONTRA(Sothe,Masach,Ngaymuon,Ngaytra)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 59Khoa CNTT
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, A E}
R1 (A,E)R2(B,C)R(A,B,D)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 60Khoa CNTT
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 C, A E, BG}
R1 (A,E)R2(B,C, G)R(A,B,D,F,H)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 61Khoa CNTT
b. Dạng chuẩn 2
Bài tập: Cho quan hệ
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 ?
Chuyển về dạng chuẩn 2?
AB
R1(ADEIJ)
R2(BFGH)
R(A,B,C)
F1 = {AD, AE, DI, DJ}
F2 = {BF,F G,F H }
F = {AB->C}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 62Khoa CNTT
c. Dạng chuẩn 3
Phụ thuộc bắc cầu:
Phụ thuộc hàm X Y được gọi bắc cầu nếu trong R có X Z và Z Y; với Z là tập thuộc tính không thuộc khóa.
Ta nói Y phụ thuộc bắc cầu vào X
Ví dụ:
F = {AB C, AB D, D F, E F, D E}
Phụ thuộc hàm bắc cầu:
D F
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 63Khoa CNTT
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.
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)
với F2 = {AB C, AB D, E D}
3NF
không thỏa3NF
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 64Khoa CNTT
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.• 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
R1(D,F,G) R(A,B,C,D,E)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 65Khoa CNTT
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ụ thuộc hàm Tendv, MaQl phụ thuộc bắc cầu vào khóa chính
NV(Manv, Hoten, Ngaysinh, Madv)
DV(Madv, Tendv, MaQl)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 66Khoa CNTT
Chuẩn hóa(1-3)
NF Nhận biết (chưa đạt chuẩn) Cách chuẩn hóa
1 Quan hệ có thuộc tính đa trị /(quan hệ) lặp
Tách tất cả thuộc tính lặp hoặc đa trị thành 1 quan hệ mới
2 Có thuộc tính phụ thuộc 1 phần (bộ phận) vào thuộc tính khóa
Tách thuộc tính phụ thuộc 1 phần thành lược đồ mới, đảm bảo quan hệ với lược đồ liên quan
3 Phụ thuộc bắc cầu, tồn tại phụ thuộc hàm giữa các thuộc tính ko phải là khóa
Tách các thuộc tính đó thành lược đồ mới
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 67Khoa CNTT
d. Dạng chuẩn Boyce-Codd (BCNF)
Một 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.
Sothe Masach Ngaymuon
Ngaytra
Ví dụ
NV(Manv, Hoten, Ngaysinh, Madv)
Với pth: {ManvHoten, ManvNgaysinh, ManvMadv}
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 68Khoa CNTT
d. Dạng chuẩn Boyce-Codd (BCNF)
Ví dụ:
Cho R (A,B,C,D,E)
Với các phụ thuộc hàm:
F={AB C, AB D, AB E, D B}
Chuẩn hóa lược đồ về dạng BCNF
không thỏa mãn BCNF
R1 (B,D)
R2 (A,D,C,E)
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 69Khoa CNTT
d. Dạng chuẩn Boyce-Codd (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
Chuẩn hóa lược đồ về dạng BCNF
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 70Khoa CNTT
Các Dạng chuẩn
Cho quan hệ R(ABCDEFG) AB là khóa
F={AB C, AB D, AB E, AB F, AB G, A E, AF, AG, FG}
Bài tập ví dụ:
? R đạt chuẩn nào.
? Hãy chuẩn hóa từng bước để đạt chuẩn cao hơn.
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 71Khoa CNTT
Các Dạng chuẩn
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}
R21(BD); F21={D B}
R2(ACD); F22={AD C}
• 3NF ? có phụ thuộc bắc cầu?R1
R11(FG);
F11={ FG}
R12(AEF); F12={A E, AF}
BCNF
• BCNF ? có thuộc tính khóa phụ thuộc thuộc tính không khóa ?
Nhập môn Cơ sở Dữ liệuPhụ thuộc hàm và chuẩn hóa CSDL quan hệ
12:22 chiều 72Khoa CNTT
Dạng chuẩn
Bài tập: 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 R1(AI) ,F1 ={ A I}
R21(ABC),F21 ={ ABC} R22(BDEF),F22 ={ BDEF}
R23(ADGHJ),F23 ={ AD GH, H J}
R231(HJ),F23 1={ H J} R232(ADGH),F232 ={ AD GH}