Tải bản đầy đủ (.doc) (25 trang)

Bài soạn môn CSDL

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 (222.93 KB, 25 trang )

Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
Chương I Phụ thuộc hàm
I. Một số vấn đề thường xảy ra trong thiết kế cơ sở dữ liệu
Xét lược đồ quan hệ NC(TCC, DCC, TMH, GIA)
Một số vấn đề nảy sinh:
1. Sự dư thừa:
Địa chỉ của người cung cấp sẽ được lặp lại mỗi khi một mặt hàng được cung cấp
Ví dụ:
TCC DCC TMH GIA
A 10-Lê lợi Bắp1 10000
B 12-Hùng
vương
Cafe 6000
A 10-Lêlợi Bắp 2 30000
C 20-Nguyễn huệ Kẹo 15000
B 22-Nguyễn huệ Cafe 15000
Người cung cấp A lặp lại hai lần.
2. Sự mâu thuẩn khi bổ sung
Nếu một người cung cấp hàng, cung cấp mặt hàng mới nhưng địa chỉ bị thay đổi
lúc này sẽ xuất hiện sự mâu thuẫn vì một người có hai địa chỉ.
3. Sự bất thường khi loại bỏ
Khi cần xoá các mặt hàng được cung cấp bởi một người ta lại xoá hết các thông
tin về người đó.
Ví dụ: Trong bảng trên nếu xoá mặt hàng cafe thì tên người cung cấp và địa chỉ
cũng bị xoá theo. Vì vậy ta không tìm được khi cần thiết.
4. Sự bất thường khi bổ sung
Ta không thể ghi địa chỉ cho người cung cấp hàng nếu người đó chưa cung cấp
mặt hàng nào. Ta có thể đặt giá trị Null cho tên mặt hàng và giá của một bộ cho
người cung cấp mới, nhưng khi ta đưa vào một mặt hàng đối với người cung cấp
này, ta có nhớ để xoá các bộ có giá trị Null hay không.
Những nhược điểm trên sẽ được khắc phục nếu ta thay quan hệ


NCC(TCC, DCC) CC(TCC, TMH, GIA).
II. Các phụ thuộc hàm
Các quan hệ có thể sử dụng để mô hình hoá thế giới thực. Mỗi bộ của quan hệ có
thể biểu diễn thông tin về một thực thể hoặc về mối quan hệ giữa các thực thể.
Trong nhiều trường hợp không phải mội tập hợp hữu hạn các bộ có thể là giá trị
hiện hành của một quan hệ trên lược đồ cơ sở dữ liệu đã cho.
Ta phân biệt hai loại hạn chế trên các quan hệ:
1. Hạn chế phụ thuộc vào ngữ nghĩa của miền
Hạn chế này phụ thuộc vào sự hiểu biết các thành phần nào của một bộ là có
nghĩa chẳng hạn không thể có người có chiều cao là 3m. Còn một người có tuổi đời
1
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
30 tuổi thì không có thâm niên công tác là 32. Những hạn chế này cho phép tạo ra
các ràng buộc trong quá trình nhập và xử lý dữ liệu.
2. Hạn chế liên quan đến các giá trị giữa các thuộc tính trên quan hệ.
Hạn chế này không phụ thuộc vào giá trị trong các thành phần của mỗi bộ mà phụ
thuộc vào:
Hai bộ có trùng nhau trong một thành phần nhất định nào đó hay không, trong
chương này sẽ nghiên cứu kỹ loại hạn chế như vậy, được gọi là phụ thuộc hàm.
Một số quy ước:
- Các chữ cái in hoa ở đầu dãy anphabê(A, B, C,…) dùng để ký hiệu các thuộc
tính.
- Các chữ cái in hoa ở cuối dãy anphabê(U, V, X, Y, Z) để ký hiệu tập các thuộc
tính
- Chữ cái R để ký hiệu lược đồ quan hệ. Nếu một lược đồ quan hệ R có các
thuộc tính A, B, C thì ta viết R = ABC = {A, B, C}
- Phép ghép được sử dụng thay cho phép hợp . Chẳng hạn:
A

B được viết AB, X


Y được viết XY.
III. Cơ sử lý luận của phụ thuộc hàm
1. Định nghĩa: Cho lược đồ quan hệ R. X , Y

R, r là quan hệ trên R, r thoả
mãn phụ thuộc X→Y (X xác định Y)


t
1
,t
2


