• 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.. với X, Y là các tập thuộc tính trong 1 lược đồ quan hệ.. Phụ thuộc hàm hiển nhiên Trivial DependenciesNếu
Trang 1THIẾT KẾ CƠ SỞ DỮ LIỆU
QUAN HỆ (Relational Database Designing)
Phần IV – PHỤ THUỘC HÀM
(Functional Dependency)
Trang 2Phụ 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
Trang 3Phụ thuộc hàm – Định nghĩa
Cho Q(A1,A2,…,An); X, Y là 2 tập con của Q + ; q là 1
quan hệ trên Q; t1, t2 là 2 bộ bất kỳ của q
Ta có X xác định Y , ký hiệu X Y , nghĩa là
(t1.X=t2.X => t1.Y=t2.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
Định nghĩa về Phụ thuộc hàm
Trang 4Phụ 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
Trang 5Thuậ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)
Trang 6Thuậ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)
Trang 7Hệ 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 = {f1,f2,…,fn}, 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)
Trang 8Cá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)
Trang 9Hệ 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)
Trang 10Bao đóng của tập thuộc tính
Cho lược đồ quan hệ Q(A1,A2,…,An) 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 XF+,
là tập các thuộc tính Ai :
XF+= Ai với XAi được suy diễn từ F nhờ hệ luật dẫn Amstrong
Hệ luật dẫn Amstrong (p.4)
Trang 11Các tính chất của Bao đóng
Hệ luật dẫn Amstrong (p.5)
Trang 12Thuậ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, Xi = X
Bước 2 : Duyệt tập F,
Nếu Fk = YZ có Y Xi thì
Xi+1 = Xi Z và F = F \ Fk
Bước 3 : Nếu Xi+1 Xi :
i = i+1, trở lại bước 2 Nếu Xi+1 = Xi : kết thúc
Hệ luật dẫn Amstrong (p.6)
Trang 13Thuật toán tìm Bao đóng – Ví dụ
Cho : Q(ABCDEGH), F = {
}
Hệ luật dẫn Amstrong (p.7)
Trang 14Tìm Bao đóng - Ví dụ (t.t)
Hệ luật dẫn Amstrong (p.8)
Bước Các giá trị của i,Xi, F
1 i = 0; X0 = X = {AC}
2 Xi+1=X1={ACD}; F = F \ f5= {f1,f2,f3,f4}
3 X1 X0 => i = i+1 = 1, quay lại bước 2
4 Xi+1=X2={ACDH}; F = F \ f3= {f1,f2,f4}
5 X2 X1 => i = i+1 = 2, quay lại bước 2
6 Xi+1=X3={ACDHE}; F = F \ f2= {f1,f4}
7 X3 X2 => i = i+1 = 3, quay lại bước 2
8 Không có fk nào.
Trang 15Thuật toán Kiểm tra F|=d
Cho d = XY, kiểm tra F|=d ?
Bước 1 : Tính X+=XF+
Bước 2 : Y X+ <=> F|=d
Hệ luật dẫn Amstrong (p.9)
Trang 16Tính chất của các PTH F+
Xét d = XY F+ , => F |= d hay F+ |= d
F |= d, => Y XF+ (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 => XF+ = X (2)
Hệ luật dẫn Amstrong (p.10)
Trang 17Thuật toán tìm F+
Input : Lược đồ Q, tập PTH F
Bước 2 : Ứng với mỗi tập con X của TN:
Hệ luật dẫn Amstrong (p.11)