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

Phụ thuộc logic trong cơ sở dữ liệu (2)

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 (365.38 KB, 63 trang )

i

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM

---------------------------

NGÔ VIỆT TRƯỜNG

PHỤ THUỘC LOGIC TRONG CƠ SỞ DỮ LIỆU
LUẬN VĂN THẠC SĨ
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số ngành: 60480201

TP. HỒ CHÍ MINH, THÁNG 9 NĂM 2014


ii

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM

---------------------------

NGÔ VIỆT TRƯỜNG

PHỤ THUỘC LOGIC TRONG CƠ SỞ DỮ LIỆU
LUẬN VĂN THẠC SĨ
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số ngành: 60480201


CÁN BỘ HƯỚNG DẪN KHOA HỌC: PGS TSKH NGUYỄN XUÂN HUY


iii

TP. HỒ CHÍ MINH, THÁNG 9 NĂM 2014

LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. 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.
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này
đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn
gốc.

Học viên thực hiện Luận văn
(Ký và ghi rõ họ tên)

NGÔ VIỆT TRƯỜNG


iv

LỜI CẢM ƠN
Trong suốt quá trình học tập và hoàn thành luận văn này, tôi đã nhận được sư
hướng dẫn, giúp đỡ quý báu của quý thầy cô, gia đình, bạn bè và đồng nghiệp. Với
lòng kính trọng và biết ơn sâu sắc tôi xin được bày tỏ lời cảm ơn chân thành tới:
Thầy hướng dẫn Phó giáo sư - Tiến sĩ Khoa học Nguyễn Xuân Huy, thầy đã
truyền đạt những kiến thức rất bổ ích cho tôi trong quá trình học tập và hướng dẫn
hết sức tận tình trong quá trình hoàn thành luận văn này.

Khoa Công Nghệ Thông Tin, Phòng quản lý khoa học - Đào tạo sau đại học
trường Đại Học Công Nghệ Thành Phố Hồ Chí Minh đã tạo mọi điều kiện thuận lợi
giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn này.
Toàn thể quý thầy cô đã nhiệt tình giảng dạy và truyền đạt những kiến thức bổ
ích cho tôi trong suốt khóa học vừa qua.
Cuối cùng xin cảm ơn đến tất cả những người thân trong gia đình, bạn bè và
đồng nghiệp đã giúp đỡ tôi trong suối quá trình học tập và thưc hiện luận văn này.

NGÔ VIỆT TRƯỜNG


v

MỤC LỤC
Danh mục các kí hiệu, các từ viết tắt
Danh mục các hình minh họa
Mở đầu..................................................................................................................... 1
Chương 1. Tổng quan về lý thuyết cơ sở dữ liệu quan hệ.....................................6
1.1 Một số khái niệm.............................................................................................6
1.2 Phụ thuộc hàm.................................................................................................8
1.2.1 Khái niệm phụ thuộc hàm....................................................................8
1.2.2 Hệ tiên đề Armstrong.........................................................................10
1.2.3 Một số tính chất của phụ thuộc hàm..................................................10
1.2.4 Định lý tương đương..........................................................................11
1.3 Lược đồ quan hệ............................................................................................12
1.4 Kết chương....................................................................................................12
Chương 2. Một số khái niệm cơ sở trong phụ thuộc Boole dương.....................13
2.1 Các công thức Boole.....................................................................................13
2.2 Phụ thuộc Boole dương.................................................................................16
2.2.1 Công thức Boole dương.....................................................................16

2.2.2 Bảng chân lý của quan hệ..................................................................17
2.2.3 Phụ thuộc Boole dương......................................................................17
2.2.4 Một số tính chất của phụ thuộc Boole dương.....................................18
2.2.5 Định lý tương đương..........................................................................20
2.3 Bài toán suy dẫn cho lớp PTBD....................................................................21
2.4 Biểu diễn PTBD dưới dạng hội suy dẫn........................................................24
2.4.1 Công thức suy dẫn.............................................................................24


vi

2.4.2 Bài toán biểu diễn PTBD dưới dạng hội suy dẫn...............................25
2.4.3 Tập TR của PTBD...............................................................................30
2.4.4 Xây dựng tập PTBD từ quan hệ R cho trước.....................................32
2.5 Kết chương....................................................................................................34
Chương 3. Ứng dụng lớp phụ thuộc Boole dương giải một số lớp bài toán......35
3.1 Bài toán thành viên........................................................................................35
3.2 Bài toán bao đóng..........................................................................................38
3.3 Chuẩn hóa dạng chuẩn hội (CNF).................................................................40
3.4 Phương pháp chứng minh công thức suy dẫn bằng phép hợp giải.................40
3.5 Phương pháp chứng minh một công thức là hằng đúng.................................41
3.6 Một số thí dụ minh họa..................................................................................42
3.7 Môi trường xây dựng chương trình...............................................................44
3.7.1 Phần cài đặt chương trình..................................................................44
3.7.2 Dữ liệu áp dụng cho chương trình......................................................44
3.8 Cách thực hiện chương trình.........................................................................45
3.9 Kết quả đạt được...........................................................................................52
3.10 Kết chương..................................................................................................52
Kết luận và kiến nghị hướng phát triển...............................................................53
Phụ lục

