Tải bản đầy đủ (.ppt) (52 trang)

Chương 5 Phụ thuộc hàm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (272.59 KB, 52 trang )

1
CHƯƠNG 5
PHỤ THUỘC HÀM
Functional dependency
2
NỘI DUNG

PHỤ THUỘC HÀM

BÀI TOÁN TÌM PHỦ TỐI THIỂU

BÀI TOÁN TÌM KHÓA

Pth là một công cụ biểu diễn một cách hình thức
một dạng ràng buộc tòan vẹn

Pth được ứng dụng trong việc giải quyết bài tóan
tìm khóa, tìm phủ tối thiểu và chuẩn hóa cơ sở dữ liệu
3
PHỤ THUỘC HÀM

Khái niệm phụ thuộc hàm

Bao đóng của một tập phụ thuộc hàm F

Bộ luật dẫn AMSTRONG

Bao đóng của tập thuộc tính X

Thuật toán tìm F+
4


Xét ví dụ (sgk) : Cho quan hệ Phân công
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Cushing 116 10/8 1:25p
Clark 281 8/8 5:50a
Clark 301 12/8 6:35p
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Chin 116 12/8 1:25p
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Copely 412 15/8 1:25p
1. KHÁI NIỆM
5
Trong thế giới thực luôn có những qui tắc hoạt động :
- Mỗi máy bay có một giờ khởi hành duy nhất
- Nếu biết phi công, Ngày và giờ khởi hành thì biết được máy
bay do phi công này lái
-
Nếu biết máy bay, ngày khởi hành thì biết phi công lái
chuyến bay đó
Những qui tắc hoạt động trên là một loại ràng buộc , được gọi
là phụ thuộc hàm , và có thể phát biểu lại như sau :
MAYBAY xác định GIOKH
Hay GIOKH phụ thuộc hàm vào MAYBAY
Được ký hiệu
f1: {MAYBAY}→ GIOKH
f2: {PHICONG,NGAYKH,GIOKH}→ MAYBAY
f3: {MAYBAY,NGAYKH}→ PHICONG
6

 Định nghĩa phụ thuộc hàm
Cho lược đồ quan hệ Q(A1,A2,…,An)
X, Y là hai tập con của Q
+
= {A1,A2,…,An}
r là quan hệ trên Q
t1, t2 là hai bộ bất kỳ trên r
X

Y

( t1.X = t2.X

t1.Y= t2.Y )
- Nếu

t1,t2

r , sao cho t1.X = t2.X và t1.Y ≠ t2.Y
ta nói : pth X

Y không thỏa trên r
- Nếu với mọi quan hệ r đều thỏa mãn pth X

Y ,
ta nói pth X

Y được định nghĩa trên lược đồ
quan hệ Q
7

a1 b1 c1 d1 e1
a1 b2 c2 d1 d1
a2 b1 c3 d3 e1
a2 b1 c4 d3 e1
a3 b2 c5 d1 e1
Phụ thuộc hàm nào sau đây thỏa r (A , B , C , D , E)
A →D , AB→D
AB→C
a1 b1 c1 d1 e1
a2 b2 c2 d2 e2
a3 b1 c1 d1 e1
a4 b2 c2 d2 e2
a5 b1 c1 d3 e1
Phụ thuộc hàm nào sau đây thỏa q
BC→E , DE→C , A → BCDE
8
Ví dụ: phanCong(PC, MB, N, G)
Ví dụ: phanCong(PC, MB, N, G)
, F ={(1),(2),(3)}
, F ={(1),(2),(3)}
Đònh nghóa
Đònh nghóa
:
: Phụ thuộc hàm X → Y được suy diễn logic từ
F nếu một lược đồ quan hệ Q thỏa mãn tất cả các phụ
thuộc hàm của F thì cũng thỏa phụ thuộc hàm X → Y.
Ký hiệu F |= X → Y
(Gọi
(Gọi F |= X → Y là
phụ thuộc hàm hệ quả)

phụ thuộc hàm hệ quả)
NX : Nếu (1) thỏa mãn thì (4) cũng được thỏa mãn
NX : Nếu (1) thỏa mãn thì (4) cũng được thỏa mãn


chỉ
chỉ
cần kiểm tra (1)
cần kiểm tra (1)
1. MB
1. MB


G
G
2. MB,N
2. MB,N


PC
PC
3. PC,N,G
3. PC,N,G


MB
MB
4. MB,N
4. MB,N



G
G
5. MB,N,G
5. MB,N,G


