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

Phép suy dẫn của các phụ thuộc hàm trong mô hình dữ liệu dạng khối

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.05 MB, 67 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2





ĐINH THỊ LỰC


PHÉP SUY DẪN CỦA CÁC PHỤ THUỘC HÀM
TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI



LUẬN VĂN THẠC SỸ MÁY TÍNH
Chuyên ngành: Khoa học máy tính
Mã ngành: 60 48 01 01

Ngƣời hƣớng dẫn khoa học: PGS.TS. Trịnh Đình Thắng















Hà Nội, 2014
LỜI CẢM ƠN
Để hoàn thành luận văn này tôi đã nhận đƣợc sự giúp đỡ tận tình của
thầy hƣớng dẫn khoa học, của các thầy cô trƣờng Đại học Sƣ phạm Hà Nội 2.
Tôi xin chân thành cảm ơn các thầy cô trƣờng Đại học Sƣ phạm Hà Nội 2 đã
tạo điều kiện học tập, nghiên cứu và giúp đỡ tôi rất nhiều trong quá trình làm
luận văn. Đặc biệt tôi xin cảm ơn thầy PGS.TS Trịnh Đình Thắng đã tận
tình hƣớng dẫn, chỉ bảo tôi trong suốt quá trình học tập, nghiên cứu đề tài và
giúp đỡ tôi hoàn thành bản luận văn này.
Vĩnh Phúc, ngày 01 tháng 02 năm 2015
Học viên


Đinh Thị Lực
LỜI CAM ĐOAN
Tôi xin cam đoan đây là kết quả nghiên cứu của tôi dƣới sự hƣớng dẫn
khoa học của PGS. TS Trịnh Đình Thắng.
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc
ai công bố trong bất kỳ công trình nào khác.

Học viên


Đinh Thị Lực
















MỤC LỤC
MỞ ĐẦU 1
CHƢƠNG 1: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CÁC PHÉP SUY
DẪN 3
1. 1. Các khái niệm cơ bản 3
1.1.1. Thuộc tính và miền thuộc tính 3
1.1.2. Quan hệ, lƣợc đồ quan hệ và khoá của quan hệ 3
1.2. Các phép toán đại số quan hệ. 5
1.2.1. Phép hợp và phép giao 5
1.2.2. Phép trừ và tích Đề-các 6
1.2.3. Phép chiếu, phép chọn và phép kết nối 7
1.3. Cácphụ thuộc hàm 10
1.3.1.Các tính chất của phụ thuộc hàm [6] 11
1.3.2. Hệ tiên đề Amstrong và các phép suy dẫn[6] 11
1.4. Bao đóng. 13
1.4.1. Bao đóng của tập phụ thuộc hàm và của tập thuộc tính 13
1.4.2. Bài toán thành viên và thuật toán tìm bao đóng của tập thuộc tính 16
1.5. Khoá và các dạng chuẩn của lƣợc đồ quan hệ 18

1.6. Các phép suy dẫn trên mô hình quan hệ. 19
1.6.1. Phụ thuộc kết nối (Join Dependencies) 20
1.6.2. Phụ thuộc hàm phức hợp(compound functional dependency - CFD) . 30
Kết luận chƣơng 1 31
CHƢƠNG 2: MÔ HÌNH CƠ SỞ DỮ LIỆU DẠNG KHỐI 32
2.1. Khối, lƣợc đồ khối và các phép tính trên khối 32
2.1.1. Khối, lƣợc đồ khối. 32
2.1.2.Các phép tính trên khối [5] 34
2.2. Khoá của khối 35
2.3. Đại số quan hệ trên khối và một số tính chất 37
2.3.1. Đại số quan hệ trên khối [5] 37
2.4. Các phụ thuộc hàm trên khối 41
2.5. Bao đóng của tập thuộc tính chỉ số 43
2.6. Khoá của lƣợc đồ khối R đối với tập F trên R. 44
2.7. Đánh giá độ phức tạp thời gian của thuật toán 46
2.8. Dạng chuẩn của khối 48
Kết luận chƣơng 2 50
CHƢƠNG 3: CÁC PHÉP SUY DẪN TRONG MÔ HÌNH DỮ LIỆU DẠNG
KHỐI 51
3.1. Phụ thuộc kết nối 51
3.2. Phụ thuộc hàm phức hợp 54
Kết luận chƣơng 3 60
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 62

1

MỞ ĐẦU
1. Lý do chọn đề tài
Để xây dựng đƣợc một hệ thống cở sở dữ liệu tốt, ngƣời ta thƣờng sử dụng