r: t
1
(X)=t
2
(X)

t
1
(Y)=t
2
(Y).
X→Y là một phụ thuộc hàm của R


hiện hành r của R đều thoả mãn

X→Y
Ví dụ:
Cho R = ABC và các phụ thuộc hàm A→B, B→C.
Dễ thấy: Nếu quan hệ r trên R thoả A→B, B→C thì R cũng thoả A→C.


t
1
,t
2

r. Giả sử t
1
(A)=t
2
(A) .
Vì r thoả A→B

t
1
(B)=t
2
(B).
Vì r thoả B→C

t
1
(C)=t
2
(C).

Vậy

t
1
,t
2


r, t
1
(A)=t
2
(A)

t
1
(C)=t
2
(C).
Vậy r thoả A→C.
2. Phụ thuộc được suy diễn logic
Cho lược đồ quan hệ R, F là tập các phụ thuộc hàm trên R. Cho f là phụ thuộc
hàm tuỳ ý
Ta nói: f được suy diễn logic từ F nếu mọi quan hệ r trên R mà thoả F thì cũng
thoả f.
Ký hiệu: F ╞ f : f được suy diễn logic từ F
F* = {f / F╞ f }
Việc xác định tập F* là rất khó ta sẽ sử dụng một quan hệ tiên đề để từ đó xác định
tập F*
Ví dụ: Cho R = ABC

F = {A→B, B→C }. Chứng minh: F ╞ A→C.
Dùng phản chứng: Tồn tại một quan hệ Trên R thoả F và không thoả A→C.
Ta có: r thoả F

r thoả A→B, r thoả B→C
2
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
Vì r thoả A→B


t
1
,t
2


r: t
1
(A)=t
2
(A)

t
1
(B)=t
2
(B) (Vì r thoảB→C)


t

1
(C)=t
2
(C).

r thoả A→C Vô lý.
3. Hệ tiên đề Armstrong (1974) 3 tiên đề
(A
1
) Phản xạ: Nếu Y

X thì X→Y. trong đó X,Y

R.
(A
2
) Gia tăng: Nếu X→Y thì XZ→YZ (X, Y, Z

R )
(A
3
) Bắc cầu : Nếu X→Y và Y→Z thì X→Z.
Ký hiệu F
+
=

{f / F╞ f }
(F
+
là tập các phụ thuộc hàm f được suy diễn logic từ F bằng cách áp dụng một số

hữu hạn lần các quy tắc Armstrong ).
Định lý : F
+
là xác đáng, nghĩa là F
+

F* F
+
là đầy đủ, nghĩa là F
+
= F*
4. Tính chất
a. Quy tắc hợp: X→Y và X→Z

X→ YZ.
b. X→Y và U→V

XY→ UV.
X
1
→Y
1
, X
2
→Y
2
,…, X
k
→Y
k



X
1
,X
2
,…,X
k
→Y
1
,Y
2
,…,Y
k
.
c. Quy tắc chiếu: X→Y và Z

Y

X→Z.
d. Quy tắc giả bắc cầu: X→Y và WY→Z

WX→Z .
Chứng minh:
a. X→Y

X→ XY (do A
1
)
X→Z


XY→ YZ (do A
2
)


X→YZ(do A3).
b. X→Y

XU→YU (do A
2
)
U→V

YU→ YV(do A
2
)


XU→YV.
c. Vì Z

Y

Y→Z (do A
1
)
Theo giả thiết X→Y



X→Z (do A
3
).
 Một số ví dụ:
Ví dụ 1: Chứng minh rằng: Nếu A→B là phụ thuộc hàm trên lược đồ quan hệ
R(AB) thì phép suy diễn B→A là không đúng.
Hướng dẫn:
Xem phản ví dụ:
Xét quan hệ
r A B
a
1
a
2
b
1
b
1
Ta có r thoả A→B nhưng không thoả B→A
Ví dụ 2: Cho R = ABC. Hãy chứng minh phép suy diễn sau là sai:
a. AB→C

A→C
b. AB→C

B→C .
Hướng dẫn:
a. Xem phản ví dụ:
3
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang

r A B C
a
1
a
1
b
1
b
2
c
1
c
2
Ta có r thoả AB→C nhưng r không thoả A→C
b.
r A B C
a
1
a
2
b
1
b
1
c
1
c
2
Ta có r thoả AB→C nhưng r không thoả B→C .
Ví dụ 3: Cho R = ABC. Chứng minh phép suy diễn sau là sai:

