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

nghiên cứu phụ thuộc mạnh trong cơ sở dữ liệ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.29 MB, 72 trang )

i

Số hóa bởi Trung tâm Học liệu

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG




LÊ MẠNH HÀ







NGHIÊN CỨU PHỤ THUỘC MẠNH TRONG
CƠ SỞ DỮ LIỆU

Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01





LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH



NGƯỜI HƯỚNG DẪN KHOA HỌC
GS.TS. VŨ ĐỨC THI







Thái Nguyên - 2014

ii

Số hóa bởi Trung tâm Học liệu

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân
tôi, không sao chép của ai do tôi tự nghiên cứu, đọc, dịch tài liệu, tổng hợp và
thực hiện. Nội dung lý thuyết trong trong luận văn tôi có sử dụng một số tài
liệu tham khảo như đã trình bày trong phần tài liệu tham khảo. Chương trình
phần mềm và những kết quả trong luận văn là trung thực và chưa được công
bố trong bất kỳ một công trình nào khác.

Thái Nguyên, ngày7 tháng 6 năm 2014
Học viên thực hiện


Lê Mạnh Hà



iii

Số hóa bởi Trung tâm Học liệu


LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến GS.TS Vũ Đức Thi
người đã tận tình hướng dẫn, chỉ bảo, giúp đỡ em trong suốt quá trình làm
luận văn.

Em cũng xin gửi lời cảm ơn đến các giảng viên trường Đại học Công
nghệ thông tin và Truyền thông - Đại học Thái Nguyên, các thầy Viện Công
nghệ thông tin đã truyền đạt những kiến thức và giúp đỡ em trong suốt quá
trình học của mình.

Tôi cũng xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè
những người đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để tôi có thể
hoàn thành tốt luận văn.

Tôi cũng xin gửi lời cảm ơn tới Ban giám hiệu Trường Cao đẳng Sư
phạm Quảng Ninh đã tạo kiện thuận lợi cho tôi tham gia khóa học và trong
suốt quá trình hoàn thành luận văn.

Một lần nữa, xin chân thành cảm ơn.

Thái Nguyên, ngày 7 tháng 6 năm 2014
Học viên thực hiện



Lê Mạnh Hà

iv

Số hóa bởi Trung tâm Học liệu

MỤC LỤC
Lời cam đoan i
Lời cảm ơn ii
Mục lục iii
Phần mở đầu v
Bảng các kí hiệu vii
Bảng các hình vẽ viii
Chƣơng 1: Phụ thuộc hàm 1
1.1. Định nghĩa 1
1.2. Hệ tiên đề ArmStrong 3
1.3. Bao đóng của tập phụ thuộc hàm và tập thuộc tính 4
1.4. Khoá tối thiểu của sơ đồ quan hệ và quan hệ 7
1.5. Các dạng chuẩn 9
1.6. Hệ Sperner 11
1.7. Các dạng tương đương của họ phụ thuộc hàm 17
1.8. Kết luận 19
Chƣơng 2: Phụ thuộc mạnh và một số tính chất đặc trƣng của phụ
thuộc mạnh 20
2.1. Định nghĩa 20
2.2. Hệ tiên đề phụ thuộc mạnh 21
2.3. Bao đóng của tập phụ thuộc mạnh và tập thuộc tính 22
2.4. Khoá tối thiểu của sơ đồ mạnh và quan hệ 25
2.5. Các dạng tương đương của họ phụ thuộc mạnh 25

2.6. Một số tính chất cơ bản của bao đóng của tập thuộc tính 27
2.7. Thuật toán tính bao đóng của tập thuộc tính trên quan hệ 29
2.8. Họ các tập tối thiểu 31
2.9. Quan hệ ArmStrong của phụ thuộc mạnh 34
v

Số hóa bởi Trung tâm Học liệu

2.9.1. Sự tồn tại của quan hệ ArmStrong 34
2.92. Các thuật toán 38
2.9.3. Một số bài toán quan trọng 42
2.10. Kết luận 43
Chƣơng 3: Cài đặt một số thuật toán về phụ thuộc mạnh trong CSDL 45
3.1. Lựa chọn bài toán. 45
3.2 Thuật toán sử dụng trong chương trình 46
3.3.Cài đặt chương trình 48
3.4.Một số mã lệnh 49
3.5. Hướng dẫn sử dụng chương trình. 56
3.6Chương trình minh họa 57
3.7 Đánh giá kết quả thực nghiệm 57
Kết luận 58
Tài liệu tham khảo 60

vi

Số hóa bởi Trung tâm Học liệu


MỞ ĐẦU
Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được tập trung

