1
ThS. T VIT PHƯƠNG
phuongtv@uit.edu.vn
CHƯƠNG 6:
PH THUC HÀM
DNG CHUN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
MÔN CƠ SỞ DỮ LIỆU - IT004
Nội dung
1. Các vấn đề gặp phải khi tổ chức CSDL
2. Phụ thuộc hàm
3. Dạng chuẩn
4. Kết luận
2
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
1
2
2
1. Các vấn đ gp phi khi tổ chc CSDL
Trước khi bàn về dạng chuẩn của một sở dữ liệu, chúng ta
hãy phân tích xem tại sao trong một lược đồ quan hệ lại tồn tại
những vấn đề rắc rối. Chẳng hạn cho lược đồ quan hệ
Thi (masv, mamh, hoten, tenmonhoc, diem)
Một khóa chính: (masv, mamh)
3
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
DIEMTENMONHOCHOTENMAMHMASV
7Cơ sở dữ liệuKim Trí TúCSDLSV01
2Hướng đối tượngKim Trí TúHDTSV01
7Xác suất thống kêKim Trí TúXSTKSV01
9Cấu trúc rời rạcKim Trân NiCTRRSV02
5Xác suất thống kêKim Trân NiXSTKSV02
5Cơ sở dữ liệuKim Thái HanhCSDLSV03
1. Các vấn đ gp phi khi tổ chc CSDL
Bất thường khi sửa dữ liệu (update anomaly): do hậu quả của
thừa dữ liệu, mỗi khi cập nhật tên của một sinh viên trong một
bộ nào đó nhưng vẫn còn tên trong những bộ khác. vậy
trong CSDL sẽ xuất hiện một sinh viên sẽ nhiều tên
4
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
DIEMTENMONHOCHOTENMAMHMASV
7Cơ sở dữ liệuKim Trí TúCSDLSV01
2Hướng đối tượngPhác Thái AnhHDTSV01
7Xác suất thống kêKim Trí TúXSTKSV01
9Cấu trúc rời rạcKim Trân NiCTRRSV02
5Xác suất thống kêKim Trân NiXSTKSV02
5Cơ sở dữ liệuKim Thái HanhCSDLSV03
3
4
3
1. Các vấn đ gp phi khi tổ chc CSDL
Bất thường khi thêm dữ liệu (insertion anomaly): Một sinh viên
mới mà chưa d thi môn học nào t thông tin về sinh viên này
không thể thêm vào quan hệ THI, vì khi thêm vào thì mamh phải
giá trị null, mà mamh thuộc tính khóa nên không thể mang
giá trị null được
5
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
DIEMTENMONHOCHOTENMAMHMASV
7Cơ sở dữ liệuKim Trí TúCSDLSV01
2Hướng đối tượngKim Trí TúHDTSV01
7Xác suất thống kêKim Trí TúXSTKSV01
9Cấu trúc rời rạcKim Trân NiCTRRSV02
5Xác suất thống kêKim Trân NiXSTKSV02
5Cơ sở dữ liệuKim Thái HanhCSDLSV03
NullNullLạp Lệ Sa Mã Nặc
Ba
NullSV4
1. Các vấn đ gp phi khi tổ chc CSDL
Bất thường khi xóa dữ liệu (deletion anomaly): khi xóa sinh viên
SV01 thi môn CSDL sẽ làm mất thông tin của môn học CSDL.
6
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
DIEMTENMONHOCHOTENMAMHMASV
7Cơ sở dữ liệuKim Trí TúCSDLSV01
2Hướng đối tượngKim Trí TúHDTSV01
7Xác suất thống kêKim Trí TúXSTKSV01
9Cấu trúc rời rạcKim Trân NiCTRRSV02
5Xác suất thống kêKim Trân NiXSTKSV02
5Cơ sở dữ liệuKim Thái HanhCSDLSV03
5
6
4
1. Các vấn đ gp phi khi tổ chc CSDL
7
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
HOTENMASV
Kim Trí TúSV01
Kim Trân NiSV02
Kim Thái HanhSV03
TENMONHOCMAMH
Cơ sở dữ liệuCSDL
Cấu trúc rời rạcCTRR
Xác suất thống kêXSTK
DIEMMAMHMASV
7CSDLSV01
2HDTSV01
7XSTKSV01
9CTRRSV02
5XSTKSV02
5CSDLSV03
SINHVIEN
THI
MONHOC
2. Phụ thuộc hàm (Functional Dependencies)
Phụ thuộc m (Functional Dependencies - FD) các ràng
buộc (constraints) được suy ra từ ý nghĩa các liên hệ giữa các
thuộc tính dữ liệu.
Phụ thuộc hàm khóa được dùng để xác định dạng chuẩn của
quan hệ
8
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
7
8
5
2. Phụ thuộc hàm (Functional Dependencies)
Định nghĩa:
X,Y hai tập thuộc tính trên quan hệ R
r
1
, r
2
2 bộ bất kỳ trên R
Ta i X xác định Y, hiệu X Y, nếu và chỉ nếu
r
1
[X] = r
2
[X] r
1
[Y] = r
2
[Y]
tức với mỗi giá trị của X trong R chỉ tương đương với một
giá trị của Y
X Y một phụ thuộc hàm, hay Y phụ thuộc vào X
X vế trái của phụ thuộc hàm, Y là vế phải của phụ thuộc hàm
9
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Ví dụ: cho quan hệ NHANVIEN như sau:
nhận xét về: {manv, hoten}, {manv, dchi}, {manv,tenph},
{manv, trgph}, {tenph, trgph}, {manv, hoten, dchi} ???
10
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
TrgphongTenphongDchiHotenManv
Chu Đăng ThanhKế toánHà NộiNguyễn Thị AnNv01
Chu Đăng ThanhKế toánHà NộiChu Đăng ThanhNv02
Chu Đăng ThanhKế toánĐà NẵngNguyễn Trung HiếuNv03
Trần Hữu TínDữ liệuĐà NẵngTrần Hữu TínNv04
Trần Hữu TínDữ liệuCần TBùi Thị Lệ HằngNv05
Trần Hữu TínDữ liệuCần TNguyễn Thị AnNv06
Dương Đức HiệpSalesHải PhòngNguyễn Trung HiếuNv07
9
10
6
2. Phụ thuộc hàm
Ví dụ:
Phụ thuộc m X Y nghĩa là: Nếu hai b cùng giá trị cho các thuộc
tính trong X, thì chúng cũng phải cùng giá trị cho các thuộc tính trong Y.
11
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
Ký hiệuMột số tính chất sau:
manv → hotenVới mỗi manv có duy nhất một hoten.
manv → dchiVới mỗi manv có duy nhất một dchi.
manv → tenphVới mỗi manv có duy nhất một tenph
manv → trgphVới mỗi manv có duy nhất một trgph.
tenph → trgphVới mỗi tenph có duy nhất một trgph.
trgph → tenphVới mỗi trgph có duy nhất một tenph.
manv → hoten, dchi
manv → {hoten, dchi}
Với mỗi manv có duy nhất một hoten,
dchi
2. Phụ thuộc hàm
Các luật suy diễn cho phụ thuộc hàm
Gọi F tập các phụ thuộc hàm
Định nghĩa:
X Y được suy ra từ F, hay F suy ra X Y nếu bất kỳ bộ của quan hệ
thỏa F t cũng thỏa X Y.
hiệu: F X Y
H tiên đề Armstrong (hệ luật dẫn Armstrong)
1. Tính phản xạ: Y X => X Y
manv, hoten hoten
2. Tính tăng trưởng: X Y => XZ YZ (
{X Y} XZ YZ
)
cmnd hoten => cmnd, diachi hoten, diachi
3.Tính bắc cầu: {X Y, Y Z} => X Z
manv maph
maph tenph
=> manv tenph
12
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
11
12
7
2. Phụ thuộc hàm
Các luật suy diễn cho phụ thuộc hàm
Từ hệ tiên đề Armstrong ta suy ra một số tính chất sau
4. Tính kết hợp: {X Y, X Z} => X YZ
manv hoten
manv →gioitinh
5. Tính phân rã: {X YZ} => {X Y, X Z}
manv→hoten, gioitinh => {manv→hoten, manv→ gioitinh}
6.Tính tựa bắc cầu: {X Y, YZ W} => XZ W
masv malop
malop, mamh magv
13
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
manv→ hoten, gioitinh
Masv,mamh → magv
2. Phụ thuộc hàm
dụ:
Cho F={A→ B, A→ C, BC→ D}, chứng minh A→ D?
Giải:
1. A B (giả thiết)
2. A C (giả thiết)
3. A BC (từ 1,2: tính kết hợp)
4. BC D (giả thiết)
5. A D (từ 3,4: tính bắc cầu)
Vậy: A D
14
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
13
14
8
2. Phụ thuộc hàm
Bài tập phụ thuộc m
Bài 1: Cho F = {A B, BC D }.
Chứng minh: AC D
Bài 2: Cho F = {A BC, AC D }.
Chứng minh: AC BCD
Bài 3: Cho F = {CD H, B EG, E AD}.
Chứng minh: BC H
Bài 4: Cho F={AB C; B D; CD E; CE GH}
Chứng minh: AB GH.
15
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bài 1: Cho F = {A B, BC D }.
Chứng minh: AC D
Giải:
1. A B (giả thiết)
2. AC BC (từ 1: tính ng trưởng)
3. BC D (giả thiết)
4. AC →D (từ 2,3: tính bắc cầu)
Kết luận: AC →D
16
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
15
16
9
2. Phụ thuộc hàm
Bài 2: Cho F = {A BC, AC D }.
Chứng minh: AC BCD
Giải:
1. A BC (giả thiết)
2. AC →BC (từ 1: tính tăng trưởng)
3. AC D (giả thiết)
4. AC BCD (từ 2,3: tính kết hợp)
Kết luận: AC BCD
17
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bài 3: Cho F = {CD H, B EG, E AD}.
Chứng minh: BC H
Giải:
1. B EG (giả thiết)
2. B E (từ 1: tính phân rã)
3. E AD (giả thiết)
4. B AD (từ 2,3: tính bắc cầu)
5. BC ADC (từ 4: tính tăng trưởng)
6. BC DC (từ 5: tính phân rã)
7. CD H (giả thiết)
8. BC H (từ 6,7: tính bắc cầu)
Kết luận: BC H
18
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
17
18
10
2. Phụ thuộc hàm
Bài 4: Cho F={AB C; B D; CD E; CE GH}
Chứng minh: AB GH.
Giải:
1. AB C (giả thiết)
2. B D (giả thiết)
3. AB CB (từ 1: tính tăng trưởng )
4. CB →CD (từ 2: tính tăng trưởng)
5. AB CD (từ 3,4: tính bắc cầu)
6. CD E (giả thiết)
7. CD CE (từ 6: tính tăng trưởng)
8. AB CE (từ 5,7: tính bắc cầu)
9. CE GH (giả thiết)
10. AB GH (từ 8,9: tính bắc cầu)
Kết luận: AB GH
19
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng (Closure)
Bao đóng của tập phụ thuộc hàm
Bao đóng của tập phụ thuộc m F, hiệu F
+
tập tất cả các
phụ thuộc hàm được suy ra từ F.
Nếu F = F
+
thì F họ đầy đủ của các ph thuộc hàm
20
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
19
20
11
2. Phụ thuộc hàm
Bao đóng
Bài toán thành viên
Cho trước tập các phụ thuộc hàm F một phụ thuộc hàm f, bài
toán kiểm tra hay không f F
+
gọi bài toán thành viên.
Để giải quyết bài toán thành viên thật sự không đơn giản, mặc
F rất nhỏ nhưng F
+
thì thể rất lớn, tìm F
+
mất rất nhiều
công sức.
21
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng
dụ Bài toán thành viên
Cho phụ thuộc hàm F = {AE→ C, CG A, BD G, GA E, H
→D }. Câu hỏi: CG D thuộc F
+
không?
Giải:
Không thể dùng hệ dẫn luật Armstrong để giải bài này.
Cần phải cách khác đó tìm bao đóng của tập thuộc tính
22
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
21
22
12
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
Bao đóng của tập thuộc tính X đối với tập ph thuộc m F,
hiệu X
+
F
tập tất cả các thuộc tính A thể suy dẫn từ X nhờ F
X
+
F
= { A | X A F
+
}
F
+
bao đóng của tập phụ thuộc hàm
Nhận xét:
X X
+
F
X B F
+
B X
+
F
23
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
Thuật toán tìm bao đóng của tập thuộc tính X:
Input: (Q, F), X Q
+
(Q tập hữu hạn các thuộc tính), F tập
phụ thuộc hàm.
Output: X
+
F
24
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
23
24
13
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
X
+
F
:=X //since X
X
+
F
(khởi tạo X+=X)
Repeat // Lặp qua các phụ thuộc hàm
old := X
+
F
;
if there is an FD Z V in F
such that Z X
+
F
and V X
+
F
then X
+
F
:= X
+
F
V
Until old= X
+
F
// Dừng khi không còn phụ thuộc hàm nào thêm
vào X+
25
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
dụ 1:
Cho Q=ABCD F= {A B, A C, CD→ A}. Tính A
+
F
Giải:
A
+
F
=A
A
+
F
=AB (Vì A B)
A
+
F
=ABC (Vì A C)
Vậy A
+
F
=ABC
26
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
25
26
14
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
dụ 2:
Cho lược đồ quan h R(A, B, C, D, E, G, H) tập phụ thuộc
hàm F={ B A , DA CE, D→ H, GH→ C, AC D}. Tìm AC
+
F
Giải:
AC
+
F
= AC
AC
+
F
= ACD (vì AC D)
AC
+
F
= ACDE (vì DA →CE)
AC
+
F
= ACDEH (vì D →H)
Vậy AC
+
F
= ACDEH
Bài toán thực tế:
"Tìm tất cả các thuộc tính thể được xác định từ một khóa cụ thể".
27
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
Bài toán thành viên
Cho tập thuộc tính Q, tập phụ thuộc hàm F trên Q một phụ
thuộc hàm X Y trên Q. Câu hỏi đặt ra rằng X Y F
+
hay
không?
ớng dẫn:
Dựa vào tính chất
X → Y F
+
Y X
+
F
Ta tìm bao đóng X
+
F
Nếu Y X
+
F
thì X Y F
+
ngược lại X Y F
+
28
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
27
28
15
2. Phụ thuộc hàm
Bao đóng của tập thuộc tính
dụ 3: Cho lược đồ quan hệ R(A, B, C, D, E, G, H) tập
phụ thuộc hàm F={B→A , DA→CE, D→H, GH→C, AC→D}
Hỏi: AC E thuộc F
+
không?
Giải
Ta có AC
+
F
=ACDEH (đã thực hiện ở ví dụ 2)
Vì E AC
+
F
nên AC → E F
+
29
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng
Bài tập 1:
Cho Q(ABCDE) F={AE→B, AB→CE, CD→ A, B →D} Tính
BC
+
F
Giải:
BC
+
F
= BC
BC
+
F
= BCD (Vì B D)
BC
+
F
= BCDA (Vì CD A)
BC
+
F
= BCDAE (Vì AB CE)
Vậy BC
+
F
= BCDAE
30
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
29
30
16
2. Phụ thuộc hàm
Bao đóng
Bài tập 2:
Cho Q(ABCDEG) và F={BD→C,AEG→BC,CG→ AE,B→CG }
Hỏi: B D F
+
?
Giải:
B
+
F
= B
B
+
F
= BCG (vì B→CG)
B
+
F
= BCGAE (vì CG →AE)
D B
+
F
nên B D F
+
31
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bao đóng
Bài tập 3:
Cho lược đồ Q(ABCDEG) F={AE→C,CG→A,BD→G, GA→E }
Hỏi: BDC E F
+
?
Giải
BDC
+
F
=BDC
BDC
+
F
=BDCG (Vì BD→G)
BDC
+
F
=BDCGA (Vì CG →A)
BDC
+
F
=BDCGAE (Vì GA→E)
E BDC
+
F
nên BDC E F
+
32
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
31
32
17
2. Phụ thuộc hàm
Bao đóng
Bài tập 4
Cho Q(ABCDEGH) F={ B→A , D→CE, D→H, GH →C, AC→D}
Chứng minh: AC E F
+
Giải
AC
+
F
=AC
AC
+
F
=ACD (Vì AC D)
AC
+
F
= ACDE (Vì D CE)
AC
+
F
= ACDEH (Vì D H)
AC
+
F
= ACDEH E => AC E thuộc F
+
(hay AC E được suy ra từ F)
33
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Khóa
Định nghĩa
Cho lược đồ quan hệ Q(A
1
, A
2
, …, A
n
), Q
+
tập thuộc tính của Q,
F tập phụ thuộc m trên Q, K tập con của Q
+
.
Khi đó K gọi một khóa của Q nếu:
(i) K
+
F
= Q
+
(ii) Không tồn tại K’ K sao cho K
’+
F
= Q
+
Thuộc tính A được gọi thuộc tính khóa nếu A K, trong đó K
khóa của Q. Ngược lại thuộc tính A được gọi thuộc tính không
khóa.
K’ được gọi siêu khóa nếu K’ K.
Một quan h thể nhiều khóa
34
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
33
34
18
2. Phụ thuộc hàm
Khóa
Các phụ thuộc hàm:
ma_ct sohd, masp, sl
sohd, masp ma_ct, sl
Siêu khóa:
{ma_ct}
{ma_ct,sohd}, {ma_ct,masp}, {ma_ct,sl}, {ma_ct, sohd,masp},
{ma_ct,sohd,sl}, {ma_ct,masp, sl}, {ma_ct, sohd,masp, sl}
{sohd, masp}, {sohd, masp, sl}
Khóa: {ma_ct}, {sohd, masp}
Thuộc tính khóa: ma_ct, sohd, masp
Thuộc tính không khóa: sl
35
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
SLMaspSoHDMa_ct
20Bb01Hd011
5Bb02Hd012
13Bt01Hd023
20Bc04Hd024
4Bc04Hd035
CTHD
2. Phụ thuộc hàm
Thuật toán tìm Khóa
Tập thuộc tính nguồn, hiệu N, tập chứa những thuộc tính
chỉ xuất hiện vế trái của mọi phụ thuộc hàm
Tập thuộc tính trung gian, hiệu TG, tập chứa những thuộc
tính vừa xuất hiện vế trái, vừa xuất hiện vế phải trong các phụ
thuộc m
36
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
35
36
19
2. Phụ thuộc hàm
Thuật toán tìm Khóa
Bước 1:
Tính tập nguồn N.
Nếu N
+
F
= Q
+
thì chỉ 1 khoá N, ngược lại qua bước 2 (ghi chú Q
+
tập các thuộc tính của quan hệ).
Bước 2:
Tính tập trung gian TG.
Tính tập tất c các tập con X
i
của tập TG.
Bước 3: Tìm tập S chứa mọi siêu khóa S
i
Với mỗi X
i
, nếu (N X
i
)
+
F
= Q
+
thì S
i
=(N X
i
)
Nếu: (N X
i
)
+
F
= Q
+
khi đó N X
i
một khóa. Do vậy loại bỏ các
trường hợp X
j
: X
i
X
j
VD: X
i
=AB, X
j
=ABC. Ta thấy X
i
X
j
, nếu X
i
khóa thì không cần t
trường hợp X
j
nữa.
37
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Thuật toán tìm Khóa
Ví dụ: Cho lược đồ quan hệ Q(A, B, C) tập phụ thuộc hàm F =
{ AB C, C A}. Tìm mọi khóa của Q?
Giải:
Bước 1: N = {B}, N
+
F
= B Q
+
Bước 2: TG = {AC}, tập các tập con trung gian CTG = {A,C,
AC}
Bước 3
Vậy tập khóa S = {BA, BC}
38
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
(N X
i
)
+
F
N X
i
X
i
N
Khóa là BA. Loại các phần tử trong
CTG chứa A:AC
BAC=Q
+
BAAB
Khóa là BCBCA=Q
+
BCCB
37
38
20
2. Phụ thuộc hàm
Bài tập tìm khóa
Bài tập 1: Cho lược đồ quan hệ Q(ABCD) tập phụ thuộc hàm
F={ A B, A CD, BC →D}. m mọi khóa của Q?
Giải:
Bước 1: N = {A}, N
+
F
= ABCD = Q
+
Kết luận: lược đồ một khóa duy nhất: A
39
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
2. Phụ thuộc hàm
Bài tập tìm khóa
Bài tập 2: Cho lược đ quan hệ Q(ABCDE) tập phụ thuộc
hàm F={ BC A, A CD, C →DE}. Tìm mọi khóa của Q?
Giải:
Bước 1: N = {B}, N
+
F
= B Q
+
Bước 2: TG = {AC}, tập các tập con trung gian CTG = {A,C,
AC}
Bước 3:
Như vậy tập khoá S = {BC,BA}
40
11/21/2025 BÀI GIẢNG CƠ SỞ DỮ LIỆU
(N X
i
)
+
F
N X
i
X
i
N
Khóa là BA.BADCE=Q
+
BAAB
Khóa là BC. Loại các phần tử
trong CTG chứa C:AC
BCADE=Q
+
BCCB
39
40

