You are on page 1of 7

NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

2. BµI TËP VÒ phỤ THUỘC HÀM

MỤC TIÊU CỦA BÀI NÀY GIÚP NGƯỜI HỌC


 Hiểu được tầm quan trọng của lý thuyết của phụ thuộc hàm
 Vận dụng các thuật toán tính bao đóng, định nghĩa suy diễn
theo tiên đề, theo quan hệ, tìm phủ tối thiểu, bài toán thành viên
để giải quyết các bài tập cụ thể.
 Áp dụng các thuật toán để giải quyết các bài tập liên quan:
Tìm bao đóng, chứng minh một phụ thuộc hàm có dư thừa trong
tập các phụ thuộc hàm không,...

A/ NHẮC LẠI LÝ THUYẾT


I. MỘT SỐ ĐỊNH NGHĨA, TÍNH CHẤT

1. Định nghĩa phụ thuộc hàm

Định nghĩa: cho U là một tập thuộc tính, một phụ thuộc hàm trên U là
một phát biểu có dạng XY, trong đó X,Y⊆U.
Cho R là quan hệ trên tập thuộc tính U, nói rằng quan h ệ R thoả mãn
phụ thuộc hàm XY, nếu với 2 bộ bất kì trong R mà chúng giống
nhau trên tập thuộc tính X thì chúng cũng giống nhau trên tập thuộc tính
Y, nghĩa là ∀u,v ∈R, nếu u.X=v.X thì u.Y=v.Y.

Nếu f= XY là một phụ thuộc hàm trên U thì ta nói tập thuộc tính Y
phụ thuộc hàm vào tập thuộc tính X (Y functional dependent on X )
hoặc tập thuộc tính X xác định hàm tập thuộc tính Y (X functional
determines Y).

Cho f là một phụ thuộc hàm trên U, nếu quan hệ R thoả mãn phụ thuộc
hàm f thì ta ký hiệu R(f), nếu R không tho ả mãn ph ụ thu ộc hàm thì ta
ký hiệu R(f).

Cho F là một tập các phụ thuộc hàm trên U, nói rằng quan hệ R thoả
mãn tập phụ thuộc hàm F, ký hiệu là R(F) nếu và chỉ nếu với ∀ f ∈ F
thì R(f) hay nói một cách tương đương quan hệ R thoả mãn t ập ph ụ
thuộc hàm F nếu như nó thoả mãn từng phụ thuộc hàm trong tập đó.

Trang 1
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

Định nghĩa: Lược đồ quan hệ là một cặp α=(U, F) trong đó U là tập


hữu hạn các thuộc tính còn F là tập các phụ thuộc hàm trên U.

2. Một số tính chất của phụ thuộc hàm:


1) Tính chất phản xạ: ∀ X, Y⊆ U, Y⊆ X, thì XY
2) Tính chất bắc cầu: ∀ X, Y, Z⊆ U, nếu có XY và YZ
thì XZ
3) Tính chất gia tăng: ∀ X, Y⊆ U, nếu X Y và ∀ Z⊆ U thì
XZYZ
4) Tính chất tựa bắc cầu: ∀ X, Y, Z, W ⊆ U, nếu XY,
YZ W thì XZW
5) Tính chất phản xạ chặt: ∀ X⊆ U thì XX
6) Luật tách: ∀ X, Y, Z ⊆ U, nếu có XYZ thì có:
XY
XZ

7) Luật hợp: ∀ X, Y, Z ⊆ U, nếu có X Y và XZ thì có


XYZ
8) Tính chất cộng tính: ∀ X, Y, Z, W ⊆ U, nếu XY, Z W thì
XZYW

3. Hệ tiên đề Amstrong
F1 - Luật phản xạ ∀X,Y⊆ U, nếu X⊆ Y thì Y X
F2 - Bắc cầu ∀X, Y, Z ⊆ U nếu có

XY
YZ thì XZ

F3 - Luật gia tăng ∀ X, Y, Z ⊆ U, nếu có XY thì XZYZ

4. Định nghĩa suy dẫn theo hệ tiên đề


Cho F là tập phụ thuộc hàm trên U, f là một phụ thuộc hàm trên
U ( f có thể không thuộc F), nói rằng f suy dẫn được t ừ F theo h ệ tiên

Trang 2
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

