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

Tiểu luận 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

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.06 MB, 41 trang )

ĐẠI HỌC HUẾ

TRƯỜNG ĐẠI HỌC KHOA HỌC

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

1


Nhóm thực hiện:
1. Lê Bá Minh Phong
2. Nguyễn Thị Thanh Tâm
3. Trần Thị Thành
4. Trần Như Đăng Tuyên
5. Nguyễn Vũ Cát Tường

2


Nội dung
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 (Functional Dependency)
3. Hệ tiên đề Amstrong
4. Bao đóng của tập thuộc tính (X+)
5. Thuật tốn (thuật tố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 tốn (tìm một phủ tối thiểu của F).
3


4


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

1. 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=X∪Y;
XYZ = X∪Y∪Z; …
 Lược đồ quan hệ: R, S, …, RS = <U, SC>
(SC:Set of Constraints)
 Quan hệ: r, s, …
 Bộ: t, t1, t2, …
5


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
Định nghĩa: (Quan hệ thoả mãn phụ thuộc hàm)
Cho 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ả X→Y
⇔ ∃ t1,t2 ∈ r : t1[X] = t2[X] và t1[Y] ≠ t2[Y]
6


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
Ví dụ:
A
B
C
D
r =








a
a
b

b
c

c

c
a
b

a
a
a

r khơng thoả : A → B
r thoả : AB → C
r không thoả : B → C
r thoả : C → A
r thoả : CD → A
r không thoả : AD → C

r thỏa?

7


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
* Thuật toán: Kiểm tra quan hệ r = {t1, t2, …, tn} có thoả
mã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;
8


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
Đị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 X→Y, nếu:
∀ r ∈ R: r thoả X→Y.
Hay: ∀ r ∈ R, ∀ t1, t2 ∈ r: t1[X] = t2[X] ⇒ t1[Y] = t2[Y]

9


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
* 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
X→Y được suy ra từ F, thì ký hiệu: F╞ X→Y, hay ta
nói rằng X→Y là phụ thuộc hàm hệ quả của F.
10


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
Đị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+ = {X→Y | X, Y ⊆ U và R thoả X→Y}

Ví dụ: Cho R = <ABC, {A → B, B → C}>
Ta có:
F+ = {A → B, B → C, A → C, AB → C, A → A, ...}

11


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)


* 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+.
12


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
Đị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:
 X→U ∈ F+ (hay: X là siêu khoá của lược đồ quan hệ R).
 ∃ X’ ⊂ X : X’ là siêu khoá của R.

13


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

2. Phụ thuộc hàm (Functional Dependency)
* Ví dụ:
R = <U, F>
U = ABC;


F = {A→B, B→C}

⇒ X = {A} là khoá của lược đồ quan hệ R

* Lưu ý:
 Khoá của một lược đồ quan hệ là không duy nhất.
 Một lược đồ quan hệ ln tồn tại khố.

14


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

3. Hệ tiên đề Amstrong
Cho 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ì Y→X ∈ F+
- Luật gia tăng (tăng trưởng):
Nếu X, Y, Z ⊆ U và X→Y ∈ F+ thì XZ→YZ ∈ F+
- Luật bắc cầu:
Nếu X, Y, Z ⊆ U và X→Y ∈ F+, Y→Z ∈ F+ thì X→Z ∈ F+

15


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

3. Hệ tiên đề Amstrong

Đị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 ln có thể sử
dụng một số hữu hạn quy tắc trong hệ tiên đề này để
chứng minh.

16


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

3. Hệ tiên đề Amstrong
* Ví dụ:
Cho R = <U, F>, trong đó: U = ABC,
F = {A→B, A→C}
Chứng minh:
Ta có:

A → BC ∈ F+

A→B

(1)

A→C

(2)

Từ (1) ⇒ A → AB


(3)

(Luật gia tăng)

Từ (2) ⇒ AB → BC

