Uploaded by Huy Nguyễn Đức

CSDL4 1

advertisement
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 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 đồ.
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) :
{ XYZ } |= {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): {XY,
Khoa CNTT
WYZ }|= 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ó
{ XYZ } |= {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ó { XYZ } |= {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):
{XY, WYZ }|=WX Z
WX WY
kết hợp với WYZ 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) :
{ XYZ } |= {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): {XY,WYZ
} |= 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, DtinDtb; DtbXeploai}
Xác định bao đóng ?
F+= {Dtoan, DtinDtb; DtbXeploai; 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= {ABC; AD, D E}
Xác định F+
F+= F {A E, AB BD, ABBCD , ABBCDE, BCDBCDE,
ABCDE }
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 |= DC ?
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 |= ACBDF ?
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 } |= WXYZ
1. {W
ta có
{X Z } |= {XYYZ}
quy tắc 2
{W Y } |= {WX  XY}
{WXXY , 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
|=
XY
ta có Y  Z nên {Z  Y }
quy tắc 1
{XZ , Z  Y} |= {X Y }
Vậy {X Z } và Y  Z
13:18
Khoa CNTT
|=
quy tắc 3
XY
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. {XY,XW,WYZ}
|=
{XZ}
ta có {XY,XW} |= {XWY}
{XWY , WYZ} |= {X Z }
Vậy {XY,XW,WYZ}
13:18
Khoa CNTT
|=
quy tắc hơp
quy tắc bắc cầu
{XZ}
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,YZ}
|=
XYZ
ta có {X Y,YZ} |= XZ
{X Y,XZ} |= XYZ
Vậy {X Y,YZ}
|=
quy tắc bắc cầu
quy tắc hợp
XYZ
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, EAD, 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, EAD, 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, EAD, 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, EAD, 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, EAD, 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, EAD, E H }
Fmin = {A C, A  D, EA,
G= { E C, A  D,
AD  H }
Gmin= { E C, A  D,
13:18
Khoa CNTT
E H }
AH}
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, CAB, AC D }
1. G = {A BC, B  AC, CAB , AC D}
2.
G= {A B, AC, B  A, B  C, CA, CB , AC D}
G1 = {A B, AC, B  A, B  C, CA, CB , A D}
3b. G2= {A B, AC, B  A, B  C, CA, CB , 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, CAB, AC D }
1. G = {A BC, B  AC, CAB , AC D}
2.
G= {A B, AC, B  A,B  C, CA, CB , AC D}
Với
3a.
G1 = {A B, AC, B  A, B  C, CA, CB , A D}
4.a. Loại {AC}, {CA}
G1a= {A B, B  A, B  C, CB , A D}
vậy Fmin1= {A B, B  A, B  C, CB , 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, CAB, AC D }
1. G = {A BC, B  AC, CAB , AC D}
2.
G= {A B, AC, B  A,B  C, CA, CB , AC D}
3.
G1= {A B, AC, B  A, B  C, CA, CB , A D}
Với
4.b. Loại {CB}, {BC}
G1b= {A B, A  C, B  A, CA , A D}
vậy Fmin2= {A B, A  C, B  A, CA , 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, CAB, AC D }
1. G = {A BC, B  AC, CAB , AC D}
2.
G= {A B, AC, B  A,B  C, CA, CB , AC D}
Với
3.
G1= {A B, AC, B  A, B  C, CA, CB , A D}
4.c. Loại {AB}, {BA}
G1c= { A  C, B  C, CA , CB, A D}
vậy Fmin3= { A  C, B  C, CA , CB, 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, CAB, AC D }
1. G = {A BC, B  AC, CAB , AC D}
2.
G= {A B, AC, B  A,B  C, CA, CB , AC D}
Với
3.
G1= {A B, AC, B  A, B  C, CA, CB , A D}
4.D. Loại {AB}, {BC},{ CA}
G1d= {AC, B  A, CB , A D}
vậy Fmin4= {AC, B  A, CB , 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, BCA, 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,MasachTennguoimuon
SotheTennguoimuon
Sothe,MasachTensach
MasachTensach
Sothe,MasachNgaymuon
Sothe,MasachNgaytra
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)
MasachTensach
BANDOC(Sothe,Tennguoimuon)
SotheTennguoimuon
MUONTRA(Sothe,Masach,Ngaymuon,Ngaytra)
Sothe,MasachNgaymuon,
13:18
Khoa CNTT
Sothe,MasachNgaytra
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 ={ ABC, 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 ={ ABC, AB D, AB E, ABF, ABG, ABH
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, ABF, ABH }
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 ={ ABCDEF, 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,
HC }
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,
BH }
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à
YZ; 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
{ ManvHoten, ManvNgaysinh, ManvMadv,
ManvMaQl, ManvTendv,
MaDvTendv, MaDvMaQl }
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 ={ ABC, 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 ={ BF, F GH }
với F ={ ABC}
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 ={ BF, F GH }
với F ={ ABC}
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 }
={ ABC}
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 ={ ABC, 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: {ManvHoten, ManvNgaysinh, ManvMadv}
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,
AF, AG, FG}
? 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, AF, AG, FG, D B}
• 1NF ?
• 2NF ?
có phụ thuộc bộ phận vào khóa ?
R1(AEFG); F1={ A E, AF, AG, FG}
R2(ABCD);
F2={AB  C, AB  D, D B}
• 3NF ?
R1
R11(FG); F11={ FG}
• 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, AF}
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 ={ ABC, BDEF, 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 ={ ABC}
R1(AI) ,F1 ={ A I}
R3(BDEF),F3 ={ BDEF}
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
Download