AB→C , C→A

C→B.
Hướng dẫn: Xét quan hệ:
r A B C
a
1
a
2
b
1
b
2
c
1
c
1
Ta có r thoả AB→C và C→A nhưng r không thoả C→B.
Ví dụ 4: Cho R = ABCD và tập phụ thuộc hàm:
F = {A→B, BC→D}. Cho biết các phụ thuộc hàm sau đây có thể suy diễn
được trên tập F.
a. AC→D
b. B→ D
c. AD→ B.
Hướng dẫn:
a. Cách 1: Ta có: A→B

AC→BC (Gia tăng).
Vì BC→D (Gỉa thiết).


AC→D.
Cách 2: A→B và BC→D Theo quy tắc giả bắc cầu

AC→D.
b. Xem quan hệ:
r A B C D
a
1
a
2
b
1
b
1
c
1
c
2
d
1
d
2
Ta có r thoả A→B, BC→D nhưng r không thoả B→D.
c. Ta có :A→B

AD→BD (Gia tăng)


AD→B (Quy tắc chiếu/tách)
Ví dụ 5: Cho R = ABCD, F = {A→C, B→D}.

Chứng minh: F ╞ AB→ABCD.
Hướng dẫn: A→C

AB→BC (Gia tăng)
B→D

AB→AD (Gia tăng)


AB→ABCD (Quy tắc hợp).
4
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
Nhận xét: AB là siêu khkoá của lược đồ quan hệ R = ABCD.
5. Định nghĩa khoá:
Cho lược đồ quan hệ R = (U, F), ( U: Tập thuộc tính, F: Tập phụ thuộc hàm ).
X

U được gọi là khoá của lược đồ quan hệ R nếu nó thoả mãn hai điều kiện:
(i) X→R

F
+
.
(ii)

Y là tập con thực sự của X mà Y→R

F
+


Vấn đề: Tìm một khoá của lược đồ quan hệ và tổng quát tìm tất cả các khoá của
lược đồ quan hệ.
Chú ý: Nếu X chỉ thoả mãn điều kiện Y thì nó được gọi là một siêu khoá.
6. Bao đóng của tập thuộc tính
Giả sử lược đồ quan hệ R = (U,F), U là tập thuộc tính, F là tập phụ thuộc hàm. X

U
Bao đóng của X đối với F, kí hiệu X
+
là tập hợp:
X
+
= {A / X→A

F
+
} (F ╞ X→A)
Tính X
+
?
Bổ đề: X→Y

F
+


Y

X
+

(Y

U).
Chứng minh:
Điều kiện cần: Giả sử X→Y

F
+
. Chứng minh Y

X
+

Ta có thể giả sử Y = A
1
A
2
… A
k
Do X→Y = A
1
A
2
…A
k

F
+



X→A
i

F
+
, i = 1,k (tách/chiếu)

A
i

X
+
i = 1,k

Y = A
1
A
2
… A
k

X
+

Điều kiện đủ: Giả sử Y = A
1
A
2
… A
k

và Y

X
+
. Chứng minh: X→Y

F
+
Do Y = A
1
A
2
…,A
k

X
+


X→A
i

F
+
i = 1,k

X→A
1
A
2

… A
k

F
+
* Thuật toán tính X
+
: Thực hiện theo các bước.
1. X
(0)
= X.
2. X
(i+1)
= X
i


{A/Y→Z

F
+
, A

Z, Y

X
i
}.
3. Lặp lại bước 2 cho đến khi X
(i+1)

= X
i
thì dừng.
Kết luận X
+
= X
(i)
.
Ví dụ1: Cho lược đồ quan hệ R = ABCD.
F = {A→B, B→C, BC→D, DA→B}.
X = A
Tìm X
+
?
Hướng dẫn:
Ta có:
1. X
0
= X = A.
2. X
1
= X
0


B = AB
X
2
= X
1



C = ABC
X
3
= X
2


D = ABCD = U
Vậy X
4
= X
3
.


X
+
= A
+
= ABCD.
5
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
Nhận xét: A→ABCD


A là siêu khoá, hơn nữa A là một khoá.
Chú ý: Cho lược đồ quan hệ R = (U, F), X


U: X
+
= U

X là siêu khoá và
ngược lại.
Chứng minh: Giả sử X
+
= U (Theo định nghĩa X
+
)