Tài liệu tham khảo.................................................................................................54


vii

DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
CSDL

Cơ sở dữ liệu

CTB

Công thức Boole

CTBD

Công thức Boole dương

CTSD

Công thức suy dẫn

HSD

Hội suy dẫn

I(U)

Tập các công thức suy dẫn trên tập biến U


L(U)

Tập các CTB xây dựng trên tập các biến U

P(U)

Tập toàn bộ các công thức dương trên U

PTBD

Phụ thuộc Boole dương

PTBDTQ

Phụ thuộc Boole dương tổng quát

PTH

Phụ thuộc hàm

R(U)

Quan hệ R với tập thuộc tính U

REL(U)

Tập toàn thể các quan hệ trên tập thuộc tính U

REL_p(U)


Tập toàn thể các quan hệ có không quá p bộ trên tập thuộc tính
U, p ≥ 1

SAT(F)

Tập toàn thể các quan hệ trên U thỏa tập ràng buộc F

SAT_p(F)

Tập toàn thể các quan hệ có không quá p bộ trên U thỏa tập
ràng buộc F, p ≥ 1

SubSet(U)

Tập các tập con của U



Khi và chỉ khi



suy ra, kéo theo



suy dẫn theo quan hệ




suy dẫn logic

├2

suy dẫn theo quan hệ có không quá 2 bộ


viii

DANH MỤC CÁC HÌNH MINH HOẠ
Hình 1.1 Tập thuộc tính quan hệ R......................................................................16
Hình 2.1 Bảng chân lý Tf,Tg................................................................................21
Hình 2.2 Bảng trị Vf,Vg.......................................................................................21
Hình 2.3 Bảng chân lý TG,Th...............................................................................23
Hình 2.4 Quan hệ R(A,B,C)................................................................................23
Hình 2.5 Bảng chân lý TR....................................................................................23
Hình 3.1 Các kí hiệu phép toán...........................................................................41
Hình 3.2 Gọi thủ tục go1.....................................................................................52
Hình 3.3 Gọi thủ tục go2.....................................................................................52
Hình 3.4 Gọi thủ tục go3.....................................................................................53
Hình 3.5 Gọi thủ tục go.......................................................................................53
Hình 3.6 Gọi tiếp thủ tục go................................................................................54
Hình 3.7 Gọi tiếp thủ tục go................................................................................54
Hình 3.8 Gọi tiếp thủ tục go................................................................................55
Hình 3.9 Gọi tiếp thủ tục go................................................................................55
Hình 3.10 Tính trị a + b.......................................................................................55
Hình 3.11 Tính trị a & b......................................................................................56
Hình 3.12 Tính trị a => b.....................................................................................56
Hình 3.13 Tính trị a ^ b.......................................................................................57
Hình 3.14 Tính trị a <=> b..................................................................................57



ix

MỞ ĐẦU
Cơ sở dữ liệu là hạt nhân không thể thiếu trong các hệ thống, trong đó có các
hệ thống máy tính và truyền thông. Cùng với sự phát triển không ngừng của
Internet, việc trao đổi thông tin và truyền dữ liệu trên mạng là một nhu cầu tất yếu
đặt ra. Với khối lượng thông tin lớn được trao đổi, dữ liệu lưu trữ phân tán, các yêu
cầu truy xuất có thể xảy ra ở nhiều nơi, việc đảm bảo tính nhất quán, tránh dư thừa
dữ liệu, dị thường khi thêm, xóa bộ cũng như các bài toán liên quan đến tổ chức, xử
lý, nén dữ liệu,… luôn là vấn đề được quan tâm.
Để lưu trữ, quản lý và khai thác dữ liệu ta có thể dùng nhiều mô hình tổ chức
dữ liệu khác nhau từ những mô hình truyền thống như mô hình mạng, mô hình phân
cấp, mô hình quan hệ đến các mô hình hiện đại, được dùng nhiều hiện nay như mô
hình cơ sở dữ liệu phân tán, mô hình cơ sở dữ liệu hướng đối tượng … Trong các
mô hình dữ liệu, việc nghiên cứu lý thuyết và ứng dụng của các ràng buộc dữ liệu
hay còn gọi là các phụ thuộc dữ liệu là một yêu cầu cấp thiết đặt ra. Phụ thuộc dữ
liệu đầu tiên được Codd [13] tác giả của mô hình dữ liệu quan hệ đặt nền móng từ
những năm 70 với khái niệm phụ thuộc hàm. Tiếp sau đó R. Fagin và Zaniolo đã
đưa ra phụ thuộc đa trị vào năm 1976. Cùng với sự phát triển của lớp phụ thuộc
hàm, một số phụ thuộc dữ liệu bậc cao cũng như hệ tiên đề cho lớp các phụ thuộc tức là đặt nền móng cơ sở lý thuyết về phụ thuộc dữ liệu, cũng được giới thiệu sau
đó như phụ thuộc đối ngẫu, phụ thuộc mạnh, phụ thuộc yếu do J. Demetrovics và
Gy. Gyepesy đề xuất năm 1981, phụ thuộc Boole dương do Berman đề xuất năm
1985, 1987, phụ thuộc Boole dương tổng quát được Nguyễn Xuân Huy, Lê Thị
Thanh [6] phát triển năm 1992, …
Gần đây, trên cơ sở lớp phụ thuộc hàm là phụ thuộc dữ liệu truyền thống có
một số công trình nghiên cứu của nhiều nhóm về các phụ thuộc dữ liệu mở rộng cho
nhiều các loại dữ liệu khác nhau. Với dữ liệu xác định, năm 2004, Ilya và các đồng
nghiệp đã nghiên cứu phụ thuộc hàm nhẹ (Soft Functional Dependencies – Soft FD)

