Bài giảng môn cơ sở dữ liệu nâng cao CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM VÀ PHỦ CỰC TIỂU. Phần I: Cơ sở lý thuyết phụ thuộc hàm 1. Qui ước về các ký hiệu 2. Phụ thuộc hàm 3. Hệ tiên đề Amstrong 4. Bao đóng của tập thuộc tính (X+) 5. Thuật toán (thuật toán tính bao đóng của X). Phần II: Phủ cực tiểu (Phủ tối thiểu) 1. Tập phụ thuộc hàm tương đương 2. Phủ cực tiểu của một lược đồ quan hệ 3. Phủ cực tiểu của tập phụ thuộc hàm 4. Thuật toán (tìm một phủ tối thiểu của F)
Trang 1CƠ SỞ LÝ THUYẾT
PHỤ THUỘC HÀM VÀ PHỦ CỰC TIỂU
CƠ SỞ LÝ THUYẾT
PHỤ THUỘC HÀM VÀ PHỦ CỰC TIỂU
Cơ sở dữ liệu nâng cao
GV hướng dẫn: TS Hoàng Quang
Trang 23 Trần Thị Thành
4 Trần Như Đăng Tuyên
5 Nguyễn Vũ Cát Tường
Trang 31 Qui ước về các ký hiệu
2 Phụ thuộc hàm (Functional Dependency)
3 Hệ tiên đề Amstrong
4 Bao đóng của tập thuộc tính (X+)
5 Thuật toán (thuật toán tính bao đóng của X).
Phần I: Cơ sở lý thuyết phụ thuộc hàm
Phần II: Phủ cực tiểu (Phủ tối thiểu)
1 Tập phụ thuộc hàm tương đương
2 Phủ cực tiểu của một lược đồ quan hệ
3 Phủ cực tiểu của tập phụ thuộc hàm
Trang 51 Qui ước về các ký hiệu
Các thuộc tính: A, B, C, …, A1, A2, …
Tập các thuộc tính: X,Y, Z, …; ABC={A, B, C}
Hợp của các tập thuộc tính: XY=XY;
XYZ = XYZ; …
Lược đồ quan hệ: R, S, …, RS = <U, SC>
(SC:Set of Constraints)
Quan hệ: r, s, …
Trang 6Cho lược đồ quan hệ R = <U, SC>, cho X, Y U Xét quan hệ r trên R Quan hệ r được gọi là thoả phụ thuộc hàm: X Y (đọc là X xác định Y, hoặc Y phụ thuộc hàm vào X) nếu và chỉ nếu: t1, t2 r sao cho:
t1[X] = t2[X] t1[Y] = t2[Y]
Do đó, r không thoả XY
t1,t2 r : t1[X] = t2[X] và t1[Y] t2[Y]
Trang 7a a
b
r thỏa?
Trang 8mãn phụ thuộc hàm X Y không?
Function Ktra(r, X, Y) ; Begin
temp := true ; for i := 1 to n-1 do for j := i+1 to n do
if (ti[X]= tj[X] and ti[Y]< > tj[Y]) then
begin
temp:= false ; break;
end;
Ktra:= temp ; End;
Trang 9Định nghĩa:
(Lược đồ quan hệ thoả mãn phụ thuộc hàm)
Cho lược đồ quan hệ R = <U, SC> , cho X, Y U
R được gọi là thoả phụ thuộc hàm XY , nếu:
r R : r thoả XY
Hay: r R, t1, t2 r: t1[X] = t2[X] t1[Y] = t2[Y]
2 Phụ thuộc hàm (Functional Dependency)
Trang 10* Lưu ý:
- Thông thường ta quy ước rằng tập các ràng buộc SC
chính là tập các phụ thuộc hàm và được ký hiệu là F
- Một lược đồ quan hệ được ký hiệu là R = <U, F> thì
R phải thoả tất cả các phụ thuộc hàm trong F
* Nhận xét:
Cho lược đồ quan hệ R = <U, F> : X, Y U Nếu
XY được suy ra từ F, thì ký hiệu: F╞ XY , hay ta
nói rằng XY là phụ thuộc hàm hệ quả của F
Trang 11Định nghĩa: (Bao đóng của tập phụ thuộc hàm)
Cho R = <U, F> Khi đó: bao đóng của F, ký hiệu là F+, là tập tất cả các phụ thuộc hàm của R, kể cả hệ quả của F Tức là:
F+ = {XY | X, Y U và R thoả XY}
Trang 12* Lưu ý:
F F+
R = <U, F> thoả X Y có thể ký hiệu: F |= X Y
(đọc là: F suy dẫn X xác định Y hay X xác định Y là phụ thuộc hàm hệ quả của F).
F+ = {X Y | X, Y U và F |= X Y}
R = <U, F> thoả X Y F |= X Y
X Y F+.
Trang 13Định nghĩa: (Khoá của lược đồ quan hệ)
Cho R = <U, F>, X U Khi đó X được gọi là khoá
của R nếu và chỉ nếu thoả mãn đồng thời 2 điều kiện:
XU F+ (hay: X là siêu khoá của lược đồ quan hệ R)
X’ X : X’ là siêu khoá của R.
2 Phụ thuộc hàm (Functional Dependency)
Trang 14 Khoá của một lược đồ quan hệ là không duy nhất.
Một lược đồ quan hệ luôn tồn tại khoá
Trang 15Cho R = <U, F>, Amstrong đã đưa ra ba qui tắc (tiên đề, luật) sau:
- Luật phản xạ :
Nếu X, Y U và X Y thì YX F+
- Luật gia tăng (tăng trưởng):
Nếu X, Y, Z U và XY F+ thì XZYZ F+
- Luật bắc cầu:
Nếu X, Y, Z U và XY F+, YZ F+ thì XZ F+
3 Hệ tiên đề Amstrong
Trang 16Định lý:
Hệ tiên đề Amstrong là đúng đắn và đầy đủ.
Tính đúng đắn.
Tính đầy đủ của hệ tiên đề trên được hiểu là với bất
kỳ phụ thuộc hàm hệ quả nào ta luôn có thể sử dụng một số hữu hạn quy tắc trong hệ tiên đề này để chứng minh.
Trang 17Từ (1) A AB (3) (Luật gia tăng)
Từ (2) AB BC (4) (Luật gia tăng)
Trang 18Cho R = <U, F>, X U Khi đó, bao đóng của X, ký hiệu là
X+, được định nghĩa như sau:
Trang 194 Bao đóng của tập thuộc tính (X+)
Định lý:
(Bài toán thành viên: điều kiện cần và đủ để X Y F +)
Cho R = <U, F> và X, Y U Khi đó:
Trang 20Until (NEW = OLD);
Return NEW; End;
Trang 21X(3) = BDDEGC {A, AG} = BDEGCA
5 Thuật toán (thuật toán tính bao đóng của X)
Trang 22Chứng minh BD là khoá của R:
Theo câu trên ta có BD là siêu khoá Mặt khác ta có:
Trang 235 Thuật toán (thuật toán tính bao đóng của X)
* Thuật toán kiểm tra X có phải là khóa của R?
else For each A X do
If (X A)+ = U then
Trang 25Cho R = <U, F> và G tương đương với F thì ta có thể dùng
1 Tập phụ thuộc hàm tương đương
Trang 26(
F G
G
F G
F
Trang 27Cho phép xây dựng thuật toán để kiểm tra xem hai tập phụ
1 Tập phụ thuộc hàm tương đương
) 1 (
F G
G F
G F
Trang 28write(’F và G là không tương đương’);
write(’F và G là không tương đương’);
exit;
end;
3 writeln(’F tương đương với G’);
End;
Trang 29* Bổ đề:
Cho R = <U, F>, X U, Ai U (i = 1 n)
Ta có:
* Tính chất: Cho R=<U, F> Khi đó, bao giờ cũng tồn tại một
+ 1
+
+ n
Trang 312 Phủ cực tiểu của một lược đồ quan hệ
* Ví dụ 1:
Cho R = <U, F>, U=ABC, F = {AB, ABC} Hỏi F có phải là phủ tối thiểu của R không?
- Kiểm tra điều kiện a : đúng
- Kiểm tra điều kiện b :
Trang 32Cho R = <U, F>, U=ABC, F = {AB, BC, AC}
Hỏi F có phải là phủ tối thiểu của R không?
- Kiểm tra điều kiện c:
Xét AC F, ta có:
F \ {AC}= {AB, BC}
A+ {AB, BC} = ABC C
Trong F có phụ thuộc hàm AC là dư thừa
F không phải là phủ cực tiểu của R
Trang 333 Phủ cực tiểu của tập phụ thuộc hàm
Định nghĩa:
Cho R = <U, F> Tập phụ thuộc hàm G được gọi là một phủ cực tiểu của F, nếu thoả cả hai điều kiện:
+ G F+ G là phủ cực tiểu của R=<U, G>
* Lưu ý: Phủ cực tiểu của một tập phụ thuộc hàm là không
duy nhất
Trang 34* Ví dụ:
Cho R = <U, F>, U = ABC,
F = {AB, BA, AC, CA, BC, CB}
Khi đó, F có các phủ cực tiểu khác nhau như sau:
•
Trang 354 Thuật toán (tìm một phủ cực tiểu của F)
• Vào: R = <U, F>
• Ra: G (G là một phủ cực tiểu của F)
• Phương pháp:
Trang 361 Phân rã các phụ thuộc hàm trong F mà vế phải có 2 thuộc tính trở lên
(làm cho F thoả điều kiện a) Cụ thể:
2 (Làm cho F thoả điều kiện b)
For (each X A F ) do For (each B X ) do
Trang 37* Ví dụ: Cho R = <U, F>, U = ABC, F = {A BC, ABC}
F\{AB} = AC B (A B trong F không dư thừa)
4 Thuật toán (tìm một phủ cực tiểu của F)
Trang 38* Lưu ý:
Trong thuật toán tìm một phủ cực tiểu của F, không thể thực hiện làm cho F thoả điều kiện c trước khi làm cho F thoả điều kiện b
(Nói cách khác, việc làm cho F thoả điều kiện c luôn phải được thực hiện sau khi làm cho F thoả điều kiện b)
Trang 39* Phương pháp sai! (Bước 3 thực hiện trước bước 2)
Xét ví dụ sau: Cho R = <U, F>, U = ABD, F = {BD, BA, DA, ABD}
Nếu ta loại bỏ các phụ thuộc hàm dư thừa trước, thì lần lượt xét:
Tập phụ thuộc hàm F lúc này là: {BA, DA,AB D}
Tiếp đến, loại bỏ thuộc tính dư thừa ở vế trái, chỉ xét: AB D
Ta có: B +
F = BAD D loại bỏ A
4 Thuật toán (tìm một phủ cực tiểu của F)
Trang 40VD: R = <U, F>, U = ABD, F = {BD, BA, DA, ABD}
Loại bỏ thuộc tính dư thừa ở vế trái , chỉ xét: ABD
Ta có: B +
F\{BA} = BDA A loại bỏ BA
F = {DA, BD}
+ DA:
Trang 41và các bạn đã quan tâm
lắng nghe!