X→U

F
+

X là siêu khoá.
Đảo lại: Giả sử X là siêu khoá

X→U

F
+

U

X
+
mà X

+

U

X
+
= U.
Ví dụ2: Cho lược đồ quan hệ R = ABCD , F = {A→C, B→D}.
Chứng minh AB là khoá. (X = AB, X
+
= ?)
1. X
0
= X = AB
2. X
1
= X
0


CD = ABCD = U.

X
2
=

X
1

X

+
= AB
+
= ABCD.
Vậy AB là siêu khoá.
Dễ chứng minh: AB là khoá, ta chứng minh không thể có A→ABCD và
B→ABCD. (Dùng phản chứng).
Xét quan hệ:
r A B C D
a
1
a
2
a
1
b
1
b
1
b
2
c
1
c
2
c
1
d
1
d

1
d
2
Ta có r thoả A→C, B→D nhưng r không thoả A→ABCD và B→ABCD.
Ví dụ3: Cho lược đồ quan hệ R = XYZWQRP
F = {XY→W, Y→Z, WZ→P, WP→QR,Q→X }.
Chứng minh XY→P

F
+
theo hai cách.
Cách 1: XY→W và WZ→P

XYW→P(theo tính chất giả bắc cầu) mà Y→Z


XYY = XY→P (theo tính chất giả bắc cầu).
Cách 2:
1. T
0
= XY
2. T
1
= T
0


WZ = XYWZ
T
2

= T
1


P = XYWZP
T
3
= T2

QR = XYWZPQR = U.
XY→U

XY→P.
Định lý: Thuật toán tính bao đóng X
+
là đúng.
Chứng minh: Gỉa sử thuật toán dừng khi X
(n+1)
= X
n
Ta chứng minh X
+
= X
n
.
 Trước hết ta sẽ chứng minh nếu A

X
(j)
thì A


X
+
(j = 1,2,…,n).
Theo quy nạp:
- Với j = 0

A

X

X→A

F
+


A

X
+
- Giả thiết quy nạp: với j > 0, nếu A

X
(j-1)
thì A

X
+
lúc đó với A


X
(j)
thì:
hoặc
A

X
(j-1)
hoặc A

Z, Y→Z

F, Y

X
(j-1)
.
(X
(j)
= X
(j-1)


{A / Y→Z, A

Z, Y

X
(j-1)

} )
6
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
Vậy: - Nếu A

X
(j-1)
thì A

X
+
(do giả thiết quy nạp).
- Nếu A

Z, Y→Z

F, Y

X
(j-1)


Y

X
+


X→Y


F
+
mà Y→Z

F nên
X→Z

F mà A

Z

X→A

F
+


A

X
+
.
Vậy X
(n)

X
+
.
 Đảo lại: Ta chứng minh X
+


X
(n)
.
Giả sử

A

X
+
mà A

X
(n)
.
Xét quan hệ r gồm 2 bộ 11…11 1…1
11…11 0…0
Các thuộc tính

X
(n)
Các thuộc tính

U \ X
(n)

Ta sẽ chứng minh r thoả tập phụ thuộc hàm F. Thật vậy:
Nếu r không thoả F



phụ thuộc hàm V→W

F không được thoả bởi r

V

X
(n)
(Vì nếu không quan hệ r sẽ thoả V→W ) và W chứa ít nhất một thuộc
tính A

X
(n)
(Vì nếu không r sẽ thoả V→W ) .
Từ V

X
(n)
/ A

W, V→W suy ra A

X
(n+1)

Vậy X
(n)
≠ X
(n+1)
vô lý .

Tóm lại: X
+

X
(n)
.
7. Tính đầy đủ của hệ tiên đề Armstrong
F* = {f / F╞ f }.
F
+
= {f / F╞ f }.
• Tính xác đáng : F
+


F*
• Tính đầy đủ : F*

F
+



f, f

F*

f

F

+


f, f

F
+


f

F*
Chứng minh: Giả sử U là tập thuộc tính và f: X→Y

F
+
tức là f không suy diễn
logic từ hệ tiên đề Armstrong.
Ta sẽ chứng minh f

F*
Xét quan hệ r gồm 2 bộ : bộ 11…11 1…1
11…11 0…0

Các thuộc tính

X
+
Các thuộc tính


U \ X
+

Ta chứng minh rằng r thoả tập phụ thuộc hàm. Dùng phản chứng:
Giả sử: r không thoả F