là phụ thuộc hàm mà giá trị của X xác định giá trị của Y với độ không chắc chắn


x

nhất định hay phụ thuộc hàm có điều kiện (Conditional functional dependencies CFDs) được Bohannon [8] cùng các đồng nghiệp đề xuất năm 2007 để làm sạch dữ
liệu. Với dữ liệu mờ, phụ thuộc hàm đối sánh (Matching dependencies - MDs), phụ
thuộc hàm độ đo (Metric Functional Dependencies - MFD) đã lần lượt được Fan
nghiên cứu, đề xuất năm 2008, 2009. Hay phụ thuộc tuần tự (Sequential
dependencies - SD ) được Golab và đồng nghiệp đưa ra để khái quát dữ liệu theo
thứ tự và biểu diễn mối quan hệ giữa các thuộc tính có thứ tự. Gần đây, đầu năm
2011 nhóm nghiên cứu Song S. và Chen L. [12] đã đề xuất phụ thuộc sai khác
(Differential Dependencies - DDs) để giải quyết một số vấn đề như đảm bảo tính
toàn vẹn, tối ưu truy vấn tốt hơn so với phụ thuộc hàm.
Lớp các PTH và hầu hết các phụ thuộc bậc cao phát triển sau đó như phụ
thuộc đối ngẫu, phụ thuộc mạnh, phụ thuộc yếu, phụ thuộc hàm nhẹ, phụ thuộc hàm
có điều kiện … đều dựa trên quan hệ đẳng thức khi so sánh các trị của các thuộc
tính xuất hiện trong các bộ. Trong thực tế, ngoài so sánh theo đẳng thức còn tồn tại
những loại hình so sánh khác. Ta xét một số thí dụ sau:
1. Trong CSDL quản lý giao dịch thẻ tín dụng, số thẻ giao dịch sẽ xác định vị
trí giao dịch. Để xác định một giao dịch có gian lận hay không ta có thể kết hợp các
điều kiện giữa số thẻ với vị trí để xác định thời gian giao dịch, thí dụ nếu cùng một
thẻ tín dụng giao dịch ở hai vị trí cách nhau hơn 40km (ở hai thành phố khác nhau),
thì thời gian truyền sai lệch phải lớn hơn 20 phút. Nếu hai giao dịch không thỏa
điều kiện trên thì một trong hai phiên giao dịch đó là gian lận. Như vậy, ta thấy phụ
thuộc [sothe (=0) ∧ vitri (≥40)] → [thoigian(≥20)] có ngữ nghĩa rộng hơn PTH
sothe → vitri.
2. Trong số luận, độ cao của một số tự nhiên n, H(n) là tổng các chữ số của
số đó, thí dụ, H(2006) = H(125) = 8. Nếu ta phân loại các số theo độ cao thì hai số
khác nhau có thể thuộc cùng một lớp. Như vậy phụ thuộc H(N)→CLASS có ngữ

nghĩa rộng hơn PTH N → CLASS.


xi

Trong thực tế với một số cơ sở dữ liệu lớn, biến động, phân tán ở nhiều nơi,
trên địa bàn rộng, phục vụ nhiều người dùng với nhiều ứng dụng khác nhau thì các
yêu cầu như đồng nhất dữ liệu (theo khóa và theo trọng số thông tin ), xử lý các yêu
cầu tra cứu thông tin với các điều kiện khác nhau một cách nhanh chóng, đảm bảo
dữ liệu không bị mất mát trên đường truyền, tổ chức, thiết kế, quản lý dữ liệu sao
cho việc lưu trữ tốn ít bộ nhớ nhất, khai thác hiệu quả và thời gian truyền dữ liệu được
giảm tối đa… cũng luôn là yêu cầu cần thiết đặt ra. Một trong các giải pháp để thực
hiện việc này là mở rộng khái niệm đối sánh các trị của các thuộc tính xuất hiện
trong các bộ, tìm tập các phụ thuộc dữ liệu thu gọn tương đương với tập phụ thuộc
dữ liệu ban đầu..
Đây cũng chính là mục đích và ý nghĩa của việc mở rộng khái niệm so sánh
trong lớp các phụ thuộc dữ liệu như phụ thuộc Boole dương tổng quát hay các phụ
thuộc có bản chất là phụ thuộc Boole dương như phụ thuộc sai khác, phụ thuộc đối
sánh được nghiên cứu sau này.
Mục tiêu của luận văn là tìm hiểu về lý thuyết phụ thuộc dữ liệu và ứng dụng
lý thuyết này trong một số ứng dụng. Đây là vấn đề nghiên cứu đã và đang được
nhiều nhà khoa học quan tâm.


xii

Mục đích nghiên cứu
-

Nghiên cứu và tìm hiểu các lớp phụ thuộc Boole dương trong đó tập