(4)

(Luật gia tăng)

Từ (3) & (4) ⇒ A → BC

(Luật bắc cầu)
17


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

4. Bao đóng của tập thuộc tính (X+)
Định nghĩa:
Cho R = <U, F>, X ⊆ U. Khi đó, bao đóng của X, ký hiệu là
X+, được định nghĩa như sau:
X+ = {A | X→A ∈ F+}

* Lưu ý:
 Để chỉ rõ bao đóng của X được xác định trên tập phụ thuộc
hàm F, ta ký hiệu: X+F.
 X là siêu khoá ⇔ X → U ∈ F+ ⇔ X+ = U.
 X ⊆ X+.


18


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

4. Bao đóng của tập thuộc tính (X+)
Định lý:

(Bài tốn thành viên: điều kiện cần và đủ để X→Y ∈ F+)
Cho R = <U, F> và X, Y ⊆ U. Khi đó:
X → Y ∈ F+ ⇔ Y ⊆ X+F

Ví dụ:
Cho R = <U, F>, trong đó: U = ABC, F = {A→B, A→C}
AB → C ∈ F+

(do (AB)+ = ABC ⊇ C)

B → A ∉ F+

(do B+ = B ⊇ A)
19


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

5. Thuật tốn (thuật tốn tính bao đóng của X)
Function Baodong(X)
Begin

NEW:=X;
Repeat
OLD := NEW;
For each X’→Y’ ∈ F do
If X’ ⊆ OLD then
NEW:=NEW ∪ Y’;
Until (NEW = OLD);
Return NEW;
End;
20


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

5. Thuật tốn (thuật tốn tính bao đóng của X)
Ví dụ:
Cho R = <U, F>, trong đó:
U = ABCDEG
F = {AB→C, C→A, BC→D, D→EG,
BE→C, CG→BD, CE→AG}

Tính (BD)+:
X(0) = BD
X(1) = BD ∪ {EG} = BDEG
X(2) = BDEG ∪ {C} = BDEGC
X(3) = BDDEGC ∪ {A, AG} = BDEGCA
X(4) = BDEGCA = X(3)

⇒ (BD)+ = ABCDEG


21


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

5. Thuật tốn (thuật tốn tính bao đóng của X)
* Ví dụ:
Cho R = <U, F>, trong đó:
U = ABCDEG
F = {AB→C, C→A, BC→D, D→EG, BE→C,
CG→BD, CE→AG}

Chứng minh BD là khoá của R:
Theo câu trên ta có BD là siêu khố. Mặt khác ta có:
B+ = B ≠ U ⇒ B → U ∉ F+
D+ = DEG ≠ U ⇒ D → U ∉ F+
⇒ đpcm
22


Phần I: CƠ SỞ LÝ THUYẾT PHỤ THUỘC HÀM

5. Thuật tốn (thuật tốn tính bao đóng của X)
* Thuật tốn kiểm tra X có phải là khóa của R?

Vào:
R = <U, F> và X ⊆ U

Ra:
Yes/No

Function Khoa(X,U,F):Boolean;
Begin
If X+ <> U then
Return False
else
For each A ∈ X do
If (X − A)+ = U then
Return False;
Return True;
End;
23


24


Phần II: PHỦ CỰC TIỂU (PHỦ TỐI THIỂU)

1. Tập phụ thuộc hàm tương đương
Định nghĩa:
Cho 2 tập phụ thuộc hàm F và G. Khi đó: F được gọi là tương
đương với G, ký hiệu: F ⇔ G, nếu và chỉ nếu F+ = G+
* Ví dụ:
Cho F = {A→B, B→C}
G = {A→B, B→C, A→C}
⇒F⇔G
* Ý nghĩa:
Cho R = <U, F> và G tương đương với F thì ta có thể dùng
G thay cho F trong lược đồ quan hệ R.
Tức là R = <U,F> = <U,G>

25


×