nghiên cứu và phát triển của công nghệ thông tin, nhằm giải quyết các bài
toán quản lý, tìm kiếm thông tin trong những hệ thống lớn đa dạng, phức tạp
cho nhiều người sử dụng trên máy tính điện tử. Có thể nói E. F. Codd là
người đầu tiên đề xuất mô hình dữ liệu quan hệ cho CSDL với công trình [6]
mà ngày nay đã trở thành kinh điển. Đây là mô hình được xây dựng trên cơ sở
lý thuyết toán học về các quan hệ, bao gồm các thực thể (đối tượng) và các
mối quan hệ qua lại giữa chúng. Chỉ điều này đã tạo cơ sở toán học với cấu
trúc hoàn chỉnh làm nền tảng cho các vấn đề nghiên cứu lý thuyết về CSDL.
Người ta xem CSDL quan hệ như là một tập hợp hữu hạn các quan hệ.
Trong đó mỗi quan hệ có thể được hình dung một cách trực quan như là một
bảng chữ nhật gồm có các hàng và các cột. Mỗi hàng là một bản ghi (record)
lưu trữ các dữ liệu. Mỗi cột là một thuộc tính.
Trong lý thuyết thiết kế CSDL quan hệ, ràng buộc dữ liệu hay còn gọi
là phụ thuộc dữ liệu có một ý nghĩa quan trọng trong việc đảm bảo tính nhất
quán của dữ liệu. Nghiên cứu ràng buộc dữ liệu là một vấn đề cần thiết. Ý
nghĩa của việc nêu ra khái niệm ràng buộc dữ liệu là nhằm đảm bảo cho dữ
liệu trong CSDL không mâu thuẫn, phản ánh đúng thế giới hiện thực. Các nhà
nghiên cứu đã đưa ra nhiều loại ràng buộc dữ liệu khác nhau để đáp ứng phù
hợp với thực tế rất phong phú và đa dạng. Loại ràng buộc dữ liệu đầu tiên là
phụ thuộc hàm được giới thiệu bởi E. F. Codd [6] vào những năm 1970. Ba
loại ràng buộc dữ liệu khác sau đó cũng được xem xét đến là phụ thuộc đối
ngẫu, phụ thuộc mạnh và phụ thuộc yếu bởiCzédli [7, 8] (1980). Tiếp sau đó
J. Demetrovics và G.Gyepesi [11] (1983), vànhững người khác [1, 15, 26]
vii

Số hóa bởi Trung tâm Học liệu

cũng tiếp tục nghiên cứu các ràng buộc dữ liệu này. Với ba loại ràng buộc dữ
liệu này, người sử dụng đôi khi có thể lấy được các thông tin thực mong
muốn, ngay cả khi không tồn tại một phụ thuộc hàm nào giữa các tập thuộc

tính và chỉ cần biết ít nhất một giá trị của các thuộc tính chứ không phải tập
toàn bộ các giá trị của các thuộc tính của vế trái. Hơn thế nữa, đôi khi việc xử
lý và tìm kiếm thông tin được tiến hành nhanh chóng hơn vì chỉ cần phải tìm
kiếm trên một phần của quan hệ mà thôi.
Mục tiêu của luận văn là tiếp tục nghiên cứu phụ thuộc hàm và phụ
thuộc mạnh. Luận văn bao gồm: Phần mở đầu, 3 chương và phần kết luận.
Chương 1: Nhắc lại một số khái niệm cơ bản về phụ thuộc hàm và
quan hệ Armstrong.
Chương 2: Mục đích của chương này là trình bày nghiên cứu quan hệ
Armstrong đối với phụ thuộc mạnh. Có thể nói, trong nghiên cứu về các ràng
buộc dữ liệu nói chung và phụ thuộc mạnh nói riêng, khái niệm bao đóng của
tập thuộc tính thật sự đóng một vai trò quan trọng. Kết quả chính là trình bày
một số nghiên cứu về quan hệ Armstrong. Đầu tiên, khái niệm họ các tập tối
tiểu của thuộc tính của một sơ đồ mạnh được đề xuất. Đây là khái niệm đóng
vai trò quan trọng trong việc xây dựng quan hệ Armstrong của sơ đồ mạnh
Cuối cùng, luận văn đề cập đến bốn bài toán quan trọng đối với việc
nghiên cứu cấu trúc và lôgic của họ phụ thuộc mạnh: bài toán xây dựng quan
hệ Armstrong của một sơ đồ mạnh cho trước, bài toán xây dựng sơ đồ mạnh
đúng trên một quan hệ cho trước, bài toán kéo theo phụ thuộc mạnh-quan hệ
và bài toán tương đương phụ thuộc mạnh-quan hệ. Tất cả các bài toán này
được chứng tỏ có thể được giải quyết bằng các thuật toán thời gian đa thức.
Chương 3: Cài đặt chương trình để minh họa phụ lý thuyết phụ thuộc
mạnh.
viii

Số hóa bởi Trung tâm Học liệu

BẢNG CÁC KÍ HIỆU
Trong luận văn, có sử dụng các quy ước về kí hiệu và chữ viết tắt sau:
S=(U,F): Sơ đồ quan hệ, với U là tập các thuộc tính và F là tập các phụ

thuộc hàm trên U
G=(U,S): Sơ đồ mạnh, với U là tập thuộc tính và S là tập các phụ thuộc
mạnh trên U.
R: quan hệ trên tập thuộc tính U.
F
R
: (tương ứng S
R
) tập tất cả các phụ thuộc hàm (tương ứng phụ thuộc
mạnh) đúng trên quan hệ R.
F
+
: (tương ứng S
+
) bao đóng của tập phụ thuộc hàm (tương ứng phụ
thuộc mạnh).
K
S
: (tương ứng K
G
, K
R
) tập tất cả các khóa tối tiểu của sơ đồ quan hệ s
(tương ứng sơ đồ mạnh, quan hệ R).
K
S
-1
: (tương ứng K
R
-1

) tập phản khóa của K
S
(tương ứng K
R
).
K
a
: họ các tập tối tiểu của thuộc tính a.
F
n
: (tương ứng D
n
) tập tất cả các thuộc tính không cơ bản (tương ứng
thuộc tính phụ thuộc).
R
: (tương ứng N
R
) hệ bằng nhau (tương ứng không bằng nhau) quan
hệ của R.
I
S
: họ các tập độc lập tối tiểu của sơ đồ quan hệ s.
L
S
: (tương ứng L
R
) họ tất cả các bao đóng của tập thuộc tính của sơ đồ
quan hệ s (tương ứng quan hệ R).
CSDL: cơ sở dữ liệu.
ix