trung chủ yếu việc vào tìm hiểu một số khái niệm, tính chất của lớp phụ
thuộc Boole dương và một số khía cạnh ứng dụng của lớp phụ thuộc này.

Phương pháp nghiên cứu
-

Tìm hiểu các tài liệu và kết quả nghiên cứu có liên quan đến đề tài. Vận
dụng chủ yếu các phương pháp và cấu trúc của toán học rời rạc kết hợp
với việc phát triển lớp các phụ thuộc logic nhằm đảm bảo ngữ nghĩa của
dữ liệu trong cơ sở dữ liệu

Bố cục của luận văn
Về cấu trúc, luận văn được trình bày trong 3 chương, phần mở đầu, phần kết
luận, phần mục lục, tài liệu tham khảo. Các nội dung của luận văn trình bày theo
cấu trúc như sau:
Chương 1. Tổng quan về lý thuyết cơ sở dữ liệu quan hệ
Trình bày một số khái niệm chung về mô hình quan hệ và lớp phụ thuộc đầu
tiên của phụ thuộc logic là phụ thuộc hàm.
Chương 2. Một số khái niệm cơ sở trong phụ thuộc Bool dương
Trình bày một số khái niệm về phụ thuộc Bool dương và các vấn đề liên
quan đến việc tìm bao đóng, bài toán thành viên của lớp phụ thuộc Boole dương.
Biểu diễn phụ thuộc Boole dương dưới dạng hội các công thức suy dẫn và thuật
toán xây dựng xây dựng tập PTBD thỏa mãn quan hệ R cho trước cũng được trình
bày trong chương này.
Chương 3. Ứng dụng phụ thuộc Bool dương giải một số lớp bài toán
Trong chương trình bày quy trình chuẩn hóa một công thức về dạng chuẩn
hội (CNF), phương pháp chứng minh một công thức bằng phép hợp giải, phương
pháp chứng minh một công thức là hằng đúng cũng như thuật toán tìm phủ không



xiii

dư của một công thức. Từ đó, vận dụng các kỹ thuật này vào việc giải một số bài
toán thông qua các ví dụ minh họa.
Những kết quả trong luận văn là bước đầu tìm hiểu về lý thuyết các phụ
thuộc logic trong cơ sở dữ liệu. Kết hợp với một số thuật toán có thể xây dựng các
ứng dụng phục vụ trong một số lĩnh vực chẳng hạn như cơ sở dữ liệu. Do điều kiện
về thời gian và trình độ còn hạn chế, những vấn đề trình bày trong luận văn không
tránh khỏi những thiếu sót. Tác giả rất mong được sự thông cảm và góp ý của các
nhà khoa học, đồng nghiệp và bạn bè để luận văn được hoàn thiện tốt hơn.


xiv

Chương 1
TỔNG QUAN VỀ LÝ THUYẾT
CƠ SỞ DỮ LIỆU QUAN HỆ
Lý thuyết về các phụ thuộc dữ liệu đóng vai trò quan trọng trong việc mô tả
thế giới thực, phản ánh ngữ nghĩa dữ liệu của cơ sở dữ liệu. Trong quản lý các cơ sở
dữ liệu (CSDL), phụ thuộc dữ liệu được hiểu là những mệnh đề mô tả các ràng buộc
mà dữ liệu phải đáp ứng trong thực tế. Nhờ có những mô tả phụ thuộc này mà hệ
quản trị cơ sở dữ liệu có thể quản lý tốt được chất lượng dữ liệu. Phụ thuộc dữ liệu
được Codd, tác giả của mô hình dữ liệu quan hệ đặt nền móng từ những năm 70 với
khái niệm phụ thuộc hàm. Sau đó một loạt tác giả khác tiếp tục phát triển các dạng
phụ thuộc bậc cao, phụ thuộc mờ cũng như xây dựng các hệ tiên đề cho các lớp phụ
thuộc - tức là đặt cơ sở lý thuyết về phụ thuộc dữ liệu. Một điều khá tự nhiên là
ngay từ những ngày đầu phát triển lý thuyết thiết kế cơ sở dữ liệu, logic đã được
chọn như một ngôn ngữ hữu hiệu để đặc tả phụ thuộc dữ liệu, do đó, trong số các
loại hình phụ thuộc dữ liệu rất đa dạng được đề xuất và phát triển sau này, các phụ
thuộc logic luôn luôn là trọng tâm chú ý của các nhóm nghiên cứu.

Chương này sẽ trình bày một cách tổng quan quá trình phát triển của lớp phụ
thuộc logic đầu tiên là phụ thuộc hàm. Phần đầu tiên của chương trình bày một số
khái niệm cơ bản của lý thuyết cơ sở dữ liệu quan hệ, khái niệm về phụ thuộc hàm
và lược đồ quan hệ.
1.1 Một số khái niệm
Các khái niệm cơ bản về cơ sở dữ liệu quan hệ được trình bày lần đầu tiên
trong công trình của Codd [13]. Các khái niệm liên quan đến các cơ sở dữ liệu và tri
thức đã được trình bày đầy đủ trong [6].
Các khái niệm về quan hệ, thuộc tính, bộ được định nghĩa như sau:
Định nghĩa 1.1