các mô hình dữ liệu thích hợp đã có một số mô hình đƣợc sử dụng trong các
hệ thống cở sở dữ liệu nhƣ: mô hình thực thể - liên kết, mô hình mạng, mô
hình phân cấp, mô hình hƣớng đối tƣợng, mô hình dữ liệu datalog và mô
hình quan hệ. Trong số các mô hình này thì có ba mô hình dữ liệu thƣờng
đƣợc sử dụng là mô hình phân cấp, mô hình mạng và mô hình quan hệ. Đối
với ba mô hình này thì mô hình quan hệ đƣợc quan tâm hơn cả. Mô hình
này đƣợc E. Codd đề xuất năm 1970. Tuy nhiên do các quan hệ có cấu trúc
phẳng (tuyến tính) nên mô hình này chƣa đủ đáp ứng đối với các ứng dụng
phức tạp, các cơ sở dữ liệu có cấu trúc phi tuyến tính,…
Trong những năm gần đây, việc nghiên cứu nhằm mở rộng mô hình dữ liệu
quan hệ đã đƣợc nhiều nhà khoa học quan tâm. Theo hƣớng nghiên cứu này
một mô hình dữ liệu mới đã đƣợc đề xuất đó là mô hình dữ liệu dạng khối.
Mô hình dữ liệu này đƣợc xem là một mở rộng của mô hình dữ liệu quan hệ.
Để hoàn thiện cho lý thuyết về mô hình dữ liệu dạng khối em đã
chọn đề tài “Phép suy dẫn của các phụ thuộc hàm trong mô hình dữ liệu
dạng khối”. Nhằm chứng minh tính chất các phép suy dẫn nhƣ suy dẫn theo
tiên đề, suy dẫn theo khối, suy dẫn theo quan hệ, các định lí tƣơng đƣơng.
1. Mục đích nghiên cứu
Nghiên cứu về các phép suy dẫn của các phụ thuộc hàm trong mô hình dữ
liệu dạng khối nhƣ suy dẫn theo tiên đề, suy dẫn theo quan hệ, định lí các
phép suy dẫn tƣơng đƣơng.
2. Nhiệm vụ nghiên cứu
Tìm hiểu về mô hình cơ sở dữ liệu quan hệ.
Tìm hiểu về mô hình cơ sở dữ liệu dạng khối
2

Nghiên cứu về các phép suy dẫn của các phụ thuộc hàm trong mô hình dữ
liệu dạng khối.
4. Đối tƣợng và phạm vi nghiên cứu
Đối tƣợng, phạm vi nghiên cứu về các phép suy dẫn trong mô hình dữ liệu

dạng khối, các định lí tƣơng đƣơng.
5. Phƣơng pháp nghiên cứu
Luận văn đƣợc thực hiện bằng phƣơng pháp nghiên cứu lý thuyết: thu thập
tài liệu, phân tích các tài liệu và những thông tin liên quan đến đề tài, kết
hợp các nghiên cứu đã có trƣớc đây của tác giả trong nƣớc cùng với sự chỉ
bảo, góp ý của thầy hƣớng dẫn để hoàn thành nội dung nghiên cứu.
6. Những đóng góp mới của đề tài
- Phát biểu và chứng minh các tính chất của phụ thuộc kết nối trên khối
- Phát biểu và chứng minh tính chất của phụ thuộc phức hợp trên khối.
- Đƣa ra một số tính chất đặc trƣng của phụ thuộc phức hợp trên khối tƣơng
đƣơng.
7. Cấu trúc của luận văn
Luận văn gồm: Lời mở đầu, ba chƣơng nội dung, phần kết luận và tài liệu
tham khảo.
Chƣơng 1: Trình bày các khái niệm cơ bản nhất về mô hình quan hệ: Trình
bày các phép toán đại số trên mô hình quan hệ, các vấn đề về phụ thuộc
hàm, khóa, bao đóng, các phép suy dẫn trên mô hình quan hệ.
Chƣơng 2: Giới thiệu tổng quan về mô hình dữ liệu dạng khối: Định nghĩa
khối, lƣợc đồ khối, khóa, đại số quan hệ trên khối, phụ thuộc hàm và các
dạng chuẩn của khối.
Chƣơng 3: Phát biểu và chứng minh các tính chất của phụ thuộc kết nối trên
khối, phụ thuộc phức hợp trên khối. Đƣa ra các tính chất đặc trƣng của phụ
thuộc phức hợp trên khối.
3

CHƢƠNG 1: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CÁC PHÉP
SUY DẪN
1. 1. Các khái niệm cơ bản
1.1.1. Thuộc tính và miền thuộc tính
Định nghĩa 1.1[6]

- Thuộc tính là đặc trƣng của đối tƣợng.
-
Tập tất cả các giá trị có thể có của thuộc tính A
i
gọi là miền giá trịcủa
thuộc tính đó, ký hiệu: Dom(A
i
) hay viết tắt là D
Ai

Ví dụ 1.1:
Đối tƣợng Sinhviên có các thuộc tính nhƣ: MaSV, Hoten, NgSinh, Đchi,
Miền giá trị của các thuộc tính của đối tƣợng Sinh viên :
Dom(MaNV) = {char(4)} ={„SV01‟, „SV02‟, „SV03‟ };
Dom(Hoten) = {char(30)} ={„Nguyễn Văn A‟,„Nguyễn Văn B‟, } ;
Dom(NgSinh) = {date} ={„20/03/78‟, „15/12/96‟, } ;
Dom(Đchi) ={char(10)} ={„ĐN‟, „NĐ‟, „VP‟, …}.
1.1.2. Quan hệ, lƣợc đồ quan hệ và khoá của quan hệ
Định nghĩa 1.2[6]
Cho U= {A
1
, A
2
, …, A
n
} là một tập hữu hạn không rỗng các thuộc tính.
Mỗi thuộc tính A
i
(i=1,2, …, n) có miền giá trị là Dom(A
i

)
. Khi đó r là một tập
các bộ {h
1
, h
2
, …, h
m
} đƣợc gọi là quan hệ trên U với h
j
(j=1, 2, …, m) là một
hàm:
h
j
:U →
i
i
A
AU
D

sao cho h
j
(
A
i
)

D
A

i
(i=1, 2, ,n).