Số hóa bởi Trung tâm Học liệu

BẢNG CÁC HÌNH VẼ

Hình 1.1: Phụ thuộc hàm.
Hình 1.2 : Tương quan giữa lớp quan hệ với lớp phụ thuộc hàm.
Hình 1.3 : Tương quan giữa lớp phụ thuộc hàm với lớp hàm đóng.
Hình 1.4 : Lớp các dạng chuẩn.
Hình 1.5 : Tương quan giữa họ phụ thuộc hàm với hệ Sperner.
Hình 1.6 : Tương quan lớp các hàm đóng với hàm chọn đặc biệt.
Hình 1.7 : Tương quan giữa lớp các hàm đóng và nửa dàn giao.
Hình 1.8 : Tương quan giữa lớp các nửa dàn giao và tập không giao.


1

Số hóa bởi Trung tâm Học liệu




Chƣơng 1: PHỤ THUỘC HÀM


Khái niệm phụ thuộc hàm được đề xuất bởi E.F.Codd và sau đó lần đầu
tiên được tiên đề hoá bởi W.W.Armstrong [4](1974). Đây là một loại ràng
buộc dữ liệu xảy ra tự nhiên nhất giữa các tập thuộc tính, về cơ bản các hệ
quản trị cơ sở dữ liệu lớn đều sử dụng phụ thuộc này.


1.1 Định nghĩa
Cho U là tập hữu hạn khác rỗng các thuộc tính. Một phụ thuộc hàm
làmộtmệnh đề có dạng X Y, trong đóX, Y U. Ta nói phụ thuộc hàm X Y
đúngtrong quan hệ R={h
1
, ,h
m
} trên U nếu:
( h
i
,h
j
R)(( a X)(h
i
(a)=h
j
(a)) ( b Y)(h
i
(b)=h
j
(b)))
Ta cũng nói rằng R thỏa phụ thuộc hàm X Y.
Gọi F
R
là họ tất cả các phụ thuộc hàm đúng trên quan hệ R.
Ta có thể nhận thấy rằng X mà phụ thuộc hàm vào Y, nếu hai dòng bất
kỳ mà các giá trị của tập thuộc tính X mà bằng nhau từng cặp một, thì kéo
theo các giá trị trên tập thuộc tính Y cũng phải bằng nhau từng cặp một.
Với định nghĩa này dễ thấy rằng trong các file dữ liệu cột, mã số hoặc
thứ tự không thể bằng nhau.

2

Số hóa bởi Trung tâm Học liệu

Ví dụ:Một cửa hàng cần quản lý về các loại mặt hàng mà họ bán ra.
Giả sử mỗi loại hàng có một mầu duy nhất và một giá duy nhất. Khi đó kí
hiệu hàng hóa (KIHIEU) xác định hàm màu (MAU) và đơn giá (DONGIA)
của loại hàng đó. Trong trường hợp đơn giản đó, ta có tập thuộc tính U =
{KIHIEU, MAU, DONGIA} và tập các phụ thuộc hàm F = {KIHIEU
MAU, KIHIEU DONGIA}.
R
KIHIEU
MAU
DONGIA

S
KIHIEU
MAU
DONGIA

A1
Xanh
10

A1
Xanh
10
A2
Vàng
20

A2
Vàng
20
B1
Đỏ
30
A1
Đỏ
10
(a) (b)
Hình 1.1. Phụ thuộc hàm.
Hình 1.1(a) mô tả quan hệ r thỏa F vì nó thỏa cả hai phụ thuộc hàm của
F. Trong hình 1.1(b), quan hệ s mặc dù thỏa phụ thuộc hàm KIHIEU
DONGIA. Tuy nhiên, s không thỏa KIHIEU MAU vì nó chứa hai bộ bằng
nhau trên KIHIEU(“A1”) nhưng không bằng nhau trên MAU (“Xanh” và
“Đỏ”) do đó nó không thỏa F. Tất cả nhưng quan hệ thỏa F như r lập thành
lược đồ quan hệ R(U) = (U, F).
Trong ví dụ này, rõ ràng mọi quan hệ thỏa F đều thỏa (KIHIEU
MAU DONGIA) nên phụ thuộc hàm này là được suy diễn từ F hay F =
(KIHIEU MAU DONGIA).
Khái niệm phụ thuộc hàm miêu tả một loạt ràng buộc (phụ thuộc dữ
liệu) xảy ra tự nhiên nhất giữa các tập thuộc tính

3

Số hóa bởi Trung tâm Học liệu

1.2 Hệ tiên đề Arsmtrong
Năm 1974, Armstrong đã chỉ ra được bốn đặc trưng cho một tập phụ
thuộc hàm của một file dữ liệu nào đó. Chúng được gọi là hệ tiên đề