xv

Cho tập hữu hạn U = {A1, A2 , ... , An} khác rỗng (n ≥ 1). Các phần tử của U
được gọi là thuộc tính. Ứng với mỗi thuộc tính Ai∈U, i = 1,2,...,n có một tập chứa ít
nhất hai phần tử dom(Ai) được gọi là miền trị của thuộc tính Ai. Gọi D là hợp của
các dom(Ai), i = 1,2,...,n. Một quan hệ R với các thuộc tính U, ký hiệu là R(U), là
một tập các ánh xạ t: U→D sao cho với mỗi Ai∈U ta có: t(Ai) ∈ dom(Ai). Mỗi ánh
xạ được gọi là một bộ của quan hệ R.
Mỗi quan hệ R(U) có hình ảnh là một bảng, mỗi cột ứng với một thuộc tính,
mỗi dòng là một bộ.
Ta ký hiệu t(U) là một bộ trên tập thuộc tính U.
Một quan hệ rỗng, ký hiệu ∅, là quan hệ không chứa bộ nào.
Vì mỗi quan hệ là một tập các bộ nên trong quan hệ không có hai bộ trùng lặp.
Theo truyền thống của lý thuyết cơ sở dữ liệu chúng ta chấp nhận các quy định
sau đây:
Các thuộc tính được ký hiệu bằng các chữ LATIN HOA đầu bảng chữ A, B,
C,...
Tập thuộc tính được ký hiệu bằng các chữ LATIN HOA cuối bảng chữ X, Y,

Z,...
Các phần tử trong một tập thuộc tính thường được liệt kê như một xâu ký tự,
chẳng hạn ta viết X = ABC thay vì viết X = {A, B, C}. XY biểu diễn hợp của hai tập
X và Y, X ∪ Y. Phép trừ hai tập X và Y được ký hiệu là X\Y, hoặc X-Y.
Một phân hoạch của tập M thành các tập con rời nhau X1, X2, ...,Xm được ký
hiệu là:
M = X1 | X2 |... | Xm
Với ý nghĩa M = X1 ∪ X2 ∪ ... ∪ Xm và Xi ∩ Xj = ∅, 1 ≤ i, j ≤ m, i ≠ j.
Các bộ được biểu diễn bằng các chữ Latin thường có thể kèm chỉ số t, u, v,
t1 ...
Với mỗi bộ t trong quan hệ R(U) và mỗi tập con các thuộc tính X ⊆ U ta ký
hiệu t[X] hoặc t.X là hạn chế của bộ (ánh xạ) t trên tập thuộc tính X.


xvi

Qui ước:
Mọi cặp bộ t và v trong mọi quan hệ giống nhau trên miền rỗng các thuộc tính,
t.∅ = v.∅.
• Hàm Attr(R) cho tập thuộc tính của quan hệ R.
• Hàm Card(R) cho lực lượng (số bộ) của quan hệ R.
Trong trường hợp tập thuộc tính U đã cho trước ta có thể viết đơn giản R thay cho
R(U).
Ký hiệu REL(U) là tập toàn thể các quan hệ trên tập thuộc tính U, REL_p(U)
là tập toàn thể các quan hệ có không qúa p bộ trên tập thuộc tính U, p ≥ 1.
Hai quan hệ R và S được gọi là tương thích nếu chúng có cùng một tập thuộc
tính, tức là nếu Attr(R) = Attr(S).

1 . 2 P h ụ t h u ộc h à m
Phụ thuộc hàm là lớp phụ thuộc đầu tiên của phụ thuộc logic, đây cũng là lớp

phụ thuộc kinh điển được Codd [13] đề xuất sớm nhất và đóng vai trò quan trọng
trong việc thiết kế CSDL. Phần này sẽ trình bày khái niệm về phụ thuộc hàm, một
số tính chất của phụ thuộc hàm, các loại suy dẫn, suy dẫn theo tiên đề, suy dẫn theo
quan hệ, suy dẫn theo quan hệ có không quá p bộ và phát biểu định lý tương đương
giữa các loại suy dẫn này. Khái niệm về lược đồ quan hệ cũng được đề cập ở đây.
1.2.1 Khái niệm phụ thuộc hàm
Định nghĩa 1.2
Cho tập thuộc tính U. Một phụ thuộc hàm (PTH) trên U là biểu thức dạng
f: X→Y ; X,Y ⊆ U
Nếu f: X→Y là một phụ thuộc hàm trên U thì ta nói tập thuộc tính Y phụ thuộc
vào tập thuộc tính X, hoặc tập thuộc tính X xác định hàm tập thuộc tính Y. X là vế
trái và Y là vế phải của PTH f. Ta cũng dùng hai toán tử LS(f) và RS(f) để lấy vế trái
và vế phải của PTF f, cụ thể là nếu f: X → Y thì LS(f) = X, RS(f) = Y.


xvii