Ta có thể xem một quan hệ nhƣ một bảng, trong đó mỗi hàng (phần tử)
là một bộ và mỗi cột tƣơng ứng với một thành phần gọi là thuộc tính. Biểu
diễn quan hệ r thành bảng nhƣ sau:

4


A
1

A
2


A
n

h
1

h
1
(A
1
)
h
1

(A
2
)

h
1
(A
n
)
h
2

h
2
(A
1
)
h
2
(A
2
)

h
2
(A
n
)






h
m

h
m
(A
1
)
h
m
(A
2
)

h
m
(A
n
)

Bảng 1.1: Biểu diễn quan hệ r.
Ví dụ 1.2:




Trong đó các thuộc tính là MaSV: mã sinh viên; HOTEN: họ tên; NS: ngày

sinh; DC: địa chỉ; KHOA: khoa.
Bộ giá trị: (SV01, A, 24/01/92, ĐN, TOAN) là một bộ.
Nếu có một bộ t = (d
1
, d
2
, d
3
, , d
m
)

r, r xác định trên U, X

U thì
t(X)(hoặc t.X) đƣợc gọi là giá trị của tập thuộc tính X trên bộ t.
Định nghĩa 1.3[6]
Tập tất cả các thuộc tính trong một quan hệ cùng với mối liên hệ giữa
chúng đƣợc gọi là lược đồ quan hệ.
Lƣợc đồ quan hệ R với tập thuộc tính U={A
1
, A
2
, , A
n
} đƣợc viết là
R(U) hoặc R(A
1
, A
2

, , A
n
).
Định nghĩa 1.4[6]
Khoá của quan hệ r xác định trên tập thuộc tính U={A
1
, A
2
, , A
n
} là
tập con K

U sao cho bất kỳ hai bộ khác nhau t
1
, t
2

r luôn thoả t
1
(K) ≠
Sinhviên
MaSV
HOTEN
NS
DC
KHOA

SV01
A

24/01/92
ĐN
TOAN

SV02
B
3/05/92
VP
LY

SV03
B
3/05/92
VP
TOAN
5

t
2
(K) và bất kỳ tập con thực sự K
1

K nào đó đều không có tính chất đó.
Tập thuộc tính K‟ đƣợc gọi là siêu khoá nếu K‟

K và K là một khoá của
quan hệ r.
Ví dụ 1.3:
a có thuộc




Ta có thuộc tính MaSV là khóa của quan hệ.
1.2. Các phép toán đại số quan hệ.
Định nghĩa 1.5[6]
Hai quan hệ r và s đƣợc gọi là khả hợp nếu nhƣ hai quan hệ này xác
định trên cùng tập thuộc tính và các thuộc tính cùng tên có cùng miền giá trị.
1.2.1. Phép hợp và phép giao
a)Phép hợp
- Phép hợp hai quan hệ khả hợp r và s, kí hiệu là r ∪ s, là tập tất cả các bộ
thuộc r hoặc thuộc s. Ta có: r ∪ s = {t│ t ∈ r ∨t ∈s}
Ví dụ 1.4:
r (A B C) ; s (A B C)
x
1
y
1
z
1
x
1
y
1
z
1

x
2
y
1

z
2
x
2
y
2
z
2

x
2
y
2
z
1

r ∪ s (A B C)
x
1
y
1
z
1

x
2
y
1
z
2


x
2
y
2
z
1

x
2
y
2
z
2

Sinhviên
MaSV
HOTEN
NS
DC
KHOA

SV01
A
24/01/92
ĐN
TOAN

SV02
B

3/05/92
VP
LY

SV03
B
3/05/92
VP
TOAN
6

b)Phép giao
- Phép giao của hai quan hệ khả hợp r và s, kí hiệu là r ∩s, là tập tất cả các bộ
thuộc cả hai quan hệ r và s. Ta có:
r ∩ s = {t│ t ∈ r ∧ t ∈s}
Ví dụ 1.5:
r (A B C) ; s (A B C)
x
1
y
1
z
1
x
1
y
1
z
1


x
2
y
1
z
2
x
2
y
2
z
2

x
2
y
2
z
1


r ∩ s (A B C)
x
1
y
1
z
1

1.2.2. Phép trừ và tích Đề-các

a) Phép trừ
Phép trừ của hai quan hệ khả hợp r và s, kí hiệu: r - s là tập tất cả các bộ thuộc
r nhƣng không thuộc s. Ta có:
r - s = {t│t ∈ r ∧ t ∉ s}
Ví dụ 1.6:
r (A B C) ; s (A B C)
x
1
y
1
z
1
x
1
y
1
z
1

x
2
y
1
z
2
x
2
y
2
z

2

x
2
y
2
z
1

r - s = (A B C) s - r = (A B C)
x
2
y
1
z
2
x
2
y
2
z
2

x
2
y
2
z
1


b) Tích Đề-các
Cho quan hệ r xác định trên tập thuộc tính {A
1
, A
2
, , A
n
} và quan hệ s
7

xác định trên tập thuộc tính {B
1
, B
2
, , B
m
}. Tích Đề-các của hai quan hệ r và
s kí hiệu là r× s, là tập tất cả các (m+n) - bộ có n thành phần đầu tiên là một
bộ thuộc r và m thành phần sau là một bộ thuộc s. Ta có:
r × s = {t=(a
1
, a
2
, , a
n
, b
1
, b
2
, , b

m
)│(a
1
, a
2
, , a
n
) ∈r

(b
1
b
2
, , b
m
) ∈s}
Ví dụ 1.7 :