Preview text:

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN
MÔN CƠ SỞ DỮ LIỆU - IT004 CHƯƠNG 6: PHỤ THUỘC HÀM VÀ DẠNG CHUẨN ThS. TẠ VIỆT PHƯƠNG phuongtv@uit.edu.vn 1 Nội dung
1. Các vấn đề gặp phải khi tổ chức CSDL 2. Phụ thuộc hàm 3. Dạng chuẩn 4. Kết luận 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 2 2 1
1. Các vấn đề gặp phải khi tổ chức CSDL
 Trước khi bàn về dạng chuẩn của một cơ sở dữ liệu, chúng ta
hãy phân tích xem tại sao trong một lược đồ quan hệ lại tồn tại
những vấn đề rắc rối. Chẳng hạn cho lược đồ quan hệ
Thi (masv, mamh, hoten, tenmonhoc, diem)
Một khóa chính: (masv, mamh) MASV MAMH HOTEN TENMONHOC DIEM SV01 CSDL Kim Trí Tú Cơ sở dữ liệu 7 SV01 HDT Kim Trí Tú Hướng đối tượng 2 SV01 XSTK Kim Trí Tú Xác suất thống kê 7 SV02 CTRR Kim Trân Ni Cấu trúc rời rạc 9 SV02 XSTK Kim Trân Ni Xác suất thống kê 5 SV03 CSDL Kim Thái Hanh Cơ sở dữ liệu 5 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 3 3
1. Các vấn đề gặp phải khi tổ chức CSDL
 Bất thường khi sửa dữ liệu (update anomaly): do hậu quả của
