CƠ SỞ DỮ LIỆU
Bài 4:
PHỤ THUỘC HÀM
13/08/2012 1 HVĐ – THQL
BÀI TOÁN THỰC TẾ
• Nghiên cứu hình thức các ràng buộc
– Xây dựng cấu trúc bảo đảm các ràng buộc tự động
thoả, do đó không cần lập trình
– Đánh giá một lược đồ cơ sở dữ liệu
13/08/2012 HVĐ – THQL 2
MỤC TIÊU
• Kiến thức:
– Phụ thuộc hàm
– Dạng chuẩn
– Kỹ thuật tableaux
• Kỹ năng:
– Tìm phủ tối tiểu
– Xác định dạng chuẩn
– Đánh giá lược đồ CSDL
• Yêu cầu: áp dụng thực tế
13/08/2012 HVĐ – THQL 3
NỘI DUNG
• Phụ thuộc hàm
• Phủ tối tiểu
• Dạng chuẩn
• Kỹ thuật tableaux
• Đánh giá lược đồ CSDL
• Khảo sát tình huống
13/08/2012 HVĐ – THQL 4
PHỤ THUỘC HÀM
• Phụ thuộc hàm
– Khái niệm
– Bài toán thành viên
• Phủ tối tiểu
• Dạng chuẩn
• Kỹ thuật tableaux
• Đánh giá lược đồ CSDL
• Khảo sát tình huống
13/08/2012 HVĐ – THQL 5
QUAN HỆ HÀM
• Hình bên có
– Quan hệ thuần túy
– Quan hệ đường
• Không có quan hệ hàm
• Quan hệ hàm từ X vào Y
• Quan hệ hàm từ Y vào X
• Hàm từ X vào Y:
– Mỗi x có duy nhất y
– Nếu chiếu xuống XY
• Bảng: x xuất hiện một lần
• Lược đồ: X là siêu khoá
13/08/2012 6 HVĐ – THQL
X
Y
MaSV MaLop
S01
S02
S03
S04
L1
L2
L2
L2
PHỤ THUỘC HÀM
• Phụ thuộc hàm là một
loại ràng buộc toàn vẹn
• Phụ thuộc hàm là luật
– PTH X Y ngụ ý: biết
X sẽ xác định được Y
– Quan hệ r thỏa X Y
• Các dòng có X giống
nhau thì Y cũng vậy
• r[X,Y] có X siêu khoá
– Luật nên lưu riêng để áp
dụng, ví dụ
• HDSo NLap
• MaHG Dgia
• HDSo,MaHG SoL
13/08/2012 7 HVĐ – THQL
HDSo NLap MaHG DGia SoL
H01
H01
H02
H02
12
12
14
14
H01
H02
H01
H03
12
5
12
20
5
2
4
3
HDSo NLap
H01
H02
12
14
THẢO LUẬN
• Tìm các phụ thuộc hàm
• Tổ chức lại các bảng
• Bài tập 1, 13a
13/08/2012 8 HVĐ – THQL
MSV HT ML TL MM TM STC MGV TGV KH ĐT
a Tèo 1 T x DSTT 5 p Minh T 6
a Tèo 1 T y LTHT 3 q Lan T 7
a Tèo 1 T z CSDL 3 p Minh T 9
b Nị 2 K x DSTT 5 q Lan T 5
b Nị 2 K y LTHT 3 q Lan T 7
b Nị 2 K z CSDL 3 p Minh T 8
c Bi 1 T x DSTT 5 p Minh T 6
c Bi 1 T y LTHT 3 q Lan T 4
c Bi 1 T z CSDL 3 p Minh T 8
QUY TẮC QUẢN LÝ
• Cho cơ sở dữ liệu lưu các dữ liệu liên quan đến
{Gviên, Sviên, Lớp , Môn, Khoa, Điểm, Tênsv}
• Các quy tắc sau đây, cái nào là phụ thuộc hàm
– Sinh viên thuộc về một lớp
– Sinh viên thuộc về một khoa
– Lớp thuộc về một khoa
– Sinh viên học một môn phải có điểm
– Sinh viên phải có tên
– Mỗi lớp có không quá 30 sinh viên
• Tổ chức lại các bảng
13/08/2012 9 HVĐ – THQL
BÀI TOÁN THÀNH VIÊN
• Ta nói f là hệ quả của F (hay được suy từ F)
nếu một quan hệ r bất kỳ thoả F thì thoả f
• Ký hiệu tập các phụ thuộc hàm hệ quả là F
+
và
được gọi là bao đóng của F
• Bài toán kiểm tra f F được gọi là bài toán
thành viên
13/08/2012 HVĐ – THQL 10
LUẬT DẪN
• Bộ luật
– F1: XX
– F2: XY suy ra XZY
– F3: XY và XZ suy ra XYZ
– F4: XYZ suy ra XY và XZ
– F5: XY và YZ suy ra XZ
– F6: XY và YZW suy ra XZW
• Hệ tiên đề Amstrong {F1, F2, F6}
• {A
D,AB
E,BI
E,CD
I,E
C}
⊨
AE
DI
13/08/2012 HVĐ – THQL 11
BAO ĐÓNG
• X
+
F
= { A | (X A) F
+
}
• Áp dụng Y X
+
F
X Y (F
+
)
• Kiểm tra tính thành viên f = AE
DI đối với
F = {A
D,AB
E,BI
E,CD
I,E
C}
– Tính AE
+
= AEDCI
– Ta có DI AE
+
– Suy ra f F
+
13/08/2012 12 HVĐ – THQL
THẢO LUẬN
• Bài tập 2, 3, 4, 5
13/08/2012 HVĐ – THQL 13
PHỦ TỐI TIỂU
• Phụ thuộc hàm
• Phủ tối tiểu
– Khái niệm
– Thuật toán
• Dạng chuẩn
• Kỹ thuật tableaux
• Đánh giá lược đồ CSDL
• Khảo sát tình huống
13/08/2012 HVĐ – THQL 14
PHỦ TỐI TIỂU
• Phụ thuộc hàm, như luật, đúng trong ngữ cảnh
nhất định. Với ngữ cảnh cho trước chúng ta có
tập phụ thuộc hàm
• Xác định phụ thuộc hàm để lưu riêng một cách
tuỳ tiện có thể dẫn đến dư thừa
• Tập phụ thuộc hàm không dư thừa được gọi là
phủ tối tiểu
– Vế phải gồm một thuộc tính
– Vế trái không dư thừa
– Không có phụ thuộc hàm dư thừa
• Dư thừa được xác định nhờ hệ tiên đề Armstrong
13/08/2012 15 HVĐ – THQL
THẢO LUẬN
• Các ký tự GSLMKNDHY là viết tắt của
Gviên, Sviên, Lớp, Môn, Khoa, Ngành, Điểm,
Hệ, học kỲ
• Xét hai ngữ cảnh
– Tổng quát: NM Y, SM D, N K, L HN,
S HN, M H, LM G
– Trong một học kỳ: S L
• Với mỗi ngữ cảnh cho biết F có tối tiểu không
13/08/2012 16 HVĐ – THQL
TÌM PHỦ TỐI TIỂU
• Cơ sở: bài toán thành viên
• Các bước
– Phân rã
– Rút gọn vế trái
– Rút gọn phụ thuộc hàm
13/08/2012 17 HVĐ – THQL
VÍ DỤ
• Dùng thuật toán:
– Phân rã
– Rút gọn VT
– Rút gọn PTH
• Dùng bộ luật dẫn
13/08/2012 18 HVĐ – THQL
A->C
AB->C
C->DI
CD->I
EC->AB
EI->C
A->C
AB->C
C->D
C->I
CD->I
EC->A
EC->B
EI->C
C
A+=A
EI+=EI
A->C
C->DI
EC->AB
EI->C
A->C
C->D
C->I
EC->A
EC->B
EI->C
A+=ACDI
B+=B
C+=CDI
D+=D
E+=E
I+=I
THẢO LUẬN
• Dùng luật
• Dùng thuật toán
13/08/2012 19 HVĐ – THQL
{ S -> D,
I -> B,
IS -> Q,
B -> O }
{ A -> BC,
B -> AC,
C -> A }
{ AB -> C,
C -> A,
BC -> D,
ACD -> B,
D -> EG,
BE -> C,
CG -> BD,
CE -> AG }
DƯ THỪA PHẢI
• Tìm những thuộc tính xuất hiện
ở vế phải nhiều lần (ví dụ D)
• Chọn một PTH liên quan (ví dụ
H->KDN)
• Bỏ thuộc tính này, rồi tính bao
đóng (ví dụ H
+
=HKDN)
• Kết luận (ví dụ H->KDN dư
thừa D)
R(KDHNMLG)
F={ K -> D,
H -> KDN,
M -> G,
HM -> L}
13/08/2012 20 HVĐ – THQL
THỬ SỨC
• Xét I và C->DI
• Thử bỏ I, được C->D, tính C
+
= CDI
• Vậy C->DI dư thừa phải
F =
{A->C
AB->C
C->DI
CD->I
EC->AB
EI->C}
13/08/2012 21 HVĐ – THQL
DƯ THỪA TRÁI
• Chọn một PTH có hơn 1 thuộc
tính ở vế trái (ví dụ HNM->L)
• Bỏ 1 thuộc tính, tính bao đóng
(ví dụ HM
+
=HMLKNDG)
• Kết luận (ví dụ HNM->L dư
thừa N)
R(KDHNMLG)
F={ K -> D,
H -> KN,
M -> G,
HNM -> L}
13/08/2012 22 HVĐ – THQL
THỬ SỨC
• Xét CD -> I
• Tính C
+
= CDI, chứa D
• Vậy CD -> I dư thừa trái
F =
{A->C
AB->C
C->DI
CD->I
EC->AB
EI->C}
13/08/2012 23 HVĐ – THQL
DẠNG CHUẨN
• Phụ thuộc hàm
• Phủ tối tiểu
• Dạng chuẩn
– Khái niệm
– Bài toán tìm tập khoá
– Bài toán xác định dạng chuẩn
– Bài toán tìm tập phụ thuộc hàm chiếu
• Kỹ thuật tableaux
• Đánh giá lược đồ CSDL
• Khảo sát tình huống
13/08/2012 HVĐ – THQL 24
VI PHẠM DẠNG CHUẨN
• Dạng chuẩn là một khái niệm dùng để đo mức độ
dư thừa trong lưu trữ, qua việc phát hiện các PTH
• Tìm thấy 1 PTH là tìm ra 1 vi phạm dạng chuẩn
• Trong các bảng trên, tìm thấy có các vi phạm dạng
chuẩn sau
– Ở bảng bên trái, là P N
– Ở bảng bên phải, là M G
13/08/2012 HVĐ – THQL 25
HDSo NLap MaHG DGia SoL
H01
H01
H02
H02
12
12
14
14
H01
H02
H01
H03
12
5
12
20
5
2
4
3