THIẾT KẾ CƠ SỞ DỮ LIỆU
QUAN HỆ (Relational Database Designing)
Phần IV – PHỤ THUỘC HÀM
(Functional Dependency)
Phụ thuộc hàm – Khái niệm
•
Phụ thuộc hàm là công cụ để biểu diễn hình thức
các RBTV phụ thuộc.
•
Các lý thuyết về Phụ thuộc hàm ứng dụng nhiều
trong bài toán Chuẩn Hóa CSDL.
•
Ký hiệu :
X Y : Y phụ thuộc hàm vào X hay X xác
định Y.
với X, Y là các tập thuộc tính (trong 1 lược đồ
quan hệ).
Khái niệm về Phụ thuộc hàm
Phụ thuộc hàm – Định nghĩa
Cho Q(A
1
,A
2
,…,A
n
); X, Y là 2 tập con của Q
+
; q là 1 quan
hệ trên Q; t
1
, t
2
là 2 bộ bất kỳ của q.
Ta có X xác định Y , ký hiệu X Y , nghĩa là
(t
1
.X=t
2
.X => t
1
.Y=t
2
.Y)
Nếu 2 bộ bất kỳ trong q giống nhau trên X thì phải giống
nhau trên Y.
X Y là PTH của Q, khi X Y đúng với mọi q là quan
hệ trên Q
Hệ quả : ∀Q, ∀X ⊂ Q
+
, X ∅
Định nghĩa về Phụ thuộc hàm
Phụ thuộc hàm hiển nhiên (Trivial Dependencies)
Nếu X ⊇ Y thì XY luôn đúng
Trong trường hợp này (X ⊇ Y), XY được
gọi là Phụ thuộc hàm hiển nhiên.
Ví dụ : XX
Khi chuẩn hóa CSDL, ta thường không quan
tâm đến các PTH hiển nhiên.
Phụ thuộc hàm hiển nhiên
Thuật toán kiểm tra PTH : Satifies
Input : _ Quan hệ q,
_ Tập thuộc tính X, Y
Output :
_ True nếu XY, ngược lại, False
Thuật toán kiểm tra Phụ thuộc hàm (p.1)
Thuật toán kiểm tra PTH (t.t)
Bước 1 :
Sắp lại các bộ trong q sao cho các bộ giống
nhau trên X nằm kề nhau.
Bước 2 :
Kiểm tra nếu tất cả các bộ giống nhau trên
X cũng giống nhau trên Y thì trả về True,
ngược lại, trả về False.
Thuật toán kiểm tra Phụ thuộc hàm (p.2)
Hệ luật dẫn Amstrong(Amstrong inference rule) -
Một số định nghĩa
Ký hiệu F là tập các phụ thuộc hàm của lược đồ quan hệ
Q, F = {f
1
,f
2
,…,f
n
}, quy ước ta không quan tâm đến các
phụ thuộc hàm hiển nhiên.
Định nghĩa : Phụ thuộc hàm được suy diễn logic từ F.
Phụ thuộc hàm d = XY được suy diễn logic từ F nếu với
mọi q trên Q thỏa F thì cũng thỏa d, ký hiệu F |= XY ,
hay F|=d.
Định nghĩa : Bao đóng của F(Closure), ký hiệu F
+
, là tập tất cả
các phụ thuộc hàm được suy diễn logic từ F
Hệ luật dẫn Amstrong (p.1)
Các tính chất của Bao đóng F
+
1. Tính phản xạ
–
Với mọi F
+
, ta luôn có F ⊆ F
+
2. Tính đơn điệu
–
Nếu F ⊆ G thì F
+
⊆ G
+
3. Tính lũy đẳng
–
Với mọi F, ta luôn có (F
+
)
+
= F
+
Định nghĩa : Phủ của F, ký hiệu F
-
= G - F
+
,
với G
là tập tất cả các phụ thuộc hàm có thể có của Q
Hệ luật dẫn Amstrong (p.2)
Hệ luật dẫn Amstrong
Cho X,Y,Z,W là các tập con của Q
+
; q là 1 quan hệ bất kỳ
trên Q.
1. Luật phản xạ (Reflexive rule) : X X
2. Luật thêm vào (Augmentation rule) : X Y => XZ Y
3. Luật hợp (Union rule) : X Y, X Z => X YZ
4. Luật phân rã (Decomposition rule) : X YZ => X Y, X Z
5. Luật bắt cầu (Transitive rule) : X Y, Y Z => X Z
6. Luật giả bắt cầu (Pseudo transitive rule) :
X Y, YZ W => XZ W
Hệ luật dẫn Amstrong (p.3)
Bao đóng của tập thuộc tính
Cho lược đồ quan hệ Q(A
1
,A
2
,…,A
n
) với quan hệ q;
F là tập phụ thuộc hàm trên Q, X là 1 tập con của
Q
+
.
Định nghĩa : Bao đóng của X trên F, ký hiệu X
F
+
, là
tập các thuộc tính A
i
:
X
F
+
= ∪A
i
với XA
i
được suy diễn từ F nhờ hệ luật
dẫn Amstrong.
Khi không có nhầm lẫn về F, ta viết X
+
thay vì X
F
+
Hệ luật dẫn Amstrong (p.4)
Các tính chất của Bao đóng
Hệ quả : Bao đóng của Q chính là Q
+
: Q
F
+
= Q
+
•
Tính phản xạ : X ⊆ X
+
•
Tính đơn điệu : X ⊆ Y => X
+
⊆ Y
+
•
Tính lũy đẳng : (X
+
)
+
= X
+
•
(XY)
+
⊇ X
+
Y
+
•
(X
+
Y)
+
= (XY
+
)
+
= (X
+
Y
+
)
+
•
X Y Y
+
⊆ X
+
•
X X
+
, X
+
X
•
X
+
= Y
+
X Y và Y X
Hệ luật dẫn Amstrong (p.5)
Thuật toán tìm Bao đóng
Input : lược đồ quan hệ Q, tập phụ thuộc hàm F, tập
thuộc tính X.
Output : X
+
Bước 1 : i = 0, X
i
= X
Bước 2 : Duyệt tập F,
Nếu F
k
= YZ có Y ⊆ X
i
thì
X
i+1
= X
i
∪ Z và F = F \ F
k
Bước 3 : Nếu X
i+1
≠ X
i
:
i = i+1, trở lại bước 2
Nếu X
i+1
= X
i
: kết thúc
Hệ luật dẫn Amstrong (p.6)
Thuật toán tìm Bao đóng – Ví dụ
Cho : Q(ABCDEGH), F = {
f
1
: B A
f
2
: DA CE
f
3
: D H
f
4
: GH C
f
5
: AC D
}
X = {AC} , tìm X
+
?
Hệ luật dẫn Amstrong (p.7)
Tìm Bao đóng - Ví dụ (t.t)
Hệ luật dẫn Amstrong (p.8)
Bước Các giá trị của i,X
i
, F
1 i = 0; X
0
= X = {AC}
2 X
i+1
=X
1
={ACD}; F = F \ f
5
= {f
1
,f
2
,f
3
,f
4
}
3
X
1
≠ X
0
=> i = i+1 = 1, quay lại bước 2
4 X
i+1
=X
2
={ACDH}; F = F \ f
3
= {f
1
,f
2
,f
4
}
5
X
2
≠ X
1
=> i = i+1 = 2, quay lại bước 2
6 X
i+1
=X
3
={ACDHE}; F = F \ f
2
= {f
1
,f
4
}
7
X
3
≠ X
2
=> i = i+1 = 3, quay lại bước 2
8 Không có f
k
nào.
9 X
4
= X
3
=> Kết thúc giải thuật. X
+
={ACDHE}
Thuật toán Kiểm tra F|=d
Cho d = XY, kiểm tra F|=d ?
Bước 1 : Tính X
+
=X
F
+
Bước 2 : Y ⊆ X
+
<=> F|=d
Hệ luật dẫn Amstrong (p.9)
Tính chất của các PTH ∈ F
+
Xét d = X Y ∈ F
+
, => F |= d hay F
+
|= d
F |= d, => Y ⊆ X
F
+
(1)
Gọi TN là tập các thuộc tính có xuất hiện ở vế trái
của ít nhất 1 PTH trong F
Từ thuật toán tìm bao đóng của tập thuộc tính, ta
có kết luận rằng : Nếu X ∉ TN => X
F
+
= X (2)
Hệ luật dẫn Amstrong (p.10)
Thuật toán tìm F
+
Input : Lược đồ Q, tập PTH F
Output : Tập PTH F
+
Bước 1 : F
+
= ∅, Tìm tất cả các tập con của TN
Bước 2 : Ứng với mỗi tập con X của TN:
2.1 Tính X
F
+
2.2 Tìm tất cả các tập con Y của X
F
+
và Y ⊄ X
2.3 F
+
= F
+
+ XY
Hệ luật dẫn Amstrong (p.11)