đề Amstrong và kí hiệu là F├ f nếu như f có thể nhận được từ tập F


sau một số hữu hạn lần áp dụng các luật của hệ tiên đề Amstrong.
Nhận xét:
Với ∀ f ∈ F thì F├ f
Kí hiệu F+ là tập tất cả các phụ thuộc hàm được suy dẫn từ t ập F theo
hệ tiên đề Amstrong.
Ta thấy F⊆ F+
F+ được gọi là bao đóng của tập phụ thuộc hàm F, nếu F + =F thì ta nói
F là một tập đầy đủ các phụ thuộc hàm, đôi khi ta còn nói F là t ập
đóng.
5. Định nghĩa suy dẫn theo quan hệ

Cho F là một tập các phụ thuộc hàm trên tập thuộc tính U, f là
một phụ thuộc hàm trên U, (f có thể không thuộc F), nói rằng f được
suy dẫn từ tập F theo quan hệ và ký hiệu F ╞f, n ếu và ch ỉ n ếu v ới m ọi
quan hệ R trên U, nếu R thoả mãn F thì R cũng thoả mãn f.

Ký hiệu F* là tập tất cả các phụ thuộc hàm được suy dẫn từ tập F theo
quan hệ.
F*={f:XY | X,Y⊆U, F╞f}

Tính chất của F*:


Cho F và G là hai tập phụ hàm trên tập thuộc tính U khi đó ta có:
1. Tính phản xạ: Với ∀ f ∈ F thì F ╞f từ đây ta suy ra F ⊆ F*.
2. Tính đơn điệu: Nếu F⊆ G thì F* ⊆ G*.
3. Tính luỹ đẳng: Với mọi tập phụ thuộc hàm F thì ta luôn có (F*)*=F*.
6. Bao đóng của tập thuộc tính

Cho tập phụ thuộc hàm F trên U, X ⊆U, bao đóng của tập thuộc
tính X, kí hiệu là X+ được xác định như sau:
X+= { A | A∈U và XA∈F+ }

* Thuật toán tìm bao đóng của một tập thuộc tính
Input α = (U,F), X⊆ U
Output X+ =?

Thuật toán
Ta xác định dãy X(0), X(1), X(2),... theo quy nạp như sau

Trang 3
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

1. Đặt X(0)=X
2. Giả sử rằng đã xây dựng được đến bước thứ i tức là đã
biết X(i) (i>=0)
3. Xây dựng tiếp bước i+1 như sau
X(i+1)= X(i) ∪ Z(i) trong đó

Xj Yj ∈ F (1)
Xj ⊆X i
(2)
(i)
YJ ⊄ X (3)

Z(i) = ∪ Yj với điều kiện :


Vì vậy Z(i) chính là hợp của các vế phải của các phụ thuộc hàm
trong tập F mà có vế trái là tập con của tập trước mà có v ế ph ải ch ưa
được thêm vào.
điều kiện (3) chỉ có tác dụng tăng tốc độ tính toán

Nhận xét:
X(0), X(1), X(2),... là một dãy không giảm và bị chặn trên bởi U, do đó tồn
tại chỉ số i nào đó để X(i)= X(i+1) (*), gọi i là chỉ số nhỏ nhất khi đó X+ =
X(i) hay khi X(i) = U thì X+ = X(i) = U.

7. Phụ thuộc hàm dư thừa


Cho F là một tập các phụ thuộc hàm trên U, f là một phụ thuộc
hàm của F tức f ∈F, f được gọi là dư thừa trong F nếu như (F-f)+ =F+
Hay có thể nói tương đương f được gọi là dư thừa trong F nến
nó suy dẫn được từ tập F sau khi đã bỏ đi phụ thuộc hàm f.

Thuật toán thành viên

Input
- Tập phụ thuộc hàm F
-f∈F
Output
- True nếu như f là dư thừa trong F
- False nếu như f là không dư thừa trong F
Method

Trang 4
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

1) tạm xoá f khỏi F, gọi G là tập thu được


G=F-f, nếu G≠φ thì chuyển qua bước 2, còn không thì kết
thúc thuật toán và kết luận f là không dư thừa trong F
+
2) Giả sử f=XY nếu G├ f tức Y⊆ X G thì f là dư thừa
trong F còn ngược lại f là không dư thừa.
Như vậy, ta chỉ cần tính X+ và so sánh với tập con Y ta có ngay câu trả
lời X → Y có thuộc vào F+ hay không.
8. Phụ thuộc hàm dư thừa