dư thừa dữ liệu, mỗi khi cập nhật tên của một sinh viên trong một
bộ nào đó nhưng vẫn còn tên cũ trong những bộ khác. Vì vậy
trong CSDL sẽ xuất hiện một sinh viên sẽ có nhiều tên MASV MAMH HOTEN TENMONHOC DIEM SV01 CSDL Kim Trí Tú Cơ sở dữ liệu 7 SV01 HDT Phác Thái Anh Hướng đối tượng 2 SV01 XSTK Kim Trí Tú Xác suất thống kê 7 SV02 CTRR Kim Trân Ni Cấu trúc rời rạc 9 SV02 XSTK Kim Trân Ni Xác suất thống kê 5 SV03 CSDL Kim Thái Hanh Cơ sở dữ liệu 5 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 4 4 2
1. Các vấn đề gặp phải khi tổ chức CSDL
 Bất thường khi thêm dữ liệu (insertion anomaly): Một sinh viên
mới mà chưa dự thi môn học nào thì thông tin về sinh viên này
không thể thêm vào quan hệ THI, vì khi thêm vào thì mamh phải
có giá trị null, mà mamh là thuộc tính khóa nên không thể mang giá trị null được MASV MAMH HOTEN TENMONHOC DIEM SV01 CSDL Kim Trí Tú Cơ sở dữ liệu 7 SV01 HDT Kim Trí Tú Hướng đối tượng 2 SV01 XSTK Kim Trí Tú Xác suất thống kê 7 SV02 CTRR Kim Trân Ni Cấu trúc rời rạc 9 SV02 XSTK Kim Trân Ni Xác suất thống kê 5 SV03 CSDL Kim Thái Hanh Cơ sở dữ liệu 5 SV4 Null Lạp Lệ Sa Mã Nặc Null Null Ba 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 5 5
1. Các vấn đề gặp phải khi tổ chức CSDL
 Bất thường khi xóa dữ liệu (deletion anomaly): khi xóa sinh viên