phụ thuộc hàm V→W

F không được thoả bởi r


V

X
+
(Vì nếu không r thoả V→W : do cách xây dựng quan hệ r) và W chứa ít
nhất một thuộc tính

X
+
(Vì nếu không r thoả V→W ).
Mặt khác: X→X
+


F
+
và V


X
+


X
+
→V

F
+
, V→W , Vì A

W

W→A
Từ đó suy ra: X→A

F
+


A

X
+
vô lý.
Vậy r thoả tập phụ thuộc hàm F
Ta sẽ chứng minh r không thoả f (nhưng f


F*).
Dùng phản chứng: Giả sử r thoả f .
Ta có X

X
+


Y

X
+
( Vì nếu không thì có hai bộ bằng nhau trên X nhưng
không bằng nhau trên Y )

f: X→Y

F
+
vô lý (điều phải chứng minh)
7
A
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
F* = F
+

8. Thuật toán tìm một khoá
8.1. Định lý (Hồ Thuần – Lê Văn Bào, 1983).
Cho lược đồ quan hệ R = (U, F),U là tập thuộc tính, F là tập phụ thuộc hàm. Cho X


U. Giả sử F = {L
i
→R
i
/ L
i
, R
i

U, i = 1,…,k }
Nếu X là khoá của lược đồ quan hệ R thì
U\R

X

(U\R)

(L

R)
Trong đó: L =

k
i
Li
1
=
, R =

k

i
Ri
1
=
Định lý này cho ta điều kiện cần để X là khoá của lược đồ quan hệ.
8. 2.Hệ quả:
(i) Nếu L

R = Ø thì K = U\R là khoá duy nhất của R.
(ii) Ký hiệu: G =

i
Ki
, ki là khoá của R

G = U\R.
(iii) Từ định lý ở trên, ta có cấu trúc chung của một khoá của lược đồ
quan hệ R là:
K = (U\R)

Z trong đó Z

L

R.
Ví dụ 1: Cho lược đồ quan hệ R = (U, F)
U = {A
1
,…, A
10

}
F = {A
1
→A
2
, A
3
→A
4
, A
5
→A
6
, A
7
→A
8
, A
9
→A
10
}.
Ta có:
L = A
1
A
3
A
5
A

7
A
9
, R = A
2
A
4
A
6
A
8
A
10


L

R = Ø thì K =U\R =A
1
A
3
A
5
A
7
A
9
là khoá duy nhất của R=(U, F).
Ví dụ 2:Cho lược đồ quan hệ R=(U, F). Giả sử L


R = {A
1
, A
2
} ≠ Ø, (U\R)
+
≠ U.
a. Chứng minh: (U\R)

(L

R) không phải là khoá của R.
b. Chứng minh R có đúng 2 khoá là: (U\R)

{A
1
} và (U\R)

{A
2
}.
Hướng dẫn:
a. Giả sử K = (U\R)

(L

R) là khoá của R

K là khoá duy nhất.


G =

i
Ki
= K = U\R theo hệ quả (ii). Vô lý với K = (U\R)

(L

R).
c. Do (U\R)
+
≠ U

U\R không là khoá của R.
(U\R)

(L

R) không phải khoá (Chứng minh trên).
Theo hệ quả (iii) thì có 3 khả năng:
α
. (U\R)

{A
1
} là khoá và (U\R)

{A
2
} không là khoá

β
. (U\R)

{A
2
} là khoá và U\R)

{A
1
} không là khoá
χ
. (U\R)

{A
1
} là khoá và (U\R)

{A
2
} là khoá .
• Trường hợp
α
không xảy ra vì nếu không (U\R)

{A
1
} là khoá duy nhất


G =


i
Ki
= (U\R)

{A
1
} = U\R. Vô lý.
• Tương tự trường hợp
β
không xảy ra:
- Vậy chỉ còn
χ
là đúng.
Ví dụ 3: Cho lược đồ quan hệ R = (U, F). U = {A, B, C, D, E, G}
F = {B→C, C→B, A→GD}.
8
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
Chứng minh AEBC không là khoá.
Hướng dẫn:
Ta có: L = ABC, R = BCDG

L

R = BC.
Mặt khác: U\R = AE và (U\R)
+
= (AE)
+
= AEGD ≠ U.


(U\R)

(L

R) = AEBC không là khoá .Hơn nữa R có 2 khoá:
(U\R)