Bảng 1.2: Biểu diễn các quan hệ r, s và quan hệ r× s.
1.2.3. Phép chiếu, phép chọn và phép kết nối
a) Phép chiếu
Cho r là một quan hệ n ngôi xác định trên tập thuộc tính U={A
1
, A
2
, , A
n
}, X

là tập con của U. Phép chiếu của quan hệ r trên tập thuộc tính X, kí hiệu là
x

(r), là tập các bộ của r xác định trên tập thuộc tính X. Ta có:

x

(r) = {t.X│ t ∈ r}.
r× s
A
B
C
G
H
F
x
1

y
1

z
1

x
1

y
1


z
1

x
1

y
1

z
1

x
2

y
2

z
2

x
1

y
1

z
1


x
1

y
2

z
2

x
2

y
1

z
2

x
1

y
1

z
1

x
2


y
1

z
2

x
2

y
2

z
2

x
2

y
1

z
2

x
1

y
2


z
2

x
2

y
2

z
1

x
1

y
1

z
1

x
2

y
2

z
1


x
2

y
2

z
2

x
2

y
2

z
1

x
1

y
2

z
2

r
A
B

C
s
G
H
F

x
1

y
1

z
1


x
1

y
1

z
1


x
2

y

1

z
2


x
2

y
2

z
2


x
2

y
2

z
1


x
1

y

2

z
2

8

Phép chiếu thực chất là phép toán giữ lại một số thuộc tính cần thiết của quan
hệ và loại bỏ những thuộc tính không cần thiết.
Ví dụ 1.8:
r (A B C D)
x
1
1 x 4
y
1
5 y 2
z
1
5 z 5
x
1
8 x 5
y
1
1 y 4

B

(r)

(B)
1
5
8

BD

(r)
(B D)
1 4
5 2
5 5
8 5
b) Phép chọn
Phép chọn là phép toán lọc lấy ra một tập con các bộ của quan hệ đã
cho thoả mãn một điều kiện xác định. Điều kiện đó đƣợc gọi là điều kiện
chọn hay biểu thức chọn.
Biểu thức chọn F đƣợc định nghĩa là một tổ hợp logic của các toán hạng, mỗi
toán hạng là một phép so sánh đơn giản giữa hai biến là hai thuộc tính hoặc
giữa một biến là một thuộc tính và một giá trị hằng. Biểu thức chọn F cho giá
9

trị đúng hoặc sai đối với mỗi bộ đã cho của quan hệ khi kiểm tra riêng bộ đó.
- Các phép toán so sánh trong biểu thức F: >, <, =, ≥, ≠, ≤.
- Các phép toán logic trong biểu thức F: ∧ (và), ∨ (hoặc),

(phủ định).
Cho r là một quan hệ và F là một biểu thức logic trên các thuộc tính của
r. Phép chọn trên quan hệ r với biểu thức chọn F, kí hiệu là
F


(r), là tập tất cả
các bộ của r thoả mãn F. Ta có:
F

(r) = {t│ t∈r

F(t)}.
Ví dụ 1.9:
r (A B C D)
x
1
3 x 6
y
1
5 y 4
z
1
5 z 5
x
1
8 x 5
y
1
3 y 6


BD

(r) (A B C D)

y
1
5 y 4
z
1
5 z 5
x
1
8 x 5
c) Phép kết nối
Cho hai quan hệ r(U) và s(V). Đặt M=U∩V. Phép kết nối(tự nhiên) hai
quan hệ r(U) và s(V), ký hiệu r*s, cho ta quan hệ giữa các bộ đƣợc dán từ các
bộ u của quan hệ R với mỗi bộ v của quan hệ S (sao cho các trị trên miền
thuộc tính chung M của hai bộ này giống nhau).
P(UV)= r*s= {u*v│u∈r, v∈s, u.M=v.M} .
Nếu M= U∩V=Ф, r*s sẽ cho ta tích Đề- các, trong đó mỗi bộ của quan
hệ r sẽ đƣợc ghép với mọi bộ của quan hệ s.

10

Ví dụ 1.10:
r (A B C) ; s (G H)
x
1
x x
2
x
2
x
3


y y
2
y
2
y
2
y
3

z
1
x z
2


r*s ( A B C G H)
y
1
x x
2
x
2
x
3

z
1
y y
2

y
2
y
3

x
1
x z
2
y
2
y
3

1.3. Các phụ thuộc hàm
Khi xét đến mối quan hệ giữa dữ liệu trong CSDL quan hệ một trong
nhƣng yếu tố quan trọng nhất đƣợc xét đến là sự phụ thuộc giữa các thuộc
tính này với thuộc tính khác. Từ đó có thể xây dựng những ràng buộc cũng
nhƣ loại bỏ đi những dƣ thừa dữ liệu trong một CSDL.
Phụ thuộc hàm là những mối quan hệ giữa các thuộc tính trong CSDL
quan hệ. Khái niệm về phụ thuộc hàm có một vai trò rất quan trọng trong việc
thiết kế mô hình dữ liệu. Một trạng thái phụ thuộc hàm chỉ ra rằng giá trị của
một thuộc tính đƣợc quyết định một cách duy nhất bởi giá trị của thuộc tính
khác.Sử dụng các phụ thuộc hàm để chuẩn hóa lƣợc đồ quan hệ về dạng
chuẩn 3 hoặc chuẩn Boye-Codd.
Định nghĩa 1.6 [6]
Cho lƣợc đồ quan hệ R xác định trên tập thuộc tính U, và X, Y ⊆U.
Nói rằng, X xác định hàm Y hay Y phụ thuộc hàm vào X và kí hiệu X → Y
nếu với mọi quan hệ r xác định trên R và với hai bộ bất kỳ t
1