SV01 thi môn CSDL sẽ làm mất thông tin của môn học CSDL. MASV MAMH HOTEN TENMONHOC DIEM SV01 CSDL Kim Trí Tú Cơ sở dữ liệu 7 SV01 HDT Kim Trí Tú Hướng đối tượng 2 SV01 XSTK Kim Trí Tú Xác suất thống kê 7 SV02 CTRR Kim Trân Ni Cấu trúc rời rạc 9 SV02 XSTK Kim Trân Ni Xác suất thống kê 5 SV03 CSDL Kim Thái Hanh Cơ sở dữ liệu 5 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 6 6 3
1. Các vấn đề gặp phải khi tổ chức CSDL SINHVIEN THI MASV HOTEN MASV MAMH DIEM SV01 Kim Trí Tú SV01 CSDL 7 SV02 Kim Trân Ni SV01 HDT 2 SV03 Kim Thái Hanh SV01 XSTK 7 SV02 CTRR 9 SV02 XSTK 5 MONHOC SV03 CSDL 5 MAMH TENMONHOC CSDL Cơ sở dữ liệu CTRR Cấu trúc rời rạc XSTK Xác suất thống kê 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 7 7
2. Phụ thuộc hàm (Functional Dependencies)
 Phụ thuộc hàm (Functional Dependencies - FD) là các ràng