PC
PC
6. PC, N, G
6. PC, N, G


PC
PC



F
F
F
F
+
+

2.
2. Phụ thuộc hàm được suy diễn logic từ F
Bao đóng của một tập phụ thuộc hàm F
9


Bao đóng F
Bao đóng F
+
+
của F
của F
:
:
là tập tất cả các phụ thuộc hàm được suy
là tập tất cả các phụ thuộc hàm được suy
diễn logic từ F
diễn logic từ F

Luật dẫn để suy ra phụ thuộc hàm hệ quả từ F :
Luật dẫn để suy ra phụ thuộc hàm hệ quả từ F :
f’ là phụ thuộc hàm suy từ F qua luật dẫn (ký hiệu F
f’ là phụ thuộc hàm suy từ F qua luật dẫn (ký hiệu F






f’ ) nếu
f’ ) nếu


f
f
1

1
, f
, f
2
2
,…, f
,…, f
n
n


sao cho f
sao cho f
n
n
=f’ và (f
=f’ và (f
i
i




F)
F)


(f
(f
i

i
được suy diễn từ f
được suy diễn từ f
j
j
với j=1,…,i-1)
với j=1,…,i-1)


Ký hiệu F ’={f’ | F
Ký hiệu F ’={f’ | F




f’}
f’}


cần tìm luật dẫn sao cho F ’= F
cần tìm luật dẫn sao cho F ’= F
+
+
; nghóa là
; nghóa là


f, F
f, F
=

=
f
f


F
F




f
f
và F
và F




f
f


F
F
=
=
f
f
10

Cho quan hệ Q(Q
+
) . X,Y,Z,W là các tập thuộc tính của Q
+
Hệ tiên đề Amstrong gồm các luật sau
(F1) Luật phản xạ (reflexive rule):
Nếu Y

X thì X

Y
(F2) Luật thêm vào (augmentation rule):
Nếu X

Y thì XZ

Y trong đó ký hiệu XZ thay cho X

Z
(F3) Luật bắc cầu (transitive rule):
Nếu X

Y và Y

Z thì X

Z
Các luật dẫn khác suy từ (F1), (F2), (F3)
Các luật dẫn khác suy từ (F1), (F2), (F3)
(F4) Bắc cầu giả : nếu X


Y và YW

Z thì XW


Z.
(F5) Luật hội : nếu X

Y và X

Z thì X

YZ
(F6) Luật phân rã : nếu X

Y và Z

Y thì X

Z
3. Bộ Luật Dẫn AMSTRONG (Hệ tiên đề Amstrong)
Cần chứng minh Hệ tiên đề Armstrong là đúng và đầy đủ (xem sgk)
Cần chứng minh Hệ tiên đề Armstrong là đúng và đầy đủ (xem sgk)


Tính đúng : F
Tính đúng : F



f
f


F
F
=
=
f
f


Tính đầy đủ :
Tính đầy đủ :


F
F
=
=
f
f


F
F


f
f

11
Luật phản xạ
B ⊆ AB AB → B
Luật thêm vào
A → DE AB → DE
AB → DEB
ABC → DEB
Luật bắc cầu
A → DE
DE → C
A → C
Luật bắc cầu giả
A → DE
DEB → C
AB → C
Luật hội
A → DE
A → B
A → DEB
Luật phân rã
A → DE A → D , A → E
Ví dụ :
12
Chứng minh
Luật thêm vào: giả sử có t1.XZ = t2.XZ (1)

t1.X = t2.X

t1.Y = t2.Y (do X


Y) (2)

XZ

Y (do (1)

(2))
Luật hợp: giả sử có t1.X = t2.X (1)

t1.Y = t2.Y và t1.Z = t2.Z

t1.YZ = t2.YZ (2)

X

YZ (do (1)

(2))
Luật phân rã: gỉa sử có t1.X = t2.X (1)

t1.YZ = t2.YZ (do X

YZ)

t1.Y = t2.Y (2)

X

Y (do (1)


(2))
Luật bắc cầu: giả sử có t1.X= t2.X (1)

t1.Y = t2.Y

t1.Z = t2.Z (2)

X

Z (do (1)

(2))
Luật bắc cầu giả: giả sử có t1.XZ = t2.XZ (1)

t1.X = t2.X và t1.Z = t2.Z (2)

t1.Y = t2.Y (do X

Y) (3)

t1.YZ = t2.YZ (Kết hợp (2) và (3))

t1.W = t2.W (do YZ

W) (4)

