Professional Documents
Culture Documents
Chương 4
Mục tiêu:
Dư thừa
• 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
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 để đảm bảo không sinh ra
các bộ “giả”
Đị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 X Y 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 đồ.
Ví dụ:
SINHVIEN(Masv, Ho, Dem,Ten, Ngaysinh, Noisinh, Lop)
SINHVIEN_DIEM
Masv Mamon Diem
Sothe Tennguoimuon
Kí hiệu F |= X Y
Ví dụ: MUON(Sothe, Masach, Tennguoimuon, Tensach, Ngaymuon, Ngaytra)
Khoa CNTT 14
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
Chứng minh
Ta có:
Nếu t1[X]= t2[X], vì X Y nên t1[Y]=t2[Y]
với t, s bất kỳ, nếu t[X] = s[X], cần chứng minh t[Z] = s[Z]
Quy tắc 6 (quy tắc tựa bắc cầu): {XY, WYZ }|= WX Z
Khoa CNTT 18
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
theo QT 2 ta có X YX và YX 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
Tính đầy đủ: Tức là nếu F suy diễ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
01:02 PM Khoa CNTT 20
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
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
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}
01:02 PM Khoa CNTT 22
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
ví dụ:
F= {AB C; A D, D E}
Xác định F+
Đị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
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+ = {A, D, E }
F |= AB E ?
AB =
+ {A, B, C, D, E }
B+ = {B}
F |= D C ?
D+ = {D, E} F |= AD CDE ?
AD+ = {A, D, E} F |=AB CDE
Ví dụ 2: Cho F = {A B, C DE, AC F}
A+ = {A, B }
F |= A E ?
C + = {C, D, E }
AC+ = {A, B, C, D, E, F} F |= AC BDF ?
tìm {AB}+
Vậy GH {AB}+ do đó F |= AB GH
01:02 PM Khoa CNTT 31
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
do đó F |= AB EFG
Bài tập
01:02 PM Khoa CNTT 32
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
1. {W Y, X Z } |= WX YZ
ta có {X Z } |= {YX YZ} quy tắc 2
Bài tâp
2. {X Z } và Y Z |= XY
{X Z , Z Y} |= {X Y } quy tắc 3
Vậy {X Z } và Y Z |= XY
Bài tâp
3. {X Y,X W,WY Z} |= {X Z}
ta có {X Y,X W} |= {X WY}
quy tắc hơp
Bài tâp
4. {X Y,Y Z} |= X YZ
ta có {X Y,Y Z} |= X Z
quy tắc bắc cầu
Vậy {X Y,Y Z} |= X YZ
Quay lại
Bài tâp
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 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 Tương đương : mỗi phụ thuộc hàm trong trong
tập này có thể suy dẫn từ tập kia.
01:02 PM Khoa CNTT 38
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
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
Vậy F |= {A CD}
{E AD} |= {E A}
{E H} |= {E AH} Vậy F |= {E AH}
Tức là F phủ E
01:02 PM Khoa CNTT 40
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
{E}+E = {ACDEH}
F phủ E
E phủ F
G = { E C, A D, AD H }
01:02 PM Khoa CNTT 43
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
Định lý (4.8) - Mọi tập phụ thuộc hàm đều có phủ tối thiểu
1. Đặt G =F
2. Thay mỗi pth X A1A2..Ak trong G bằng X A1, X A2.. X Ak
Với
3a. G1= {A B, AC, B A, B C, CA, CB , A D}
Tìm F min
G ={ B C, A D, A E, B F, F G, F H,
F C, F D, D I, D J}
G = { A D, A E, B F, F G, F H,
F C, F D, D I, D J} F min
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}+ = U thì K = K-{A};
F
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}
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
Ví dụ:
SV_DIEM(Masv, Mamon, Diem)
a. Dạng chuẩn 1
Ví dụ:
NV_DA(Mada,Tenda,Mavn,Sogio)
Mada TenDa Manv Sogio
CO1 Cấp nước 001 20
002 35
DO2 Cung cấp thiết bị điện.. 002 20
004 40
a. Dạng chuẩn 1
DV_DD(Madv, Diadiem)
01:02 PM Khoa CNTT 60
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
DA(Mada,Tenda) 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
a. Dạng chuẩn 1
BanHang(MaNV, MaKH, TenKH, MaHH, TenHH, SL, Dongia, TT)
MaNV MaKH TenKH MaHH TenHH SL DG TT
X1 A1 Vũ Văn Đức T1 Bút bi 5 4000 20000
T2 Giấy A4 2 90000 180000
X1 A2 Lê Văn An T1 Bút bi 10 4000 40000
X2 A3 Trần Đức Minh T4 Dập ghim 1 50000 50000
T5 Bút phủ 4 20000 80000
T2 Giấy A4 3 90000 270000
1NF ?
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.
b. Dạng chuẩn 2
Ví dụ: Phụ thuộc hàm đầy đủ và bộ phận
MUONTRA
Sothe Masach Tennguoimuon Tensach Ngaymuon Ngaytra
o Với các quan hệ có khóa gồm 1 thuộc tính thì luôn thỏa mãn
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
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à bộ phận của khóa tương ứng ban
đầu
• Loại thuộc tính không khóa đó và pth tương ứng ra khỏi quan hệ gốc
SACH(Masach,Tensach MasachTensach
)
BANDOC(Sothe,Tennguoimuon) SotheTennguoimuon
MUONTRA(Sothe,Masach,Ngaymuon,Ngaytra)
Sothe,MasachNgaymuon, Sothe,MasachNgaytra
01:02 PM 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
Ví dụ 1: Chuẩn hóa quan hệ R đạt 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 Thuộc tính không khóa phụ thuộc bộ phận vào khóa?:
R1(A,E) F1 = { A E}
R2(B,C) F2 = { B C}
R(A,B,D) F = { AB D}
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, ABD, ABE, ABF, ABG, AB H
B C
B C, A E,
E B G}
G
Khóa chính ?:
R1 (A,E) F1= {A E }
R2(B,C,G) F2= {B C, B G }
R(A,B,D,F,H) F ={ AB D, AB F, AB H }
01:02 PM Khoa CNTT 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
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à 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
R1(ADEIJ) F1 = {A D, A E, D I, D J}
R2(BFGH) F2 = {B F, F G,F H }
R(A,B,C) F = {AB C}
01:02 PM 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
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 }
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
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?
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?
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
}
Ví dụ: R(ABCDEF)
F = {AB CDEF, D F, E F, D E}
c. Dạng chuẩn 3
01:02 PM
với F2 = {AB C, AB D, AB E, AB F, E D}
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
R1(D,F,G) R(A,B,C,D,E)
F1={D F, D G} F2={AB CDE}
01:02 PM Khoa CNTT 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
Ví dụ: NV_DV(Manv, Hoten, Ngaysinh, Madv, Tendv, MaQl)
Với các phụ thuộc hàm
{ Manv Hoten, Manv Ngaysinh, Manv Madv,
Manv MaQl, Manv Tendv,
MaDv Tendv, MaDv MaQl }
Các thuộc tính : Tendv, MaQl phụ thuộc bắc cầu vào khóa chính
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
S1(D,E)
với F1 = {E D}
S2(ABCEF)
với F2 = {AB C, AB E, AB F}
01:02 PM 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
Chuẩn hóa(1-3)
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
Chuẩn hóa(1-3)
Bài tập1 : Cho lược đồ: R(ABCDEFGHIJK)
Khóa: AB
Chuẩn 2:? phụ thuộc bộ phận vào khóa chính DE (A), F(B) : không thỏa 2NF
Chuẩn hóa(1-3)
Bài tập 1 (cont):
Khóa: AB
Chuẩn 2:
Chuẩn hóa(1-3)
Bài tập 2 : Cho lược đồ: R(ABCDEFGHIJK)
Khóa:
Chuẩn 2:?
Chuẩn 3:?
R (A,B,C,D,E)
không BCNF
F={AB C, AB D, AB E, C A}
01:02 PM Khoa CNTT 85
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ Nhập môn Cơ sở Dữ liệu
F={AB C, AB D, AB E, D B}
R1(B,D) F ={D B}
1
R2(A,D,C,E) F ={AD C, AD E}
2
Cho R (ABCDEGH)
R1(ABDE) F1={DE A, DE B}
R2(CDEGH) F2={CDE G, CDE H}
o b2: Loại các thuộc tính khóa ở bước 1 khỏi lược đồ gốc
Cho R (ABCDEGH)
R1(AD) F ={D A}
1
R2(EC) F ={E C}
2
F={AB C, AB D, AB E, AB F, AB G, A E,
AF, AG, FG}
• BCNF ? có thuộc tính khóa phụ thuộc vào thuộc tính không khóa ?
R21(BD); F21={D B} R22(ACD); F22={AD C}
01:02 PM 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