{B} = AEB
(U\R)

{C} = AEC.
8.3. Thuật toán tìm một khoá
Từ định lý nói trên ta có thể viết thuật toán tìm một khoá của lược đồ quan hệ như
sau:
Vào: Lược đồ quan hệ R = (U, F)
Ra : Một khoá của R.
Phương pháp: Thuật toán được tính theo các bước
1. X:= U\R
2. Nếu X
+
= U thì sang bước 5
3. X := (U\R)

(L

R)
4.

Ai


L

R thực hiện:
X := X \ {Ai}
Nếu X
+
≠ U thì X := X

Ai
5. Kết luận X là khoá của R. Kết thúc
Ví dụ1: Cho lược đồ quan hệ R = (U, F). U = {A, B, C, D, E, G}
F = {B→C, C→B, A→GD}.
Tìm các khoá của R?
Hướng dẫn:
Ta có: L = ABC, R = BCDG

L

R = BC
1. X:= U\R
2. Ta có X
+
= (AE)
+
= AEGD ≠ U
3. X := (U\R)

(L


R) = AEBC
4. + Với B

L

R :
X :=X \ B = AEC
X
+
= (AEC)
+
= AECGDB = U
+ Với C

L

R :
X :=X \ C = AE
X
+
= (AE)
+
= AEGD ≠ U
Vậy X := X

U = AEC
Vậy X = AEC là một khoá của R.
Tiếp theo ta viết L

R = CB

+ Với C

L

R :
X :=X \ C = AEB
X
+
= (AEB)
+
= AEBCGD = U
+ Với B

L

R :
X :=X \ B = AEB \ B= AE
9
Bài soạn môn cơ sở dữ liệu Nguyễn Thị Diễm Ngọc Trang
X
+
= (AE)
+
= AEGD ≠ U
Vậy X :=AE

B = AEB
Vậy X = AEB là một khoá của R.
Tóm lại R có hai khoá là AEB và AEC.
9. Thuật toán tìm mọi khoá của lược đồ quan hệ

9.1. Định lý( Luccheri – Orborn - 1979).
Cho lược đồ quan hệ R = (U, F), U = {A
1
,…,A
n
}, F = {L
i
→R
i
/ L
i
, R
i

U,
i = 1,…,k
Gọi Қ là tập khác rỗng các khoá của R.
Điều kiện cần và đủ để họ 2
U
/Қ có chứa khoá của lược đồ quan hệ là:
(i)

K

Қ
(ii)

phụ thuộc hàm Li
0
→Ri

0


F sao cho:
Tập T = L
i0

(K \ R
i0
) không chứa phần tử nào của Қ
( 2
U
là ký hiệu tập các tập con của U ).
Từ định lý trên ta có thuật toán tìm mọi khoá của lược đồ quan hệ như sau:
Vào: Lược đồ quan hệ R = (U, F)
Ra : Mọi khoá của R.
Phương pháp:
1. Tìm một khoá K của R ( theo thuật toán tìm một khoá đã biết )
Đặt Қ = {K}.
2. Với mỗi K

Қ và với mỗi phụ thuộc hàm L
i
→R
i


F .
Kiểm tra T = L
i


(k \ R
i
) có chứa phần tử thuộc Қ hay không?
(i) Nếu

T mà không chứa phần tử nào của Қ .Ta sẽ xác định
khoá mới
~
K
trong siêu khoá T (theo thuật toán tìm khoá ) và
gán Қ = Қ

{
~
K
}, quay lại bước 2.
(ii) Nếu không tồn tại T như vậy thì kết luận
~
K
là tập tất cả các
khoá.
Chú ý: Tập T thoả mãn điều kiện (ii) ở định lý trên là một siêu khoá.
Ví dụ1: Xét lại ví dụ trên.
Cho lược đồ quan hệ R = (U, F). U = {A, B, C, D, E, G}
F = {B→C, C→B, A→GD}.
Tìm mọi khoá của R = (U, F)?
Hướng dẫn:
1. Tìm một khoá K của R
K = AEC (theo thuật toán tìm khoá )

Қ = {AEC}.
2.
+. Với Қ = AEC
Xét phụ thuộc hàm B→C

F, T = B

(K \C) = AEB. Không chứa phần tử
của Қ . Ta tìm khoá
~
K
trong siêu khoá T = AEB. Ta dễ dàng tìm được
~
K
= AEB
10

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

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