DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT IU Tập các công thức suy dẫn trên tập biến U LU Tập các CTB xây dựng trên tập các biến U PU Tập toàn bộ các công thức dương trên U PTBDTQ Phụ thu
Trang 1BỘ 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
Trang 2BỘ 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
Trang 3LỜ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
Trang 4LỜI CẢM ƠN
g h họ h h h i h
h g gi h gi h ạ è ồng nghiệ i
g h ọ g i i i ời h h h i
Th h ng d n o s - n s o ọc Nguyễn Xuân Huy, th
truyề ạt những ki n thức rất bổ ích cho tôi trong quá trình học t h ng d n
h t sức t n tình trong quá trình hoàn thành lu
Khoa Công Nghệ h g i h g n lý khoa họ - ạ ại họ
ờ g ại Học Công Nghệ Thành Ph Hồ Ch Mi h ạo mọi iều kiện thu n l i
gi tôi trong quá trình học t p và hoàn thành lu
Toàn thể quý th hiệt tình gi ng dạy và truyề ạ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 n tất c nhữ g g ời h g gi h ạn bè và ồng nghiệ gi tôi trong su i quá trình học t p và th c hiện lu
NGÔ VIỆT TRƯỜNG
Trang 5MỤ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 Các khái niệm cơ bản 6
1.1.1 Thuộc tính 6
1.1.2 Quan hệ n ngôi 7
1.1.3 Bộ 8
1.1.4 Lược đồ quan hệ 9
1.1.5 Khóa của một quan hệ 10
1.2 Phụ thuộc hàm 12
1.2.1 Khái niệm phụ thuộc hàm 12
1.2.2 Định nghĩa 12
1.2.3 Hệ luật dẫn Armstrong 13
1.2.4 Thuật toán tìm bao đóng của tập thuộc tính 15
1.2.5 Bài toán thành viên 16
1.2.6 Phủ tối thiểu của một tập phụ thuộc hàm 16
1.3 Khóa 17
1.3.1 Định nghĩa 17
1.3.2 Thuật toán tìm khóa 18
1.4 Kết chương 19
Chương 2 Một số khái niệm cơ sở trong phụ thuộc Boole dương 20
2.1 Các công thức Boole 20
2.2 Phụ thuộc Boole dương 23
2.2.1 Công thức Boole dương 23
2.2.2 Bảng chân lý của quan hệ 24
2.2.3 Phụ thuộc Boole dương 25
Trang 62.2.4 Một số tính chất của phụ thuộc Boole dương 25
2.2.5 Định lý tương đương 27
2.3 Bài toán suy dẫn cho lớp PTBD 28
2.4 Biểu diễn PTBD dưới dạng hội suy dẫn 31
2.4.1 Công thức suy dẫn 31
2.4.2 Bài toán biểu diễn PTBD dưới dạng hội suy dẫn 32
2.4.3 Tập TR của PTBD 37
2.4.4 Xây dựng tập PTBD từ quan hệ R cho trước 40
2.5 Kết chương 41
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 42
3.1 Bài toán thành viên 42
3.1.1 Phương pháp chứng minh một công thức là hằng đúng 45
3.1.2 Chuẩn hóa dạng chuẩn hội (CNF) 47
3.1.3 Phương pháp chứng minh công thức suy dẫn bằng phép hợp giải 48
3.2 Bài toán bao đóng 48
3.3 Một số thí dụ minh họa 49
3.4 Môi trường xây dựng chương trình 51
3.4.1 Phần cài đặt chương trình 51
3.4.2 Dữ liệu áp dụng cho chương trình 51
3.5 Kết quả đạt được 52
3.9 Kết chương 52
Kết luận và kiến nghị hướng phát triển 53
Phụ lục 54
Tài liệu tham khảo 61
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
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
PTBDTQ Phụ thuộc Boole dương tổng quát
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
Trang 8├ suy dẫn theo quan hệ
├2 suy dẫn theo quan hệ có không quá 2 bộ
Trang 9DANH MỤC CÁC HÌNH MINH HOẠ
Hình 1.1 Thể hiện của quan hệ khoa 9
Hình 1.2 Thể hiện của quan hệ lophoc 9
Hình 2.1 Bảng chân lý Tf,Tg 22
Hình 2.2 Bảng trị Vf,Vg 22
Hình 2.3 Bảng chân lý TG,Th 23
Hình 2.4 Quan hệ R(A,B,C) 24
Hình 2.5 Bảng chân lý TR 24
Hình 3.1 Các kí hiệu phép toán 42
Hình phụ lục 1 Gọi thủ tục go1 54
Hình phụ lục 2 Gọi thủ tục go2 55
Hình phụ lục 3 Gọi thủ tục go3 55
Hình phụ lục 4 Gọi thủ tục go 56
Hình phụ lục 5 Gọi tiếp thủ tục go 56
Hình phụ lục 6 Gọi tiếp thủ tục go 57
Hình phụ lục 7 Gọi tiếp thủ tục go 57
Hình phụ lục 8 Gọi tiếp thủ tục go 58
Hình phụ lục 9 Tính trị a + b 58
Hình phụ lục 10 Tính trị a & b 59
Hình phụ lục 11 Tính trị a b 59
Hình phụ lục 12 Tính trị a ^ b 60
Hình phụ lục 13 Tính trị a b 60
Trang 10Việc tổ chức 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 1970 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
Trang 11nhấ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
Trang 12Trong 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 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
Trang 13Mụ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 theo hướng tiếp cận logic
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, phần phụ 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:
C ơn 1 ổn qu n về lý t uy t cơ sở dữ l ệu qu n ệ
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
C ơn 2 Một số k n ệm cơ sở tron p ụ t uộc Bool d ơn
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
C ơn 3 Ứn dụn p ụ t uộc Bool d ơn ả một số lớp bà 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
Trang 14dư 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
Trang 15Chươ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 [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 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
Trang 16Thí dụ 1.1
• Đối tượng LOPHOC có các thuộc tính mã lớp, tên lớp, khóa, số học viên
• Đối tượng SINHVIEN có các thuộc tính mã sinh viên, họ tên, ngày sinh, quê quán
Các thuộc tính được đặc trưng bởi một tên thuộc tính, kiểu giá trị (data type)
và miền giá trị (domain)
Trong các ứng dụng thực tế, người phân tích – thiết kế thường đặt tên thuộc
tính một cách gợi nhớ, tuy nhiên không nên đặt tên quá dài (vì làm cho việc viết
câu lệnh truy vấn vất vả hơn) nhưng cũng không nên quá ngắn (vì không thể hiện được ngữ nghĩa một cách rõ ràng)
Thí dụ 1.2
Nếu có hai đối tượng HỌCVIEN và GIAOVIEN đều có thuộc tính tên thì nên đặt tên một cách rõ ràng là Tên_học_viên và Tên_giáo _viên vì chúng mang ngữ nghĩa hoàn toàn khác nhau
Mỗi một thuộc tính đều phải thuộc một kiểu dữ liệu Kiểu dữ liệu có thể là vô
hướng - là các kiểu dữ liệu cơ bản như chuỗi, số, logic, ngày tháng… hoặc các kiểu có cấu trúc được định nghĩa dựa trên các kiểu dữ liệu đã có sẵn
Mỗi một thuộc tính có thể chỉ chọn lấy những giá trị trong một tập hợp con của kiểu dữ liệu Tập hợp các giá trị mà một thuộc tính A có thể nhận được gọi là
miền giá trị của thuộc tính A, thường được ký hiệu là MGT(A) hoặc Dom(A)
Thí dụ 1.3
Điểm của sinh viên là một số, nhưng luôn nằm trong đoạn từ 0 đến 10
Với kiểu dữ liệu cấu trúc thì miền giá trị chính là tích đề các (hoặc tập con của tích đề các) của các miền giá trị thành phần
1.1.2 Quan hệ n ngôi
Một quan hệ R có n ngôi được định nghĩa trên tập các thuộc tính U = {A1,
A2, A n} và kèm theo nó là một tân từ, để xác định mối quan hệ giữa các thuộc tính
Ai , và được ký hiệu là R(A1, A2, A n ) Tập thuộc tính của quan hệ R còn được ký
hiệu là R+
Trang 17Với Ai là một thuộc tính có miền giá trị là MGT(Ai), như vậy R(A1, A2, A n )
là tập con của tích đề các: MGT(A1)x MGT(A2)x…x MGT(An) Quan hệ còn được gọi là bảng (table)
Thí dụ 1.4
KHOA(Mã_khoa, Tên_khoa) là một quan hệ 2 ngôi với tân từ : “Mỗi khoa
có một mã khoa duy nhấ ể phân biệt v i các khoa khác, có một tên gọi”
SINHVIEN (Mã_sinh_viên, Tên_sinh_viên, Ngày_sinh, Quê_quán,
Khoa) là một quan hệ 5 ngôi với tân từ : “Mỗi sinh viên có một mã sinh viên duy
nhất ể phân biệt v i các sinh viên khác, có họ ê g h g i h quê quán và học tại mộ h g ờng ”
1.1.3 Bộ
Một bộ (tuple) giá trị là các thông tin của một đối tượng thuộc quan hệ Bộ giá trị cũng thường được gọi là một mẫu tin hay bản ghi (record), dòng của bảng (row)
Một bộ q là một vecto gồm n thành phần thuộc tập hợp con của tích đề các miền giá trị của các thuộc tính và thỏa mãn tân từ đã cho của quan hệ
Thí dụ 1.5
Các bộ giá trị dựa trên các thuộc tính của quan hệ SINHVIEN:
q1 = (SV001, Trần Văn Mạnh, 10/10/1980, Lâm Đồng, CTK27)
q2 = (SV002, Nguyễn Thị Hoa Huệ, 25/11/1985, Khánh Hòa, MTK27)
q3 = (SV003, Tăng Thanh Hà, 11/11/1982, Tp Hồ Chí Minh, NVK27)
Để lấy thành phần Ai – là giá trị thuộc tính Ai của một bộ giá trị q, ký hiệu q.Ai Đây được gọi là phép chi u một bộ lên thuộc tính A i
Thí dụ 1.6
q1.Tên_sinh_viên = “Trần Văn Mạnh”
q2.Khoa= “MTK27”
Trang 18Lược đồ cơ sở dữ liệu là tập hợp các lược đồ quan hệ con {R i}, ký hiệu là ζ Thể hiện (hay tình trạng) của quan hệ R, ký hiệu là TR, là tập hợp các bộ giá trị của quan hệ R vào một thời điểm Như vậy, tại những thời điểm khác nhau thì quan hệ có những thể hiện khác nhau
Thể hiện của các lược đồ quan hệ con TRi gọi là tình trạng của lược đồ CSDL ζ
Thí dụ 1.7 Thể hiện của quan hệ KHOA và LOPHOC
Bảng 1.1 Thể hiện của quan hệ KHOA
Bảng 1.2 Thể hiện của quan hệ LOPHOC
CNTT Công nghệ thông tin 10/10/1994
Trang 191.1.5 Khóa của một quan hệ
Quan hệ R định nghĩa trên tập các thuộc tính U = {A1, A2, , A n}
Khi đó K ⊆ U là khóa của quan hệ R nếu thoả:
(i) K xác định được giá trị của A j , với mọi j = 1,2, ,n
(ii) Không tồn tại K ' ⊆ K mà K ' có thể xác định được giá trị của
A j , với mọi j = 1,2, ,n
Theo định nghĩa trên, K là tập con nhỏ nhất mà giá trị của nó có thể xác
định được duy nhất một bộ giá trị của quan hệ
Khóa theo định nghĩa trên gọi là khóa ề nghị (candidate key)
K được gọi là siêu khóa (superkey) của quan hệ R nếu K ' ⊆ K là một khóa của quan hệ Như vậy một quan hệ Q luôn có ít nhất một siêu khóa và có thể có
nhiều siêu khóa
Thí dụ 1.8 Với quan hệ LOPHOC (MaLop, TenLop, SoSV, MaKhoa) Siêu khoá :
K1 = {MaLop, TenLop}
K2 = {MaLop, SoSV}
K3= {MaLop, TenLop, MaKhoa}
K4= {MaLop, SoSV, MaKhoa}
Ý nghĩa thực tế của khóa là dùng để nhận diện một bộ trong một quan hệ, khi cần thiết tìm thông tin một bộ q nào đó ta chỉ cần biết giá trị của khóa của q là đủ
để dò tìm và hoàn toàn xác định được nó trong quan hệ
Trong trường hợp lược đồ quan hệ có nhiều khóa đề nghị, khi cài đặt lên một
hệ quản trị CSDL người ta chọn ra một khóa trong số các khoá đề nghị này để sử
dụng Khi đó khóa này được gọi là khóa chính (primary key) và các khóa còn lại là
hó g g Khóa chính chỉ thật sự có ý nghĩa trong quá trình khai thác
CSDL, khóa chính hoàn toàn không có vai trò gì khác so với các khóa chỉ định còn lại
Trang 20Trong các hệ quản trị CSDL có cài đặt cơ chế tự động kiểm tra tính duy nhất của khóa chính Khi người sử dụng thêm một bộ mới q2 có giá trị khóa chính trùng với giá trị khóa chính của một bộ q1 đã có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại giá trị khác
Các thuộc tính tham gia vào một khóa được gọi là thuộc tính khoá Về mặt
ký hiệu, trong lược đồ quan hệ các thuộc tính khóa được gạch dưới
Trong một bộ của quan hệ, các thuộc tính khóa không chứa giá trị rỗng Không được phép sửa đổi giá trị của thuộc tính khoá, nếu người sử dụng muốn sửa giá trị thuộc tính khoá của bộ q, cần phải hủy bỏ bộ q sau đó thêm vào bộ q’ với giá trị khóa đã được sửa đổi
Thí dụ 1.9 Một lược đồ CSDL như sau:
KHOA (MaKhoa, TenKhoa, NgayThanhLap)
LOPHOC (MaLop, TenLop, NienKhoa, SoHocvien, MaKhoa)
MONHOC (MaMon, TenMon, SoTC)
HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop)
GIAOVIEN (MaGV, HoGV, TenGV, NgaySinh, HocVi, ChuyenNganh) KQUATHI (MaHV, MaMon, LanThi, NgayThi, DiemThi, GhiChu)
DAY (MaGV, MaLop, MaMon)
Với hai quan hệ R và S, một tập thuộc tính K của quan hệ R được gọi là
khóa ngoại (foreign key) của quan hệ R nếu K là khóa của quan hệ S
Trang 211.2 Phụ thuộc hàm
1.2.1 Khái niệm phụ thuộc hàm
Xét quan hệ DEAN(MaDA, TenDA, DdiemDA, Phong) Nhận thấy rằng quan hệ DEAN có MaDA là khóa, nghĩa là từ MaDA có thể xác định được tất cả các thông tin về tên đề án, địa điểm thực hiện đề án và phòng ban chủ trì đề án Có thể phát biểu lại như sau:
MaDA xác định TenDA hay TenDA phụ thuộc hàm vào MaDA
MaDA xác định DdiemDA hay DdiemDA phụ thuộc hàm vào MaDA
MaDA xác định Phong hay Phong phụ thuộc hàm vào MaDA được ký hiệu:
Khi đó: XY (t1.X = t2.X t1.Y = t2.Y)
Ta nói X xác định Y hay Y phụ thuộc hàm vào X X được gọi là vế trái phụ thuộc hàm, Y được gọi là vế phải phụ thuộc hàm
Trang 22Phụ thuộc hàm hiển nhiên
X Y gọi là phụ thuộc hàm hiển nhiên nếu Y X
{SoHD, MaHang} SoLuong
{SoHD, MaHang} DonGia
{SoHD, MaHang} ThanhTien Nhận thấy rằng SoLuong phụ thuộc đầy đủ vào {SoHD, MaHang} nhưng DonGia chỉ phụ thuộc vào MaHang (là một thuộc tính khóa) chứ không phụ thuộc đầy đủ vào khóa {SoHD, MaHang} Như vậy, trên một lược đồ quan
hệ có thể tồn tại nhiều phụ thuộc hàm
Tập các phụ thuộc hàm được ký hiệu F
1.2.3 Hệ luật dẫn Amstrong
Gọi F là tập phụ thuộc hàm đối với lược đồ quan hệ R định nghĩa trên tập
thuộc tính U và X Y là một phụ thuộc hàm; X ,Y U Khi đó ta nói rằng X Y
được suy diễn Logic từ F nếu R thỏa các phụ thuộc hàm của F thì cũng thỏa X
Y và ký hiệu là F |= X Y
Bao đóng của tập phụ thuộc hàm
Bao đóng của tập phụ thuộc hàm F, ký hiệu là F+ là là tập tất cả các phụ thuộc hàm được duy diễn từ F
Trang 23Trong trường hợp F = F+ thì F là họ đầy đủ của các phụ thuộc hàm
Trang 24CDE
ABE (tính bắc cầu 6+7)
1.2.4 Thuật toán tìm bao đóng của tập thuộc tính
Bao đóng của tập thuộc tính
Bao đóng của tập thuộc tính X đối với tập phụ thuộc hàm F, ký hiệu là
X là tập tất cả các thuộc tính A có thể suy dẫn từ X nhờ tập bao đóng của các
X (i1) X (i) Z ,Y ZF Y X (i) , loại Zra khỏi F
Dừng khi X (i1) X (i) hoặc khi X (i) Q
Bước 2: Kết luận X X (i) :
Thí dụ 1.12 Cho lược đồ quan hệ R(A, B, C, D, E, G, H) và tập phụ thuộc hàm:
Trang 25Bước 2: Từ f1 đến f4 không thoả, f5 thoả nên X 1 AC D ACD
Lặp lại bước 2:
f1 không thoả, f2 thỏa nên X 2 ACD CE ACDE
f3 thỏa nên X 3 ACDE H ACDEH
f4 không thỏa, f5 đã thỏa
Lặp lại bước 2: f2, f3 và f5 đã thỏa, f1 và f3 không thỏa Nên X 4X 3 ACDEH
Vậy AC ACDEH
1.2.5 Bài toán thành viên
Cho tập thuộc tính Q, tập phụ thuộc hàm F trên Q và một phụ thuộc hàm
Cho biết AC E có thuộc F+ không?
Ta có AC ACDEH
Vì E ACnên AC E F
1.2.6 Phủ tối thiểu của một tập phụ thuộc hàm
Hai tập phụ thuộc hàm tương đương
Hai tập phụ thuộc hàm F và G tương đương nếu F G Ký hiệu F G
F
Trang 26F được gọi là phủ G nếu F G
Thuật toán xác định F và G có tương đương không
Bước 1:
Với mỗi phụ thuộc hàm X Y F
Kiểm tra X Y có là thành viên của G không
Bước 2:
Với mỗi phụ thuộc hàm X Y G
Kiểm tra X Y có là thành viên của F không
Bước 3:
Nếu cả bước 1 và 2 đều đúng thì kết luận F G
Thí dụ 1.14 Cho lược đồ quan hệ R(A, B, C, D, E) và tập phụ thuộc hàm:
Cho lược đồ quan hệ Q(A1, A2, …, An), Q+ là tập thuộc tính của quan hệ
Q, F là tập phụ thuộc hàm trên Q, K là tập con của Q+ Khi đó K gọi là một khóa của Q nếu:
Trang 27(i) K+F = Q+
(ii) Không tồn tại K 'K sao cho K’+F = Q+
Thuộc tính A được gọi là thuộc tính khóa nếu A K , trong đó K là khóa
của Q Ngược lại thuộc tính A được gọi là thuộc tính không khóa
K’ được gọi là siêu khóa nếu K K '
1.3.2 Thuật toán tìm khóa
Bước 1: Tính tập nguồn N Nếu N Qthì chỉ có 1 khoá là N, ngược lại
Trang 28Như vậy tập siêu khoá S BA, BC, BAC
Bước 4: Loại các siêu khóa không tối thiểu:
Nhận thấy rằng BA BAC nên loại siêu khóa BAC Tập các khóa còn lại là
Trang 29C h ư ơ 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 o o l e
Định nghĩa 2.1
Cho U = {x1, ,x n } là tập hữu hạn các i B e, B là tập ị B e,
B = {0,1} Khi đó các g hứ B e 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 LU) là C B g ê i U
Định nghĩa 2.2
Mỗi vector các phần tử 0/1, v = v1, ,v n) trong không gian Bn = BB B
được gọi là một phép gán trị cho các biến {x1, ,x n } trong U
Khi đó với mỗi CTB fLU) ta có fv) = fv 1 , ,v n ) là ị g hứ f đối với phép gán trị v, và fv) được tính như sau:
Trang 301 Thay toàn bộ xuất hiện của mỗi biến x i trong f bằng trị v i tương ứng,
i=1,2,…,n để thu được một mệnh đề logic b
ộ g hứ B e được lập bởi hội logic các biến trong X
Ngoài ra, nếu X = {B1, ,B m} U ta ký hiệu:
X = B1B2 B m và gọi là ạ g hội
X = B1B2 B m và gọi là ạ g ể
Hai phép gán trị đặc biệt được quan tâm là hé g ị ị e = 1,1, ,1)
và hé g ị h g z = 0,0, ,0)
Với mỗi tập hữu hạn các CTB, F = {f1, f2, ,f m} trong LU), F được xem là
một công thức dạng F = f1f2 f m 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:
Fv) = f1v) f2v) f mv)
Định nghĩa 2.3
Với mỗi công thức f trên U, g ị f ký hiệu là V f 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 g h f, ký hiệu là T f, là tập các
phép gán trị v sao cho fv) nhận giá trị 1,
T f = {v B n | fv) =1}
Khi đó g h F 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,
Trang 31F f
Cho CTB F = { f: AB, g: CA} trên U = ABC Ta có bảng trị V f , V g và các
bảng chân lý T f , T g và T F như sau:
Nhận xét
Với mỗi CTB f, bảng trị V f của f chứa trị của ọi hé g ị cho f, trong khi bảng chân lý T f chỉ là ộ h g ị ứ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 T f T g ; Ta nói f và g là hai công thức tương đương, ký hiệu f g, nếu T f
= T g Với hai tập công thức F, G trong LU), ta nói F dẫn ra được G, ký hiệu F╞ G,
nếu T F T G ; F và G là tương đương, ký hiệu F G, nếu T F = T G
Trang 32Thí 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:
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 LU) được gọi là g hứ B e g CTBD) nếu fe) =1,
trong đó e là phép gán trị đơn vị, e = (1,1, ,1)
Ký hiệu PU) là tập toàn bộ g hứ g trên U Theo Post ta có thể
xem PU) bao gồm các công thức được xây dựng từ các phép toán , , và hằng
Trang 33Thí dụ 2.3
1 AB, AB)CB), AB)CB)B)C1 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.A 1 = v.A 1 , u.A 2 = v.A 2 , , u.A n = v.A n)
Nói cách khác, nếu u = (u 1 , u 2 , u 3 … n ,) và v = (v 1 , v 2 , v 3 … n ) thì ta đặt:
t = (u,v) = (t 1 ,t 2 , ,t n ) trong đó t i = 1 nếu u i = v i và t i = 0 nếu u i v i, 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 :
Trang 342.2.3 Phụ thuộc Boole dương
Định nghĩa 2.6
Mỗi công thức Boole dương trong PU) được gọi là một hụ h ộ B e
g PTBD) Dễ thấy phụ thuộc hàm là một PTBD
Ta nói quan hệ R thỏa tập PTBD F và ký hiệu RF) nếu T R T F
Cho tập PTBD F và một PTBD f Ta nói F dẫn ra được f theo quan hệ, và ký hiệu F├ f nếu R RELU): RF) Rf)
Cho tập PTBD F và một PTBD f Ta nói F dẫn ra được f theo quan hệ có không quá hai bộ, ký hiệu F ├2 f nếu RREL_2U): RF) Rf)
2.2.4 Một số tính chất của công thức Boole dương
Trang 35Mệnh đề 2.3
Mọi tập CTBD đều có thể được chuẩn hóa CNF
Thí dụ 2.6
Cho g = (a+b)(c’+a) là một CTB CNF Hãy đưa g’ về dạng CNF?
Ta có g’ = [(a+b)(c’+a)]’ = (a+b)’ + (c’+a)’ = a’b’ + ca’ =