XZ

W
13

Bài tập 1 : Chứng tỏ các pth sau được suy diễn từ F
nhờ bộ luật dẫn Amstrong ?
F = { B


A ,
A ,
DA
DA


CE ,
CE ,
D


H ,
H ,
AC


D
D }
AC


DA
DA
AC



DH
DH
AC


EH
EH
?
F = { B


A ,
A ,
BD
BD


CE ,
CE ,
A


CB ,
CB ,
C


G ,
G ,

GE
GE


H
H }
?

BD


EH
EH


B
B


CG
CG
14
Ta có f4 :
Ta có f4 : AC


D
D




AC


A (theo luật phản xạ)
A (theo luật phản xạ)
=> Suy ra
=> Suy ra AC


DA (theo luật hội)
DA (theo luật hội)
F = { B


A ,
A ,
DA
DA


CE ,
CE ,
D


H ,
H ,
AC



D
D }
Ví dụ
Chứng minh
AC


DA ?
DA ?
15
Cho Q là lược đồ quan hệ Q( Q
+
), F là tập các phụ
thuộc hàm định nghĩa trên Q , gọi X, A
i


⊆ Q
+
.
Bao đóng của tập thuộc tính X dựa trên F ký hiệu
là X
+
(hoặc X
+
F
)
X
+

F
=

A
i
với X

A
i
là phụ thuộc hàm
được suy diễn từ F nhờ hệ tiên đề Armstrong



Nhận xét : X
Nhận xét : X


X
X
+
+
, X
, X
+
+





Q
Q
+
+




Bổ đề :
Bổ đề :
X
X


Y
Y


F
F
+
+




Y
Y



X
X
+
+
Chứng minh
Chứng minh
:
:
(1) X
(1) X


Y
Y


tồn tại k sao cho Y = A
tồn tại k sao cho Y = A
k
k








Ai = X+ theo định nghĩa của
Ai = X+ theo định nghĩa của

X
X
+
+
(2) Y
(2) Y


X
X
+
+




X
X
+
+
= Y
= Y


(X
(X
+
+
- Y)
- Y)



X
X


Y
Y


(X
(X
+
+
- Y)
- Y)


X
X


Y theo luật phân
Y theo luật phân


4.Bao đóng của tập thuộc tính X (closures of attribute sets)
16
Thuật toán tìm bao đóng X+: Tính liên tiếp tập các
tập thuộc tính X

0
,X
1
,X
2
, theo phương pháp sau:
Bước 1: X
0
= X
Bước 2: lần lượt xét các phụ thuộc hàm của F
Nếu Y

Z có Y

X
i
thì X
i+1
= X
i


Z
Loại phụ thuộc hàm Y

Z khỏi F
Bước 3: Nếu ở bước 2 không tính được X
i+1

thì X

i
chính là bao đóng của X
Ngược lại lặp lại bước 2
17
Ví dụ 1:
Cho lược đồ quan hệ Q(ABCDE) và tập phụ thuộc
hàm F
F = { f1: A

B
f2: B

C
f3: C

D
f4: D

E }
Tìm bao đóng của tập X = {AB} dựa trên F
Giải:
Bước 1:X0 = AB
Bước 2:
xét f1 vì A

X0

X1 = AB

B = AB , loại f1

xét f2 vì B

X1

X2 = AB

C = ABC , lọai f2
xét f3 vì C

X2

X3 = ABC

D = ABCD , loại f3
xét f4 vì D

X3

X4 = ABCD

E = ABCDE , loại f4
Bước 3 : X+ = X4 = {ABCDE} là bao đóng của X
18
Ví dụ 2: (sgk )
Cho lược đồ quan hệ Q(ABCDEGH) và tập phụ thuộc
hàm F
F = { f1: B

A
f2: DA


CE
f3: D

H
f4: GH

C
f5: AC

D }
Chứng minh f= {AC

EH } được suy dẫn từ F ?
Giải:
Bước 1: X0 = AC
Bước 2: xét f5 vì AC

X0

X1 = AC

D = ACD
xét f2 vì AD

X1

X2 = ACD

CE = ACDE

xét f3 vì D

X2

X3 = ACDE

H = ACDEH
Xét f1, f4 :không thỏa vì có vế trái không nằm trong X3
Vậy X3 không thay đổi

X+=X3={ACDEH} là bao đóng của X

AC