Armstrong
Giả sửU là tập hữu hạn khác rỗng các thuộc tính và X,Y,Z,V,W U. Ta
nói F là một f - họ hay họ đầy đủ trên U nếu:
F1.X X F.
F2.X Y F, Y Z F X Z F.
F3.X Y F, X V, W Y V W F.
F4.X Y F, V W F X V Y W F.
Rõ ràng F
R
là một - họ trên U.
Trong [4]W.W.Armstrong đã chứng minh một kết quả rất quan trọng:
nếu F là một họ bất kỳ, thì luôn tồn tại một quan hệ R trên U sao cho F
R
= F.
Kết quả này cùng với định nghĩa của phụ thuộc hàm chứng tỏ rằng hệ
tiên đề Armstrong là đúng đắn và đầy đủ. Có nghĩa là bốn tính chất (Fl)-(F4)
đúng là các đặc trưng của họ phụ thuộc hàm. Nhờ có hệ tiên đề này từ nay trở
đi nghiên cứu và khảo sát họ phụ thuộc hàm không bị lệ thuộc vào các quan
hệ (bảng) cụ thể. Các công cụ của toán học được áp dụng để nghiên cứu làm
sáng tỏ cấu trúc lôgic của mô hình dữ liệu quan hệ. Đặc biệt, sử dụng công cụ
thuật toán để thiết kế các công đoạn xây dựng các hệ quản trị cơ sở dữ liệu.
Ví dụ chỉ ra có nhiều quan hệ khác nhau xong các họ đầy đủ các phụ
thuộc hàm của chúng lại như nhau.


4

Số hóa bởi Trung tâm Học liệu

Cho R

1
và R
2
là các quan hệ sau:


R1
a
b



R2
a
B
0
0
0
0
1
1
1
1
2
1

2
1
3
2


3
1

Có thể thấy r
1
và r
2
khác nhau nhưng F
r1
= F
r2
.
Như vậy, tương quan giữa lớp các quan hệ với lớp các họ phụ thuộc
hàm có thể được thể hiện bằng hình vẽ sau.




Lớp các quan hệ Lớp các phụ thuộc hàm
Hình1.2 : Tương quan giữa lớp quan hệ với lớp phụ thuộc hàm

1.3 Bao đóng của tập phụ thuộc hàm và tập thuộc tính
Ta gọi sơ đồ quan hệ s là một cặp (U,F) trong đó U là tập hữu hạn khác
rỗng các thuộc tính vàF là tập các phụ thuộc hàm trên U.
Như vậy khi cho một sơ đồ quan hệ có nghĩa ta cho một đầu biểu gồm
nhiều cột, nhưng không có dữ liệu và áp đặt các các ràng buộc giữa các tập
cột (bằng việc cho phụ thuộc hàm). Sự thật việc cho các ràng buộc này phải
5


Số hóa bởi Trung tâm Học liệu

tuân theo nghĩa của các cột.
Khi đóbao đóng của tập phụ thuộc hàm F, ký hiệu F
+
, được định nghĩa
là tập tất cả các phụ thuộc hàm được dẫn xuất từ F bằng cách áp dụng các
quy tắc từ (F1)-(F4).
Ta thấy có một tương ứng 1-1 giữa lớp các hàm đóng và lớp các họf ,có hình
vẽ sau


 
 
 

Lớp các họ phụ thuộc hàm Lớp các hàm đóng

Hình 1.3 : Tương quan giữa lớp phụ thuộc hàm với lớp hàm đóng

Trong [4] W.W.Armstrong đã chứng minh rằng nếu s = (U, F) là một
sơ đồ quan hệ thì luôn tồn tại một quan hệ R trên U sao cho F
R
= F
+
.Một quan
hệ R như vậy được gọi là quan hệ Armstrong của s. Trong trường hợp này
hiển nhiên các phụ thuộc hàm của s đều đúng trên R.
Gọi X là tập con thuộc tính của U. Ký pháp X
+

={a U|X {a} F
+
}.
Khi đó X
+
được gọi là bao đóng của tập thuộc tính X trên s.
Bài toán xác định bao đóng X
+
có độ phức tạp là đa thức theo kích
thước của s(D.Maier [23]). Do đó, bài toán thành viên đối với sơ đồ quan hệ
(nghĩa là cho sơ đồ quan hệ s=(U, F) và phụ thuộc hàm X Y, kiểm tra xem
X Y có thuộc F
+
hay không) có thể được giải quyết bằng một thuật toán
thời gian đa thức (D.Maier [23]).
Đối với quan hệ R trên tập thuộc tính U, ta đặt
6

Số hóa bởi Trung tâm Học liệu

X
R
+
={a U|X {a} F
R
}. Khi đó, X
R
+
được gọi bao đóng của tập thuộc tính
X trên R.

Bài toán xác định bao đóng X
R
+
cũng có độ phức tạp là đa thức theo
kích thước của R(Vũ Đức Thi [25]).
Lưu ý rằng, khi bàn về phụ thuộc hàm thì quan hệ R được xét là quan
hệ của một sơ đồ quan hệ s = (U, F) nào đó, nghĩa là tập thuộc tính của R là U
và R thoả mọi phụ thuộc hàm của F.
Dưới đây là một số tính chất cơ bản của bao đóng của tập thuộc tính
trên sơ đồ quan hệ (trên quan hệ vẫn còn đúng). Các tính chất này có thể tìm
thấy trong[2].

Định lý 1.3.1. [2]Giả sử s = (U, F) là một sơ đồquan hệ và X,Y U. Khi đó
1. Tính phản xạ: X X
+
.
2. Tính đơn điệu: nếu X Y thì X
+
Y
+
.
3. Tính lũy đẳng: X
++
= X
+
.
4. X
+
Y
+

(X Y)
+
.
5. (X
+
Y)
+
= (X Y
+
)
+
= (X
+
Y
+
)
+
.
6. X Y F
+
khi và chỉ khi Y X
+
.
7. X Y F
+
khi và chỉ khi Y
+
X
+
.