buộc (constraints) được suy ra từ ý nghĩa và các liên hệ giữa các thuộc tính dữ liệu.
 Phụ thuộc hàm và khóa được dùng để xác định dạng chuẩn của quan hệ 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 8 8 4
2. Phụ thuộc hàm (Functional Dependencies)  Định nghĩa:
• X,Y là hai tập thuộc tính trên quan hệ R
• r1, r2 là 2 bộ bất kỳ trên R
• Ta nói X xác định Y, ký hiệu X → Y, nếu và chỉ nếu
r1[X] = r2[X] ⇒ r1[Y] = r2[Y]
tức là với mỗi giá trị của X trong R chỉ tương đương với một giá trị của Y
• X → Y là một phụ thuộc hàm, hay Y phụ thuộc vào X
• X là vế trái của phụ thuộc hàm, Y là vế phải của phụ thuộc hàm 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 9 9 2. Phụ thuộc hàm
 Ví dụ: cho quan hệ NHANVIEN như sau: Manv Hoten Dchi Tenphong Trgphong Nv01 Nguyễn Thị An Hà Nội Kế toán Chu Đăng Thanh Nv02 Chu Đăng Thanh Hà Nội Kế toán Chu Đăng Thanh Nv03
Nguyễn Trung Hiếu Đà Nẵng Kế toán Chu Đăng Thanh Nv04 Trần Hữu Tín Đà Nẵng Dữ liệu Trần Hữu Tín Nv05 Bùi Thị Lệ Hằng Cần Thơ Dữ liệu Trần Hữu Tín Nv06 Nguyễn Thị An Cần Thơ Dữ liệu Trần Hữu Tín Nv07
Nguyễn Trung Hiếu Hải Phòng Sales Dương Đức Hiệp
Có nhận xét gì về: {manv, hoten}, {manv, dchi}, {manv,tenph},
{manv, trgph}, {tenph, trgph}, {manv, hoten, dchi} … ??? 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 10 10 5 2. Phụ thuộc hàm  Ví dụ: Một số tính chất sau: Ký hiệu
Với mỗi manv có duy nhất một hoten. manv → hoten
Với mỗi manv có duy nhất một dchi. manv → dchi
Với mỗi manv có duy nhất một tenph manv → tenph
Với mỗi manv có duy nhất một trgph. manv → trgph
Với mỗi tenph có duy nhất một trgph. tenph → trgph
Với mỗi trgph có duy nhất một tenph. trgph → tenph
Với mỗi manv có duy nhất một hoten, manv → hoten, dchi dchi manv → {hoten, dchi}
Phụ thuộc hàm X → Y có nghĩa là: Nếu hai bộ có cùng giá trị cho các thuộc
tính trong X, thì chúng cũng phải có cùng giá trị cho các thuộc tính trong Y. 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 11 11 2. Phụ thuộc hàm
 Các luật suy diễn cho phụ thuộc hàm
 Gọi F là tập các phụ thuộc hàm  Định nghĩa:
 X → Y được suy ra từ F, hay F suy ra X → Y nếu bất kỳ bộ của quan hệ