EH ∈ F+
19
Bài tập 2: Cho Q(ABCDEGH) và tập pth F thỏa trên Q.
Tìm bao đóng của AC ?
F = { B


A ,
A ,
DA
DA


CE ,
CE ,
D



H ,
H ,
AC


D
D }
F = { B


A ,
A ,
BD
BD


CE ,
CE ,
A


CB ,
CB ,
C


G ,
G ,

GE
GE


H
H }
AC
+
= ?
B
+
= ?
20
5. Thuật toán tìm F+
Thuật toán cơ bản
Để tính bao đóng F+ của tập các phụ thuộc hàm F ta thực
hiện các bước sau:

Bước 1: Tìm tất cả tập con của Q+

Bước 2: Tìm tất cả các phụ thuộc hàm có thể có của Q.

Bước 3: Tìm bao đóng của tất cả tập con của Q.

Bước 4: Dựa vào bao đóng của tất cả các tập con đã tìm
để xác định phụ thuộc hàm nào thuộc F+
Thuật toán cải tiến
Dựa vào thuật toán cơ bản trên, ta nhận thấy có thể tính
F+ theo các bước sau:
Bước 1: Tìm tất cả tập con của Q+

Bước 2: Tìm bao đóng của tất cả tập con của Q+.
Bước 4: Dựa vào bao đóng của các tập con đã tìm để suy
ra các phụ thuộc hàm thuộc F+.
21
Phủ và Phủ tối thiểu
Các khái niệm :

Tập phụ thuộc hàm tương đương với F

Phủ của F

Phủ tối thiểu của F
22
1. Hai tập phụ thuộc hàm tương đương
Bổ đề : F


G nếu và chỉ nếu F |
G nếu và chỉ nếu F |
=
=
G và G |
G và G |
=
=
F
F





Nếu F
Nếu F


G
G ⇒
F
F
=
=
G
G và
G
G
=
=
F
F




g
g


G +, g: X
G +, g: X



Y
Y ⇒
g
g


F +
F + ⇒
F
F
=
=
g
g
Do đó
Do đó


g
g


G thì F
G thì F
=
=
g hay F
g hay F
=

=
G
G
Tương tự
Tương tự


f
f


F thì G
F thì G
=
=
f hay G
f hay G
=
=
F
F



Nếu F
Nếu F
=
=
G
G và

G
G
=
=
F
F ⇒
F
F




G
G
F
F
=
=
G
G ⇒
G
G ⊆
F
F + ⇒
G
G +⊆ (
F
F +)+=
F
F +

G
G
=
=
F
F ⇒
F
F ⊆
G
G + ⇒
F
F +⊆ (
G
G +)+=
G
G +
Tập phụ thuộc hàm F và G tương đương nếu F+ = G+
ký hiệu F


G
G
23
Thuật tóan xác định F và G có tương đương không ?
B1 :với mỗi X


Y của F xác định xem
Y của F xác định xem X



Y có được
Y có được
suy dẫn từ G không
suy dẫn từ G không
B2 :với mỗi X


Y của G xác định xem
Y của G xác định xem X


Y có được
Y có được
suy dẫn từ F không
suy dẫn từ F không
Nếu cả 2 bước trên đều đúng thì F
Nếu cả 2 bước trên đều đúng thì F


G
G
24
Ví dụ 1: Cho lược đồ quan hệ Q (ABCDE) và 2 tập pth
F ={A


BC,
BC, A



D, CD
D, CD


E
E } và G ={A


BCE,
BCE, A


ABD, CD
ABD, CD


E
E }
1. F có tương đương với G không ?
2. F có tương đương với G’ = { A


BCDE
BCDE }
1. Nhận xét : F được suy diễn từ G (1)
Ta Kiểm tra G có được suy diễn từ F không ?
Tính A
F
+

= {ABCDE} => trong F+ có A


BCE và
BCE và A


ABD (2)
ABD (2)
Từ (1) (2) : kết luận F
Từ (1) (2) : kết luận F


G
G
2. Ta kiểm tra F có được suy diễn từ G’ không ?
Tính CD
G
+
= {CD} => G’+ không chứa pth CD


E
E
Kết luận : F không tương đương G’
Kết luận : F không tương đương G’
25
Ví dụ 1: Cho lược đồ quan hệ Q (ABCDE)
và 2 tập pth
F ={A



BC,
BC, A


D, CD
D, CD


E
E } và
G ={A


BCE,
BCE, A


ABD, CD
ABD, CD


E
E }
1. F có tương đương với G không ?
2. F có tương đương với
G’ = { A



BCDE
BCDE }

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×