Cho quan hệ R(U) và một PTH f: X→Y trên U. Ta nói quan hệ R thoả PTH f
và viết R(f), nếu hai bộ tuỳ ý trong R giống nhau trên X thì chúng cũng giống nhau
trên Y.
R(X→Y) ⇔ (∀u,v ∈ R): (u.X = v.X) ⇒ (u.Y = v.Y)
Ta dùng ký hiệu X ↛ Y với ý nghĩa tập thuộc tính Y không phụ thuộc hàm vào
tập thuộc tính X.
Cho tập PTH F trên tập thuộc tính U. Ta nói quan hệ R(U) thoả tập PTH F, và
viết R(F), nếu R thoả mọi PTH trong F,
R(F) ⇔ (∀ f ∈ F): R(f)
Nếu quan hệ R thỏa PTH f ta cũng nói PTH f đúng trong quan hệ R.
Thí dụ 1.1
Cho quan hệ R(A, B, C, D) như sau:
R(A

a
a
b
b

B
1
1
2
2

C
x
y
x
y

D)
2
2
1
1

Hình 1.1 Tập thuộc tính quan hệ R
Và các PTH f1: A→A, f2: A→B, f3: AC→C, f4: A→D, f5: D→A, f6: A→C.
Khi đó các PTH f1 - f5 đúng trong R, mặt khác, R không thỏa PTH f6.
Định nghĩa 1.3
Cho trước tập PTH F trên tập thuộc tính U, ký hiệu SAT(F) là tập toàn thể các
quan hệ trên U thoả tập PTH F, SAT_p(F), p ≥ 1 là tập toàn thể các quan hệ có
không quá p bộ trên U và thoả tập PTH F, cụ thể là:

SAT(F) = { R | R∈REL(U), R(F) }
SAT_p(F) = { R | R∈REL_p(U), R(F) }


xviii

Định nghĩa 1.4
Cho tập ℜ các quan hệ trên U, ký hiệu FD(ℜ) là tập các PTH trên U đúng
trong mọi quan hệ của ℜ.
1 . 2 . 2 H ệ t i ê n đ ề A r m s t ro n g
Định nghĩa 1.5
Cho tập PTH F trên tập thuộc tính U. Bao đóng của F, ký hiệu F+ là tập nhỏ
nhất các PTH trên U chứa F và thoả các tính chất F1-F3 của hệ tiên đề Armstrong
Ao sau đây:
∀X, Y, Z ⊆ U:
F1. Tính phản xạ: Nếu X ⊇ Y thì X→Y ∈ F +
F2. Tính gia tăng: Nếu X→Y ∈ F + thì XZ→YZ ∈ F +
F3. Tính bắc cầu: Nếu X→Y ∈ F + và Y→Z ∈ F + thì X→Z ∈ F +
Nhận xét:
Các PTH có vế trái chứa vế phải như mô tả trong F1 được gọi là tầm thường.
Các PTH tầm thường đúng trong mọi quan hệ. Ngoài ra, các quan hệ trên tập thuộc
tính U có không quá một bộ thỏa mọi PTH trên U.
1.2.3 Một số tính chất của phụ thuộc hàm
Cho tập thuộc tính U và các tập phụ thuộc hàm F, G trên U, tập các quan hệ
ℜ trên U, các quan hệ R và S trên U. Khi đó:
1. Nếu F ⊆ G thì SAT(F) ⊇ SAT(G)
2. SAT(FG) = SAT(F) ∩ SAT(G)
3. FD(R∪S) ⊆ FD(R) ∩ FD(S)
4. R ⊆ S ⇒ FD(R) ⊇ FD(S)
5. F ⊆ FD(SAT(F))

6. ℜ ⊆ SAT(FD(ℜ))
7. SAT(FD(SAT(F))) = SAT(F)
8. FD(SAT(FD(ℜ))) = FD(ℜ)


xix

1.2.4 Định lý tương đương
Định nghĩa 1.6
Phụ thuộc hàm f được suy dẫn theo tiên đề (hoặc suy dẫn logic) từ tập PTH F
và ký hiệu là F╞ f, nếu f ∈ F +.
F╞ f ⇔ f ∈ F +
Nói cách khác PTH f được suy dẫn theo tiên đề từ tập PTH F nếu xuất phát
từ F, áp dụng các luật F1, F2 và F3 của hệ tiên đề Armstrong Ao sau hữu hạn lần ta
sẽ thu được PTH f.
Định nghĩa 1.7
Cho tập PTH F trên tập thuộc tính U và f là một PTH trên U. Ta nói PTH f
được suy dẫn theo quan hệ từ tập PTH F và viết F├ f, nếu mọi quan hệ R(U) thoả
F thì R cũng thoả f.
F├ f ⇔ SAT(F) ⊆ SAT(f)
Cho tập thuộc tính U và tập PTH F trên U, ta định nghĩa F* là tập các PTH f
trên U được suy dẫn theo quan hệ từ tập PTH F
F * = { f: X→Y | X,Y ⊆ U, F├ f }
Tính đủ và xác đáng của hệ tiên đề Armstrong được chứng minh trong định
lý 1.2.1 dưới đây.
Định lý 1.1
F+=F*
Nói cách khác, suy dẫn theo quan hệ và suy dẫn theo logic là một, tức là:
F╞ f ⇔ F├ f
Định nghĩa 1.8

Cho tập PTH F trên tập thuộc tính U và f là một PTH trên U. Ta nói PTH f
được suy dẫn theo quan hệ có không quá p bộ từ tập PTH F và viết F ├p f, nếu mọi
quan hệ R trong REL_p(U) thoả F thì R cũng thoả f.
F├p f ⇔ SAT_p(F) ⊆ SAT_p(f)


