Tải bản đầy đủ (.pdf) (49 trang)

Phụ thuộc hàm tương đương

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 (1.29 MB, 49 trang )

- Phủ tối thiểu của tập phụ thuộc
hàm (minimal cover)
- Phụ thuộc hàm (FD)
- Phụ thuộc hàm tương đương
Phụ thuộc hàm (FD)
 Định nghĩa: Cho một lược đồ quan hệ gồm n thuộc tính: Q(A1, A2,…, An)
 X, Y là hai tập con của Q+={A1, A2,…, An}.
 r là một quan hệ trên Q.
 t1, t2 là hai bộ bất kỳ của r.
Phụ thuộc hàm giữa hai thuộc tính X và Y ký hiệu là X Y được định nghĩa như sau:
X Y (t1.X = t2.X  t1.Y = t2.Y)
(Ta nói X xác định Y hay Y phụ thuộc hàm vào X)
Phụ thuộc hàm (FD)
 Ví dụ: cho lược đồ quan hệ: Q(A, B, C, D, E)
A B C D E
1 2 3 4 5
1 4 3 4 5
1 2 4 4 1
I. AB  C
II. B  D (T)
III. DE  A (T)
Phụ thuộc hàm (FD)
 Phụ thuộc hàm hiễn nhiên:
Nếu X  Y thì X Y.
 Với r là quan hệ bất kỳ, F là tập phụ thuộc hàm thỏa trên r, ta
luôn có
F {các phụ thuộc hàm hiển nhiên}
Phụ thuộc hàm (FD)
 Thuật toán Satifies: Cho quan hệ r và X, Y là hai tập con
của Q+, Thuật toán SATIFIES sẽ trả về trị true nếu X  Y
ngược lại là false


 SATIFIES(r,X,Y)
 Sắp các bộ của quan hệ r theo X để các giá trị giống nhau trên
X nhóm lại với nhau
 Nếu tập các bộ cùng giá trị trên X cho các giá trị trên Y giống
nhau thì trả về true ngược lại là False
Phụ thuộc hàm (FD)
 Ví dụ: SATIFIES(phanCong,MAYBAY,GIOKH)
Phụ thuộc hàm (FD)
 Cách tìm tất cả tập con của Q+:
 Số tập con có thể có của Q+ = {A ,A , ,A } là 2
n
 Số phụ thuộc hàm có thể có: 2
n
x2
n
A B C D
 A B C D
AB AC AD
BC BD
ABC ABD
C
AC
BC
ABC
Ví dụ: Q+=(A, B, C, D)
• Số tập con: 2
4
=16
• Số PTH: =2
4

x2
4
=256
Hệ luật dẫn Armstrong
 Phụ thuộc hàm được suy diễn logic từ F
 Phụ thuộc hàm X  Y được suy diễn logic từ F nếu một quan hệ r bất kỳ 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.
 Bao đóng của F (F
+
)
 Bao đóng của F 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 Armstrong
 Các tính chất của tập F
+
 Tính phản xạ: F  F
+
 Tính đơn điệu: Nếu F  G thì F
+
 G
+
 Tính lũy đẳng: (F
+
)
+
= F
+

.
 Gọi G là tập tất cả các phụ thuộc hàm có thể có của r, phần phụ của F ký hiệu F
-
= G
- F
+
Hệ luật dẫn Armstrong
 Hệ luật dẫn Amstrong:
 Cho X,Y,Z,W là tập con của Q+
 r là quan hệ bất kỳ của Q.
 Ba luật của tiên đề Amstrong:
1. Luật phản xạ (reflexive rule):
Nếu Y  X thì X  Y
2. Luật tăng trưởng(augmentation rule):
Nếu Z  Q và X  Y thì XZ  YZ
3. Luật bắc cầu (Transivity Rule)
Nếu X  Y và Y  Z thì X  Z
Hệ luật dẫn Armstrong
 Ba hệ quả của tiên đề Amstrong:
1. Luật hợp (Union Rule)
Nếu X  Y và X  Z thì X  YZ
2. Luật bắc cầu giả (Pseudotransivity Rule)
Nếu X  Y và WY  Z thì XW  Z
3. Luật phân rã (Decomposition Rule)
Nếu X  Y và Z  Y thì X  Z
Bao đóng của tập thuộc tính X
(closures of attribute sets)
 Định nghĩa:
 Q là lược đồ quan hệ.
 r là một quan hệ trên Q,

 F là tập các phụ thuộc hàm trong Q.
 X, Ai là các tập con của Q+
Bao đóng của tập thuộc tính X đối với F ký hiệu là X
+
được định nghĩa:
X
+
=Ai
với X Ai là phụ thuộc hàm được suy diễn từ F nhờ hệ tiên đề Armstrong
Bao đóng của tập thuộc tính X
(closures of attribute sets)
 Thuật toán tìm bao đóng:
 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  Xi thì Xi+1 = Xi 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ì Xi chính là bao đóng của X
 Ngược lại lặp lại bước 2
Bao đóng của tập thuộc tính X
(closures of attribute sets)
Ví dụ: Cho lược đồ quan hệ Q(A,B,C,D,E,G,H) và tập phụ thuộc hàm
F={BA; DACE; DH; GH C; ACD}. Tìm bao đóng của X = {AC} trên F
 X
(0)
= {A,C} , {A,C}{D}
 X