thỏa F thì cũng thỏa X → Y. Ký hiệu: F ╞ X → Y
 Hệ tiên đề Armstrong (hệ luật dẫn Armstrong)
1. Tính phản xạ: Y ⊆ X => X → Y manv, hoten → hoten
2. Tính tăng trưởng: X → Y => XZ → YZ ( {X → Y} ╞ XZ → YZ )
cmnd → hoten => cmnd, diachi → hoten, diachi
3.Tính bắc cầu: {X → Y, Y → Z} => X → Z manv → maph maph → tenph => manv → tenph 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 12 12 6 2. Phụ thuộc hàm
 Các luật suy diễn cho phụ thuộc hàm
 Từ hệ tiên đề Armstrong ta suy ra một số tính chất sau
4. Tính kết hợp: {X → Y, X → Z} => X → YZ manv → hoten manv→ hoten, gioitinh manv →gioitinh
5. Tính phân rã: {X → YZ} => {X → Y, X → Z}
manv→hoten, gioitinh => {manv→hoten, manv→ gioitinh}
6.Tính tựa bắc cầu: {X → Y, YZ → W} => XZ → W masv → malop Masv,mamh → magv malop, mamh → magv 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 13 13 2. Phụ thuộc hàm  Ví dụ:
 Cho F={A→ B, A→ C, BC→ D}, chứng minh A→ D?  Giải: 1. A → B (giả thiết) 2. A → C (giả thiết)
3. A → BC (từ 1,2: tính kết hợp) 4. BC → D (giả thiết)
5. A → D (từ 3,4: tính bắc cầu) Vậy: A → D 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 14 14 7 2. Phụ thuộc hàm
 Bài tập phụ thuộc hàm
 Bài 1: Cho F = {A → B, BC → D }. • Chứng minh: AC → D
 Bài 2: Cho F = {A → BC, AC → D }. • Chứng minh: AC → BCD
 Bài 3: Cho F = {CD → H, B → EG, E → AD}. • Chứng minh: BC → H
 Bài 4: Cho F={AB → C; B → D; CD → E; CE → GH} • Chứng minh: AB → GH. 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 15 15 2. Phụ thuộc hàm
 Bài 1: Cho F = {A → B, BC → D }. • Chứng minh: AC → D  Giải: 1. A → B (giả thiết)
2. AC → BC (từ 1: tính tăng trưởng) 3. BC → D (giả thiết)
4. AC →D (từ 2,3: tính bắc cầu) Kết luận: AC →D 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 16 16 8 2. Phụ thuộc hàm
 Bài 2: Cho F = {A → BC, AC → D }. • Chứng minh: AC → BCD  Giải: 1. A → BC (giả thiết)
2. AC →BC (từ 1: tính tăng trưởng) 3. AC → D (giả thiết)
4. AC → BCD (từ 2,3: tính kết hợp) Kết luận: AC → BCD 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 17 17 2. Phụ thuộc hàm
 Bài 3: Cho F = {CD → H, B → EG, E → AD}. • Chứng minh: BC → H  Giải: 1. B → EG (giả thiết)
2. B → E (từ 1: tính phân rã) 3. E → AD (giả thiết)
4. B → AD (từ 2,3: tính bắc cầu)
5. BC → ADC (từ 4: tính tăng trưởng)
6. BC → DC (từ 5: tính phân rã) 7. CD → H (giả thiết)
8. BC → H (từ 6,7: tính bắc cầu) Kết luận: BC → H 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 18 18 9 2. Phụ thuộc hàm
 Bài 4: Cho F={AB → C; B → D; CD → E; CE → GH} • Chứng minh: AB → GH.  Giải: 1. AB → C (giả thiết) 2. B → D (giả thiết)
3. AB → CB (từ 1: tính tăng trưởng )
4. CB →CD (từ 2: tính tăng trưởng)
5. AB → CD (từ 3,4: tính bắc cầu) 6. CD → E (giả thiết)
7. CD → CE (từ 6: tính tăng trưởng)
8. AB → CE (từ 5,7: tính bắc cầu) 9. CE → GH (giả thiết)
10. AB → GH (từ 8,9: tính bắc cầu) Kết luận: AB → GH 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 19 19 2. Phụ thuộc hàm  Bao đóng (Closure)
 Bao đóng của tập phụ thuộc hàm