xx

Cho tập thuộc tính U và tập PTH F trên U, ta định nghĩa F' là tập các PTH f
trên U được suy dẫn theo quan hệ có không quá hai bộ từ tập PTH F
F' = { f: X→Y | X,Y ⊆ U, F├2 f }
Định lý sau phát biểu về sự tương đương giữa các loại suy dẫn theo tiên đề,
suy dẫn theo quan hệ và suy dẫn theo quan hệ có không quá P bộ.
Định lý 1.2
F + = F * = F'
Nói cách khác, đối với phụ thuộc hàm, ba loại suy dẫn sau là tương đương
(i) Suy dẫn logic: F╞ f ,
(ii) Suy dẫn theo quan hệ: F├ f , và
(iii) Suy dẫn theo quan hệ có không quá hai bộ: F├2 f.
1.3 Lược đồ quan hệ
Lược đồ quan hệ (LĐQH) là một cặp a = (U, F), trong đó U là tập hữu hạn
các thuộc tính, F là tập các phụ thuộc hàm trên các miền trị (dữ liệu) của các thuộc
tính trong U.
1.4 Kết chương
Chương này đã trình bày một số khái niệm cơ bản liên quan đến các lớp phụ
thuộc hàm, các tính chất, tiên đề, lược đồ quan hệ, định lý tương đương và các thí
dụ minh họa của phụ thuộc hàm.


xxi


Chương 2
MỘT SỐ KHÁI NIỆM CƠ SỞ TRONG
PHỤ THUỘC BOOLE DƯƠNG

Trong chương 1 cũng đã nêu tổng quan về lớp phụ thuộc logic đầu tiên là lớp
phụ thuộc hàm, phát biểu định lý tương đương cho lớp phụ thuộc này. Trong
chương 2 sẽ tiếp tục trình bày một số khái niệm cơ bản về các lớp phụ thuộc logic
như các lớp phụ thuộc Boole được mở rộng theo trình tự thời gian là phụ thuộc
Boole dương.
Trong chương này cũng sẽ trình bày một số khái niệm liên quan đến việc
tìm bao đóng, bài toán thành viên của lớp phụ thuộc Boole dương. Biểu diễn phụ
thuộc Boole dương dưới dạng hội các công thức suy dẫn và thuật toán xây dựng xây
dựng tập PTBD thỏa mãn quan hệ R cho trước cũng được trình bày trong chương
này.

2 . 1 Cá c c ôn g t h ứ c B ool e
Định nghĩa 2.1
Cho U = {x1,...,xn} là tập hữu hạn các biến Boole, B là tập trị Boole,
B = {0,1}. Khi đó các công thức Boole (CTB) là các công thức được xây dựng trên
các biến của U, các hằng 0/1 và các phép toán ∨, ∧, ∼ ,→.
Ký hiệu L(U) là tập các CTB xây dưng trên tập các biến U.
Định nghĩa 2.2
Mỗi vector các phần tử 0/1, v = (v1,...,vn) trong không gian Bn = B× B× ...× B
được gọi là một phép gán trị cho các biến {x1,...,xn} trong U.
Khi đó với mỗi CTB f∈L(U) ta có f(v) = f(v1,...,vn) là trị của công thức f đối
với phép gán trị v, và f(v) được tính như sau:


xxii


1. Thay toàn bộ xuất hiện của mỗi biến xi trong f bằng trị vi tương ứng,
i=1,2,…,n để thu được một mệnh đề logic b.
2. Trị của f(v) chính là trị của b.
Với mỗi tập con X ⊆ U, ta quy ước viết hội logic (∧) của các biến trong X là
dãy ký hiệu của X. Như vậy, trong trường hợp không gây ra nhầm lẫn, ký hiệu X
đồng thời biểu diễn cho các đối tượng sau đây:
• một tập thuộc tính trong U,
• một tập biến logic trong U,
• một công thức Boole được lập bởi hội logic các biến trong X.
Ngoài ra, nếu X = {B1,...,Bm} ⊆ U ta ký hiệu
∧X = B1∧B2∧...∧Bm và gọi là dạng hội.
∨X = B1∨B2∨...∨Bm và gọi là dạng tuyển.
Hai phép gán trị đặc biệt được quan tâm là phép gán trị đơn vị e = (1,1,...,1)
và phép gán trị không z = (0,0,...,0).
Với mỗi tập hữu hạn các CTB, F = {f1, f2,...,fm} trong L(U), F được xem là
một công thức dạng F = f1∧f2∧...∧fm. Khi đó với mỗi phép gán trị v, giá trị chân lý của
công thức F sẽ được tính như sau:
F(v) = f1(v) ∧ f2(v) ∧ ... ∧ fm(v)
Định nghĩa 2.3
Với mỗi công thức f trên U, bảng trị của f, ký hiệu là Vf chứa n+1 cột, trong
đó n cột đầu tiên chứa các trị của các biến trong U, cột cuối cùng, cột thứ n+1, chứa
trị của f ứng với mỗi phép gán trị của dòng tương ứng. Như vậy bảng trị chứa 2 n
dòng, trong đó n là lực lượng của tập U. Bảng chân lý của f, ký hiệu là Tf, là tập các
phép gán trị v sao cho f(v) nhận giá trị 1,
Tf = {v ∈ B n | f(v) =1}
Khi đó bảng chân lý TF của tập hữu hạn các công thức F trên U, chính là giao
của các bảng chân lý của mỗi công thức thành viên trong F,