II. CÁC VÍ DỤ

Ví dụ 1:
Cho lược đồ quan hệ α = (U,F) với
U = ABCDEGH
F={ BC ADE, AC BDG, BE ABC, CD BDH, BCH ACG}

Hãy tính X+ trong các trường hợp


a) X=BD
b) X=ABE
c) X=CDG

Giải
a) đặt X(0)=BD (=X)
X(1) = X(0) ∪ Z(0) =BD ∪ Φ=BD
Suy ra X(0)= X(1) vậy X+ =X=BD
b) đặt X(0)=ABE (=X)
X(1) = X(0) ∪ Z(0) =ABE ∪ABC=ABCE
X(2) = X(1) ∪ Z(1) =ABCE ∪ (ADE ∪ BDG)=ABCDEG
X(3) = X(2) ∪ Z(2) = ABCDEG ∪ BDH=ABCDEGH=U
Vậy X+=U

Ví dụ 2 : Áp dụng bài toán thành viên


Giả sử có tập F={XYW, XWZ, ZY, XYZ}
Hãy cho biết XYZ có dư thừa trong F hay không?

Trang 5
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

Giải
1) Tạm thời xoá XYZ ra khỏi F
G:=F-{XYZ}={XYW, XWZ, ZY}
2) Tính (XY)+G ( bao đóng của XY trong tập G)
ta có (XY)+G= XYWZ thế nên Z⊆(XY)+G hay G├ (XYZ) thế nên phụ
thuộc hàm XYZ là dư thừa trong F.

III. MỘT SỐ LƯU Ý


 Tiên đề Amstrong. Áp dụng hệ tiên đề amstrong trong các bài toán
chứng minh.
 Phụ thuộc hàm theo quan hệ và theo tiên đề, bao đóng của tập các
thuộc tính và của tập các phụ thuộc hàm.

B/ BÀI TẬP MẪU


Bài số 1:
Cho tập thuộc tính U=ABCDEGH
Cho tập phụ thuộc hàm F={ ABCD, ACEBG, BCD AE, CH
DG}
f=BCDH AG, hỏi rằng F├ f hay không (f ∈ F+) ?

Hướng dẫn:
Áp dụng hệ tiên đề Amstrong để chứng minh, đầu tiên cần làm
xuất hiện vế trái của phụ thuộc hàm cần chứng minh sau đó lần lượt
áp dụng 3 tiên đề để suy ra ĐPCM.

Giải
BCDH BCD (1) ( tính chất phản xạ )
BCDAE ( gt) (2)
BCDACE ( gia tăng) (3)
ACE A (phản xạ) (4)
Suy ra BCDH A theo tính chất bắc cầu(5)
ACE BG (6) giả thiết
BGG (7) phản xạ
Suy ra ACE G(8) bắc cầu
Suy ra BCDH G (9) bắc cầu

Trang 6
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm - 2007

Từ (5) và (9) theo luật cộng tính ( luật ghép)


Suy ra BCDH AG ∈ F+ ( đpcm)

Bài số 2:

Cho α=(U,F); U=ABCDEGH


F={ ABBCP, EBGH, ACD BG, DAEH}
Hãy tính X+ trong các trường hợp
a) X=AC
b) X=CD
c) X=ABG

Hướng dẫn:
Áp dụng lần lượt các bước của thuật toán tính bao đóng.

Giải
a) Vì X=AC
X(0)= X=AC
X(1) = X(0) ∪ φ = X(0) nên X+=AC
b) Vì X=CD
X(0)=X=CD
X(1) = X(0) ∪ AEH =ACDEH
X(2)= X(1)∪( BGH ∪ BG) = ACDEH ∪( BGH ∪ BG) =
ABCDEGH =U
Do X(2)=U nên X+=U
c) Vì X=ABG
X(0)=X=ABG
X(1)= ABG ∪BCD=ABCDG
X(2)= ABCDG ∪ (BCD ∪BG ∪ AEH)= ABCDEGH =U
Do X(2)=U nên X(3)= X(2) hay X(3)=U
C/ BÀI TẬP TỰ GIẢI

Bài tập 1:
Cho lược đồ quan hệ α=(u, F) với

Trang 7

You might also like