• Bao đóng của tập phụ thuộc hàm F, ký hiệu F+ là tập tất cả các
phụ thuộc hàm được suy ra từ F.
 Nếu F = F+ thì F là họ đầy đủ của các phụ thuộc hàm 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 20 20 10 2. Phụ thuộc hàm  Bao đóng  Bài toán thành viên
◦ Cho trước tập các phụ thuộc hàm F và một phụ thuộc hàm f, bài
toán kiểm tra có hay không f ∈ F+ gọi là bài toán thành viên.
 Để giải quyết bài toán thành viên thật sự không đơn giản, vì mặc
dù F là rất nhỏ nhưng F+ thì có thể rất lớn, tìm F+ mất rất nhiều công sức. 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 21 21 2. Phụ thuộc hàm  Bao đóng
 Ví dụ Bài toán thành viên
Cho phụ thuộc hàm F = {AE→ C, CG → A, BD → G, GA → E, H
→D }. Câu hỏi: CG → D có thuộc F+ không?  Giải:
 Không thể dùng hệ dẫn luật Armstrong để giải bài này.
 Cần phải có cách khác đó là tìm bao đóng của tập thuộc tính 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 22 22 11 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính
 Bao đóng của tập thuộc tính X đối với tập phụ thuộc hàm F, ký
hiệu là X+F là tập tất cả các thuộc tính A có thể suy dẫn từ X nhờ F
 X+F = { A | X → A ∈ F+ }
• F+ là bao đóng của tập phụ thuộc hàm  Nhận xét: • X ⊆ X+F
• X → B ∈ F+ ⇔ B ⊆ X+F 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 23 23 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính
 Thuật toán tìm bao đóng của tập thuộc tính X:
 Input: (Q, F), X ⊆ Q+ (Q là tập hữu hạn các thuộc tính), F là tập phụ thuộc hàm.  Output: X+F 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 24 24 12 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính X+F :=X
//since X ⊆ X+F (khởi tạo X+=X) Repeat
// Lặp qua các phụ thuộc hàm old := X+F ; if there is an FD Z → V in F
such that Z ⊆ X+F and V ⊈ X+F then X+F := X+F ∪ V Until old= X+F
// Dừng khi không còn phụ thuộc hàm nào thêm vào X+ 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 25 25 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính  Ví dụ 1:
Cho Q=ABCD và F= {A → B, A → C, CD→ A}. Tính A+F Giải: A+F =A A+F =AB (Vì A → B) A+F =ABC (Vì A → C) Vậy A+F =ABC 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 26 26 13 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính  Ví dụ 2:
Cho lược đồ quan hệ R(A, B, C, D, E, G, H) và tập phụ thuộc
hàm F={ B → A , DA → CE, D→ H, GH→ C, AC → D}. Tìm AC+F  Giải: AC+F = AC AC+F = ACD (vì AC →D) AC+F = ACDE (vì DA →CE) AC+F = ACDEH (vì D →H) Vậy AC+F = ACDEH Bài toán thực tế:
"Tìm tất cả các thuộc tính có thể được xác định từ một khóa cụ thể". 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 27 27 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính  Bài toán thành viên
◦ Cho tập thuộc tính Q, tập phụ thuộc hàm F trên Q và một phụ
thuộc hàm X → Y trên Q. Câu hỏi đặt ra rằng X → Y ∈ F+ hay không?  Hướng dẫn: • Dựa vào tính chất X → Y ∈ F+ ⇔ Y ⊆ X+F • Ta tìm bao đóng X+F
Nếu Y ⊆ X+F thì X → Y ∈ F+ ngược lại X → Y ∉ F+ 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 28 28 14 2. Phụ thuộc hàm
 Bao đóng của tập thuộc tính
 Ví dụ 3: Cho lược đồ quan hệ R(A, B, C, D, E, G, H) và tập
phụ thuộc hàm F={B→A , DA→CE, D→H, GH→C, AC→D}
Hỏi: AC → E có thuộc F+ không?  Giải
Ta có AC+F=ACDEH (đã thực hiện ở ví dụ 2)
Vì E ⊆ AC+F nên AC → E ∈ F+ 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 29 29 2. Phụ thuộc hàm  Bao đóng  Bài tập 1:
• Cho Q(ABCDE) và F={AE→B, AB→CE, CD→ A, B →D} Tính BC+F  Giải: • BC+F= BC • BC+F= BCD (Vì B → D) • BC+F= BCDA (Vì CD → A)
• BC+F= BCDAE (Vì AB → CE) • Vậy BC+F = BCDAE 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 30 30 15 2. Phụ thuộc hàm  Bao đóng  Bài tập 2:
• Cho Q(ABCDEG) và F={BD→C,AEG→BC,CG→ AE,B→CG } • Hỏi: B → D ∈ F+?  Giải: • B+F = B • B+F = BCG (vì B→CG) • B+F = BCGAE (vì CG →AE)
• Vì D ⊄ B+F nên B → D ∉ F+ 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 31 31 2. Phụ thuộc hàm  Bao đóng  Bài tập 3:
• Cho lược đồ Q(ABCDEG) và F={AE→C,CG→A,BD→G, GA→E } • Hỏi: BDC → E ∈ F+?  Giải • BDC+F=BDC • BDC+F=BDCG (Vì BD→G) • BDC+F=BDCGA (Vì CG →A) • BDC+F=BDCGAE (Vì GA→E)
• Vì E ⊆ BDC+F nên BDC → E ∈ F+ 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 32 32 16 2. Phụ thuộc hàm  Bao đóng  Bài tập 4
• Cho Q(ABCDEGH) và F={ B→A , D→CE, D→H, GH →C, AC→D}
• Chứng minh: AC → E ∈ F+  Giải • AC+F =AC • AC+F =ACD (Vì AC → D) • AC+F = ACDE (Vì D → CE) • AC+F = ACDEH (Vì D → H)
• Vì AC+F = ACDEH ⊇ E => AC → E thuộc F+
(hay AC → E được suy ra từ F) 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 33 33 2. Phụ thuộc hàm  Khóa  Định nghĩa
• Cho lược đồ quan hệ Q(A1, A2, …, An), Q+ là tập thuộc tính của Q,
F là tập phụ thuộc hàm trên Q, K là tập con của Q+.
 Khi đó K gọi là một khóa của Q nếu: (i) K+F = Q+
