Với mô hình dữ liệu quan hệ, sau phụ thuộc hàm thì một trong các lớp phụ thuộc quan trọng được phát triển là phụ thuộc Boolean dương, phụ thuộc Boolean dương tổng quát, phụ thuộc Boolean
Trang 1HỌC VIỆN KỸ THUẬT QUÂN SỰ
TRẦN MINH TUYẾN
CÁC PHỤ THUỘC LOGIC TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI
LUẬN ÁN TIẾN SĨ TOÁN HỌC
HÀ NỘI - 2015
Trang 2
HỌC VIỆN KỸ THUẬT QUÂN SỰ
TRẦN MINH TUYẾN
CÁC PHỤ THUỘC LOGIC TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI
Chuyên ngành: Cơ sở toán học cho tin học
Mã số: 62 46 01 10
LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS TSKH NGUYỄN XUÂN HUY
HÀ NỘI - 2015
Trang 3LỜI CẢM ƠN
Để hoàn thành luận án này, tôi đã nhận được sự giúp đỡ rất nhiệt tình của các thày, cô giáo trong khoa Công nghệ Thông tin, Học viện Kỹ thuật Quân sự và trường Đại học Công đoàn Tôi xin gửi lời cảm ơn tới các thày, cô giáo trong khoa Công nghệ Thông tin, Học viện kỹ thuật Quân sự và trường Đại học Công đoàn đã 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 viết luận án Đặc biệt tôi xin trân trọng cảm ơn PGS.TSKH Nguyễn Xuân Huy, người đã tận tình hướng dẫn, chỉ bảo cho tôi trong toàn bộ 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 án này
Hà Nội, ngày 10 tháng 10 năm 2015 Tác giả luận án
Trần Minh Tuyến
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của PGS.TSKH Nguyễn Xuân Huy Các kết quả được viết chung với các đồng tác giả đã được sự chấp thuận của các tác giả trước khi đưa vào luận án
Các kết quả nêu trong luận á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ác giả luận án
Trần Minh Tuyến
Trang 5
MỤC LỤC Trang MỞ ĐẦU 10
Chương 1: Mô hình dữ liệu dạng khối 20
1.1 Mô hình dữ liệu 20
1.1.1 Khái niệm 20
1.1.2 Phân loại 21
1.2 Mô hình dữ liệu dạng khối 23
1.2.1 Khối, lát cắt của khối 23
1.2.2 Đại số khối 26
1.2.3 Phụ thuộc hàm 31
1.2.4 Bao đóng của tập thuộc tính chỉ số 33
1.2.5 Khóa của lược đồ khối = (R,F) 34
1.3 Ánh xạ đóng 36
1.3.1 Khái niệm 36
1.3.2 Khóa của ánh xạ đóng 38
1.4 Các công thức Boolean 39
1.4.1 Khái niệm 39
1.4.2 Bảng trị và bảng chân lý 40
1.4.3 Suy dẫn logic 41
1.4.4 Công thức Boolean dương 41
Chương 2:
Phép dịch chuyển lược đồ khối và lược đồ khối cân bằng 43
2.1 Phép dịch chuyển lược đồ khối 43
2.2 Thuật toán dịch chuyển lược đồ khối 45
Trang 62.3 Biểu diễn bao đóng và khóa qua phép dịch chuyển 47
2.3.1 Biểu diễn bao đóng 47
2.3.2 Biểu diễn khóa 49
2.4 Khóa và các tập thuộc tính nguyên thủy, phi nguyên thủy 54
2.5 Lược đồ khối cân bằng 61
2.6 Thuật toán dịch chuyển lược đồ khối về dạng cân bằng 65
2.7 Tập các vế trái cực tiểu 69
Chương 3: Phụ thuộc Boolean dương và phụ thuộc Boolean dương tổng quát trên khối 72
3.1 Lược đồ khối và ánh xạ đóng 72
3.2 Phụ thuộc Boolean dương trên khối 76
3.2.1 Khối chân lý 76
3.2.2 Phụ thuộc Boolean dương 77
3.3 Mối quan hệ giữa các kiểu phụ thuộc hàm và các công thức Boolean dương trên khối 84
3.4 Phụ thuộc Boolean dương tổng quát trên khối 86
3.5 Thể hiện phụ thuộc Boolean dương tổng quát trên khối 92
KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 95
DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 97
TÀI LIỆU THAM KHẢO 99
Trang 7DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
XY Biểu diễn hợp của hai tập X và Y
REL(U) Tập toàn thể các quan hệ trên tập thuộc tính U
RELp(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
t*v Phép kết nối hai bộ t và v
t*S Phép kết nối bộ t với quan hệ S
t[X], t.X hạn chế của bộ (ánh xạ) t trên tập thuộc tính X
id id’ Kí hiệu tích rời rạc của id và id’
MP Hợp của 2 tập con M và P
f * g Hội của hai ánh xạ đóng f và g
SubSet(U) Tập tất cả các tập con của U
Suy dẫn logic
Suy dẫn theo quan hệ
2 Suy dẫn theo quan hệ có không quá 2 phần tử
CTBD Công thức Boolean dương
PTBD Phụ thuộc Boolean dương
PTBDTQ Phụ thuộc Boolean dương tổng quát
Fix(f) Tập toàn bộ các điểm bất động của f
Gen(G) Tập sinh của giàn giao G
Coatom(G) Đối nguyên tử của giàn giao G
MAX(M) Tập các phần tử cực đại của M
Trang 8PTH Phụ thuộc hàm
Uo Tập tất cả các thuộc tính không khoá
UK Tập tất cả các thuộc tính khoá
UI Tập tất cả các thuộc tính nằm trong mọi khoá
LS(f) Vế trái của phụ thuộc hàm f
RS(f) Vế phải của phụ thuộc hàm f
LS(F) Hợp các vế trái của tất cả các phụ thuộc hàm f F
RS(F) Hợp các vế phải của tất cả các phụ thuộc hàm f F
Trang 9
DANH SÁCH BẢNG
Trang
Bảng 1: Biểu diễn quan hệ CAN_BO_1 10 Bảng 1.1: Biểu diễn lát cắt của khối KH_HANG 25
Trang 10DANH SÁCH HÌNH VẼ
Trang
Hình 3.1: Biểu diễn khối KH_HANG và phụ thuộc Boolean dương f 77
Hình 3.2: Biểu diễn khối chân lý r1 của khối KH_HANG 78
Hình 3.3: Biểu diễn khối KH_HANG và PTBDTQ g 88
Hình 3.4: Biểu diễn khối chân lý r2 của khối KH_HANG 88
Trang 11Ví dụ: Khi cần theo dõi hồ sơ cán bộ trong một cơ quan, ta lập bảng sau: CAN_BO_1: ma ten luong trinh_do
A01 A 350 ThS A02 B 300 DH A03 C 250 CD
Bảng 1: Biểu diễn quan hệ CAN_BO_1
Trang 12Bảng này gồm các trường: ma (mã cán bộ), ten (tên cán bộ), luong (lương hàng tháng), trinh_do (trình độ cán bộ) Bảng này chính là một quan
hệ trong mô hình dữ liệu quan hệ Mỗi khi lương của một cán bộ thay đổi thì người quản lý cập nhật lương mới cho cán bộ đó, như vậy giá trị của lương cũ mất đi mà thay bằng giá trị lương mới Tình trạng tương tự với thuộc tính: trinh_do (trình độ cán bộ) khi mà trình độ của một cán bộ thay đổi Do đó, với cách quản lý nhân sự theo bảng trên thì người quản lý không thể theo dõi được quá trình tăng lương hoặc quá trình nâng cao trình độ của những cán bộ mình quản lý Đối với họ thì trong cách quản lý này, việc theo dõi quá trình phát triển của mỗi người theo thời gian là một công việc khó khăn
Tuy nhiên, trong mô hình dữ liệu dạng khối thì việc này lại trở nên đơn giản hơn Ta có thể thấy điều đó qua cách quản lý cán bộ theo mô hình khối
dữ liệu, cụ thể như hình ảnh của khối CAN_BO_2 dưới đây:
CAN_BO_2:
Hình 1: Biểu diễn khối CAN_BO_2
Với khối CAN_BO_2 thì mỗi khi có một cán bộ nào trong cơ quan được tăng lương hoặc thay đổi trình độ, thậm chí cả đổi tên thì ta bổ sung năm
đó vào trục thời gian và khối sinh tương ứng một lát cắt mới, ứng với năm vừa bổ sung để người quản lý cập nhật thông tin (trục thời gian có thể tính
A01 A 550 TS A01 A 350 ThS
Trang 13theo năm, tháng hoặc ngày, tùy theo yêu cầu quản lý của từng cơ quan) Như vậy, ta có thể quản lý cán bộ trong cơ quan suốt cả quá trình công tác
Nhìn vào khối: CAN_BO_2, ta dễ dàng thấy quá trình tăng lương cũng như quá trình nâng cao trình độ của 3 cán bộ ứng với các bản ghi t1, t2, t3, ở đây các năm 2007, 2010, 2015 cũng chỉ là minh họa; ta có thể bổ sung thêm các năm tùy ý trên trục thời gian này của khối mỗi khi cần cập nhật thông tin cho các cán bộ trong cơ quan
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 Một số tác giả đã mở rộng
mô hình dữ liệu quan hệ thành mô hình dữ liệu đa chiều và kho dữ liệu, [14], [15], [16], [18], [19], [20], [21], [26], [32] Một kỹ thuật thường được dùng trong các hệ thống kho dữ liệu để xử lý phân tích trực tuyến - OLAP (On-Line Analytical Processing) là kỹ thuật sử dụng cách thể hiện dữ liệu đa chiều gọi là các khối (cube) nhằm cung cấp khả năng truy xuất nhanh đến dữ liệu của kho dữ liệu
Với cấu trúc của khối dữ liệu đa chiều thì mỗi chiều tương ứng với một thuộc tính, nó cung cấp cho người quản lý một khung nhìn đa chiều về dữ liệu Khối dữ liệu dưới đây là một ví dụ:
Hình 2: Biểu diễn khối dữ liệu đa chiều
Trang 14Với khối dữ liệu đa chiều như ở hình 2 ta thấy đây là khối dữ liệu 3 chiều Một là chiều Thời gian gồm 4 mốc: Jan-01, Feb-01, Mar-01 và Apr-01, hai là chiều Địa điểm gồm 2 nơi: Tokyo và Rome, ba là chiều Sản phẩm gồm
3 loại máy tính: Standard PC, Executive PC và Ambassador PC
Cũng 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 [4], [5], [7], Mô hình dữ liệu này có thể xem là một mở rộng của mô hình dữ liệu quan hệ
Trong mô hình dữ liệu dạng khối, các khái niệm như: khối, lược đồ khối, lát cắt, đại số khối, phụ thuộc hàm, bao đóng của tập thuộc tính chỉ số,
đã được nghiên cứu [4], [5], [7], [8], [9], [10], [11], [12], [13]
Trong mô hình dữ liệu dạng khối, các lược đồ khối, khối nói chung là lớn và phức tạp Chính vì vậy mà mô hình này đòi hỏi phải có các thuật toán tốt theo nghĩa, độ phức tạp tính toán chấp nhận được, chẳng hạn là hàm tuyến tính hoặc đa thức theo chiều dài của dữ liệu vào Các thuật toán này giúp ta tìm bao đóng, khóa của lược đồ khối, khối, giải bài toán thành viên,
Một cách tự nhiên, nếu kích thước của lược đồ khối càng nhỏ thì các thuật toán đó càng phát huy hiệu quả hơn Từ đó, một số hướng nghiên cứu nhằm tinh giản các lược đồ khối được thực hiện thông qua các phép biến đổi tương đương, chẳng hạn đưa tập phụ thuộc hàm về dạng thu gọn, thu gọn tự nhiên, dạng không dư, dạng tối ưu, cũng được quan tâm
Đi theo hướng này, phép dịch chuyển lược đồ khối nhằm thu gọn, loại
bỏ khỏi lược đồ ban đầu những thuộc tính không quan trọng theo nghĩa chúng không làm ảnh hưởng tới kết quả tính toán các đối tượng đang quan tâm như bao đóng, khóa,
Mặc dù lược đồ khối thu được qua phép thu gọn nhìn chung không tương đương với lược đồ khối ban đầu, nhưng ta lại thu được các đối tượng
Trang 15Cũng như trong mô hình dữ liệu quan hệ, các phụ thuộc dữ liệu trong
mô hình khối đóng vai trò quan trọng đối với việc phản ánh ngữ nghĩa của dữ liệu Phụ thuộc đầu tiên là phụ thuộc hàm, được E Codd - tác giả của mô hình
dữ liệu quan hệ đề xuất Phụ thuộc này cũng đã được phát triển thành phụ thuộc hàm trong mô hình dữ liệu dạng khối Khi khối suy biến thành quan hệ thì khái niệm phụ thuộc hàm trong mô hình dữ liệu dạng khối lại trở thành khái niệm phụ thuộc hàm trong mô hình dữ liệu quan hệ
Với mô hình dữ liệu quan hệ, sau phụ thuộc hàm thì một trong các lớp phụ thuộc quan trọng được phát triển là phụ thuộc Boolean dương, phụ thuộc Boolean dương tổng quát, phụ thuộc Boolean dương đa trị,… Ở đây, khái quát hóa các lớp phụ thuộc này vào một khái niệm chung là phụ thuộc logic Việc nghiên cứu phụ thuộc logic trong mô hình dữ liệu quan hệ được nhiều tác giả quan tâm và các kết quả tìm thấy đã được sử dụng hữu ích trong quá trình thiết kế các cơ sở dữ liệu
Tuy nhiên, trong mô hình dữ liệu dạng khối, cho đến hiện nay thì các phụ thuộc logic còn chưa được quan tâm nhiều, ví dụ như: các khái niệm về phụ thuộc Boolean dương, phụ thuộc Boolean dương tổng quát trên khối, vẫn chưa có Chính vì vậy, đề tài muốn đi sâu tìm hiểu xem trong mô hình dữ liệu dạng khối thì các phụ thuộc logic này sẽ được định nghĩa như thế nào? Chúng có những tính chất, đặc trưng gì? Mối quan hệ của chúng với các khái niệm tương ứng trong mô hình dữ liệu quan hệ như thế nào?, và chắc rằng với các phụ thuộc logic mới được đề xuất trong mô hình dữ liệu dạng khối thì việc sử dụng chúng sẽ có hiệu quả trong việc thiết kế các cơ sở dữ liệu dạng khối trên thực tế
2 Mục tiêu, đối tượng và phương pháp nghiên cứu
Mục tiêu của luận án là đề xuất các khái niệm và tìm hiểu tính chất các loại phụ thuộc logic trong mô hình dữ liệu dạng khối như: phụ thuộc Boolean
Trang 16dương, phụ thuộc Boolean dương tổng quát, ánh xạ đóng và mối quan hệ với phép dịch chuyển lược đồ khối,… Mối quan hệ giữa phụ thuộc logic trong mô hình dữ liệu dạng khối với các phụ thuộc tương ứng trong mô hình dữ liệu quan hệ, Bên cạnh đó, đề tài cũng tìm hiểu về quan hệ giữa phụ thuộc logic trên lược đồ khối và phụ thuộc tương ứng trên lược đồ lát cắt, từ đó xem xét
về cấu trúc của các phụ thuộc logic trong mô hình dữ liệu dạng khối
Đối tượng nghiên cứu của luận án chính là các phụ thuộc logic, ánh xạ đóng, lược đồ cân bằng,… trong mô hình dữ liệu dạng khối với phép dịch chuyển lược đồ khối Mối quan hệ của chúng trên lược đồ khối và trên lược
đồ lát cắt, trên cơ sở đó xác định rõ các cấu trúc cụ thể của các phụ thuộc logic trong mô hình dữ liệu dạng khối
Phương pháp nghiên cứu của luận án: Hướng nghiên cứu của luận án là nghiên cứu lý thuyết, do đó luận án sử dụng các công cụ của toán học, logic (các phương pháp suy luận, chứng minh, lập bảng chân lý,…) để nghiên cứu tìm ra các kết quả mới về các phụ thuộc logic trên lược đồ khối, phép dịch chuyển lược đồ khối, ánh xạ đóng trên khối,…
3 Tổng quan tình hình nghiên cứu liên quan đến luận án
3.1 Các nghiên cứu trên thế giới
Hiện nay, trên thế giới việc mở rộng mô hình dữ liệu quan hệ của
E Codd đề xuất năm 1970 cũng đã được nhiều nhà nghiên cứu quan tâm
- Năm 1996 tác giả C Dyreson đã đề xuất một mở rộng của mô hình
dữ liệu quan hệ, đó là các khối dữ liệu (data cube) [17]
- Năm 1997, các tác giả R Agrawal, A Gupta, and S Sarawagi đã
đề xuất một mở rộng của mô hình dữ liệu quan hệ, đó là mô hình
dữ liệu đa chiều (Modeling Multidimensional Databases) [41]
Trang 17- Năm 1997 các tác giả S Chaudhuri and U Dayal đã đề xuất khái niệm nhà kho dữ liệu (Data Warehousing) [49]
- Năm 2001 Paulraj Ponniah đã bàn về nhà kho dữ liệu trong bài báo
“Data warehousing fundamentals” [38]
- Năm 2002 Inmon W.H đã trình bày về việc xây dựng nhà kho dữ
liệu trong bài báo “Building the Data Warehouse “ [26]
- Năm 2003 các tác giả Maurizio Rafanelli, M.Rafanelli, M.Rafanelli(Ed.), Qiang Yang, Joshua Zhexue Huang, Michaeng Ng,… trong các bài báo của mình đã bàn về nhà kho dữ liệu, cơ sở
dữ liệu đa chiều và mô hình khối dữ liệu [18], [34], [35], [40]
- Năm 2009 John Paredes đã bàn về các công cụ của mô hình dữ liệu
đa chiều [28]
- Năm 2010 các tác giả Apostolos Benisis, Christian S.Jensen, Torben Bach Pedersen, Christian Thomsen, & 1 mo-re trong các bài báo của mình cũng đã nói tới khối dữ liệu, cơ sở dữ liệu đa chiều và nhà kho dữ liệu [15], [19]
- Năm 2013 các tác giả Ralph Kimball, Margy Ross, Haiping
Lu, Konstantinos N Plataniotis, Anastasios Venetsanopoulos đã trình bày về bộ công cụ của nhà kho dữ liệu, dữ liệu đa chiều,…[23], [44]
- Năm 2014 các tác giả Ladjel Bellatreche, Mukesh K Mohania, Ralph Kimball trong các bài báo của mình đã bàn về nhà kho dữ liệu và các công cụ của nó [32], [45]
3.2 Các nghiên cứu tại Việt Nam
- Tại Việt Nam, năm 1998 các tác giả Nguyễn Xuân Huy, Trịnh Đình Thắng đã đề xuất ra một mở rộng của mô hình quan hệ, đó là mô
Trang 18hình dữ liệu dạng khối [4], mô hình này khác với các mô hình mà các nhà khoa học nước ngoài đã đề xuất
- Trong mô hình dữ liệu dạng khối, các tác giả đã đưa ra các khái niệm như: khối, lược đồ khối, lát cắt, đại số quan hệ trên khối, các thuộc tính chỉ số, phụ thuộc hàm,… đồng thời chứng minh nhiều tính chất trên các khái niệm này [4], [5], [7], [8]
- Năm 2008 các tác giả Trịnh Đình Thắng và Trịnh Đình Vinh đã đề xuất khái niệm phụ thuộc đa trị trong lược đồ khối và chứng minh một số tính chất của nó [9]
- Năm 2009 các tác giả Vũ Đức Thi và Trịnh Đình Vinh đã đưa ra các khái niệm phụ thuộc đa trị xấp xỉ, phụ thuộc hàm xấp xỉ và bao đóng xấp xỉ mức α trong mô hình dữ liệu dạng khối [11]
- Năm 2010 các tác giả Vũ Đức Thi và Trịnh Đình Vinh đề xuất các khái niệm α-phụ thuộc hàm và α-bao đóng, phủ của tập phụ thuộc hàm và vấn đề tựa chuẩn hóa trong mô hình dữ liệu dạng khối [12], [13]
4 Các vấn đề nghiên cứu chính của luận án
Trước khi nghiên cứu các phụ thuộc logic trong mô hình dữ liệu dạng khối, luận án tập trung nghiên cứu các vấn đề sau:
- Đề xuất ra khái niệm mới: đó là phép dịch chuyển lược đồ khối, từ
đó nghiên cứu vấn đề biểu diễn khóa và bao đóng, khóa, các tập thuộc tính nguyên thủy, phi nguyên thủy với phép dịch chuyển lược
đồ khối trong mô hình dữ liệu dạng khối
- Đưa ra khái niệm về lược đồ cân bằng trong mô hình dữ liệu dạng khối, từ đó tìm ra mối quan hệ của nó với vế trái cực tiểu và khóa trong lược đồ khối
Trang 19- Tìm và chứng minh các tính chất của ánh xạ đóng với phép dịch chuyển lược đồ khối trong mô hình dữ liệu dạng khối
- Đề xuất khái niệm phụ thuộc Boolean dương trên lược đồ khối, phát biểu và chứng minh các tính chất của nó trong mô hình dữ liệu dạng khối,…
- Đề xuất khái niệm phụ thuộc Boolean dương tổng quát trên lược đồ khối, phát biểu và chứng minh các tính chất của nó trong mô hình
dữ liệu dạng khối,…
5 Một số kết quả nghiên cứu của luận án
Các kết quả nghiên cứu của luận án được đưa ra ở toàn bộ các chương 2 và 3 Cụ thể như sau:
- Đề xuất khái niệm về phép dịch chuyển lược đồ khối và chứng minh các kết quả về biểu diễn bao đóng và khóa qua phép dịch chyển lược
đồ khối
- Mối quan hệ giữa khóa và các tập thuộc tính nguyên thủy, phi nguyên thủy với phép dịch chuyển lược đồ khối
- Đề xuất khái niệm lược đồ khối cân bằng và chứng minh các kết quả
về lược đồ khối cân bằng, vế trái cực tiểu và khóa với phép dịch chuyển lược đồ khối
- Chứng minh các tính chất của ánh xạ đóng trong mô hình dữ liệu dạng khối với phép dịch chuyển lược đồ khối
- Đề xuất khái niệm phụ thuộc Boolean dương trên lược đồ khối và chứng minh các tính chất của nó trong mô hình dữ liệu dạng khối
- Đề xuất khái niệm phụ thuộc Boolean dương tổng quát trên lược đồ khối, chứng minh các tính chất và thể hiện của nó trong mô hình dữ liệu dạng khối
Trang 20Chương 2 đưa ra các kết quả nghiên cứu đầu tiên của luận án: đề xuất các khái niệm mới về phép dịch chuyển lược đồ khối, lược đồ khối cân bằng, Từ đó, các kết quả về biểu diễn của bao đóng, khóa qua phép dịch chuyển, thuật toán dịch chuyển lược đồ khối,… cùng các tính chất của lược đồ khối cân bằng, thuật toán dịch chuyển, đã được phát biểu và chứng minh
Chương 3 giới thiệu các khái niệm mới như: phụ thuộc Boolean dương, phụ thuộc Boolean dương tổng quát trong mô hình dữ liệu dạng khối, trình bày khái niệm ánh xạ đóng trên khối Chứng minh các tính chất của ánh xạ đóng trên khối, điều kiện cần và đủ của tập thuộc tính chỉ
số bất động, tập sinh, tập các đối nguyên tử, Các tính chất, định lý tương đương, của phụ thuộc Boolean dương, phụ thuộc Boolean dương tổng quát trên khối, thể hiện của phụ thuộc Boolean dương tổng quát, cũng
đã được phát biểu và chứng minh ở đây
Trang 21
CHƯƠNG 1: MÔ HÌNH DỮ LIỆU DẠNG KHỐI
Các mô hình dữ liệu là sự trừu tượng đơn giản của các sự kiện trong thế giới thực Hiện đã có nhiều mô hình dữ liệu được quan tâm nghiên cứu, trong
số đó thì mô hình dữ liệu quan hệ do E Codd đề xuất được quan tâm nhiều hơn cả Mặc dù vậy, đối với các bài toán thực tế với dữ liệu động thì mô hình này vẫn còn hạn chế Đã có nhiều hướng nghiên cứu nhằm mở rộng mô hình
dữ liệu quan hệ, trong số đó có mô hình dữ liệu dạng khối
1.1 Mô hình dữ liệu
1.1.1 Khái niệm
Ngày nay, công nghệ thông tin và truyền thông đóng một vai trò quan trọng trong khoa học kỹ thuật, giáo dục, kinh doanh, cũng như trong mọi hoạt động khác của xã hội dưới mọi quy mô, từ xí nghiệp, công ty, cho đến cấp quốc gia, quốc tế Việc nắm bắt thông tin nhanh, nhiều, chính xác và kịp thời ngày càng đóng vai trò quan trọng trong việc quản lý, điều hành công việc Mọi thông tin quản lý trên máy tính điện tử theo bất cứ quy trình cụ thể nào cũng đều phải được thể hiện bằng các dữ liệu lưu trữ trên các thiết bị mang tin, trên cơ sở đó tổ chức quản lý và khai thác dữ liệu Dữ liệu là những
sự kiện có thể ghi lại được và có ý nghĩa
Một tập hợp các dữ liệu có liên quan với nhau, mô hình hóa các đối tượng của một phần thế giới thực (công ty, trường học, ngân hàng ), gọi là một cơ
sở dữ liệu Các cơ sở dữ liệu phải được tổ chức quản lý sao cho những người
sử dụng có thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết
Trang 22Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người
sử dụng tạo ra, bảo trì và khai thác một cơ sở dữ liệu Nó là một hệ thống phần mềm phổ dụng, thuận tiện cho quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu với các ứng dụng khác nhau
Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò quan trọng trong việc xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu Do
đó, việc thiết kế cơ sở dữ liệu là một hoạt động chủ yếu trong môi trường cơ
sở dữ liệu
Quá trình thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta
sử dụng các mô hình Các mô hình là sự trừu tượng đơn giản của các sự kiện trong thế giới thực Nó cho phép khảo sát đặc điểm của các thực thể và các mối liên hệ được tạo ra giữa các thực thể đó Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm dùng để biểu diễn các cấu trúc của cơ sở dữ liệu Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu Nhiều mô hình còn có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác trên cơ sở dữ liệu
Với các mô hình được thiết kế tốt sẽ tạo ra các cơ sở dữ liệu tốt và từ đó
sẽ cho các ứng dụng hiệu quả Ngược lại, nếu thiết kế mô hình không tốt sẽ tạo ra các cơ sở dữ liệu tồi và dẫn đến các ứng dụng kém hiệu quả
Như vậy, mỗi mô hình dữ liệu là một hệ hình thức toán học gồm có hai phần [53]:
- Một hệ thống kí hiệu để mô tả dữ liệu
- Một tập hợp các phép toán thao tác trên dữ liệu đó
1.1.2 Phân loại
Các mô hình dữ liệu có thể phân loại theo các kiểu khái niệm mà chúng dùng để mô tả cấu trúc cơ sở dữ liệu [54]
Trang 23- Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức khái niệm, cung cấp các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người
sử dụng Các mô hình này tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan tâm đến cái được biểu diễn trong cơ sở dữ liệu chứ không phải cách mà nó được biểu diễn
- Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý, cung cấp các khái niệm mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào Các khái niệm do mô hình dữ liệu vật lý cung cấp, nói chung có ý nghĩa đối với các chuyên gia máy tính chứ không có ý nghĩa mấy đối với những người sử dụng thông thường
Giữa hai loại mô hình này là một lớp các mô hình dữ liệu thể hiện, chúng cung cấp những khái niệm mà người sử dụng có thể hiểu được và gần gũi với cách tổ chức dữ liệu bên trong máy tính Mô hình dữ liệu loại này còn được gọi là mô hình dữ liệu mức logic Các mô hình dữ liệu thể hiện che dấu một số chi tiết về việc lưu trữ dữ liệu nhưng có thể được cài đặt trực tiếp trên
hệ thống máy tính
Các mô hình dữ liệu thể hiện là các mô hình được sử dụng thường xuyên nhất trong các hệ cơ sở dữ liệu thương mại Ba mô hình được quan tâm nhiều thuộc loại này là: mô hình mạng, mô hình phân cấp và mô hình quan hệ Trong ba mô hình này thì mô hình quan hệ được quan tâm nhiều hơn cả Đã
có nhiều tài liệu, bài báo trình bày các kết quả nghiên cứu về mô hình quan hệ [1], [2], [3], [24], [29], [33], [52], [53], [54] Sở dĩ mô hình quan hệ được quan tâm như vậy vì nó được xây dựng trên một cơ sở toán học chặt chẽ - đó
là lí thuyết toán học về các quan hệ có áp dụng rộng rãi các công cụ đại số và logic Mô hình dữ liệu quan hệ có tính độc lập dữ liệu cao, dễ dàng sử dụng
và mô phỏng các hệ thống thông tin đa dạng trong thực tiễn
Trang 24Bên cạnh ưu điểm, mô hình dữ liệu quan hệ cũng còn có một số nhược điểm Trong mô hình này, cơ sở dữ liệu được xem như là một tập hợp các quan hệ Mỗi quan hệ có thể xem như một bảng gồm có các hàng và các cột, mỗi cột ứng với một thuộc tính, mỗi hàng gọi là một bộ 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,
Để khắc phục những nhược điểm trên, 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 Một số tác giả
đã mở rộng mô hình dữ liệu quan hệ thành mô hình dữ liệu đa chiều và kho
dữ liệu,…[17], [41], [49], [51] Sau đó nhiều tác giả khác trên thế giới đã quan tâm nghiên cứu đến các mô hình dữ liệu này [38], [26], [34], [35], [18], [40], [28], [15], [19], [14], [23], [44], [16], [32], [45], Cũng theo hướng nghiên cứu này, một mô hình dữ liệu mới đã được đề xuất và nghiên cứu, đó
là mô hình dữ liệu dạng khối [4], [5], [7], [8], [9], [10], [11], [12], Mô hình
dữ liệu này có thể xem là một mở rộng của mô hình dữ liệu quan hệ
1.2 Mô hình dữ liệu dạng khối
1.2.1 Khối, lát cắt của khối
Định nghĩa 1.1 [4]
Gọi R = (id; A1, A2, , An ) là một bộ hữu hạn các phần tử, trong đó id
là tập chỉ số hữu hạn khác rỗng, Ai (i=1 n) là các thuộc tính Mỗi thuộc tính
Ai (i=1 n) có miền giá trị tương ứng là dom(Ai) Một khối r trên R, kí hiệu r(R) gồm một số hữu hạn phần tử mà mỗi phần tử là một họ các ánh xạ từ tập chỉ số id đến dom(Ai ), (i=1 n)
Đôi khi, nếu không sợ nhầm lẫn ta kí hiệu khối này đơn giản là r
Ví dụ 1.1: Ta xây dựng khối Khách hàng (ký hiệu KH_HANG) để theo dõi
Trang 25trong đó: id = {1/1/2015, 2/1/2015, 3/1/2015} và các thuộc tính là A1 = maKH (mã khách hàng), A2 = Bmỳ (bánh mỳ, đơn vị: cái), A3 = Bơ (đơn vị: gam),
A4 = Sữa (đơn vị: lít) Minh họa cho khối này như ở hình dưới đây:
Hình 1.1: Biểu diễn khối KH_HANG
Với khối KH_HANG như ở hình 3, ta có:
Mã của khách hàng t1 vào ngày 1/1/2015 là: t1(1/1/2015,maKH) = A01
Số lượng bánh mỳ khách hàng t2 mua ngày 2/1/2015 là:
Trang 26Ví dụ 1.2: Với khối r = KH_HANG đã cho ở trên, nếu x = 1/1/2015 id thì
lát cắt r(R1/1/2015 ) có dạng như sau:
r(R1/1/2015 ): maKH Bmỳ Bơ Sữa
A01 10 200 3 A02 8 250 4 A03 6 0 6
Bảng 1.1: Biểu diễn lát cắt của khối KH_HANG
Khi đó, ở lát cắt này ta có:
Mã của khách hàng t2 vào ngày 1/1/2015 là: t1(1/1/2015,maKH) = A02
Số lượng bánh mỳ khách hàng t2 mua ngày 1/1/2015 là:
t2(1/1/2015,Bmỳ) = 8
Số lượng sữa khách hàng t3 mua ngày 1/1/2015 là: t3(1/1/2015,Sữa) = 6
Số lượng Bơ khách hàng t1 mua ngày 1/1/2015 là: t1(1/1/2015,Bơ) = 200
Ta có các nhận xét sau:
Nhận xét 1:
Cho R = ( id; A1, A2, , An ), r(R) là một khối trên R Với mỗi x
id thì lát cắt r(Rx ) là một quan hệ Trong trường hợp tập chỉ số id chỉ gồm một phần tử thì r(R) trở thành một quan hệ
Như vậy, mỗi quan hệ r(A1, A2, , An) là một trường hợp đặc biệt của khối, đó chính là khối r(R) với R = ({x}; A1, A2, , An)
Nhận xét 2:
Cho R = (id; A1, A2, , An), r(R) là một khối trên R, khi đó tồn tại một
họ quan hệ duy nhất biểu diễn họ các lát cắt của khối r(R)
Trang 27Ngược lại không đúng, nghĩa là với một họ quan hệ cho trước biểu diễn họ các lát cắt của một khối nào đó thì khối tìm được không duy nhất
1.2.2 Đại số khối [5]
Cho r là một khối trên R=(id; A1, A2, , An) Ta giả thiết rằng r là một khối gồm một tập hữu hạn các phần tử Cũng như đại số quan hệ trong mô hình cơ sở dữ liệu quan hệ, ở đây đại số khối có các phép toán tương tự như của đại số quan hệ, bên cạnh đó còn có thêm các phép toán mới được xây dựng, đó là: tích Đề các theo tập chỉ số và phép nối dài
Phép hợp
Cho hai khối r(R) và r’(R), R=(id; A1, A2, , An), khi đó hợp của r(R) và r’(R), kí hiệu r r' là một khối gồm các phần tử thuộc một trong hai khối r(R) và r’(R) đã cho
Ta có: r r'={t | t r(R) t r'(R)}
Phép giao
Cho hai khối r(R) và r’(R), R=(id; A1, A2, , An), khi đó giao của r(R) và r’(R), kí hiệu r r' là một khối gồm các phần tử thuộc đồng thời cả hai khối r(R) và r’(R) đã cho
Ta có: r r'={t | t r(R) t r'(R)}
Phép trừ
Cho hai khối r(R) và r’(R), R=(id; A1, A2, , An), khi đó hiệu của r(R) và r’(R), kí hiệu r-r' là một khối gồm các phần tử thuộc khối r(R) và không thuộc khối r’(R) đã cho
r-r'={t | t r(R) t r'(R)}
Ta có mối quan hệ giữa phép giao và phép trừ:
Trang 28Tích Đề các
Cho R = (id; A1, A2, , An), S = ( id; B1, B2, , Bm ),
Khi đó, tích Đề các của hai khối r(R) và s(S) là một khối, kí hiệu r x s,
thuộc khối này là một bộ gồm n + m ánh xạ, trong đó n ánh xạ đầu có dạng một phần tử thuộc r, còn m ánh xạ sau có dạng một phần tử thuộc s
Biểu diễn hình thức của tích Đề các có dạng:
của hai tập chỉ số id và id’ Mỗi phần tử thuộc khối này là một bộ gồm n ánh
xạ (t1, t2, , tn) với ti: id id’ dom(Ai), i=1 n, mỗi ánh xạ này được cảm
sinh từ 2 ánh xạ thứ i tương ứng của r và s
Trang 29Phép chiếu
Cho R=(id; A1, A2, , An ), , r là một khối trên R
phép chiếu của khối r trên P, kí hiệu P(r), là một khối có lược đồ P và mỗi phần tử thuộc khối này có dạng: (ti1| id', ti2| id', , tih| id'), trong đó
Cho R = ( id; A1, A2, , An ) và khối r(R)
Cho một phép chọn, nghĩa là ta xây dựng một tập con các phần tử của khối đã cho thỏa mãn biểu thức F cho trước Biểu thức F được diễn tả bằng một tổ hợp Boolean 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 giá trị điểm của hai ánh xạ thành phần nào
đó, hoặc giữa một biến là giá trị điểm của một ánh xạ thành phần và một hằng Các phép so sánh trong F là <, =, >, , , , còn các phép toán logic
Trang 30Nếu hai tập {A1, A2, , An} và {B1,B2, , Bm} không giao nhau thì trở thành tích Đề các của hai khối đã cho
Trang 31Giả sử:
(ở đây Aik và Bik không nhất thiết phân biệt)
Khi đó kết nối của r và s theo Ai1, Ai2, , Aih và Bi1, Bi2, , Bih là khối t(T),
khối này được định nghĩa là:
t(T) = {t | tr r và ts s sao cho t(R) = tr , t(S) = ts, tr
ik
= ts
ik , 1 k h }, trong đó:
Thay cho kí hiệu ở đây ta kí hiệu rõ hơn:
Phép nối dài
Cho R = (id; A1, A2, , An ), R’ = (id’; A1, A2, , An ), r(R) và r’(R’) là
các khối Khi đó nếu idid' , mà ta có với t r và k r’:
thì khi đó ta xây dựng được một phần tử mới có dạng:
u = (u1, u2, , un) với uh : idid'dom(A )h
sao cho:
uh = th, uh = kh , h = 1 n,
id id’
và kí hiệu: uh = th *id kh
Trang 32i i
1
)
id Y
X,
Các phần tử u = (u1, u2, , un) này tạo ra một khối mới, kí hiệu r *id r’
và gọi là khối nối dài của hai khối r và r’
Phép toán được xây dựng ở trên gọi là phép nối dài của hai khối r và r’
Cho hai khối r(id; A1, A2, , An) và s(id; Ai1, Ai2, , Aih), trong đó:
Khi đó, phép chia của khối r cho khối s, kí hiệu r s , là một khối gồm các phần tử:
Cho R = (id; A1,A2, ,An ), r(R) là một khối trên R và ,
X Y là kí hiệu một phụ thuộc hàm Một khối r thoả X Y nếu:
t1, t2 r sao cho t1(X) = t2(X) thì t1(Y) = t2(Y)
Trang 33n (i) i=1
trở thành phụ thuộc hàm trong
mô hình dữ liệu quan hệ
Sau đây, để cho đơn giản ta sử dụng các kí hiệu:
, x(i) (xid, i=1 n) gọi là các thuộc
tính chỉ số
Ta kí hiệu tập tất cả các tập con của tập hợp
1
n i i
id
)
Cho , SubSet (
1
n i i
id
), khi đó ta định
nghĩa phép toán trên SubSet(
1
n i i
id
) như sau:
Trang 34i i
1
)
id X
n (i) i=1
Định nghĩa 1.6 [10]
Cho lược đồ khối =(R,Fh), Rid A A, 1 , 2 , ,A n, khi đó Fh được gọi là tập đầy đủ các phụ thuộc hàm nếu Fhx là như nhau với mọi x id
Một cách cụ thể hơn:
Fhx gọi là như nhau với mọi x id nghĩa là:
từ M, N qua việc thay x bởi y
1.2.4 Bao đóng của tập thuộc tính chỉ số
Trang 35Khi đó nếu M+ là bao đóng của M đối với Fh thì xA id , n
i i
M
, Mx n
i i
1
)
x
, Mx , x A id
Khi đó nếu Mx+
là bao đóng của Mx đối với Fhx thì
A x x
M
, Mx n
i i
1
)
x
, Mx , xA id Khi đó
M+ là bao đóng của M đối với Fh khi và chỉ khi Mx+ = M+ n
i i
1.2.5 Khoá của lược đồ khối = (R,F)
Định nghĩa 1.8 [10]
Cho lược đồ khối = (R,F), R = (id; A1, A2, , An ), F là tập các phụ
thuộc hàm trên R, K n
i i
1
)
id
K gọi là khoá của lược đồ khối nếu nó
thoả 2 điều kiện:
i) K x(i) F+ , x id, i = 1 n
ii) K’ K thì K’ không có tính chất i)
Trang 36Nếu K là khoá và K K’’ thì K’’ gọi là siêu khoá của lược đồ khối
1
)
id
, x id Khi đó nếu K là khoá của R đối với Fh
thì x id , Kx = n
i i
1
)
x
K là khoá của Rx đối với Fhx
Mệnh đề 1.7 [10]
Cho R = (id; A1, A2, , An ), Fh , Fhx là tập các phụ thuộc hàm trên R,
Rx tương ứng, Kx n
i i
1
)
x
, Kx , x id Khi đó nếu Kx là khoá của Rx
đối với Fhx thì K =
id x x
K
là khoá của lược đồ R đối với Fh
Từ các mệnh đề ở trên, ta rút ra điều kiện cần và đủ sau:
Mệnh đề 1.8 [10]
Cho R = (id; A1, A2, , An ), Fh , Fhx là tập các phụ thuộc hàm trên R,
Rx tương ứng, K n
i i
1
)
id
, x id Khi đó, K là khoá của lược đồ R đối với
Fh khi và chỉ khi Kx = K n
i i
1
)
x
là khoá của Rx đối với Fhx
Từ kết quả của mệnh đề trên, ta có hệ quả sau:
Hệ quả 1.1
Cho R = (id; A1, A2, , An ), Fh , Fhx là tập các phụ thuộc hàm trên R,
Rx tương ứng, x id Khi đó:
A i
Trang 371.3 Ánh xạ đóng
1.3.1 Khái niệm
Định nghĩa 1.9 [6]: Cho tập U, ánh xạ f: SubSet(U) SubSet(U) được gọi là đóng trên tập U nếu với mọi tập con X, Y U ta có các tính chất sau đây:
Giả sử f Close(U), khi đó X, Y U ta có:
1) f(f(X)Y) = f(Xf(Y)) = f(XY)
2) f(XY) f(X)f(Y)
3) f(XY) f(X)f(Y)
Định nghĩa 1.10 [6]: Cho các ánh xạ đóng f, g trên U, ta xác định ánh
xạ h trên U như sau: h(X) = f(X) g(X) với mọi X U Ta gọi ánh xạ h là hội của hai ánh xạ f và g, kí hiệu
Mệnh đề 1.10 [6]:
Hội của hai ánh xạ đóng trên U là một ánh xạ đóng trên U
Định nghĩa 1.11 [6]: Cho các ánh xạ đóng f, g trên U, ta xác định ánh
xạ k là hợp thành của hai ánh xạ f và g trên U như sau: k(X) = f(g(X)) với mọi X U
Định nghĩa 1.12 [6]: Cho ánh xạ đóng f trên tập U, tập con
được gọi là điểm bất động của ánh xạ đóng f nếu f(X) = X
Trang 38Ta kí hiệu Fix(f) là tập toàn bộ các điểm bất động của AXĐ f
Do f(U) = U nên ta có: U Fix(f), từ định nghĩa của Fix(f) suy ra:
Định nghĩa 1.13 [6]: Giả sử G là một họ các tập con đóng với phép giao
của tập hữu hạn U, khi đó giao của mọi họ con trong G là một tập con trong G:
Ta gọi G là giàn giao trên tập hữu hạn U, khi đó G chứa duy nhất một họ
con sao cho mọi phần tử của G đều được biểu diễn qua giao của các phần tử
trong và là tập con nhỏ nhất của G thỏa mãn:
được gọi là tập sinh của giàn G và được kí hiệu là Gen(G)
Cho (M,) là một tập hữu hạn có thứ tự bộ phận Phần tử m trong M được gọi là cực đại nếu từ mx và xM thì m = x Ta kí hiệu MAX(M) là tập các phần tử cực đại của M
Mệnh đề 1.11 [6]:
Với mọi giàn giao G trên tập hữu hạn U ta có:
MAX(Gen(G)) = MAX(G\{U})
Định nghĩa 1.14 [6]: Cho G là một giàn giao trên tập hữu hạn U, ta kí
hiệu: Coatom(G) = MAX(G \ {U}) và gọi các phần tử trong Coatom(G) là đối nguyên tử của giàn giao G
Mệnh đề 1.12 [6]:
Với mọi giàn giao G trên tập hữu hạn U ta có:
Coatom(G) = MAX(Gen(G))
Trang 391.3.2 Khóa của ánh xạ đóng
Định nghĩa 1.15 [6]: Cho AXĐ f trên tập hữu hạn U, tập con K của U
được gọi là khóa hoặc cơ sở của ánh xạ đóng f nếu K thỏa hai tính chất sau:
1) f(K) = U,
Nếu K thỏa tính chất 1) thì K được gọi là siêu khóa (siêu cơ sở) của ánh
xạ đóng f
Cho f là AXĐ trên tập hữu hạn U, phần tử A trong U được gọi là phần
tử khóa nếu A có trong một khóa nào đó của f Ngược lại, nếu A không có trong bất kì khóa nào của f thì A được gọi là phần tử không khóa
Định nghĩa 1.16 [6]: Cho AXĐ f trên tập hữu hạn U, tập con P của U
được gọi là phản khóa hoặc phản cơ sở của ánh xạ đóng f, nếu K thỏa hai tính chất sau:
1) ,
Nói cách khác, phản khóa là tập con lớn nhất không chứa khóa của U Ta
kí hiệu Antikey(f) là tập các phản khóa của ánh xạ đóng f
Mệnh đề 1.13 [6]:
Với mọi AXĐ f trên tập hữu hạn U ta có:
Mệnh đề 1.14 [6]:
Với mọi AXĐ f trên tập hữu hạn U: Antikey(f) = Coatom(f)
Cho AXĐ f trên tập hữu hạn U, ta kí hiệu:
- Key(f) là tập các khóa của f
- UK là tập các phần tử phản khóa của f, tức là các phần tử có mặt trong
Trang 40một phản khóa của f
- UI là giao của các phản khóa của f, tức là các phần tử có mặt trong mọi phản khóa của f
- U0 là tập các phần tử không có mặt trong bất kì phản khóa nào của f
Ta có U0 | UK là một phân hoạch của U
Định nghĩa 1.17 [6]: Cho tập hữu hạn U, một luật sinh f trên U là biểu
thức dạng f: L R; L,RU Các tập L, R được gọi tương ứng là vế trái và vế phải của luật sinh f, kí hiệu tương ứng là LS(f), RS(f)
Ta gọi một hệ sinh ánh xạ đóng là cặp =(U,F), trong đó U là tập hữu hạn, F là tập các luật sinh trên U
(i) Mỗi trị 0/1 trong B là một CTB
(ii) Mỗi biến nhận giá trị trong U là một CTB
(iii) Nếu a là một công thức Boolean thì (a) là một CTB