8. X X
+
F
+
và X
+
X F
+

9. X
+
= Y
+
khi và chỉ khi X Y F
+
và Y X F
+
.
Trong phần này cùng giới thiệu thêm khái niệm phủ (D.Maier [23]).
Tập phụ thuộc hàm F được gọi là một phủ của tập phụ thuộc hàm G nếu F
+
=
7

Số hóa bởi Trung tâm Học liệu

G
+
. Phủ F được gọi là không dư thừa nếu với mọi phụ thuộc hàm X Y F thì
X Y (F-{X Y})

+
. Phủ F được gọi tốitiểu nếu |F|≤|F

| với mọi phủF’.
1.4 Khoá tối tiểu của sơ đồ quan hệ và quan hệ
Cho s =(U, F) là một sơ đồ quan hệ, R là một quan hệ và K là một tập
con thuộc tính của U. Khi đó K được gọi là một khoá tối tiểu của s(tương ứng
của R) nếu K thỏa các điều kiện sau:
1. K U F
+
(tương ứng K U F
R
).
X K sao cho X U F
+
(tương ứng X U F
R
).
Nếu K thỏa điều kiện (1) thì K được gọi là khoá của s (tương ứng của
R).
Ký pháp K
s
(tương ứng K
R
) là tập tất cả khoá tối tiểu của s(tương ứng
R). Đã có nhiều tác giả nghiên cứu về khoá tối tiểu của sơ đồ quan hệ và quan
hệ. Chẳng hạn, những kết quả này có thể tìm thấy trong [9, 14, 17].
Đối với việc tìm một khoá tối tiểu của sơ đồ quan hệ và quan
hệ,cácthuậttoán tương ứng của nó đều có độphức tạp thời gian đa thức.
Biếtrằng,trong[3] để tìm một khoá tối tiểu của sơ đồ quan hệs = (U,F)dịch

chuyển sơ đồ quan hệ s về sơ đồ quan hệ là sơ đồ quan hệ có số
thuộc tính ít hơn và số phụ thuộc hàm “gọn hơn”, ở đây
F= {X
i
Y
i
|X
i
,Y
i
U,X
i
Y
i
= ,i = 1,2, ,m}
L= , R= R)
+

Y
i
|X
i
Y
i
, X
i
Y
i
F
Khi đó, tachứng minh được một mối quan hệ tương đương khoá như

sau:
Định lý 1.4.1.K là một khóa tối tiểu của nếu và chỉ nếu K (U-R) là một
8

Số hóa bởi Trung tâm Học liệu

khoá tối tiểu của s.
Rõ ràng, việc tìm một khoá tối tiểu trên sơ đồ quan hệ tốt hơn (bài
toán này có độ phức tạp là đa thức theo kích thước của ) trên sơ đồ quan hệ s
ban đầu. Những kết quả nghiên cứu về phép dịch chuyển sơ đồ quan hệ,
chẳng hạn có thể tìm thấy trong [12].
Thuật toán xác định tập tất cả khoá tối tiểu của sơ đồ quan hệ cũng đã
được nghiên cứu nhiều. Trong đó thuật toán của C.L.Lucchesi và S.L.Osborn
[21] là khá hiệu quả, dù rằng độ phức tạp của nó cũng là hàm mũ. Thuật toán
này được xem là thuật toán cơ bản để tìm tất cả khoá tối tiểu của một sơ đồ
quan hệ.
Đối với quan hệ R, bài toán tìm tập tất cả khoá tối tiểu cũng có độ phức
tạp là hàm mũ theo kích thước của R(C.Beeri, M.Dowd, R.Fagin và R.Staman
[5], J. Demetrovics và Vũ Đức Thi [14], G.Gottlob và L.Libkin [19]).
Thuộc tính a được gọi là thuộc tính cơ bản của sơ đồ quan hệ s(tương
ứng của quan hệ R) nếu tồn tại một khoá tối tiểu K K
s
(tương ứng K K
R
) để
a là một thuộc tính của K. Trong trường hợp ngược lạia được gọi là thuộc tính
không cơ bản. Ký pháp F
n
là tập tất cả các thuộc tính không cơ bản.
Thuộc tính cơ bản và thuộc tính không cơ bản đóng một vai trò quan

trọng trong việc chuẩn hoá các sơ đồ quan hệ cũng như quan hệ.
Bài toán xác định a là thuộc tính cơ bản hay không của một sơ đồ quan
hệ là bài toán NP-đầy đủ (C.L.Lucchesi và S.L.Osborn [21]) Có nghĩa là cho
đến nay chưa có một thuật toán có độ phức tạp thời gian đa thức để giải quyết
bài toán này. Tuy nhiên, đối với quan hệ thì bài toán này được giải quyết bằng
một thuật toán thời gian đa thức (J.Demetrovics và Vũ Đức Thi [14]).

9

Số hóa bởi Trung tâm Học liệu