xxiii

TF = T f
f ∈F

Ta có, v ∈ TF khi và chỉ khi ∀f ∈F: f(v) = 1.
Thí dụ 2.1

Cho CTB F = { f: A→B, g: C∧A} trên U = ABC. Ta có bảng trị Vf, Vg và các
bảng chân lý Tf , Tg và TF như sau:
Tf
ABC0000010100

Tg

Vf, Vg

ABC101111

ABCfg0001000110010
100111010000101011

11110111

101011111

TF
ABC111

Hình 2.1 Bảng chân lý Tf, Tg

Hình 2.2 Bảng trị Vf, Vg

Nhận xét
Với mỗi CTB f, bảng trị Vf của f chứa trị của mọi phép gán trị cho f, trong
khi bảng chân lý Tf chỉ là một phần của bảng trị ứng với các giá trị 1 của f.
Định nghĩa 2.4
Cho f và g là hai CTB. Ta nói công thức f dẫn ra được công thức g và ký hiệu
f ╞ g, nếu Tf ⊆ Tg; Ta nói f và g là hai công thức tương đương, ký hiệu f ≡ g, nếu
Tf = Tg. Với hai tập công thức F, G trong L(U), ta nói F dẫn ra được G, ký hiệu F╞
G, nếu TF ⊆ TG; F và G là tương đương, ký hiệu F ≡ G, nếu TF = TG.


xxiv

Thí dụ 2.2
Cho hai CTB G và h trên U = ABC,
trong đó G là một hội của các CTB f và g:
G = { f: A → C, g: BC} , h: AB ∨C.

TG

Th

ABC011111

ABC0010111011
10111

Ta thấy TG ⊂ Th nên G ╞ h.


Hình 2.3 Bảng chân lý TG, Th

2 . 2 P h ụ t h u ộc B ool e dư ơ n g
Tiếp theo một số phụ thuộc logic như phụ thuộc hàm, phụ thuộc đối ngẫu,
phụ thuộc mạnh, phụ thuộc yếu…đã được đề xuất và nghiên cứu bởi một số tác giả,
các nhóm nghiên cứu độc lập với nhau của J Berman và W.J.Blok và Sagiv, Delobel
et al. đã mở rộng khái niệm PTH sang phụ thuộc Boole dương. Đây là lớp phụ
thuộc logic bao gồm các ràng buộc dữ liệu được mô tả thông qua các công thức
Boole dương là những công thức nhận giá trị 1 (true) khi tất cả các biến đều có trị 1.
Trong mô tả các phụ thuộc hàm và phụ thuộc Boole dương phép sánh trị của thuộc
tính vẫn là phép sánh đẳng thức (=). Đối với các phụ thuộc Boole dương định lý
tương đương vẫn bảo toàn hiệu lực.
2.2.1 Công thức Boole dương
Định nghĩa 2.5
Công thức f ∈ L(U) được gọi là công thức Boole dương (CTBD) nếu f(e) =1,
trong đó e là phép gán trị đơn vị, e = (1,1,...,1).
Ký hiệu P(U) là tập toàn bộ các công thức dương trên U. Theo Post ta có thể
xem P(U) bao gồm các công thức được xây dựng từ các phép toán ∧, ∨, → và hằng
1.


xxv

Thí dụ 2.3
1. A∧B, (A∧B)∨(C∧B), (A∧B)∨((C∧B)→B)∨C∨1 là các CTBD.
2. Các công thức suy dẫn, suy dẫn mạnh, yếu và đối ngẫu đều là các CTBD.
3. Công thức A ∧(¬B) không phải là CTBD, vì khi A = B = 1 ta có 1 ∧0 = 0.
2.2.2 Bảng chân lý của quan hệ
Với hai bộ u và v tùy ý trong quan hệ R ta định nghĩa α(u,v) là phép gán trị:


α(u,v) = (u.A1= v.A1, u.A2= v.A2,..., u.An= v.An)
Nói cách khác, nếu u = (u1, u2, u3,… un,) và v = (v1, v2, v3,… vn) thì ta đặt:
t = α(u,v) = (t1,t2,...,tn)
trong đó ti = 1 nếu ui = vi và ti = 0 nếu ui ≠ vi, 1 ≤ i ≤ n
Với mỗi quan hệ R ∈ REL(U) ta gọi bảng chân lý của quan hệ R là tập :
TR = {α(u,v) u,v ∈ R}
Thí dụ 2.4
R

TR

BộABCt11a2t22b

ABCt1&t1

2t31a3

111t1&t2001t1&t3110t2&t30
00

Hình 2.4 Quan hệ R(A,B,C)

Hình 2.5 Bảng chân lý TR

Nhận xét:
- Mỗi dòng t của TR chính là một phần tử trong không gian Bn
- Nếu R = ∅ thì TR = ∅
- Nếu R ≠ ∅ thì e ∈ TR vì α(u,u) = e nên e ∈ TR



×