, t
2
∈R mà
t
1
(X) = t
2
(X) thì t
1
(Y) = t
2
(Y).
11

1.3.1.Các tính chất của phụ thuộc hàm [6]
Cho lƣợc đồ quan hệ R xác định trên tập thuộc tính U = {A
1
, A
2
, ,
A
n
}, cho X, Y, Z, W

U thì ta có một số tính chất cơ bản của các phụ thuộc
hàm nhƣ sau:
Tính chất 1) Nếu Y ⊆ X thì X → Y.
Tính chất 2)Nếu X → Y thì XW → YW.
Tính chất 3)Nếu X → Y, Y → Z thì X → Z.
Tính chất 4) Nếu X → Y, YZ → Wthì XZ → W.

Tính chất 5) Nếu X → Y, Z → W thì XZ →YW.
Tính chất 6) Nếu X → Ythì XZ→Y.
Tính chất 7)Nếu X → Y, X→ Z thì X → YZ.
Tính chất 8)Nếu X → YZ thì X → Y.
Tính chất 9) Nếu X → YZ, Z → WV thì X → YZW.
1.3.2. Hệ tiên đề Amstrong và các phép suy dẫn[6]
Gọi R là quan hệ trên tập thuộc tính U. Khi đó với các tập thuộc tính X,
Y, Z⊆ U ta có hệ tiên đề Amstrong nhƣ sau:
1- Tính phản xạ: Nếu Y ⊆ X thì X → Y
2- Tính tăng trƣởng: Nếu X → Y thì XW → YW
3- Tính bắc cầu: Nếu X → Y, Y → Z thì X → Z
Định lý 1.1
Hệ tiên đề Amstrong là đúng và đầy đủ
Chứng minh:
a)Tính đúng.
1)Với mọi t
1
, t
2
r(R) và t
1
(X) = t
2
(X), cần chứng minh t
1
(Y) = t
2
(Y).
Thật vậy, từ giả thiếtt
1

(X) = t
2
(X) mà Y

X suy ra t
1
(Y) = t
2
(Y).
Vậy từ t
1
(X) = t
2
(X) ⇒ t
1
(Y) = t
2
(Y).
2)Với mọi t
1
, t
2
r(R) và t
1
(XW) = t
2
(XW), cần chứng minh t
1
(YW)= t
2

(YW)
12

Phản chứng: Giả sử t
1
(YW) ≠t
2
(YW).
Theo giả thiết có t
1
(XW) = t
2
(XW)⇒ t
1
(X)= t
2
(X)

t
1
(W)= t
2
(W)
Nên để có t
1
(YW) ≠t
2
(YW) thì t
1
(Y) ≠t

2
(Y).
Nhƣng cũng theo giả thiết ta lại có X → Y nên t
1
(X) = t
2
(X)
⇒ t
1
(Y) = t
2
(Y) (mâu thuẫn)⇒ t
1
(YW)= t
2
(YW).
Vậy từ t
1
(XW) = t
2
(XW) ⇒ t
1
(YW)= t
2
(YW).
3)Với mọi t
1
, t
2
r(R) và t

1
(X) = t
2
(X), cần chứng minh t
1
(Z) = t
2
(Z)
Phản chứng: Giả sử t
1
(Z) ≠t
2
(Z).
Theo giả thiết X → Y nên t
1
(X) = t
2
(X) ⇒ t
1
(Y) = t
2
(Y).
Mặt khác, cũng theo giả thiết có Y → Z nên t
1
(Y) = t
2
(Y) ⇒t
1
(Z)= t
2

(Z)
(mâu thuẫn).
Vậy từ t
1
(X) = t
2
(X) ⇒ t
1
(Z)= t
2
(Z).
b) Tính đầy đủ.
Nếu X → Y không suy diễn logic đƣợc từ tập phụ thuộc hàm F bằng hệ
tiên đề Amstrong thì X → Y không thỏa mãn trên quan hệ r(R).
Giả sử, X → Y không suy diễn logic đƣợc từ F bằng hệ tiên đề, ta sẽ
xây dựng một quan hệ r sao cho các phụ thuộc hàm của F là thỏa mãn trên r,
nhƣng X → Y không thỏa trên r.
Xét quan hệ r gồm hai bộ t
1
, t
2
nhƣ sau:
R
A
B

F
G
H


M
t
1

1
1

1
1
1

1
t
2

1
1

1
0
0

0
Trong đó, các thuộc tính trong t
1
đều có giá trị1, các thuộc tính trong t
2
chỉ
có các thuộc tính thuộc X
+

là có giá trị 1 còn lại là giá trị 0.
Ta chứng tỏ rằng, với mọi phụ thuộc hàm của F đều thỏa mãn trên r.
13

Thật vậy, giả sử W → V

F không thỏa trên r. Nhƣ vậy, W

X
+
, vì nếu
không sẽ vi phạm tính bằng nhau của W trên hai bộ t
1
và t
2
. Hơn nữa, V
không thể là tập con của X
+
, bởi vì nếu V

X
+
thì W → V sẽ thỏa mãn trên
r. Vậy phải có ít nhất một thuộc tính A