1.5 Các dạng chuẩn
Do việc cập nhật dữ liệu thông qua các thao tác thêm, xoá và sửa đổi
gây nên những dị thường, mà nguyên nhân chính là do lặp lại một số dữ liệu
trong quan hệ nên các quan hệ cần thiết phải được phân tách thành các quan
hệ nhỏ hơn hay biến đổi về các dạng chuẩn thích hợp. Quá trình đó được gọi
là quá trình chuẩn hoá. Như vậy, việc chuẩn hoá các quan hệ cũng như sơ đồ
quan hệ đóng một vai trò cực kỳ quan trọng trong thiết kế các hệ quản trị
CSDL trên mô hình dữ liệu quan hệ của E.F.Codd. Nhờ có chuẩn hoá, chúng
ta tránh được dư thừa dữ liệu, dị thường trong cập nhật và tăng tốc độ của các
phép toán xử lý quan hệ.
Cho F là tập phụ thuộc hàm trên U và X Y là một phụ thuộc hàm
trong F. Tập Y được gọi là phụ thuộc hàm đầy đủ vào X nếu X Y là rút gọn
trái, nghĩa là không tồn tại một tập con thật sự Z của X sao cho Z Y F
+
.
Ngược lại, Y được gọi là phụ thuộc bộ phận vào X.
Cho F là tập phụ thuộc hàm trên U và X, Y F
+
. Tập Y được gọi là

phụ thuộc bắc cầu vào X nếu tồn tại Z U sao cho X Z F
+
, Z Y F
+
,
Z X F
+
và Y Z. Ngược lại, Y được gọi là phụ thuộc trực tiếp vào X.
Cho s = (U,F) là một sơ đồ quan hệ. Khi đó s được gọi là:
1. Ởdạng chuẩn một(1NF) ứng với tập phụ thuộc hàm F nếu toàn bộ
miền giá trị của các thuộc tính trong s chỉ chứa các giá trị nguyên tố
2. Ởdạng chuẩn hai(2NF) ứng với tập phụ thuộc hàm F nếu s ở dạng
chuẩn một và mọi thuộc tính không cơ bản của s đều phụ thuộc đầy đủ vào
mọi khoá tối tiểu của s.
3. Ởdạng chuẩn ba(3NF) ứng với tập phụ thuộc hàm F nếu s ở dạng
chuẩn một và không có thuộc tính không cơ bản của s phụ thuộc bắc cầu vào
10

Số hóa bởi Trung tâm Học liệu

bất kỳ một khoá tối tiểu của s.
4. Ởdạng chuẩn Boyce-Codd(BCNF) ứng với tập phụ thuộc hàm F nếu
s ở dạng chuẩn một và không có thuộc tính nào của s phụ thuộc bắc cầu vào
bất kỳ một khoá tối tiểu của s.
Như vậy việc phân lớp các dạng chuẩn có thể được thể hiện quan hình vẽ sau




BCNF


3NF
2NF
1NF
Hình 1.4 : Lớp các dạng chuẩn

Đối với quan hệ R trên tập thuộc tính U, thì R được gọi ở dạng chuẩn
một (tương ứng dạng chuẩn hai, dạng chuẩn ba, dạng chuẩn Boyce-Codd) nếu
R xác định trên sơ đồ quan hệ ở dạng chuẩn một (tương ứng dạng chuẩn hai,
dạng chuẩn ba, dạng chuẩn Boyce-Codd).
Từ các định nghĩa trên, rõ ràng chúng ta có nhận xét sau: nếu sơ đồ
quan hệ s (tương ứng quan hệ R) là BCNF thì s(tương ứng R) là 3NF, nếu
s(tương ứng R) là 3NF thì s (tương ứng R) là 2NF và nếu s(tương ứng R) là
2NF thì s(tương ứng R) là 1NF. Tuy nhiên điều ngược lại của nhận xét này là
không đúng.
Cho trước một sơ đồ quan hệ hay một quan hệ, kiểm tra xem sơ đồ
quan hệ hay quan hệ đó đã là ở BCNF, hay 3NF hay chưa là rất quan trọng.
Những kết quả nghiên cứu về vấn đề này đã có khá nhiều [10, 13, 15, 16, 18].
11

Số hóa bởi Trung tâm Học liệu

Đối với một quan hệ R(tương ứng sơ đồ quan hệ s) trên U cho trước, bài toán
xác định R(s)có phải là dạng chuẩn Boyce-Codd hay không là được tính bằng
thời gian đa thức theo kích thước của R(s). Đối với quan hệ R trên U cho
trước, bài toán xác định R có phải là dạng chuẩn 3 hay không cũng là đa thức
theo kích thước của R. Tuy nhiên, đối với sơ đồ quan hệ s trên U cho trước,
khi đó bài toán xác định s có phải dạng chuẩn 3 hay không là NP-đầy đủ [25].
Có nghĩa là cho đến nay, độ phức tạp thời gian của bài toán này không là đa
thức.

Đối với dạng chuẩn 2, các câu hỏi tương tự cho R lẫn s vẫn còn là bài
toán mở. Chúng ta phỏng đoán có độ phức tạp thời gian là hàm mũ trở lên.

1.6 Hệ Sperner
Cho U là một tập hữu hạnP(U) là tập luỹ thừa của U và K là một tập
con của P(U). Ta nói K là một hệ Sperner trên U nếu với mọi A,B K kéo
theo A B. Từ định nghĩa này, rõ ràng chúng ta thấy K
s
và K
R
(tập tất cả khoá
tối tiểu của sơ đồ quan hệ s và quan hệ R) là các hệ Sperner.
Trong [10] J.Demetrovics đã chứng minh rằng, nếu s=(U, F) là một sơ
đồ quan hệ thì K
s
là một hệ Sperner trên U. Ngược lại, nếu K
s
là một hệ
Sperner bất kỳ trên U thì luôn tồn tại một sơ đồ quan hệ s sao cho K
s
= K.
Mối quan hệ giữa lớp họ phụ thuộc hàm và lớp các hệ Sperner thể hiện qua
hình vẽ sau