(i ) Không tồn tại K’⊂ K sao cho K’+F = Q+
• Thuộc tính A được gọi là thuộc tính khóa nếu A ∈ K, trong đó K là
khóa của Q. Ngược lại thuộc tính A được gọi là thuộc tính không khóa.
• K’ được gọi là siêu khóa nếu K’ ⊇ K.
• Một quan hệ có thể có nhiều khóa 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 34 34 17 2. Phụ thuộc hàm CTHD Ma_ct SoHD Masp SL  Khóa 1 Hd01 Bb01 20  Các phụ thuộc hàm: 2 Hd01 Bb02 5 • ma_ct → sohd, masp, sl 3 Hd02 Bt01 13 • sohd, masp → ma_ct, sl 4 Hd02 Bc04 20  Siêu khóa: 5 Hd03 Bc04 4 • {ma_ct}
• {ma_ct,sohd}, {ma_ct,masp}, {ma_ct,sl}, {ma_ct, sohd,masp},
{ma_ct,sohd,sl}, {ma_ct,masp, sl}, {ma_ct, sohd,masp, sl}
• {sohd, masp}, {sohd, masp, sl}
 Khóa: {ma_ct}, {sohd, masp}
 Thuộc tính khóa: ma_ct, sohd, masp
 Thuộc tính không khóa: sl 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 35 35 2. Phụ thuộc hàm  Thuật toán tìm Khóa
 Tập thuộc tính nguồn, ký hiệu là N, là tập chứa những thuộc tính
chỉ xuất hiện ở vế trái của mọi phụ thuộc hàm
 Tập thuộc tính trung gian, ký hiệu là TG, là tập chứa những thuộc
tính vừa xuất hiện ở vế trái, vừa xuất hiện ở vế phải trong các phụ thuộc hàm 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 36 36 18 2. Phụ thuộc hàm  Thuật toán tìm Khóa  Bước 1: • Tính tập nguồn N.
• Nếu N+F = Q+ thì chỉ có 1 khoá là N, ngược lại qua bước 2 (ghi chú Q+
là tập các thuộc tính của quan hệ).  Bước 2: • Tính tập trung gian TG.
• Tính tập tất cả các tập con Xi của tập TG.
 Bước 3: Tìm tập S chứa mọi siêu khóa Si
• Với mỗi Xi , nếu (N ∪ Xi)+F= Q+ thì Si =(N ∪ Xi)
• Nếu: (N ∪ Xi)+F = Q+ khi đó N ∪ Xi là một khóa. Do vậy loại bỏ các trường hợp Xj: Xi ⊂ Xj
 VD: Xi =AB, Xj =ABC. Ta thấy Xi ⊂ Xj , nếu Xi là khóa thì không cần xét trường hợp Xj nữa. 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 37 37 2. Phụ thuộc hàm  Thuật toán tìm Khóa
 Ví dụ: Cho lược đồ quan hệ Q(A, B, C) và tập phụ thuộc hàm F =
{ AB → C, C → A}. Tìm mọi khóa của Q?  Giải:
• Bước 1: N = {B}, N+F= B ≠ Q+
• Bước 2: TG = {AC}, tập các tập con trung gian là CTG = {A,C, AC} • Bước 3 N X N ∪ X (N ∪ X i i i)+F B A BAC=Q+ BA
Khóa là BA. Loại các phần tử trong CTG chứa A:AC B C BCA=Q+ BC Khóa là BC
• Vậy tập khóa S = {BA, BC} 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 38 38 19 2. Phụ thuộc hàm  Bài tập tìm khóa
 Bài tập 1: Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm
F={ A → B, A → CD, BC →D}. Tìm mọi khóa của Q?  Giải:
• Bước 1: N = {A}, N+F= ABCD = Q+
• Kết luận: lược đồ có một khóa duy nhất: A 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 39 39 2. Phụ thuộc hàm  Bài tập tìm khóa
 Bài tập 2: Cho lược đồ quan hệ Q(ABCDE) và tập phụ thuộc
hàm F={ BC → A, A → CD, C →DE}. Tìm mọi khóa của Q?  Giải:
• Bước 1: N = {B}, N+F = B ≠ Q+
• Bước 2: TG = {AC}, tập các tập con trung gian là CTG = {A,C, AC} • Bước 3: N X N ∪ X (N ∪ X i i i)+F B A BADCE=Q+ BA Khóa là BA. B C BCADE=Q+ BC
Khóa là BC. Loại các phần tử trong CTG chứa C:AC
• Như vậy tập khoá S = {BC,BA} 11/21/2025
BÀI GIẢNG CƠ SỞ DỮ LIỆU 40 40 20