X
+
. Theo tính chất phản xạ nếu
W


X
+
thì X → W, mà W → V nên X → V (theo tính chất bắc cầu). Do
A

X
+
nên X → A hay A

X
+
. Điều đó là vô lý, bởi vì A

X
+

Kết luận với mọi phụ thuộc hàm F đều thỏa trên r.
Tiếp theo ta chứng tỏ rằng X → Y không thỏa mãn trên r
Thật vậy, giả sử X → Y thỏa trên r(R). Nhƣ vậy X

X
+
và Y

X
+
, vì nếu
không sẽ vi phạm sự bằng nhau trên các bộ t
1
, t

2
của X và Y. Nhƣng nếu
Y

X
+
thì X → Y sẽ suy diễn đƣợc từ F (theo tính chất phản xạ). Điều này
mâu thuẫn với giả thiết X → Y không suy diễn đƣợc từ F. Nhƣ vậy X → Y
không thể thỏa mãn trên r.
Kết luận X → Y không thỏa mãn trên r.
* Phụ thuộc hàm đƣợc suy diễn logic từ tập phụ thuộc hàm F
Cho lƣợc đồ quan hệ R xác định trên tập thuộc tính U, F là tập các phụ thuộc
hàm trên R và X → Y là một phụ thuộc hàm, X,Y ⊆U.
Chúng ta nói rằng X → Y đƣợc suy diễn logic từ F nếu mỗi quan hệ r xác
định trên R thoả mãn các phụ thuộc hàm trong F thì cũng thoả mãn X → Y.
Kí hiệu F |= X → Y.
1.4. Bao đóng.
1.4.1. Bao đóng của tập phụ thuộc hàm và của tập thuộc tính
Định nghĩa 1.7[5][6]
Cho tập phụ thuộc hàm F, bao đóng của tập phụ thuộc hàm F kí hiệu F
+
là tập lớn nhất chứa các phụ thuộc hàm đƣợc suy diễn từ các phụ thuộc hàm
thuộc F. Vậy F
+
= {f │F │= f}.

14

Định nghĩa 1.8[5][6]
Cho lƣợc đồ quan hệ R xác định trên tập thuộc tính U, cho X ⊆ U, tập

các phụ thuộc hàm F. Bao đóng của tập thuộc tính X đối với F kí hiệu X
+

tập tất cả các thuộc tính A mà X → A đƣợc suy diễn từ F. Ta có:
X
+
= {A│ X → A ∈ F
+
}.
Đôi khi ta kí hiệu X
F
+
để chỉ lấy bao đóng của X theo tập phụ thuộc hàm F.
Tính chất của bao đóng:
1) X ⊆X
+

2) Nếu X ⊆ Y thì X
+
⊆Y
+

3) X → X
+

4) X
++
= X
+


5) X
+
Y
+
⊆ (XY)
+

6) (X
+
Y)
+
= (XY
+
)= (XY)
+

7) X → Y

Y ⊆ X
+

8) X → Y và Y → X

X
+
= Y
+

Chứng minh:
1) Lấy bất kỳ A ∈ X cần chứng minh A ∈ X

+
.
Ta có A ∈ X

{A}⊆ X suy ra X → A (luật phản xạ)⇒ A ∈X
+
.
2) Lấy A ∈ X
+
, ta cần chứng minh A ∈ Y
+
.
Ta có A ∈ X
+
⇒X → A(1).
Mà theo luật phản xạ X⊆Y ⇒Y → X (2).
Vậy từ (1) và (2) ta suy ra Y→ A ⇒ A∈ Y
+
.
3) Giả sử X
+
=A
1
A
2
A
k

Do A
1

∈ X
+
ta có X → A
1
Tƣơng tự: X → A
2


X → A
k

15

Theo luật hợp ta có X → A
1
A
2
A
k
⇒X → X
+
4) Để chứng minh X
++
=X
+
ta đi chứng minh X
+
⊆ X
++
và ngƣợc lại

X
++
⊆ X
+

Theo tính chất 1 ta có X
+
⊆ X
++
. Ta cần chứng minh X
++
⊆ X
+

Lấy A ∈ X
++
, chứng minh A ∈ X
+
.
Do A ∈ X
++
⇒X
+
→ A(1).
Mặt khác theo tính chất 3 ta có: X → X
+
(2).
Từ (1) và (2) suy ra X→ A ⇒ A ∈ X
+
.

5) Ta có X ⊆ XY
Theo tính chất 2 ta cóX
+
⊆ (XY)
+
(1).
Tƣơng tự ta cũng có : Y
+
⊆ (XY)
+
(2).
Từ (1) và (2) suy ra X
+
Y
+
⊆ (XY)
+
.
6) Theo những chứng minh trên ta có:
X
+
⊆ X
+
Y (1).
X
+
⊆ (XY)
+
(2).
Y

+
⊆ (XY)
+
(3).
Từ (1), (2) và (3) suy ra X
+
Y⊆ (XY)
+
⇒(X
+
Y)
+
⊆ (XY)
++
= (XY)
+
(theo
tính chất 4).
Vậy ta có ⇒(X
+
Y)
+
⊆ (XY)
+
(4).
Mặt khác ta cũng có: X ⊆ X
+
(tính chất 1) ⇒XY⊆ X
+
Y

Từ XY⊆ X
+
Y Theo tính chất 2 ⇒(XY)
+
⊆ (X
+
Y)
+
(5).
Từ (4), (5) suy ra (X
+
Y)
+
= (XY)
+
.
7) Để chứng minh X→ Y

