Hệ tiên đề Amstrong 3.. Bao đóng phụ thuộc hàm, tập thuộc tính 4.. Phụ thuộc hàm Định nghĩa: Cho RU, với R là quan hệ và U là tập thuộc tính... Trong quan hệ SVMaSV,Ten,Diachi,Nga
Trang 1CHƯƠNG V:
PHỤ THUỘC HÀM
Trang 2Nội dung chi tiết
1 Phụ thuộc hàm
2 Hệ tiên đề Amstrong
3 Bao đóng phụ thuộc hàm, tập thuộc tính
4 Bài toán thành viên
5 Tập PTH tương đương
6 Tập PTH tối thiểu – Phủ tối thiểu
7 Khóa của quan hệ
Trang 3I Phụ thuộc hàm
Định nghĩa:
Cho R(U), với R là quan hệ và U là tập thuộc tính
Cho X,Y ⊆U, phụ thuộc hàm X → Y (đọc là X xác định
Y) được định nghĩa là:
∀ t, t’ ∈ R nếu t.X = t’.X thì t.Y = t’.Y
(Có nghĩa là: Nếu hai bộ có cùng trị X thì có cùng trị Y
Cách đọc: X xác định Y hay Y phụ thuộc hàm vào X
- X gọi là vế trái của PTH, Y là vế phải của PTH
Phụ thuộc hàm thường được ký hiệu là FD hay F (Functional Dependencies)
Trang 4 Trong quan hệ SV(MaSV,Ten,Diachi,Ngaysinh), mỗi thuộc tính Ten, Diachi, Ngaysinh đều phụ thuộc hàm (pth) vào thuộc tính MaSV
Mỗi giá trị MaSV xác định duy nhất một giá trị tương ứng đối với từng thuộc tính đó Khi đó, có thể viết :
- MaSV DIACHI
- MaSV TEN
- MaSV NGAYSINH
Trang 5 Ví dụ 2: Cho quan hệ R(A,B,C,D) như sau:
Cho biết các phụ thuộc hàm nào liệt kê dưới đây được thoả trong quan hệ R ở trên?
- f1: A A
- f2: A B
- f3: A C
- f4: AC C
- f5: A D
- f6: D A
R (A B C D)
a 1 x 2
a 1 y 2
b 2 x 1
b 2 y 1
Trang 6 Nhận xét:
ràng buộc
tối thiểu và chuẩn hoá các quan hệ trong cơ sở dữ liệu
- Nếu X Y thì không thể nói gì về Y X
- Ví dụ:
Có MSV Tên thì không thể khắng định Tên MSV vì có thể có
nhiều sinh viên cùng tên
Có MSV Ngaysinh thì không thể khắng định Ngaysinh MSV vì có
thể có nhiều sinh viên sinh cùng ngày
Trang 7 Biểu diễn phụ thuộc hàm:
- Dùng đường nối mũi tên từ các thuộc tính vế trái đến các
thuộc tính vế phải của tất cả các phụ thuộc hàm
Ví dụ:
MƯỢN(Sốthẻ, Mãsốsách, Tênngườimượn, Tênsách, Ngàymượn)
- Với các phụ thuộc hàm:
FD1: Sốthẻ Tênngườimượn
FD2: Mãsốsách Tênsách
FD3: Sốthẻ, Mãsốsách Ngàymượn
Có sơ đồ phụ thuộc hàm như sau: MƯỢN
Sốthẻ Mã số
sách
Tên người mượn
Tên sách Ngàymượn
FD3
FD1
FD2
Trang 8II Hệ tiên đề Amstrong
Năm 1974, Amstrong đưa ra hệ luật dẫn hay các tính chất
của phụ thuộc hàm, gọi là hệ tiên đề Amstrong các
nguyên tắc biến đổi của pth
Định nghĩa:
- F là tập pth trên quan hệ R(U) và A B là một pth với A,
B U Nói rằng, pth A B được suy diễn logic từ F nếu với
mỗi quan hệ r xác định trên R thỏa các phụ thuộc hàm trong
F thì cũng thỏa phụ thuộc hàm A B
Ví dụ:
- Tập phụ thuộc hàm F = { A B, B C}
- Ta có phụ thuộc hàm A C là phụ thuộc hàm được suy dẫn
từ tập F
Trang 9* Hệ tiên đề Amstrong:
Cho X, Y, Z, W U Ký hiệu: XY = X Y Ta có các luật sau :
1 Luật phản xạ: Nếu Y X thì X Y
2 Luật bổ sung - tăng trưởng: Nếu X Y thì XZ YZ
VD: Nếu C D thì ABC ABD
3 Luật bắc cầu: Nếu X Y và Y Z thì X Z
VD: Nếu có AB C, C EG thì AB EG
4 Luật hợp: Nếu X Y và X Z thì X YZ
VD: Nếu AB CD và AB EF thì AB CDEF
5 Luật tách: Nếu X Y và Z Y thì X Z
VD: Nếu AB CDEF thì AB CD và AB EF
6 Luật tựa bắc cầu:
Nếu X Y và WY Z thì XW Z
VD: Nếu AB EF và DEF G thì ABD G
Trang 10 Ví dụ 1: Cho R = ABC và
tập F = { AB C , C A }
Áp dụng hệ tiên đề Amstrong CMR: BC ABC
Trang 11 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 = {BD, ABC, CDE, ECGH, GA} Áp dụng
hệ tiên đề Amstrong để tìm chuỗi suy diễn cho: AB E và AB G
Thực hiện:
1 AB C (gt)
2 AB BC (tăng cường thêm B)
3 B D (gt)
4 BC DC (t/c thêm C)
5 CD E (gt)
6 BC E ( bắc cầu 4 và 5)
7 AB E (bắc cầu 2 và 6)
8 AB EC (hợp 1 và 7)
9 EC GH (gt)
10 AB GH ( bắc cầu 8 và 9)
11 AB G (tách)
Trang 12 Ví dụ 3: Cho R= {A, B, C, E, F }
Và F= { AB C, C B , ABC E, F A} Áp dụng hệ tiên đề
Amstrong CMR: FB E
Thực hiện:
1 F A ( gt)
2 FB AB ( tăng cường)
3 AB C (gt)
4 ABC C (tc)
5 ABC E (gt)
6 ABC EC ( hợp 4 và 5)
7 AB E ( tách 6)
Trang 13 Ví dụ 4:
Chứng Minh:
1 Từ X Y ( gt)
3 Từ U V (gt)
5 Có XU YV ( bắc cầu (2) và (4) )
Trang 14III Bao đóng
Gọi F là tập các pth trên tập thuộc tính U, X U
Bao đóng của phụ thuộc hàm: là tập tất cả các
PTH được suy diễn logic từ tập pth F, kí hiệu là F+
Nhận xét: Nếu F+ = F thì F là họ đầy đủ của các pth
Trang 15 Bao đóng của tập thuộc tính X: là tất cả các thuộc tính
A mà phụ thuộc hàm X A có thể được suy diễn logic
từ F nhờ hệ tiên đề Amstrong Kí hiệu: X+
X+ = { A U | X A F+ }
Nhận xét:
- X X+
- X Y F+ Y X+ => Có nghĩa là: X Y được suy
diễn từ hệ tiên đề Amstrong khi và chỉ khi Y X+
Trang 162 Thuật toán tìm bao đóng của tập thuộc tính
Cho X U là tập thuộc tính => Tìm X+
Thuật toán CLOSURE(X,F)
-Input: Tập thuộc tính X và tập phụ thuộc hàm F
-Output: Tìm bao đóng X+ của F
-Thực hiện: Lần lượt tính các X0, X1, X2, …, theo các bước sau:
Bước 1: Đặt X0 = X
Bước 2: Lần lượt xét các phụ thuộc hàm của F nếu tồn
tại pth Y Z F mà Y Xi thì X i+1 = X i {Z}, ngược lại, đặt
X i+1 = X i
Bước 3: Nếu ở bước 2 mà không tính được Xi+1 thì Xi
chính là bao đóng của tập thuộc tính X, ngược lại lặp lại
Trang 17Ví dụ 1:
Cho R = (A, B, C, D, E, G) và
pth F = {AB C, C A, BC D, ACD B, D EG, BE C,
CG BD, CE AG} Tính: (BD) +
Trang 18Ví dụ 2:
Cho R = (A,B,C,D,E,H) và
F = { AB → C, BC → AD, D → E, CE → B}
Tính (AB)+?
Trang 19 Ví dụ 3: U = (ABCDEGH) và tập pth F ={A D, AB
DE, CE G, EH}
- Tính bao đóng X + với X= (AB )
Và F = {A C, B C, CD, DE C, CE A}
- Tính bao đóng X + với X = ( AE)
Trang 20Bài tập áp dụng:
- (AB)+
- (BD)+ - (D)+
- Kiểm tra xem CE->A; DE->A có là thành viên của F