(1)
= {A,C,D}, {A, D}{C,E}
 X
(2)
= {A,C,D,E}, {D}{H}
 X
(3)
= {A,C,D,E,H}
 X
+
= X
(3)
Cho X = {B, D} ->X
+
?
Bao đóng của tập thuộc tính X
(closures of attribute sets)

 Ví du 2: cho lược đồ quan hệ: Q(A,B,C,D,E,G)
F = { f1: A → C;
f2: A → EG;
f3: B → D;
f4: G → E}
 Tìm bao đóng của X
+
và Y
+
của
X = {A,B}; Y = {C,G,D}
 Kết quả : X+ = {ABCEG} , Y+ = {CGDE}
Sử dụng bao đóng của tập
thuộc tính
Kim tra siêu khóa (Testing for superkey)
Để kiểm tra X có phải là siêu khóa: tính X
+
,
nếu X
+
cha tất cả các thuộc tính của
R
thì X
là siêu khóa.
X là khóa d tuyển (candidate key) nếu không
tập con nào trong số các tập con của nó là
khóa.
Kim tra một phụ thuộc hàm XY có được
suy dẫn từ F.
Kim tra 2 tập phụ thuộc hàm tương đương

F
+
=G
+
Với mỗi phụ thuộc hàm YZ trong F
Tính Y+ trên tập phụ thuộc hàm G
Phụ thuộc hàm dư thừa
 Tập các phụ thuộc hàm có thể là dư thừa vì chng có thể
suy diễn từ các FDs khác.
 Ví dụ:
AC là dư thừa đối với F: (AB, BC, A C)
 Một phần của phụ thuộc hàm cũng có thể dư thừa.
 Ví dụ:
F=(A B, BC, AC,D) có thể được viết lại: F=(A B, BC,
AD)
Bao đóng của tập phụ thuộc
hàm
 Bao đóng của F ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn
logic từ F.
 Thuật toán tìm bao đóng F+
 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+
Bao đóng của tập phụ thuộc
hàm
 Ví dụ: Q(A,B,C) F = {AB  C,C  B} F
+
?

 B1: tìm tất cả tập con của các thuộc tính Q+
 B2: Tìm bao đóng của tất
cả các tập con thuộc tính
 A
+
= A
 B
+
= B
 C
+
= BC
 AC
+
= ABC
 AB
+
= ABC
 BC
+
= BC

A B C

{A} {B} {C}
{A,B} {A,C}
{B,C}
{A,B,C}
Bao đóng của tập phụ thuộc
hàm

Tìm tất cả các phụ thuộc hàm có thể có:
Kết quả: F
+
= {ABC, ABAC,ABBC, ABABC,
CB,CBC,ACB, ACAB,ACBC, ACABC}
AB ABC BC ABCF CA CBCF
+
ACBCF
+
BCAC
AAB AABC BAC ABACF
+
CBF CABC ACABCF
+
BCABC
AC BA BBC ABBCF
+
CAB ACBF
+
BCA
AAC BAB BABC ABABCF
+
CAC ACABF
+
BCAB
Bao đóng của tập phụ thuộc
hàm
 Thuật toán tìm F
+
cải tiến:

 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 3: 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+
Bao đóng của tập phụ thuộc
hàm
 Ví dụ:
 A+ = A chỉ gồm các phụ thuộc hàm hiển nhiên
 {AB}+ = ABC cho các phụ thuộc hàm không hiển nhiên sau: ABC, AB  AC, AB
 BC, AB  ABC
 Tìm tất cả các tập con của {ABC} rồi bỏ các tập con của {AB}
 Các tập con của {ABC} là:
,{A},{B},{AB},{C},{AC},{BC},{ABC}
 Bỏ các tập con của {AB} là:
,{A},{B},{AB},{C},{AC},{BC},{ABC}
 Các tập còn lại chính là vế phải của phụ thuộc hàm có vế trái là AB
Bao đóng của tập phụ thuộc
hàm
 1/ Cho quan hệ sau:
 r( A B C D E)
 a1 b1 c1 d1 e1
 a1 b2 c2 d2 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D,ABD,CBDE,EA,AE
Bao đóng của tập phụ thuộc
hàm
1. Cho Q+={ABC}.

 a) Tìm tất các các tập con của Q
 b) Tìm tất cả các phụ thuộc hàm có thể có của Q (không liệt kê phụ thuộc hàm
hiển nhiên)
2. Cho F = {ABC, BD, CE, CEGH, GA}
 a) Hãy chng tỏ phụ thuộc hàm ABE,AB  G được suy diễn từ F nhờ luật dẫn
Armstrong
 b) Tìm bao đóng của AB(với bài toán không nói gì về lược đồ quan hệ Q ta ngầm
hiểu Q+ là tập thuộc tính có trong F nghĩa là Q+={ABCEGH})
Bao đóng của tập phụ thuộc
hàm
1. Cho F = {AD,AB  DE,CE  G,E  H}. Hãy tìm bao
đóng của AB.
2. Cho F={AB  E, AG  I, BE  I, E  G, GI  H}.
 Hãy chng tỏ phụ thuộc hàm AB  GH được suy diễn từ F
nhờ luật dẫn Armstrong
 Tìm bao đóng của {AB}
3. Cho F={A  D, AB  E, BI  E, C  I, E  C} tìm bao
đóng của {AE}+

×