Y ⊆ X
+
ta có:
a) Giả sử có X→ Y ta cần chứng minh Y ⊆ X
+

Lấy bất kỳ A∈ Y, ta cần chứng minh A ∈ X
+
.
Ta có: A ∈ Y ⇒Y → A (1).
Theo giả thiết ta lại có: X→ Y (2).
16


Từ (1), (2) suy ra X→ Y⇒A ∈ X
+
.
b) Giả sử cóA ⊆ X
+
ta cần chứng minh X→Y.
Do Y ⊆ X
+
⇒X
+
→ Y(luật phản xạ).
Mặt khác: X→ X
+
(theo tính chất 3).
Suy ra: X→ Y(luật bắc cầu).
8) Chứng minh X→ Yvà Y→ X

X
+
= Y
+
ta có:
a) Giả sử có X→ Y và Y→ X ta cần chứng minh X
+
=Y
+
.
Do X→ Y ⇒ Y ⊆ X
+


⇒ Y
+
⊆ X
++
.
⇒ Y
+
⊆ X
+
. (theo tính chất 4) (1).
Do Y→ X ⇒ X ⊆ Y
+
.
⇒ X
+
⊆ Y
++
.
⇒X
+
⊆Y
+
. (theo tính chất 4) (2).
Từ (1), (2) ta có X
+
= Y
+
.
b) Giả sử có X

+
= Y
+
ta cần chứng minh X→Y và Y→ X
Do X
+
= Y
+
nên ta có
Y
+
⊆ X
+
(1‟)
X
+
⊆ Y
+
(2‟)
Theo tính chất 1 ta có Y ⊆ Y
+
mà Y
+
⊆ X
+
⇒Y ⊆ X
+
⇒ X→Y (theo tính
chất 7).
1.4.2. Bài toán thành viên và thuật toán tìm bao đóng của tập thuộc tính

• Bài toán thành viên:
Nói rằng X → Y là thành viên của F nếu X → Y ∈ F
+
.
Một vấn đề quan trọng khi nghiên cứu lý thuyết cơ sở dữ liệu là khi cho trƣớc
tập các phụ thuộc hàm F và một phụ thuộc hàm X → Y, làm thế nào để biết
X → Y ∈ F
+
hay không, bài toán này đƣợc gọi là bài toán thành viên.
Để trả lời câu hỏi này ta có thể tính F
+
rồi xác định xem X → Y có thuộc F
+

17

hay không. Việc tính F
+
là một công việc đòi hỏi thời gian và công sức. Tuy
nhiên, thay vì tính F
+
chúng ta có thể dùng tính chất của bao đóng của tập
thuộc tính X để xác định X → Y có là thành viên của F
+
hay không. Đó là: X
→ Y ∈ F
+
⇔ Y ⊆ X
+
. Ta chứng minh điều này.

Giả sử Y= {A
i1
, A
i2
, ,A
ik
}

{A
1
…A
n
} với A
1
…A
n là các thuộc tính
và Y ⊆ X
+
.
Từ định nghĩa X
+
ta có X → A
i
, áp dụng hệ tiên đề Amstrong cho
mỗi i suy ra X → Y nhờ luật hợp.
Ngƣợc lại, giả sử ta có X → Y, áp dụng hệ tiên đề Amstrong cho mỗi i
ta có X → A
i
, A
i

∈Y nhờ luật tách, suy ra A
i
∈ X
+
. Từ đó, suy ra Y ⊆ X
+
.
Vậy X → Y ∈ F
+
.
Thuật toán 1.1:
Xác định xem một phụ thuộc hàm X → Y có tồn tại không?
Vào: U, F, X, Y ⊆ U.
Ra : Kiểm tra X → Y ∈ F
+

Phƣơng pháp
Bƣớc 1: Tìm bao đóng của tập thuộc tính X: X
F
+

Bƣớc 2: Kiểm tra Y ⊆ X
+
nếu đúng thì X → Y ∈ F
+
, return (Y)
nếu sai thì X → Y ∉ F
+
, return (N)
Bƣớc 3: Kết thúc thuật toán.

• Thuật toán tìm bao đóng của tập thuộc tính:
Thuật toán 1.2: Tìm bao đóng của tập thuộc tính
Dữ liệu đầu vào:F, X ⊆ U.
Ra: X
+
là bao đóng của X đối với F.
Phƣơng pháp:
Tính liên tiếp các tập thuộc tính X
0
, X
1
, X
2
, theo các bƣớc sau:
Bƣớc 0: đặt X
0
= X.
Bƣớc i: Tính X
i
từ X
i-1
nhƣ sau:
18


X
i
= X
i-1
∪{A} nếu tồn tại Y → Z ∈ F mà Y


X
i-1
, A∈ Z và A

X
i-1
.
X
i-1
nếu ngƣợc lại.
Vì rằng X= X
0



X
i



U và U là hữu hạn cho nên sẽ tồn tại
một chỉ số i nào đó mà X
i
= X
i-1
, khi đó X
+
= X
i