Lớp các họ phụ thuộc hàm Lớp các hệ Sperner
12

Số hóa bởi Trung tâm Học liệu


Hình 1.5 : Tương quan giữa họ phụ thuộc hàm với hệ Sperner


Ví dụ 1.6.1 Cho K={K
1
,., K
m
} là một hệ Sperner trên U. Khi đó
s=(U,F), ở đây F={K
1
U,…, K
m
U}, là sơ đồ quan hệ mà K
s
= K.
Tập phản khoá của hệ Sperner K, ký hiệu K
-1
, được định nghĩa như sau:
K
-1
= {A P(U)| (B K) (B A)và (A C) ( B K)(B C)}.
Có thể thấy K
-1
cũng là một hệ Sperner trên U. Rõ ràng, nếu K đóng vai
trò là tập các khoá tối tiểu của một sơ đồ quan hệ nào đó thì theo định nghĩa
K
-1
là tập tất cả tập không phải là khoá lớn nhất.
Trong luận văn này, chúng ta luôn quy ước rằng nếu hệ Sperner đóng

vai trò là tập các khoá tối tiểu (tương ứng tập các phản khoá) thì hệ này không
rỗng và không chứa tập (tương ứng không chứa tập U và ). Chúng ta cũng
coi mỗi phép so sánh hai thuộc tính là một phép cơ bản của thuật toán. Vì vậy,
nếu chúng ta giả sử rằng các tập con của U được biểu diễn như là các danh
sách được sắp các thuộc tính, thì phép toán Boolean trên hai tập con của U đòi
hỏi khoảng |U| phép cơ bản.
Biết rằng, nếu K là một hệ Sperner khác rỗng tuỳ ý thì luôn tồn tại một
quan hệ R để K
R
=K(J.Demetrovics [9]). Bởi kết quả này định nghĩa sau đã
được đưa ra. Cho R là một quan hệ và K là một hệ Sperner khác rỗng trên U.
Khi đó, ta nói R biểudiễn K nếu K
R
= K.
Định lý sau cho chúng ta một điều kiện cần và đủ để một quan hệ biểu
diễn một hệ Sperner cho trước.

Định lý 1.6.2.[14] Giả sử K là một hệ sperner không rỗng và R là một quan
13

Số hóa bởi Trung tâm Học liệu

hệ trên U. Khi đó R biểu diễn K nếu và chỉ nếuK
-1
=max(
R
)
,
ở đây max(
R

)là
hệ bằng nhau cực đại của quan hệ R.
Hệ bằng nhau cực đại của quan hệ được định nghĩa như sau. Cho
R={h
i
, , h
m
} là một quan hệ trên U và
R
là hệ bằng nhau của R, nghĩa là:
R
= {E
i,j
| 1 ≤i < j ≤m}với E
ij
= {a U|h
i
(a) =h
j
(a)}Khi đó,tađặt
max(
R
)= E
i,j R
| E
pq R
: E
i,j
E
pq

}
Cho s = (U,F)là một sơ đồ quan hệ và K
s
là tập tất cả khoá tối tiểu của
s. Ký hiệu K
s
-1
là tập các phản khoá của K
s
. Hệ quả sau là được chỉ ra.

Hệ quả 1.6.3. [14] Giả sử s =(U,F) là một sơ đồ quan hệ và R là một quan hệ
trên U. Quan hệ R đuợc gọi là biểu diễn s nếu K
R
=K
s
. Khi đó R biểu diễn s
nếu và chỉ nếu K
-1
s
=max(
R
).
Kết quả sau cũng được chỉ ra bởi J.Demetrovics và Vũ Đức Thi trong [14].

Định lý 1.6.4. [14] Giả sử K là một hệ Sperner trên U. Khi đó

Từ Hệ quả 1.6.3 và Định lý 1.6.4, rõ ràng chúng ta thấy rằng đối với
quan hệ R vấn đề thuộc tính cơ bản được giải quyết bằng một thuật toán thời
gian đa thức theo kích thước của R.

Trong [25], Vũ Đức Thi đã đưa ra thuật toán tìm một tập phản khoá từ
một hệ Sperner cho trước. Thuật toán đó được mô tả như sau

Thuật toán 1.6.5. [25](Tìm tập phản khoá)
Vào: hệ Sperner K = {B
1
, ,B
m
} trên U.
14

Số hóa bởi Trung tâm Học liệu

Ra: K
-1
.
Phương pháp:
Bước 1: Đặt K
1
={U-{a}|a B
1
}.Rõ ràng K
1
= {B
1
}
-1
.
Buớc q+1(q < m): Giả sử K
q

=F
q
{X
1
, ,X
tq
} với X
1
, ,X
tq
chứa B
q+1

F
q
={A K
q
|B
q+1
A}. Với mọi i (i = 1,2, ,t
q
), xây dựng các phản khoá của
{B
q+1
} trên X
i
tương tự như K
1
. Ký hiệu chúng là ,…, (i=1,2…t
q

)
Đặt : K
q+1
=F
q
{ | A F
q
A, 1 ≤ i ≤ t
q
, 1 ≤ p ≤ r
i
}
Cuối cùng đặt K
-1
=K
m


Định lý 1.6.6. [25]Với mỗi q (l ≤ q ≤ m), K
q
={B
1
,…,B
q
}
-1
, nghĩa là K
m
=K
-1

