c4 1 tuan 14

72
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 05:39 sáng 1 Khoa CNTT

Upload: tran-thanh

Post on 18-Jun-2015

194 views

Category:

Education


2 download

TRANSCRIPT

Page 1: C4 1 tuan 14

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

Page 2: C4 1 tuan 14

• 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ệ

Page 3: C4 1 tuan 14

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

Page 4: C4 1 tuan 14

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ý

Page 5: C4 1 tuan 14

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

Page 6: C4 1 tuan 14

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

Page 7: C4 1 tuan 14

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 ??

Page 8: C4 1 tuan 14

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

Page 9: C4 1 tuan 14

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ả”

Page 10: C4 1 tuan 14

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 đồ

Page 11: C4 1 tuan 14

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

Page 12: C4 1 tuan 14

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

Page 13: C4 1 tuan 14

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

Page 14: C4 1 tuan 14

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

Page 15: C4 1 tuan 14

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

Page 16: C4 1 tuan 14

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.

Page 17: C4 1 tuan 14

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

Page 18: C4 1 tuan 14

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}

Page 19: C4 1 tuan 14

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

Page 20: C4 1 tuan 14

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

Page 21: C4 1 tuan 14

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}

Page 22: C4 1 tuan 14

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 ?

Page 23: C4 1 tuan 14

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+

Page 24: C4 1 tuan 14

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}

Page 25: C4 1 tuan 14

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}

Page 26: C4 1 tuan 14

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}

Page 27: C4 1 tuan 14

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+ );

Page 28: C4 1 tuan 14

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}

Page 29: C4 1 tuan 14

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}

Page 30: C4 1 tuan 14

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

Page 31: C4 1 tuan 14

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

Page 32: C4 1 tuan 14

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}

Page 33: C4 1 tuan 14

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

Page 34: C4 1 tuan 14

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}

Page 35: C4 1 tuan 14

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

Page 36: C4 1 tuan 14

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

Page 37: C4 1 tuan 14

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

Page 38: C4 1 tuan 14

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.

Page 39: C4 1 tuan 14

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

Page 40: C4 1 tuan 14

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

Page 41: C4 1 tuan 14

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

Page 42: C4 1 tuan 14

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

Page 43: C4 1 tuan 14

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?

Page 44: C4 1 tuan 14

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 }

Page 45: C4 1 tuan 14

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

Page 46: C4 1 tuan 14

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

Page 47: C4 1 tuan 14

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};

Page 48: C4 1 tuan 14

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)

Page 49: C4 1 tuan 14

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.

Page 50: C4 1 tuan 14

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

Page 51: C4 1 tuan 14

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)

Page 52: C4 1 tuan 14

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ị

Page 53: C4 1 tuan 14

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

Page 54: C4 1 tuan 14

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

Page 55: C4 1 tuan 14

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

Page 56: C4 1 tuan 14

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 ?

Page 57: C4 1 tuan 14

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

Page 58: C4 1 tuan 14

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)

Page 59: C4 1 tuan 14

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)

Page 60: C4 1 tuan 14

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)

Page 61: C4 1 tuan 14

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}

Page 62: C4 1 tuan 14

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

Page 63: C4 1 tuan 14

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

Page 64: C4 1 tuan 14

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)

Page 65: C4 1 tuan 14

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)

Page 66: C4 1 tuan 14

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

Page 67: C4 1 tuan 14

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}

Page 68: C4 1 tuan 14

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)

Page 69: C4 1 tuan 14

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

Page 70: C4 1 tuan 14

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.

Page 71: C4 1 tuan 14

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 ?

Page 72: C4 1 tuan 14

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}