.
Định lý 1.2
Thuật toán tìm bao đóng X
+
là đúng.
Ví dụ 1.12:
Cho tập thuộc tính U = {A, B, C, D, E, G, H} và tập phụ thuộc hàm
F = {A → D, AB → DE, CE → G, E → H}.
Tính (AB)
+
F
?
Bƣớc 0 : X
0 = AB.
Bƣớc 1: X
1 = X0 ∪ {D} vì ∃ A → D thoả mãn điều kiện.
Bƣớc 2: X
2 = X1 ∪ {E} vì ∃ AB → DE thoả mãn điều kiện.
Bƣớc 3: X
3 = X2 ∪ {H} vì ∃ E → H thoả mãn điều kiện.
Bƣớc 4: X
4 = X3.
Vậy AB
+
F
= {ABDEH}
1.5. Khoá và các dạng chuẩn của lƣợc đồ quan hệ
Định nghĩa 1.9[6]
Cho lƣợc đồ quan hệ R xác định trên tập thuộc tính U = {A
1

, A
2
, , A
n
}, F là
một tập phụ thuộc hàm xác định trên U, K ⊆ U, K đƣợc gọi là siêu khoá của
lƣợc đồ quan hệ R nếu phụ thuộc hàm K →U ∈ F
+
, nghĩa là tập thuộc tính K
là siêu khoá nếu K
+
= U.
Định nghĩa 1.10[6]
Cho lƣợc đồ quan hệ R xác định trên tập thuộc tính U = {A
1
, A
2,
, A
n
}, F là
một tập phụ thuộc hàm xác định trên U, K ⊆ U, K đƣợc gọi là khoá của R nếu
19

K thoả hai điều kiện:
• K là siêu khoá.
• ∀A ∈ K ta có (K -A)
+
≠ U.
Thuộc tính A đƣợc gọi là thuộc tính khóa (hoặc thuộc tính sơ cấp) nếu
A∈K với K là một khóa của R, ngƣợc lại thì A đƣợc gọi là thuộc tính không

khóa (hoặc thuộc tính thứ cấp) và kí hiệu là F
n
.
Một lƣợc đồ quan hệ có thể có nhiều khóa và tập thuộc tính không khóa
cũng có thể bằng rỗng.
• Khoá là một khái niệm rất quan trọng trong việc thiết kế một cơ sở dữ
liệu quan hệ. Khoá thường được áp dụng trong việc tìm kiếm hay cập nhật dữ
liệu trong các cơ sở dữ liệu quan hệ.
Thuật toán tìm khóa của lƣợc đồ quan hệ R
Thuật toán 1.3:
Vào : U, F (U = {A
1
, A
2
, , A
n
}).
Ra: K là khoá của một lƣợc đồ quan hệ R.
Phƣơng pháp:
Bƣớc 0: đặt K
0
= U.

Bƣớc i : Ki = (K
i-1
- {A
i
}) Nếu (K
i-1
- {A

i
})
+
= U với A
i
∈ K
i-1
.
K
i-1
nếu ngƣợc lại.
Kết thúc khi K
i
= K
i-1
.
Nếu muốn tìm các khóa khác (nếu có) của lƣợc đồ quan hệ, ta có thể thay đổi
thứ tự loại bỏ các phần tử của K
0
.
1.6. Các phép suy dẫn trên mô hình quan hệ.
Định nghĩa 1.11[5] [6]
20

Cho tập phụ thuộc hàm F xác định trên tập thuộc tính U và f là một phụ thuộc
hàm trên U. Ta nói phụ thuộc hàm f đƣợc suy dẫn theo quan hệ từ tập phụ
thuộc hàm F kí hiệu F ⊢ f nếu mọi quan hệ r thỏa F thì cũng thỏa f.
Định nghĩa 1.12 [5][6]
Cho tập phụ thuộc hàm F xác định trên tập thuộc tính U và f là một phụ
thuộc hàm trên U. Ta nói phụ thuộc hàm f đƣợc suy dẫn theo tiên đề (hoặc

suy dẫn logic) từ tập phụ thuộc hàm F kí hiệu F ⊨ f nếu f ∈ F
+
. Nói cách khác
f đƣợc suy dẫn theo các tiên đề từ tập phụ thuộc hàm F nếu nhƣ áp dụng hệ
tiên đề Amstrong đối với các phụ thuộc hàm trong F thì sau hữu hạn lần ta sẽ
thu đƣợc f.
Để xem xét các phép suy dẫn trên mô hình quan hệ ta hãy xét các phụ thuộc
hàm sau đây:
1.6.1. Phụ thuộc kết nối (Join Dependencies)
Định nghĩa 1.13[1]
Cho PRS = (U, D, dom) là một lƣợc đồ nguyên thủy
Cho X
1
, …., X
k

U với
k
i 1

X
i
= U
Một phụ thuộc kết nối (Join Dependencies) trên PRS ký hiệu là X
1
* * X
k

là một ràng buôc sao cho một quan hệ r trên PRS thỏa ràng buộc này nếu và
chỉ nếur = r

 
1
X
* *r
 
k
X

Các kết quả sau đây dễ thấy một cách trực tiếp từ định nghĩa 1.13
Ví dụ 1.6.1:
BIA


NG_UỐNG và BIA


BAR đã đƣợc chỉ ra
Ở ví dụ này xét lƣợc đồ RS

có đƣợc từ RS bằng cách thay đổi chút ít về
ràng buộc duy nhất trong SC. Giả sử rằng nếu một ngƣời từng uống một
loại bia và thƣờng xuyên lui tới một BAR (mà BAR này có phục vụ loại
bia ấy) thì anh ta uống loại bia ấy trong BAR đã nói đến.
Sau đây là một quan hệ thể hiện của RS

×