Có thể thấy rằng K và K
-1
xác định duy nhất lẫn nhau và việc xác định
K
-1
dựa trên thuật toán 1.6.5 là không phụ thuộc vào thứ tự của B
1
, ,B
m
. Ký
hiệu K
q
=F
q
{X
1
,…,X
tq
}và gọi l
q
(l ≤ q ≤ m-1) là số các phần tử của K
q

Mệnh đề 1.6.7.[25]Độ phức tạp thời gian tồi nhất của thuật toán 1.6.5 là
O(|U|
2

ở đây u
q
=


Rõ ràng, trong mỗi bước của thuật toán 1.6.5K
q
, là một hệ Sperner.
Trong các trường hợp l
q
≤ l
m
(q=1,2,…,m-1), dễ dàng thấy độ phức tạp thời
gian của thuật toán 1.6.5 là không lớn hơn O (|U|
2
|K||K
-1
|
2
). Do đó, trong các
trường hợp này thuật toán 1.6.5 tính K
-1
là thời gian đa thức theo |U|, |K| và
|K
-1
|. Rõ ràng, nếu số các phần tử của K là nhỏ thì thuật toán 1.6.5 rất hiệu
15

Số hóa bởi Trung tâm Học liệu

quả. Nó chỉ đòi hỏi thời gian đa thức theo |U|.
Bây giờ chúng ta tìm hiểu một số hệ Sperner đặc biệt, bao gồm hệ
Sperner bão hoà, hệ Sperner được nhúng và hệ Sperner bao hàm. Các hệ
Sperner này có vai trò quan trọng trong việc nghiên cứu độ phức tạp của một

số bài toán trong CSDL quan hệ.
Cho U là một tập hữu hạn. Hệ Sperner K trên U được gọi là bão
hoànếu với mỗi X U thì K {X} không phải là một hệ Sperner. Hệ Sperner
K trên U gọi là đượcnhúng nếu với mỗi X K có một Y H để X Y, trong
đó H
-1
=K. Hệ Sperner K được gọi là baohàm nếu với mỗi X K tồn tại một
Y K
-1
sao cho X Y.
Trong [19], G.Gottlob và L.Libkin đã giới thiệu bốn bài toán sau,
những bài toán này đóng vai trò quan trọng trong quá trình nghiên cứu cấu
trúc và lôgic của mô hình dữ liệu quan hệ.
Bài toán 1.6.8. (Xây dựng quan hệ Armstrong) Cho trước sơ đồ quan hệ
S = (U, F), xây dựng quan hệ R sao cho F
R
= F
+
.

Bài toán1.6.9. (Bài toán suy diễn phụ thuộc) Cho trước quan hệ R trên U xây
dựng sơ đồ quan hệ s = (U, F) sao cho F
+
= F
R
.

Bài toán1.6.10. (Bài toán kéo theo phụ thuộc hàm-quan hệ) Cho trước sơ đồ
quan hệ s=(U, F) và quan hệ R trên U, xác định xem F
R

F
+
.

Bài toán 1.6.11. (Bài toán tương đương phụ thuộc hàm-quan hệ) Cho trước
sơ đồ quan hệ s = (U,F) và quan hệ R trên U, xác định xem F
R
= F
+
.
Hai bài toán đầu tiên có tầm quan trọng trong thực tế. C.Beeri,
16

Số hóa bởi Trung tâm Học liệu

M.Dowd, R.Pagin, R.Staman [5] chứng tỏ rằng độ phức tạp của hai bài toán
này là hàm mũ, và do đó không có thuật toán thời gian đa thức để giải hai bài
toán này. Bài toán thứ ba được xem là quan trọng trong lý thuyết thiết kế.
Trong [19] (G.Gottlob và L.Libkin) chứng minh rằng độ phức tạp của bài toán
này là NP-đầy đủ. Bài toán cuối cùng cho đến nay vẫn không xác định được
có độ phức tạp là đa thức hay không. Tuy nhiên bài toán này có thể tách thành
hai hài toán con như sau:
Bài toán 1.6.11a. Xác định xem tất cả các phụ thuộc hàm đúng trên quan hệ
R có thể được suy diễn từ F hay không, nghĩa là F
R
F
+
Rõ ràng bài toán này
là Bài toán 1.6.10 ở trên.


Bài toán 1.6.11b. Xác định xem tất cả các phụ thuộc hàm của F có đúng trên
quan hệ R hay không, nghĩa là F
+
F
R
. Dễ thấy bài toán này được giải quyết
bằng một thuật toán thời gian đa thức.
Do đó Bài toán 1.6.11 là kết hợp của bài toán con co-NP-đầy đủ và bài
toán con đa thức. Độ phức tạp của bài toán này có lẽ là một bài toán mở.
Tuy nhiên, độ phức tạp của các Bài toán 1.6.8-Bài toán 1.6.11 sẽ là đa
thức nếu lớp các quan hệ và sơ đồ quan hệ thoả một số điều kiện nào đó.
Trước khi mô tả các điều kiện đó, chúng ta bắt đầu với định nghĩa sau. Cho s
= (U,F) là một sơ đồ quan hệ. Ta nói rằng s là k-sơđồ quan hệ nếu
F={K
1
U,…,K
m
U}, trong đó {K
1
,…,K
m
}là một hệ Sperner trên U.

Điều kiện 1.6.12. Sơ đồ quan hệ s =(U, F) là k - sơ đồ quan hệ, ở đây
F={ K
1
U, …,K
m
U}và K={K
1

,…,K
m
} là một hệ Sperner bão hoà.

Điều kiện 1.6.13. Quan hệ R là ở BCNF và tập phản khoá K
R
-1
là một hệ

×