SlideShare uma empresa Scribd logo
1 de 105
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
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
LUẬN ÁN TIẾN SĨ TOÁN HỌC
HÀ NỘI - 2015
1
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
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
2
LỜ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
3
LỜ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
4
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
5
2.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
6
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
Kí hiệu Ý nghĩa của kí hiệu
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’
M P Hợp của 2 tập con M và P
M  {MX| X   }.
   {XY | X   , Y  }.
AXĐ Ánh xạ đóng
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ử.
CTB Công thức Boolean.
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.
7
PTH 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.
8
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
9
DANH SÁCH HÌNH VẼ
Trang
Hình 1: Biểu diễn khối CAN_BO_2. 11
Hình 2: Biểu diễn khối dữ liệu đa chiều. 12
Hình 1.1: Biểu diễn khối KH_HANG. 24
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
10
MỞ ĐẦU
1. Lý do lựa chọn đề tài
Để có thể xây dựng được một hệ thống cơ sở dữ liệu tốt, người ta
thường sử dụng các mô hình dữ liệu thích hợp.
Đã có một số loại mô hình được sử dụng trong các hệ thống cơ sở dữ
liệu như: mô hình thực thể - liên kết, mô hình mạng, mô hình phân cấp, mô
hình hướng đối tượng, mô hình dữ liệu datalog [53], [54], và mô hình quan hệ
[33], [52], [53], [54]. Trong số các mô hình này, có ba mô hình dữ liệu
thường được sử dụng: mô hình phân cấp, mô hình mạng và mô hình quan hệ.
Đối với ba mô hình này thì mô hình quan hệ được quan tâm hơn cả. Mô hình
này do E. Codd đề xuất ra năm 1970. Sở dĩ mô hình quan hệ được quan tâm
như vậy là 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. Tuy nhiên, do các quan hệ có cấu trúc phẳng (tuyến tính) nên mô hình
này chưa đủ đáp ứng đối với các ứng dụng phức tạp, các cơ sở dữ liệu có cấu
trúc phi tuyến,...
Ví 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.
11
Bả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
t1 A01 A 200 DH
B02 B 400 Ths
A02 B 300 DH
t2 A02 B 250 DH
C01 C 350 DH 2015
A03
t3 A03 C 200 CD 2007
ma ten luong trinh_do
C 250 CD 2010
12
theo 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.
13
Vớ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
cần tìm bằng những phép toán đơn giản hơn.
14
Cũ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
15
dươ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].
16
- 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ô
17
hì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.
18
- 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.
19
6. Bố cục của luận án
Luận án gồm phần mở đầu, 3 chương tiếp theo và cuối cùng là phần
kết luận.
Chương 1 trình bày một vài nét cơ bản nhất về mô hình dữ liệu và
giới thiệu một mô hình dữ liệu cụ thể: đó là mô hình dữ liệu dạng khối -
một mở rộng của mô hình dữ liệu quan hệ. Ánh xạ đóng và các tính chất
của nó cùng với các khái niệm về công thức Boolean, công thức Boolean
dương, ... cũng đã được giới thiệu ở đây.
Chươ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.
20
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.
21
Mộ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].
22
- 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.
23
Bê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).
Nói một cách khác: .
Đô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
khả năng mua của khách hàng trong siêu thị như sau: R = (id; A1, A2, A3, A4),
24
trong đó: 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à:
t2(2/1/2015,Bmỳ) = 9.
 Số lượng sữa khách hàng t3 mua ngày 3/1/2015 là: t3(3/1/2015,Sữa) = 5.
Định nghĩa 1.2 [4]
Cho R = (id; A1, A2,..., An ), r(R) là một khối trên R. Với mỗi x id ta kí
hiệu r(Rx) là một khối với Rx = ({x}; A1, A2,..., An ) sao cho:
1 2
|( , ,..., ) ( ) , 1..n i i
x x x x x x xt t t t r R t t i n      ,
ở đây .
Khi đó r(Rx) được gọi là một lát cắt trên khối r(R) tại điểm x.
A01 11 500 0
A01 12 350 4
t1 A01 10 200 3
B02 10 350 5
A02 9 0 5
t2 A02 8 250 4
C03 9 300 5 3/1/2015
A03
t3 A03 6 0 6 1/1/2015
maKH Bmỳ Bơ Sữa
8 250 0 2/1/2015
25
Ví 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).
26
Ngượ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ừ: .
27
Tích Đề các
Cho R = (id; A1, A2, ..., An), S = ( id; B1, B2, ... , Bm ),
ở đây .
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,
khối này có khung , mỗi phần tử
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:
, trong đó:
.
Tích Đề các theo tập chỉ số
Cho R = (id; A1, A2, ..., An) , S = (id’; A1, A2, ..., An). Tích Đề các của
hai khối r(R) và s(S) theo tập chỉ số là một khối, kí hiệu , khối này có
khung R , với id  id’ là kí hiệu tích rời rạc
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.
Cụ thể hơn, giả sử có 2 phần tử là :
,
khi đó, ta có ánh xạ cảm sinh của tr và ts, phần tử cảm sinh của tr và ts kí hiệu
là trs.
Gọi là các phép nhúng thì ta được:
.
28
Phép chiếu
Cho R=(id; A1, A2,...., An ), , r là một khối trên R.
Khi đó ta kí hiệu P  R nếu . Một
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:
i1 i2 ih
|id' |id' |id'(t ,t ,...,t ) , trong đó
ij 1 2 n 1 2 n
t {t ,t ,...,t }, j=1..h, (t ,t ,...,t ) r  .
Biểu diễn hình thức của phép chiếu có dạng:
P(r) = {(ti1
, ti2
, ..., tih
) tij
 {t1
, t2
, ..., tn
}, j = 1 .. h, (t1
, t2
, ..., tn
)r}.
id’
Ta dễ dàng chứng minh được một số tính chất sau đây của phép chiếu:
Mệnh đề 1.1 [5]
 .
 .
 .
 .
 .
ở đây r và s là các khối trên R, còn P, Q  R.
Phép chọn
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
29
trong F là : , , .
Biểu diễn hình thức của phép chọn có dạng: ,
trong đó F(t) là giá trị của biểu thức Boolean F tại phần tử t  r.
Phép kết nối
Cho R = (id; A1, A2, ... , An ) và s = (id; B1, B2, .... , Bm ), cùng với hai
khối r(R) và s(S) tương ứng.
Gọi T = (id ; C1, C2, ... , Cp), trong đó:
.
Phép kết nối của 2 khối r và s, kí hiệu là khối t(T) định nghĩa như
sau: .
Phép kết nối này cũng gọi là phép kết nối tự nhiên của hai khối r(R) và
s(S), đôi khi sử dụng kí hiệu .
Đặc biệt, khi các khối r(R) và s(S) có tập chỉ số id chỉ gồm một phần tử
thì các khối này trở thành các quan hệ và phép kết nối tự nhiên của hai khối
lại trở thành phép kết nối tự nhiên của hai quan hệ trong mô hình cơ sở dữ
liệu quan hệ [33].
Nế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.
Mệnh đề 1.2 [5]
Giả sử r(R), r'(R), q(Q), s(S) là các khối đã cho, khi đó ta có:

 (r r') s = (r ) (r' )s s 
 (r r') s = (r ) (r' )s s 
 (r - r') s = (r ) (r' )s s
Ta có thể mở rộng khái niệm kết nối như sau:
30
Giả 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 id id'   , mà ta có với t  r và k  r’:
t = (t1
, t2
, ..., tn
), k = (k1
, k2
, ..., kn
)
t1
= k1
id id' id id'
t2
= k2
id id' id id'
............................................
tn
= kn
id id' id id'
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
:
h
id id' dom(A ) 
sao cho:
uh
= th
, uh
= kh
,  h = 1..n,
id id’
và kí hiệu: uh
= th
*id kh
.
31

n
i
i
1
)(
idYX,


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.
Biểu diễn hình thức của phép nối dài có dạng:
r *id r’ = { u = (ui
) i=1..n | (ui
) i=1..n  r và (ui
) i=1..n  r’}.
id id’
Phép chia
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ử:
thì phần tử tu  r, ở đây phần tử tu có dạng:
Biểu diễn hình thức của phép chia có dạng: .
1.2.3 Phụ thuộc hàm
Định nghĩa 1.3 [7]
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).
Định nghĩa 1.4 [7]
Cho R = (id; A1, A2,..., An), F là tập các phụ thuộc hàm trên R. Khi đó,
bao đóng của F kí hiệu F+
được xác định như sau:
.
32
n
(i)
i=1
x
Nhận xét:
Cho  1 2, , ,..., nR id A A A , r(R) là một khối trên R,  
1
, ,
n
i
i
X Y id X Y

  là kí
hiệu một phụ thuộc hàm. Giả sử r(R) thoả phụ thuộc hàm . Khi đó nếu
id = {x} thì :
- r(R) trở thành quan hệ r(A1, A2,..., An ) và
- Phụ thuộc hàm
1
, ( , )
n
i
i
X Y X Y A

  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)
(xid, 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

là tập SubSet(  
1
n
i
i
id

).
Cho  ,  SubSet (  
1
n
i
i
id

) và M, P 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:
M P = MP (hợp của 2 tập con M và P: M  P),
M  = {MX | X   },
   = {XY | X   , Y  }.
Ta kí hiệu các tập con của tập các phụ thuộc hàm:
   
 i j
h
i A j B
F X Y | X x ,Y x ,A,B 1,2,...,n ,x id
 
 
      
 
n
(i)
hx h
i=1
F X Y F | X,Y x
 
    
 
, Fhx = Fh .
33

n
i
i
1
)(
idX


n
(i)
i=1
x
Định nghĩa 1.5 [7]
Cho R=(id; A1, A2,..., An), r(R) là một khối, F là tập các phụ thuộc hàm
trên R. Khi đó:
- (R,F) gọi là lược đồ khối của r và kí hiệu là  = (R,F), nếu F =  ta kí
hiệu đơn giản là R.
- (Rx,Fx) gọi là lược đồ lát cắt của khối r tại điểm x và kí hiệu là x=
(Rx,Fx), nếu Fx= ta kí hiệu đơn giản là Rx, ( Rx= ({x}; A1, A2,..., An ), Fx là
tập các phụ thuộc hàm trên lát cắt của khối r tại điểm x, Fx = F ).
Định nghĩa 1.6 [10]
Cho lược đồ khối =(R,Fh),  1 2, , ,..., nR id A A A , 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à:
 x, yid: với M', N' tương ứng tạo thành
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ố
Định nghĩa 1.7 [7]
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.
Với mỗi , ta định nghĩa bao đóng của X đối với F kí hiệu X+
như sau: X+
= { x(i)
| xid, i=1..n, X  x(i)
 F+
}.
Mệnh đề 1.3 [7]
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, M  
n
i
i
1
)(
id

, M = Ax
xM

, Mx  
n
i
i
1
)(
x

, Mx  , xA  id.
34
Khi đó nếu M+
là bao đóng của M đối với Fh thì xA  id , 
n
i
i
1
)(
x


M+
là bao đóng của Mx = 
n
i
i
1
)(
x

 M đối với Fhx.
Mệnh đề 1.4 [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, M  
n
i
i
1
)(
id

, M = Ax
xM

, 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ì Ax
xM


là bao đóng
của M = Ax
xM

đối với Fh.
Từ hai mệnh đề trên, ta rút ra điều kiện cần và đủ sau:
Mệnh đề 1.5 [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, M  
n
i
i
1
)(
id

, M = Ax
xM

, Mx  
n
i
i
1
)(
x

, Mx  , xA  id. Khi đó
M+
là bao đóng của M đối với Fh khi và chỉ khi Mx
+
= M+
 
n
i
i
1
)(
x

là bao
đóng của Mx đối với Fhx.
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).
35
Nếu K là khoá và K  K’’ thì K’’ gọi là siêu khoá của lược đồ khối
R đối với F.
Mệnh đề 1.6 [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 đó 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 = idx
xK

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 đó: Ai
i

)(
x với A  {1,2, ..., n} là khoá của Rx
đối với ( )
id i
hx
i A
F

 là khoá của lược đồ R đối với Fh.
Hệ quả này vẫn còn đúng khi ta thay khoá bởi siêu khoá.
36
1.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:
1) Tính phản xạ: f(X)  X.
2) Tính đồng biến: nếu X Y thì f(X)  f(Y).
3) Tính lũy đẳng: f( F(x))= f(X).
Ta kí hiệu Close(U) là tập tất cả các ánh xạ đóng (AXĐ) trên tập U cho trước.
Mệnh đề 1.9 [6]:
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(X Y)  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.
37
Ta 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ừ m x và xM 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)).
38
1.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,
2) .
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) ,
2) .
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
39
mộ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,RU. 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.
1.4 Các công thức Boolean
1.4.1 Khái niệm
Định nghĩa 1.18 [6]
Cho là tập hữu hạn các biến Boolean, B là tập trị
Boolean, . Khi đó các công thức Boolean (CTB) hay còn gọi là các
công thức logic được xây dựng như sau:
(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.
(iv) Nếu a và b là các CTB thì là một CTB.
(v) Chỉ có các công thức được tạo bởi các quy tắc từ (i) – (iv) là các
CTB.
Ta 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 1.19 [6]
Mỗi vector các phần tử 0/1, v = {v1, v2, ..., vn} trong không gian
được gọi là một phép gán trị. Như vậy, với mỗi CTB
40
f  L(U) ta có f(v) = f(v1, v2, ..., vn) là trị của công thức f đối với phép gán
trị v.
Trong trường hợp không gây ra nhầm lẫn thì ta hiểu 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 Boolean là hội logic các biến trong X.
Mặt khác, nếu , ta kí hiệu:
và gọi là dạng hội.
và gọi là dạng tuyển.
Ta gọi công thức f: Z  V là :
- công thức suy dẫn nếu Z và V có dạng hội, nghĩa là: .
- công thức suy dẫn mạnh nếu Z có dạng tuyển và V có dạng hội, nghĩa
là: .
- công thức suy dẫn yếu Z có dạng hội và V có dạng tuyển, nghĩa là:
.
- công thức suy dẫn đối ngẫu nếu Z và V đều có dạng tuyển, nghĩa là:
.
Với mỗi tập hữu hạn các CTB trong L(U), ta xem F
như là một công thức dạng . Khi đó, ta có:
.
1.4.2 Bảng trị và bảng chân lý
Với mỗi công thức f trên U, bảng trị của f, kí hiệu Vf chứa n+1 cột, với
n cột đầu tiên chứa các giá trị của các biến trong U, còn 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 2n
dòng, n là số phần tử của U.
41
Định nghĩa 1.20 [6]
Bảng chân lý của f, kí hiệu Tf là tập các phép gán trị v sao cho f(v)
nhận giá trị 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.
F f
f F
T T

 .
Ta có: v  TF khi và chỉ khi f F: f(v) = 1.
1.4.3 Suy dẫn logic
Định nghĩa 1.21 [6]
Cho f, g là hai CTB, ta nói công thức f suy dẫn logic ra công thức g và
kí hiệu . Ta nói f tương đương với g và kí hiệu:
.
Với F và G trong L(U) ta nói F suy dẫn logic ra G, kí hiệu:
. Hơn nữa, ta nói F và G là tương đương, kí hiệu
.
1.4.4 Công thức Boolean dương
Định nghĩa 1.22 [6]
Công thức f  L(U) được gọi là công thức Boolean dương (CTBD) nếu
f(e) = 1 với e là phép gán trị đơn vị: e = (1, 1,..., 1), ta kí hiệu P(U) là tập
toàn bộ các công thức Boolean dương trên U.
Kết luận
Phần đầu của chương này đã trình bày khái niệm về mô hình dữ liệu,
phân loại các mô hình dữ liệu. Tiếp đó, trình bày những khái niệm cơ bản về
mô hình dữ liệu dạng khối như: khối, lát cắt của khối tại một điểm, lược đồ
42
khối, lược đồ lát cắt, đại số khối, bao đóng của tập thuộc tính chỉ số, khóa,
phụ thuộc hàm,… Một số tính chất của bao đóng và khóa đối với lược đồ khối
cũng đã được trình bày. Bên cạnh đó, ánh xạ đóng và các tính chất của nó
cùng với các khái niệm về công thức Boolean, công thức Boolean dương cũng
đã được giới thiệu ở đây.
43
CHƯƠNG 2: PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI
VÀ LƯỢC ĐỒ KHỐI CÂN BẰNG
Như chúng ta đã biết trong mô hình quan hệ, để giảm tính phức tạp của
việc xác định bao đóng, khoá trong các cơ sở dữ liệu lớn, phức tạp thì phép
dịch chuyển lược đồ quan hệ đã được đề xuất. Trong mô hình cơ sở dữ liệu
dạng khối, việc xác định khoá và bao đóng càng khó khăn hơn. Vì vậy, phép
dịch chuyển lược đồ khối được đề xuất ở đây, nhờ việc dịch chuyển lược đồ
khối mà trong nhiều trường hợp, việc tính bao đóng và khoá của khối trở nên
đơn giản hơn. Các kết quả trình bày trong chương này thuộc các bài báo [1],
[2], [3], [4] và [5] ở phần danh mục các công trình của tác giả.
2.1 Phép dịch chuyển lược đồ khối
Định nghĩa 2.1
Cho hai lược đồ khối α = (R,F),  = (S,G), X  
n
i
i
1
)(
id

, X ={x(i)
, x id,
i  A}, A  {1,2, ..., n}. Ta nói lược đồ  nhận được từ lược đồ α qua phép
dịch chuyển theo tập thuộc tính X, nếu sau khi loại bỏ các thuộc tính trong X
ở lược đồ α thì ta thu được lược đồ .
Để kí hiệu phép dịch chuyển từ lược đồ α thành lược đồ  theo tập thuộc
tính X ta viết:  = α  X.
Thao tác loại bỏ X từ lược đồ α thành lược đồ  như sau:
1. Tính S = R X, R = (id; A1, A2,..., An ), ở đây ta loại bỏ các thuộc tính Ai
(i  A) trong R, thủ tục này có độ phức tạp là O(nk), với k là số phần tử
của A.
44
2. Với mỗi phụ thuộc hàm từ M N trong F, với M, N  
n
i
i
1
)(
id

ta tạo một
phụ thuộc hàm mới trong G.
Thủ tục này được kí hiệu là G = F  X và có độ phức tạp O(mnk) với m
là số lượng các phụ thuộc hàm trong F.
Từ đó ta thấy độ phức tạp của phép dịch chuyển  = α  X = (RX, FX)
là O(mnk), do vậy nó là tuyến tính theo chiều dài của dữ liệu vào.
Sau khi thực hiện thủ tục G = FX thì:
+ Nếu G chứa các PTH tầm thường (dạng X Y, X  Y) thì ta loại
chúng khỏi G.
+ Nếu G chứa các PTH trùng nhau thì ta loại bớt các PTH này (G
không chứa các PTH trùng nhau).
Ta có các nhận xét sau:
Nhận xét 1:
Cho hai lược đồ khối α = (R, F),  = (S, G), X  
n
i
i
1
)(
id

, X ={ x(i)
, x
id, i  A}, A  {1,2, ..., n}. Lược đồ  nhận được từ lược đồ α qua phép dịch
chuyển theo tập thuộc tính X:  = α  X.
Khi đó, nếu id ={x} thì lược đồ khối α suy biến thành lược đồ quan hệ
và phép dịch chuyển theo tập thuộc tính X trong trường hợp này lại trở
thành phép dịch chuyển theo tập thuộc tính X từ lược đồ quan hệ α về lược
đồ quan hệ  trong mô hình dữ liệu quan hệ.
Nhận xét 2:
Cho hai lược đồ khối α = (R, Fh ),  = (S, Gh ), X  
n
i
i
1
)(
id

, X ={x(i)
,
x id, i  A}, A  {1,2, ..., n}. Khi đó nếu lược đồ  nhận được từ lược đồ α
qua phép dịch chuyển theo tập thuộc tính X nghĩa là  = α  X thì:
45
S = R  X, Gh = Fh  X = idx
hxF

 X.
Từ đó ta có: Ghx = Fhx  (X  
n
i
i
1
)(
x

),  x  id .
Như vậy, việc dịch chuyển trên khối trong trường hợp này lại được
chuyển về việc dịch chuyển trên các lát cắt, mà trong mỗi lát cắt thì việc này
chính là việc dịch chuyển lược đồ quan hệ trong mô hình dữ liệu quan hệ.
Ví dụ 2.1: Cho lược đồ khối α = (R,F), R=(id; A1, A2, ... , A6 ), id = {1, 2},
X  
n
i
i
1
)(
id

, X ={x(i)
, x id, i  A}, A = {1,4,6},
ở đó F = {(1(1)
2(1)
1(5)
2(5)
)  (1(4)
2(4)
), (1(1)
2(1)
)  (1(4)
2(4)
1(6)
2(6)
),
(1(2)
2(2)
1(3)
2(3)
)  (1(5)
2(5)
), (1(5)
2(5)
)  (1(2)
2(2)
1(3)
2(3)
)},
ta xác định lược đồ  = (S,G), ở đó  = α  X.
Để xác định , ta tính lần lượt S và G: S = RX = (id; A2, A3, A5),
G = FX = {(1(5)
2(5)
)   (loại),    (loại), (1(2)
2(2)
1(3)
2(3)
) 
(1(5)
2(5)
), (1(5)
2(5)
)  (1(2)
2(2)
1(3)
2(3)
)}  {(1(2)
2(2)
1(3)
2(3)
)  (1(5)
2(5)
), (1(5)
2(5)
) 
(1(2)
2(2)
1(3)
2(3)
)}.
2.2 Thuật toán dịch chuyển lược đồ khối
Thuật toán Dich_chuyen_1;
Vào: Lược đồ khối α = (R, F), X  
n
i
i
1
)(
id

, X ={ x(i)
, x id, i  A },
A  {1,2, ..., n}.
Ra:  = α  X =(V, G), V = RX, G =FX.
Phương pháp:
V:= R X;
G:= ;
For each FD L  R in F do
46
G:= G  {LX  RX};
endfor ;
For each FD L  R in G do
if L  R then G:= G  {L  R};
endif;
endfor;
Return(V,G);
Kết thúc Dich_chuyen_1;
Từ sự phân tích trong phần 2.1 ta thấy độ phức tạp của thuật toán này là
O(mnk), nghĩa là phụ thuộc tuyến tính theo chiều dài của dữ liệu vào.
Trong trường hợp tập phụ thuộc hàm F có dạng Fh thì việc dịch chuyển
lược đồ khối lại chính là dịch chuyển lược đồ của các lát cắt trong khối đó. Từ
đó ta có thuật toán sau:
Thuật toán Dich_chuyen_2;
Vào: Lược đồ khối α = (R,Fh), X  
n
i
i
1
)(
id

, X ={x(i)
, x id, i  A},
A  {1,2, ..., n}, Xx = X  
n
i
i
1
)(
x

.
Ra:  = α  X =(V,G), V = RX, G =Fh X.
Phương pháp:
V:= RX;
G:= ;
For each x in id do
For each FD L  R in Fhx do
G:= G  {LXx  RXx};
endfor;
endfor;
47
For each FD L  R in G do
if L  R then G:= G  {L  R};
endif;
endfor;
return(V,G);
Kết thúc Dich_chuyen_2;
Tương tự như đối với thuật toán Dịch chuyển 1 ở trên, ta thấy độ phức
tạp của thuật toán Dịch chuyển 2 này là O(mnk).
2.3 Biểu diễn bao đóng và khoá qua phép dịch chuyển
2.3.1 Biểu diễn bao đóng
Mệnh đề 2.1
Cho lược đồ khối α = (R,Fh), R = (id; A1, A2, ... , An ) , X, Y  
n
i
i
1
)(
id

,
X ={x(i)
, x id, i  A}, Y ={x(i)
, x id, i  B}; A, B {1,2, ..., n}, AB = .
Khi đó:
a) (XY)+
Fh = X (Y)+
Fh  X
b) (XY)+
Fh = X (  idx
XFhxY
 


n
1i

(i)
)x( ).
c) (XY)+
Fh =  
n
1i

(i)
n
1i
(i)
])x)(x[(X


 
 XFhx
idx
Y .
Chứng minh
- Trước hết ta chứng minh mệnh đề c):
Dựa vào điều kiện cần và đủ của bao đóng trên lược đồ khối (mệnh đề
1.5) ta có: (XY)+
Fh =  idx
FhxXY
 


n
1i
(i)
)x( .
Mặt khác, theo giả thiết ta có: AB =  XY = 
Suy ra: 
n
1i
(i)
x(X

 )  
n
1i
(i)
x(Y

 ) = ,  x id.
48
Tiếp theo, ta chứng minh:


 Fhx)x(XY
n
1i
(i)
 = 
n
1i
(i)
x(X

 )  

 XFhx
n
1i
(i)
)x(Y  (1)
Để ngắn gọn, ta kí hiệu: Xx = 
n
1i
(i)
xX

 , Yx = 
n
1i
(i)
xY

 , khi đó đẳng
thức (1) có dạng: 
Fhx)Y(X xx = 
XFhxxx )(YX (2)
Mặt khác, theo công thức tính bao đóng của tập XxYx dựa vào phép
dịch chuyển lược đồ quan hệ theo tập Xx trong lát cắt Rx (đây là một lược đồ
quan hệ trong mô hình quan hệ) đã được chứng minh [6], ta có:

Fhx)Y(X xx = 
xXFhxxx )(YX (3)
Tuy nhiên: FhxX = FhxXx
Do đó: 
xXFhxxx )(YX = 
XFhxxx )(YX (4)
Từ (3) và (4) ta có: 
Fhx)Y(X xx = 
XFhxxx )(YX (1) được chứng minh.
Từ (1) ta có:
 idx
FhxXY
 


n
1i
(i)
)x( =  
n
1i

(i)
n
1i
(i)
])x)(x[(X


 
 XFhx
idx
Y
Suy ra: (XY)+
Fh =  
n
1i

(i)
n
1i
(i)
])x)(x[(X


 
 XFhx
idx
Y c) được chứng minh.
- Ta chứng minh mệnh đề b):
Theo chứng minh mệnh đề c) ở trên, ta có :
(XY)+
Fh =  
n
1i

(i)
n
1i
(i)
])x)(x[(X


 
 XFhx
idx
Y .
Mà: X = )x(X
n
1i
(i)
 idx 

Suy ra: (XY)+
Fh =X ))x((
n
1i

(i)
 


 XFhx
idx
Y .
- Ta chứng minh mệnh đề a):
49
Theo kết quả ở phần b) ta có: (XY)+
Fh =X ))x((
n
1i

(i)
 


 XFhx
idx
Y .
Dựa vào điều kiện cần và đủ của bao đóng trên lược đồ khối (mệnh
đề 1.5) ta có: (Y)+
FhX =  idx
XFhxY
 


n
1i

(i)
)x( .
Vậy: (XY)+
Fh =X (Y)+
FhX a) được chứng minh.
Từ mệnh đề ở trên, ta có hệ quả sau:
Hệ quả 2.1
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ) , X  
n
i
i
1
)(
id

,
X ={ x(i)
, x id, i  A}, A {1,2, ..., n}. Khi đó:
a) .
b)     Fh Fh X
x id
X X 
 

 
  
 
.
Chứng minh
Thật vậy, sử dụng kết quả a) và b) của mệnh đề 2.1 vừa chứng minh ở
trên với trường hợp đặc biệt Y = ta có ngay hệ quả này.
2.3.2 Biểu diễn khóa
Cho lược đồ khối α = (R,Fh), R = (id; A1, A2, ... , An ) và X, Uo, UK, UI là
các tập thuộc tính chỉ số  
n
i
i
1
)(
id

, đối với lược đồ khối α ta ký hiệu:
- Uo là tập tất cả các thuộc tính không khoá.
- UK là tập tất cả các thuộc tính khoá.
- UI là tập tất cả các thuộc tính nằm trong mọi khoá.
Cho các lược đồ khối α=(R, Fh), R= (id; A1, A2, ... , An );  = (S,G),
 = α  X. Khi đó ta kí hiệu:
- αx = (Rx,Fhx) là lược đồ lát cắt của α=(R,Fh) tại điểm x,
50
- x = (Sx,Gx) là lược đồ lát cắt của  =(S,G) tại điểm x.
Mệnh đề 2.2
Cho lược đồ khối α=(R,Fh), R= (id; A1, A2, ... , An ); X, Y, Q  
n
i
i
1
)(
id

,
X ={ x(i)
, x id, i  A }, Y = { x(i)
, x id, i  B }; Q ={ x(i)
, x id, i  C };
A, B, C {1,2, ..., n},  = (S,G),  = α  X. Khi đó:
a) Nếu Y là siêu khoá của α thì YX là siêu khoá của .
b) Nếu Y là siêu khoá của α thì YxXx là siêu khoá của x = (Sx, Gx ),
x id , ở đây Yx= {x(i)
, iB}, Xx= {x(i)
, iA}.
c) Nếu Q là siêu khoá của  thì XQ là siêu khoá của α. Trường hợp X
chỉ gồm các thuộc tính không khoá của α và Q là siêu khoá của  thì
Q chính là siêu khoá của α.
d) Nếu Q là siêu khoá của  thì XxQx là siêu khoá của αx , x id, ở đây
Qx={x(i)
, iC}. Trường hợp X chỉ gồm các thuộc tính không khoá của
α và Q là siêu khoá của  thì Qx chính là siêu khoá của αx , x id.
Chứng minh
a) Giả sử Y là siêu khoá của α, đặt .
Theo giả thiết Y là siêu khoá của α do đó:
X(
n
i
i
1
)(
id

X) = 
n
i
i
1
)(
id

= Y+
Fh  (XP)+
Fh = X(P)+
FhX .
Mà: X(
n
i
i
1
)(
id

X) = , X P+
FhX = P+
FhX =
n
i
i
1
)(
id

X. (1)
Từ (1) ta thấy P = YX chính là siêu khoá của  = α  X.
b) Giả sử Y là siêu khoá của α, theo kết quả của a) thì YX là siêu khoá
của  = α  X. Từ đó, áp dụng tính chất của khóa và siêu khóa trên
lược đồ khối ta có: YxXx là siêu khoá của x = (Sx,Gx ), x id.
51
c) Giả sử Q là siêu khoá của  thì: Q X = , Q+
FhX =
n
i
i
1
)(
id

X
Suy ra: (XQ)+
Fh = X(Q)+
FhX =X(
n
i
i
1
)(
id

X) = 
n
i
i
1
)(
id

.
Vậy XQ là siêu khoá của α.
Nếu X chỉ gồm các thuộc tính không khoá của α thì việc loại bỏ từ
siêu khoá XQ các thuộc tính không khoá X vẫn cho ta siêu khoá Q
của α.
d) Giả sử Q là siêu khoá của  thì theo c) ta có XQ là siêu khoá của α.
Từ đó, áp dụng kết quả của mệnh đề 1.8 ta có: XxQx là siêu khoá của
αx , x id.
Trường hợp X chỉ gồm các thuộc tính không khoá của α Xx là các
thuộc tính không khoá của αx , do đó Qx = XxQx  Xx chính là siêu khoá của
αx , x id.
Mệnh đề 2.3
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, Q  
n
i
i
1
)(
id

,
X ={x(i)
, x id, i  A}, Q ={x(i)
, x id, i  C}; A, C {1,2, ..., n},  = (S,G),
 = α  X +
. Khi đó nếu Q là siêu khoá của  thì:
a) XQ là siêu khoá của α.
b) XxQx là siêu khoá của αx , x id.
Chứng minh
a) Giả sử Q là siêu khoá của  thì theo mệnh đề trên ta có X+
Q là siêu
khoá của α, khi đó: (X+
Q)+
= 
n
i
i
1
)(
id

.
Mà ta có: (XQ)+
= (X+
Q)+
= 
n
i
i
1
)(
id

XQ là siêu khoá của α.
52
b) Giả sử Q là siêu khoá của  thì theo a) ta có XQ là siêu khoá của α.
Từ đó, áp dụng kết quả của mệnh đề 1.8 ta có: XxQx là siêu khoá của αx ,
x id.
Mệnh đề 2.4
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K  
n
i
i
1
)(
id

,
X ={x(i)
, x id, i  A}, K = {x(i)
, x id, i  B}; A, B {1,2, ..., n},  = (S,G),
 = α  X. Khi đó:
a) Nếu K là khoá của α thì KX là khoá của .
b) Nếu K là khoá của α thì KxXx là khoá của x=(Sx,Gx), x id , ở đây
Kx = {x(i)
, iB}, Xx= {x(i)
, iA}.
Chứng minh
a) Giả sử K là khoá của α K là siêu khoá của α, theo mệnh đề 2.2 ta
có KX là siêu khoá của . Nếu KX không phải là khoá của  thì
 M  KX là siêu khoá của , theo mệnh đề trên ta lại có XM là siêu
khoá của α.
Mà: XM  X(KX) = K , điều này mâu thuẫn với giả thiết K là khoá
của α. Do đó KX là khoá của .
b) Giả sử K là khoá của α, khi đó theo a) ta có KX là khoá của . Từ
đó, áp dụng kết quả của mệnh đề 1.8 ta có: Kx Xx là khoá của x x id.
Mệnh đề 2.5
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K  
n
i
i
1
)(
id

,
X ={ x(i)
, x id, i  A}, K = {x(i)
, x id, i  B}; A, B {1,2, ..., n}, X  Uo,
 = (S,G),  = α  X. Khi đó:
a) Nếu K là khoá của  thì K là khoá của α.
53
b) Nếu Kx là khoá của x = (Sx,Gx), Kx = {x(i)
, iB}, x id thì K là khoá
của α.
Chứng minh
a) Giả sử K là khoá của  K là siêu khoá của  theo mệnh đề 2.2
ta có K là siêu khoá của α (vì giả thiết X  Uo ). Ta chứng minh K là
khoá của α.
Giả sử ngược lại, K không là khoá của α , khi đó  K’  K mà K’ là
siêu khoá của α. Theo mệnh đề 2.2 ta có K’ = K’  X (vì giả thiết X
 Uo ) là siêu khoá của , điều này mâu thuẫn với giả thiết K là siêu
khoá của . Vậy K là khoá của α.
b) Giả sử Kx là khoá của x=(Sx,Gx), Kx= {x(i)
, iB}, x id khi đó theo
kết quả của mệnh đề 1.8 ta có K là khoá của . Từ đó dựa vào kết quả
câu a) ta có K là khoá của α.
Định lý 2.1 (Điều kiện cần và đủ)
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K  
n
i
i
1
)(
id

,
X ={ x(i)
, x id, i  A}, K = {x(i)
, x id, i  B}; A, B {1,2, ..., n}, X  Uo,
 = (S,G),  = α  X. Khi đó:
a) K là khoá của α khi và chỉ khi K là khoá của .
b) K là khoá của α khi và chỉ khi Kx là khoá của x=(Sx,Gx), Kx= {x(i)
,
iB}, x id .
Chứng minh
a) K là khoá của α K là khoá của .
Thật vậy, từ giả thiết K là khoá của α, X  Uo và mệnh đề 2.4 ta
suy ra: K = KX là khoá của .
K là khoá của  K là khoá của α.
54
Giả sử K là khoá của  vì X  Uo theo kết quả của mệnh đề 2.5
ta có K là khoá của α.
b) Giả sử K là khoá của α theo kết quả câu a) ta suy ra K là khoá của
 theo kết quả của mệnh đề 1.8 ta có: Kx là khoá của x=(Sx,Gx),
Kx= {x(i)
, iB}, x id.
Ngược lại, nếu Kx là khoá của x=(Sx,Gx), Kx= {x(i)
, iB}, x id
theo kết quả của mệnh đề 1.8 ta có K là khoá của  .
Từ đó, áp dụng kết quả câu a) K là khoá của α.
2.4 Khóa và các tập thuộc tính nguyên thủy, phi nguyên thủy
Cho các lược đồ khối α =(R, Fh), R= ( id; A1, A2, ... , An );  = (S, G),
 = α  X. Khi đó ta kí hiệu:
- αx = (Rx,Fhx) là lược đồ lát cắt của α=(R,Fh) tại điểm x,
- x = (Sx,Gx) là lược đồ lát cắt của  =(S,G) tại điểm x.
Định lý 2.2 (Điều kiện cần và đủ)
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K  
n
i
i
1
)(
id

,
X={x(i)
, x id, i  A}, K={x(i)
, x id, i  B}; A, B {1,2, ..., n}, X  K = ,
X  UI ,  = (S,G),  = α  X. Khi đó:
a) K là khoá của  khi và chỉ khi XK là khoá của α.
b) K là khoá của  khi và chỉ khi Xx Kx là khoá của αx = ( Rx, Fhx ),
Xx = {x(i)
, iA}, Kx= {x(i)
, iB}, x id.
Chứng minh:
( a) ) Giả sử K là khóa của  K là siêu khóa của  XK là siêu khóa
của α tồn tại K’  K , XK’ =  mà XK’ là khóa của α (vì X  UI ).
Theo tính chất của khóa đã phát biểu trong mệnh đề 2.4 XK’  X = K’ là
khóa của , vì K’  K K’ = K. Vậy XK là khóa của α.
55
( a) ) Ngược lại, giả sử XK là khóa của α, theo tính chất của khóa đã phát
biểu trong mệnh đề 2.4 XK X = K là khóa của .
( b) ) Giả sử K là khóa của  theo câu a) ở trên ta có XK là khóa của
α, theo điều kiện cần và đủ của khóa trong lược đồ khối [10] XK  
n
i
i
1
)(
x

= Xx Kx là khóa của αx=(Rx,Fhx ).
( b) ) Giả sử Xx Kx là khóa của αx=(Rx,Fhx ), Xx= {x(i)
, iA}, Kx= {x(i)
,
iB}, x id xKidx
xX

= XK là khóa của α (theo tính chất của khóa
trong lược đồ khối [10]) . Mặt khác từ XK là khóa của α, nên theo kết quả
của câu a) K là khóa của .
Hệ quả 2.2
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, Y, K 

n
i
i
1
)(
id

, X ={x(i)
, x id, i  A}, Y ={x(i)
, x id, i  B}, K ={x(i)
, x id, i 
C}; A, B, C {1,2, ..., n}, Y  UI , X  Uo ,  = (S,G),  = α  XY. Khi đó:
a) K là khoá của  khi và chỉ khi YK là khoá của α.
b) K là khoá của  khi và chỉ khi Yx Kx là khoá của αx = ( Rx, Fhx ),
Yx= {x(i)
, iB}, Kx= {x(i)
, iC}, x id.
Chứng minh:
a) Ta kí hiệu  = α  X, khi đó  = α  XY = (α  X)  Y =   Y ( ở đây X
 Y =  vì Y  UI , X  Uo ) . Từ đó, do Y  UI, áp dụng định lí 2.2 ta có:
K là khoá của  khi và chỉ khi YK là khoá của .
Mặt khác, do X  Uo nên áp dụng tính chất của khóa khi dịch chuyển lược
đồ khối trong định lý 2.1, ta có: YK là khoá của  khi và chỉ khi YK là khoá
của α.
Như vậy: K là khoá của  khi và chỉ khi YK là khoá của α.
56
b) Giả sử K là khoá của , vậy theo a) ta có:
K là khoá của  khi và chỉ khi YK là khoá của α. (1)
Từ đó áp dụng tính chất khóa của lược đồ khối trong [10] suy ra:
YK là khoá của α khi và chỉ khi Yx Kx là khoá của αx = ( Rx, Fhx ),
Yx= {x(i)
, iB}, Kx= {x(i)
, iC}, x id. (2)
Từ (1) và (2) ta có:
K là khoá của  khi và chỉ khi Yx Kx là khoá của αx = ( Rx, Fhx ),
Yx= {x(i)
, iB}, Kx= {x(i)
, iC}, x id.
Cho lược đồ khối  = (R, F), khi đó ta kí hiệu:
- LS(F) là tập các thuộc tính xuất hiện trong vế trái và RS(F) là tập các
thuộc tính xuất hiện trong vế phải của các phụ thuộc hàm trong F.
- Attr(F) = LS(F)  RS(F).
Khi đó ta có: Attr(F)  
n
i
i
1
)(
id

.
Định lý 2.3
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, M  
n
i
i
1
)(
id

,
X  M, X ={x(i)
, x id, i  A}, M = {x(i)
, x id, i  B}; A, B {1,2, ..., n}.
Khi đó các điều kiện sau là tương đương:
a) Xx
+
 Mx = Xx , x id
b) Xx
+
 (Mx Xx ) = , x id
c) Mx Xx
+
= Mx  Xx , x id
trong đó: Xx = {x(i)
, i  A}, Mx = {x(i)
, i  B}.
Chứng minh
a) b): Ta có Xx
+
 Mx = Xx , x id, ta cần chứng minh:
Xx
+
 (Mx Xx ) = , x id.
57
Thật vậy, giả sử ngược lại tồn tại P  Xx
+
 (Mx Xx ) P  Xx
+
và
P  Mx Xx P  Xx
+
và P  Mx và P Xx P  Xx
+
 Mx = Xx và
P Xx mâu thuẫn. Do đó Xx
+
 (Mx Xx ) = , x id.
b) c): Ta có Xx
+
 (Mx Xx ) = , x id, ta cần chứng minh:
Mx Xx
+
= Mx  Xx , x id.
Thật vậy, do Xx  Xx
+
Mx Xx
+
 Mx  Xx. (1)
Giả sử P  Mx Xx P  Mx và P Xx , như vậy thì P  Xx
+
vì nếu
P  Xx
+
thì ta lại suy ra P  Xx
+
 (Mx Xx ) =  (theo giả thiết trên) mâu
thuẫn. Do đó P  Mx Xx
+
Mx  Xx  Mx Xx
+
(2)
Từ (1) và (2) ta có: Mx Xx
+
= Mx  Xx , x id.
c) a): Ta có Mx Xx
+
= Mx  Xx , x id, ta cần chứng minh:
Xx
+
 Mx = Xx , x id.
Thật vậy, theo giả thiết ta có X  M Xx  Mx, mặt khác theo tính
chất của bao đóng thì: Xx  Xx
+
Xx  Xx
+
 Mx . (3)
Ngược lại, giả sử P  Xx
+
 Mx P  Xx
+
và P  Mx P Mx Xx
Nếu P  Xx thì P  Mx  Xx = Mx Xx
+
, do đó P  Mx và P  Xx
+
mâu
thuẫn P  Xx . Vậy Xx
+
 Mx  Xx . (4)
Từ (3) và (4) ta suy ra Xx
+
 Mx = Xx .
Định lý 2.4
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, M  
n
i
i
1
)(
id

,
X ={x(i)
, x id, i  A}, M = {x(i)
, x id, i  B}; A, B {1,2, ..., n}. Khi đó
các điều kiện sau là tương đương:
a) X +
 M = X
b) X +
 (M  X ) = 
c) M  X +
= M  X
58
Chứng minh
Sử dụng điều kiện cần và đủ về bao đóng của tập thuộc tính chỉ số của
lược đồ khối trong [10] ta có:
a) Xx
+
 Mx = Xx , x id X +
 M = X
b) Xx
+
 (Mx Xx ) = , x id X +
 (M  X ) = 
c) Mx Xx
+
= Mx  Xx , x id M  X +
= M  X
Mặt khác, từ định lý 2.3 ở trên ta suy ra các vế trái của các mệnh đề
tương đương trong a), b) và c) là tương đương nhau, kết quả này dẫn tới sự
tương đương của các vế phải của 3 mệnh đề a), b) và c). Như vậy, sự tương
đương của 3 đẳng thức trong phát biểu của định lý trên đã được chứng minh.
Mệnh đề 2.6
Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X  
n
i
i
1
)(
id

,
X = { x(i)
, x id, i  A }; A {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm
trên R. Khi đó ta có:
a) 
n
i
i
1
)(
x

 Attr(Fhx )  UIx , x id.
b) Nếu Xx  UIx thì Xx
+
 UKx = Xx , x id.
Chứng minh
a) Kí hiệu Mx = RS(Fhx)  LS(Fhx), khi đó: UIx = 
n
i
i
1
)(
x

 Mx , hơn nữa ta
lại có:
Mx  Attr(Fhx )  
n
i
i
1
)(
x

 Attr(Fhx )  
n
i
i
1
)(
x

 Mx = UIx.
b) Giả sử {K1, K2,…, Kt} là tập các khóa trên lược đồ lát cắt αx=(Rx,Fhx),
Xx  UIx , khi đó theo tính chất của khóa ta có:
Nếu Xx  UIx thì Xx  UIx  Kix Xx
+
 Kix = Xx , i=1..t .
Vậy: Xx
+
 UKx = Xx , x id .
59
Hệ quả 2.3
Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X  
n
i
i
1
)(
id

,
X ={x(i)
, x id, i  A}; A {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm
trên R. Khi đó ta có:
a) 
n
i
i
1
)(
id

 Attr(Fh )  UI.
b) Nếu X  UI thì X +
 UK = X.
Chứng minh
a) Theo phần a) của mệnh đề 2.6 ta có: 
n
i
i
1
)(
x

 Attr(Fhx )  UIx , x id.
Như vậy, khi ta lấy hợp của các vế trái và hợp của các vế phải tương ứng
thì tính chất của bao hàm thức không thay đổi, do đó:

n
i
i
1
)(
id

 Attr(Fh )  UI.
b) Chứng minh theo phương pháp như ở câu a).
Mệnh đề 2.7
Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X, Y  
n
i
i
1
)(
id

,
X ={x(i)
, x id, i  A}, Y={x(i)
, x id, i  B}; A, B {1,2, ..., n}, Fh là tập đầy
đủ các phụ thuộc hàm trên R. Khi đó:
Nếu x(i)
 LS(Fhx ) và Fhx Xx Yx thì Fhx Xx x(i)
Yx  x(i)
, i=1..n,
với Xx = {x(i)
, i  A}, Yx = {x(i)
, i  B}.
Chứng minh
Ta xét theo lược đồ của lát cắt αx = (Rx, Fhx ), từ giả thiết Fhx Xx Yx
suy ra Yx  Xx
+
. Dựa vào thuật toán tìm bao đóng của Xx thì tồn tại dãy phụ
thuộc hàm L1 R1 , L2 R2 , … ,Lk Rk sao cho:
L1  X , L2  XR1 , L3  XR1R2 , …, Lk  XR1R2 …Rk-1 ,
60
Y  XR1R2 …Rk-1 Rk = X+
. (1)
Vì x(i)
 LS(Fhx ) x(i)
không xuất hiện trong các vế trái của F nên ta có:
L1  X x(i)
, L2  (Xx(i)
) R1 , L3  (Xx(i)
) R1R2 , …,
Lk  (Xx(i)
) R1R2 …Rk-1 , Y  (Xx(i)
) R1R2 …Rk-1 Rk = (Xx(i)
) +
. (2)
Từ (1) và (2) ta có:
(Xx(i)
) +
= (Xx(i)
) R1R2 …Rk-1 Rk = XR1R2 …Rk-1 Rk x(i)
 Y x(i)
Vậy: Fhx Xx(i)
Y x(i)
.
Hệ quả 2.4
Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, Y  
n
i
i
1
)(
x

.
Khi đó nếu x(i)
 LS(Fh ) và Fh X Y thì Fh X x(i)
Y  x(i)
, i = 1..n,
x  id.
Mệnh đề 2.8
Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X  
n
i
i
1
)(
id

,
X = {x(i)
, x id, i  A}; A  {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm
trên R. Khi đó:
a) Uox
+
= Uox , x id.
b) Xx  Uox Uox Xx Uox Xx
+
Xx
+
 Uox, x id.
c) Nếu  Xx thì Xx
+
 Uox , x id.
d) RS(Fh)  LS(Fh)  Uox, x id.
với Xx = {x(i)
, i  A}, Uox = {x(i)
| x(i)
 Uo}, x id.
Chứng minh
a) Theo định nghĩa của bao đóng ta có: Uox  Uox
+
, vậy để chứng minh
Uox
+
= Uox ta cần chứng minh Uox
+
 Uox.
Thật vậy, giả sử P là thuộc tính khóa và P Uox
+
, Kx là khóa chứa P
61
trong αx = (Rx, Fhx). Khi đó: Uox P, đặt Y= KxP YP = Kx.
Ta có: YUo YP, mà YP=Kx là khóa YUo là siêu khóa trong αx, mà
theo tính chất của siêu khóa thì trong siêu khóa ta có thể bỏ đi tập các thuộc
tính không khóa Uo để được một siêu khóa Y là siêu khóa. Điều này mâu
thuẫn với giả thiết Y là bộ phận thực sự của khóa Kx. Vậy ta có: Uox
+
 Uox.
b) Để chứng minh dãy trên, ta sẽ chứng minh theo sơ đồ vòng tròn:
Thật vậy, từ Xx  Uox Uox Xx Uox Xx
+
Xx
+
 Uox
+
, mà theo
a) ta lại có: Uox
+
= Uox. Do đó: Xx
+
 Uox Xx  Uox .
c) Ta có: Uox , mà  Xx suy ra: Uox Xx. Theo kết quả b) vừa được
chứng minh thì Xx
+
 Uox .
d) Ta chứng minh: RS(Fh)  LS(Fh)  Uox, x id, thật vậy:
Giả sử Fh = {L1 R1, L2 R2, ..., Lk Rk} khi đó nhờ tính chất cộng
tính của các phụ thuộc hàm ta có:
L1L2...Lk R1R2...Rk nghĩa là: LS(F) RS(F).
Để chứng minh RS(Fh)  LS(Fh)  Uox, ta sử dụng phương pháp phản chứng.
Giả sử ngược lại, ta có thuộc tính khóa P RS(F)  LS(F) và Kx là khóa
chứa P. Khi đó: Kx Ux , P RS(F), P  LS(F) KxP UxP. Vì P 
LS(F) LS(F)  Ux  P Ux  P LS(F), mà LS(F) RS(F), RS(F) P.
Vậy KxP P mâu thuẫn với giả thiết Kx là khóa. Vậy ta có:
RS(Fh)  LS(Fh)  Uox, x id.
2.5 Lược đồ khối cân bằng
Định nghĩa 2.2: Lược đồ khối  = (R,F), R = (id; A1, A2, ... , An )
được gọi là cân bằng nếu tập phụ thuộc hàm F thỏa mãn hai tính chất sau:
1) Hợp của tất cả các vế trái của các phụ thuộc hàm trong F bằng hợp của
tất cả các vế phải của nó và bằng tập 
n
i
i
1
)(
id

.
62
2) F có dạng thu gọn tự nhiên.
Như ta đã biết, F có dạng thu gọn tự nhiên có nghĩa là F thỏa các điều
kiện sau:
- F không chứa các phụ thuộc hàm tầm thường, nghĩa là các phụ thuộc
hàm có dạng: X  Y  F và XY.
- Hai vế trái và phải của mọi phụ thuộc hàm trong F không giao nhau:
 fF: LS(f) RS(f) = .
- Các vế trái của mọi phụ thuộc hàm trong F khác nhau đôi một, nghĩa là :
 f, gF: LS(f) = LS(g)  f = g.
Ta có nhận xét sau:
Nhận xét:
Cho lược đồ khối  = (R,F), R = (id; A1, A2, ... , An ) là lược đồ cân
bằng. Khi đó, nếu id ={x} thì lược đồ khối cân bằng  suy biến thành lược đồ
quan hệ cân bằng trong mô hình dữ liệu quan hệ.
Ví dụ 2.2: Cho lược đồ khối α = (R,F), R = (id; A1, A2, A3, A4), id = {1, 2},
F ={1(1)
2(1)
 1(3)
2(3)
1(4)
2(4)
, 1(2)
2(2)
 1(3)
2(3)
1(1)
2(1)
, 1(3)
2(3)
1(2)
2(2)

1(1)
2(1)
, 1(4)
2(4)
 1(2)
2(2)
}.
Ta thấy lược đồ khối α = (R,F) là lược đồ cân bằng.
Thật vậy, ta có:
- LS(F) = 1(1)
2(1)
1(2)
2(2)
1(3)
2(3)
1(4)
2(4)
= RS(F) = 
n
i
i
1
)(
id

(1)
- F có dạng thu gọn tự nhiên. (2)
Từ (1) & (2) ta kết luận α = (R,F) là lược đồ khối cân bằng.
Mệnh đề 2.9
63

n
i
i
1
)(
id


n
i
i
1
)(
x


n
i
i
1
)(
id

Cho lược đồ khối  = (R, Fh ), R = (id; A1, A2, ... , An ) là lược đồ cân
bằng. Khi đó  xid, lược đồ của lát cắt tại điểm x: x= (Rx, Fhx ) cũng là
lược đồ cân bằng.
Chứng minh
Thật vậy, vì Fh là lược đồ cân bằng nên theo định nghĩa ta có: Fh ở dạng
thu gọn tự nhiên và LS(Fh) = RS(Fh) = . Từ đó suy ra:
LS(Fh) = RS(Fh) = LS(Fhx) = RS(Fhx) =
x x x
Mặt khác, do Fh ở dạng thu gọn tự nhiên Fhx cũng ở dạng thu gọn tự
nhiên.
Từ đó ta có: x= (Rx,Fhx ) là lược đồ cân bằng với mọi xid.
Mệnh đề 2.10
Cho lược đồ khối  = (R, Fh ), R = (id; A1, A2, ... , An ). Khi đó nếu
 xid, lược đồ của lát cắt tại điểm x: x= (Rx, Fhx ) là lược đồ cân bằng thì
 = (R, Fh ) cũng là lược đồ cân bằng.
Chứng minh
Thật vậy, vì  xid, x= (Rx, Fhx ) là lược đồ cân bằng nên theo định
nghĩa ta có: Fhx ở dạng thu gọn tự nhiên và LS(Fhx) = RS(Fhx) = 
n
i
i
1
)(
x

.
Từ đó suy ra: ( )hx
x id
LS F

= ( )hx
x id
RS F

=    
1 1
n n
i i
x id i i
x id
  
 
 
 
(1)
Mặt khác do Fhx ở dạng thu gọn tự nhiên nên: Fh = hx
x id
F

cũng ở dạng
thu gọn tự nhiên. (2)
Theo các kết quả (1) và (2) ta có:  = (R, Fh ) là lược đồ cân bằng.
Từ các mệnh đề trên ta rút ra điều kiện cần và đủ sau về lược đồ cân
64
bằng:
Định lý 2.5
Cho lược đồ khối  = (R,Fh ), R = (id; A1, A2, ... , An ). Khi đó:
 = (R,Fh ) là lược đồ cân bằng khi và chỉ khi  xid, lược đồ của lát
cắt tại điểm x: x= (Rx, Fhx ) là lược đồ cân bằng.
Mệnh đề 2.11
Cho lược đồ khối  = (R,Fh ), R = (id; A1, A2, ... , An ). Khi đó:
a) Nếu n =1 thì  xid, x=(Rx,Fhx ) và  = (R,Fh ) là các lược đồ
không cân bằng.
b) Nếu = (R,Fh ) là lược đồ cân bằng thì giao của các khóa trong lược
đồ x=(Rx,Fhx ),  xid là UI x = .
c) Nếu = (R,Fh ) là lược đồ cân bằng thì giao của các khóa trong nó là
UI = .
Chứng minh
a) Với n = 1 thì  xid, x = (Rx,Fhx ) có Rx = (x, A1) = x(1)
, nghĩa là
lược đồ x = (Rx,Fhx ) chỉ có một thuộc tính chỉ số. Như vậy, đối với Fhx
chỉ có 4 khả năng tạo các phụ thuộc hàm sau:
1. A  A (tầm thường).
2. A   (tầm thường).
3.    (tầm thường).
4.   A.
Do đó ta chỉ có thể chọn Fhx =  hoặc Fhx = {  A}.
Trường hợp thứ nhất: Rx = x(1)
, Fhx =  ta có: LS(F) = RS(F) =   Rx.
Trường hợp thứ hai: Rx = x(1)
, Fhx = {  A} ta có:
LS(F) =   A = RS(F).
65
( ( )  ( ))
hxf F
RS f LS f

( )
hxf F
RS f

( ( )  ( ))
hf F
RS f LS f

( )
hf F
RS f

Vậy trong cả hai trường hợp thì lược đồ lát cắt tại điểm xid:
x = (Rx, Fhx ) đều không phải là lược đồ cân bằng.
b) Nếu  = (R,Fh ) là lược đồ cân bằng thì theo kết quả của mệnh đề
trên, các lược đồ lát cắt x = (Rx, Fhx ), ( x  id ) là lược đồ cân bằng. Từ
đó, ta có:
 fFhx : RS(f)  LS(f) = 
Suy ra:  fFhx : RS(f)  LS(f) = RS(f).
Do đó:
M = = = RS(Fhx) = Rx.
Theo công thức tính giao các khóa ta có:
UIx = Rx  M = Rx  Rx = ,  xid.
c) Nếu  = (R,Fh ) là lược đồ cân bằng thì theo tính chất của nó ta có:
 fFh: RS(f)  LS(f) = 
Suy ra:  fFh: RS(f)  LS(f) = RS(f).
Do đó : M = = = RS(Fh) = R.
Từ công thức tính giao các khóa ta có:
UI = R  M = R  R = .
Cho lược đồ khối  = (R,Fh ), R = (id; A1, A2, ... , An ), Fh là tập đầy đủ
các phụ thuộc hàm. Khi đó ta có thuật toán dịch chuyển lược đồ khối  về
dạng cân bằng sau đây:
2.6 Thuật toán dịch chuyển lược đồ khối về dạng cân bằng
Thuật toán Balance
Dạng Balance()
66

n
i
i
1
)(
x


n
i
i
1
)(
x

x
x id


x
x id
V

hx
x id
G

Vào: = (R, Fh ), Fh là tập đầy đủ các phụ thuộc hàm.
Ra: Lược đồ cân bằng  =(V,Gh ).
Phương pháp:
1. Đặt Gh := Natural_Reduce(Fh);
2. Chọn x bất kỳ id, tính giao của các khóa trong x= (Rx,Ghx ):
UIx =  RS(Ghx);
3. Xác định M;
3.1 P:= RS(Ghx)  LS(Ghx);
3.2 M = (PUIx)+
Ghx;
3.3 Tạo lược đồ x = (Vx ,Ghx ), Vx = .
4. while M   do
4.1 Dịch chuyển x=(Vx,Ghx ) theo M: x = x  M;
// Vx := Vx  M, Ghx := Ghx  M
4.2 Loại khỏi Ghx các phụ thuộc dạng: X .
4.3 Nhóm các phụ thuộc hàm có cùng vế trái trong Ghx
XY1, XY2,..., XYk thành X  Y1Y2...Yk ;
4.4 M := Vx  LS(Ghx) ;
endwhile;
5. Đặt  := ,  =(V,Gh ).
// V:= , Gh :=
6. Trả kết quả();
Kết thúc Balance;
Ở đây Natural_Reduce(Fh) là thuật toán rút gọn tự nhiên đối với tập phụ
thuộc hàm Fh.
67
( ( )  ( ))
hxf G
RS f LS f

( ( )  )
hxf G
LS f M

( ) 
hxf G
LS f M

Mệnh đề 2.12
Lược đồ khối  =(V,Gh) thu được sau khi thực hiện thuật toán Balance
là lược đồ cân bằng.
Chứng minh
Để chứng minh  = (V,Gh) là lược đồ cân bằng ta chứng minh với mọi
xid thì x = (Vx ,Ghx) là lược đồ cân bằng, từ đó theo kết quả của mệnh đề
2.3 ta suy ra  = (V,Gh) là lược đồ cân bằng.
Ta thấy sau khi bước 1 của thuật toán được thực hiện thì Gh đã ở dạng thu gọn
tự nhiên. Từ đó suy ra với mọi xid thì Ghx cũng ở dạng thu gọn tự nhiên.
Mặt khác, ta có:
P:=RS(Ghx)  LS(Ghx); M = (PUIx)+
Ghx , Ghx ở dạng thu gọn tự nhiên nên:
 f Ghx: RS(f) LS(f) =  RS(f)  LS(f) = RS(f).
Do đó:
UIx = Vx  = Vx  RS(Ghx).
Ta có: LS(Ghx) = = = LS(Ghx) M,
tương tự RS(Ghx) = RS(Ghx)  M.
Ta chứng minh đẳng thức: LS(Ghx) M = RS(Ghx)M = Vx  M theo sơ đồ
sau:
LS(Ghx) M  Vx  M  RS(Ghx) M  LS(Ghx) M.
Thật vậy, tại bước lặp đầu tiên ta có:
a) LS(Ghx) M  Vx  M, hiển nhiên.
b) Vx M RS(Ghx) M: Nếu A  Vx  M thì A M = (PUIx)+
Ghx  UIx,
do đó:
68
A UI = Vx  RS(Ghx) A RS(Ghx) và do đó A RS(Ghx)  M.
c) RS(Ghx) M LS(Ghx) M: Nếu A RS(Ghx)  M thì A RS(Ghx)
và A M = (PUIx)+
Ghx P. Do đó: A P = RS(Ghx)  LS(Ghx) A LS(Ghx)
và vì vậy: A LS(Ghx)  M.
Từ lần lặp thứ hai trở đi, tại bước 4.2 của thuật toán, sau khi loại bỏ các
phụ thuộc hàm dạng X  khỏi Ghx thì các tập Vx và RS(Ghx) không thay
đổi. Cụ thể là đẳng thức Vx = RS(Ghx) vẫn được bảo toàn, tuy nhiên tập
LS(Ghx) có thể bị giảm đi.
Như vậy, sau bước 4.2 thì tính chất về cân bằng có thể bị vi phạm. Vòng
lặp while có nhiệm vụ cân bằng cân bằng ba tập Vx, RS(Ghx) và LS(Ghx). Do
vậy, ta phải tính tiếp lượng chênh lệch: M := Vx  LS(G ) tại bước 4.4. Theo
bổ đề về các thuộc tính phi nguyên thủy ta có M U0 tập các khóa
Key(x) không thay đổi trong quá trình dịch chuyển.
Nếu M   ta tiếp tục dịch chuyển lược đồ x theo lượng chênh lệch M.
Vì lược đồ lúc đầu là hữu hạn và các phép dịch chuyển đều thu nhỏ kích
thước của các tệp Vx, LS(Ghx), RS(Ghx) nên đến lúc nào đó thì M = , vòng
lặp kết thúc.
Ta chứng minh khi vòng lặp kết thúc thì lược đồ thu được thỏa tính cân
bằng.
Thật vậy, từ M =  Vx = LS(Ghx), mặt khác kết hợp với bất biến của
vòng lặp:
Vx = RS(Ghx), ta có: LS(Ghx) = RS(Ghx) = Vx.
Mệnh đề 2.13
Mọi lược đồ khối  = (R, Fh ) với Fh là tập đầy đủ các phụ thuộc hàm,
đều chuyển được về dạng cân bằng  =(V,Gh) thỏa tính chất:
Key() = UI  Key()
69
trong đó UI là giao các khóa của . Thuật toán dịch chuyển có độ phức tạp
đa thức theo chiều dài dữ liệu vào O(n2
m), trong đó n là số lượng thuộc tính,
m là số lượng phụ thuộc hàm.
Chứng minh
Thuật toán Balance chuyển lược đồ khối  = (R, Fh ) về lược đồ khối
cân bằng  =(V,Gh). Ngoài ra, dựa vào kết quả của mệnh đề về việc dịch
chuyển lược đồ khối theo các tập thuộc tính không khóa và giao của các khóa
ta có: Key() = UI  Key().
Mọi bước của thuật toán Balance đều có độ phức tạp không quá O(mn),
M là tập thuộc tính có tối đa n phần tử; do đó để M tiến tới  thì vòng lặp
while cần thực hiện tối đa n lần.
Tổng hợp lại, độ phức tạp của thuật toán là O(n2
m).
Ví dụ 2.3: Cho lược đồ khối α = (R, F), R = ( id; A1, A2, A3, A4, A5, A6 ),
id = {1, 2}, F = { 1(1)
2(1)
1(5)
2(5)
 1(4)
2(4)
, 1(2)
2(2)
1(3)
2(3)
 1(3)
2(3)
1(5)
2(5)
,
1(6)
2(6)
 1(3)
2(3)
, 1(5)
2(5)
 1(2)
2(2)
, 1(5)
2(5)
 1(3)
2(3)
}.
Sau khi chuyển tập phụ thuộc hàm F về dạng thu gọn tự nhiên, ta tính
UI = 1(1)
2(1)
1(6)
2(6)
, thực hiện việc chuyển lược đồ α = (R,F) về lược đồ cân
bằng β = (V,G) ta được:
V = (id; A2, A5), G = {1(2)
2(2)
 1(5)
2(5)
, 1(5)
2(5)
 1(2)
2(2)
}.
Vậy β = (V, G) là lược đồ cân bằng.
Mặt khác ta dễ thấy: Key(β) = {1(2)
2(2)
, 1(5)
2(5)
}, từ đó sử dụng kết quả
của mệnh đề 2.13 ta có:
Key() = UI  Key() = (1(1)
2(1)
1(6)
2(6)
)  {1(2)
2(2)
, 1(5)
2(5)
}
 Key() = {1(1)
2(1)
1(2)
2(2)
1(6)
2(6)
, 1(1)
2(1)
1(5)
2(5)
1(6)
2(6)
}.
2.7 Tập các vế trái cực tiểu
Từ đây trở đi ta luôn giả thiết rằng: mọi lược đồ khối  = (R,Fh ) đều có
Luận án tiến sĩ toán học 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 các phụ thuộc logic trong mô hình dữ liệu dạng khối

Mais conteúdo relacionado

Semelhante a Luận án tiến sĩ toán học các phụ thuộc logic trong mô hình dữ liệu dạng khối

Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...
Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...
Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...
Man_Ebook
 
Giáo án tin ứng dụng trong thiết kế cầu.pdf
Giáo án tin ứng dụng trong thiết kế cầu.pdfGiáo án tin ứng dụng trong thiết kế cầu.pdf
Giáo án tin ứng dụng trong thiết kế cầu.pdf
Man_Ebook
 
Chuyen de luong giac 1 www.mathvn.com
Chuyen de luong giac 1   www.mathvn.comChuyen de luong giac 1   www.mathvn.com
Chuyen de luong giac 1 www.mathvn.com
hoabanglanglk
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
vantai30
 
Nhận dạng hệ thống điều khiển, Nguyễn Doãn Phước
Nhận dạng hệ thống điều khiển, Nguyễn Doãn PhướcNhận dạng hệ thống điều khiển, Nguyễn Doãn Phước
Nhận dạng hệ thống điều khiển, Nguyễn Doãn Phước
Man_Ebook
 

Semelhante a Luận án tiến sĩ toán học các phụ thuộc logic trong mô hình dữ liệu dạng khối (20)

Luận văn: Hệ thống đại số máy tính xử lý biểu thức toán học, 9đ
Luận văn: Hệ thống đại số máy tính xử lý biểu thức toán học, 9đLuận văn: Hệ thống đại số máy tính xử lý biểu thức toán học, 9đ
Luận văn: Hệ thống đại số máy tính xử lý biểu thức toán học, 9đ
 
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAYLuận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
 
Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5 Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5
 
Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...
Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...
Điều khiển phân quyền trong thời gian hữu hạn cho hệ tuyến tính quy mô lớn vớ...
 
Giáo án tin ứng dụng trong thiết kế cầu.pdf
Giáo án tin ứng dụng trong thiết kế cầu.pdfGiáo án tin ứng dụng trong thiết kế cầu.pdf
Giáo án tin ứng dụng trong thiết kế cầu.pdf
 
Baocao lv
Baocao lvBaocao lv
Baocao lv
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1
 
Chuyen de luong giac 1 www.mathvn.com
Chuyen de luong giac 1   www.mathvn.comChuyen de luong giac 1   www.mathvn.com
Chuyen de luong giac 1 www.mathvn.com
 
Bai tapxstk tonghop
Bai tapxstk tonghopBai tapxstk tonghop
Bai tapxstk tonghop
 
10 đề tổng hợp
10 đề tổng hợp10 đề tổng hợp
10 đề tổng hợp
 
Thiet ke co so du lieu
Thiet ke co so du lieuThiet ke co so du lieu
Thiet ke co so du lieu
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
 
Bai11 ooad bieu_dolop
Bai11 ooad bieu_dolopBai11 ooad bieu_dolop
Bai11 ooad bieu_dolop
 
Giáo án môn học tin học ứng dụng trong thiết kế cầu
Giáo án môn học tin học ứng dụng trong thiết kế cầuGiáo án môn học tin học ứng dụng trong thiết kế cầu
Giáo án môn học tin học ứng dụng trong thiết kế cầu
 
Bai 1 tong quan ve ctdl&amp;gt
Bai 1   tong quan ve ctdl&amp;gtBai 1   tong quan ve ctdl&amp;gt
Bai 1 tong quan ve ctdl&amp;gt
 
8 voduythanh
8 voduythanh8 voduythanh
8 voduythanh
 
Nhận dạng hệ thống điều khiển, Nguyễn Doãn Phước
Nhận dạng hệ thống điều khiển, Nguyễn Doãn PhướcNhận dạng hệ thống điều khiển, Nguyễn Doãn Phước
Nhận dạng hệ thống điều khiển, Nguyễn Doãn Phước
 
Luận Văn Phương Pháp Khoảng Cách Trong Phân Tích Thống Kê mẫu ĐIểm Không gian
Luận Văn Phương Pháp Khoảng Cách Trong Phân Tích Thống Kê mẫu ĐIểm Không gianLuận Văn Phương Pháp Khoảng Cách Trong Phân Tích Thống Kê mẫu ĐIểm Không gian
Luận Văn Phương Pháp Khoảng Cách Trong Phân Tích Thống Kê mẫu ĐIểm Không gian
 
bai giang Matlab
bai giang Matlabbai giang Matlab
bai giang Matlab
 

Mais de https://www.facebook.com/garmentspace

Mais de https://www.facebook.com/garmentspace (20)

Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...
Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...
Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...
 
Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...
Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...
Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...
 
Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...
Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...
Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...
 
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...
 
Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...
Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...
Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...
 
Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...
Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...
Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...
 
Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...
Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...
Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...
 
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...
 
Khóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdf
Khóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdfKhóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdf
Khóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdf
 
Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...
Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...
Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...
 
Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...
 
Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...
Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...
Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...
 
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...
 
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...
 
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...
 
Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...
Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...
Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...
 
Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...
 
Đề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.doc
Đề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.docĐề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.doc
Đề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.doc
 
Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...
Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...
Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...
 
Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...
Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...
Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...
 

Último

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
DungxPeach
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
dnghia2002
 

Último (20)

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 

Luận án tiến sĩ toán học các phụ thuộc logic trong mô hình dữ liệu dạng khối

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG 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 LUẬN ÁN TIẾN SĨ TOÁN HỌC HÀ NỘI - 2015
  • 2. 1 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG 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
  • 3. 2 LỜ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
  • 4. 3 LỜ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
  • 5. 4 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
  • 6. 5 2.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
  • 7. 6 DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT Kí hiệu Ý nghĩa của kí hiệu 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’ M P Hợp của 2 tập con M và P M  {MX| X   }.    {XY | X   , Y  }. AXĐ Ánh xạ đóng 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ử. CTB Công thức Boolean. 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.
  • 8. 7 PTH 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.
  • 9. 8 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
  • 10. 9 DANH SÁCH HÌNH VẼ Trang Hình 1: Biểu diễn khối CAN_BO_2. 11 Hình 2: Biểu diễn khối dữ liệu đa chiều. 12 Hình 1.1: Biểu diễn khối KH_HANG. 24 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
  • 11. 10 MỞ ĐẦU 1. Lý do lựa chọn đề tài Để có thể xây dựng được một hệ thống cơ sở dữ liệu tốt, người ta thường sử dụng các mô hình dữ liệu thích hợp. Đã có một số loại mô hình được sử dụng trong các hệ thống cơ sở dữ liệu như: mô hình thực thể - liên kết, mô hình mạng, mô hình phân cấp, mô hình hướng đối tượng, mô hình dữ liệu datalog [53], [54], và mô hình quan hệ [33], [52], [53], [54]. Trong số các mô hình này, có ba mô hình dữ liệu thường được sử dụng: mô hình phân cấp, mô hình mạng và mô hình quan hệ. Đối với ba mô hình này thì mô hình quan hệ được quan tâm hơn cả. Mô hình này do E. Codd đề xuất ra năm 1970. Sở dĩ mô hình quan hệ được quan tâm như vậy là 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. Tuy nhiên, do các quan hệ có cấu trúc phẳng (tuyến tính) nên mô hình này chưa đủ đáp ứng đối với các ứng dụng phức tạp, các cơ sở dữ liệu có cấu trúc phi tuyến,... Ví 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.
  • 12. 11 Bả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 t1 A01 A 200 DH B02 B 400 Ths A02 B 300 DH t2 A02 B 250 DH C01 C 350 DH 2015 A03 t3 A03 C 200 CD 2007 ma ten luong trinh_do C 250 CD 2010
  • 13. 12 theo 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.
  • 14. 13 Vớ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 cần tìm bằng những phép toán đơn giản hơn.
  • 15. 14 Cũ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
  • 16. 15 dươ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].
  • 17. 16 - 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ô
  • 18. 17 hì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.
  • 19. 18 - 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.
  • 20. 19 6. Bố cục của luận án Luận án gồm phần mở đầu, 3 chương tiếp theo và cuối cùng là phần kết luận. Chương 1 trình bày một vài nét cơ bản nhất về mô hình dữ liệu và giới thiệu một mô hình dữ liệu cụ thể: đó là mô hình dữ liệu dạng khối - một mở rộng của mô hình dữ liệu quan hệ. Ánh xạ đóng và các tính chất của nó cùng với các khái niệm về công thức Boolean, công thức Boolean dương, ... cũng đã được giới thiệu ở đây. Chươ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.
  • 21. 20 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.
  • 22. 21 Mộ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].
  • 23. 22 - 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.
  • 24. 23 Bê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). Nói một cách khác: . Đô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 khả năng mua của khách hàng trong siêu thị như sau: R = (id; A1, A2, A3, A4),
  • 25. 24 trong đó: 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à: t2(2/1/2015,Bmỳ) = 9.  Số lượng sữa khách hàng t3 mua ngày 3/1/2015 là: t3(3/1/2015,Sữa) = 5. Định nghĩa 1.2 [4] Cho R = (id; A1, A2,..., An ), r(R) là một khối trên R. Với mỗi x id ta kí hiệu r(Rx) là một khối với Rx = ({x}; A1, A2,..., An ) sao cho: 1 2 |( , ,..., ) ( ) , 1..n i i x x x x x x xt t t t r R t t i n      , ở đây . Khi đó r(Rx) được gọi là một lát cắt trên khối r(R) tại điểm x. A01 11 500 0 A01 12 350 4 t1 A01 10 200 3 B02 10 350 5 A02 9 0 5 t2 A02 8 250 4 C03 9 300 5 3/1/2015 A03 t3 A03 6 0 6 1/1/2015 maKH Bmỳ Bơ Sữa 8 250 0 2/1/2015
  • 26. 25 Ví 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).
  • 27. 26 Ngượ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ừ: .
  • 28. 27 Tích Đề các Cho R = (id; A1, A2, ..., An), S = ( id; B1, B2, ... , Bm ), ở đây . 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, khối này có khung , mỗi phần tử 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: , trong đó: . Tích Đề các theo tập chỉ số Cho R = (id; A1, A2, ..., An) , S = (id’; A1, A2, ..., An). Tích Đề các của hai khối r(R) và s(S) theo tập chỉ số là một khối, kí hiệu , khối này có khung R , với id  id’ là kí hiệu tích rời rạc 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. Cụ thể hơn, giả sử có 2 phần tử là : , khi đó, ta có ánh xạ cảm sinh của tr và ts, phần tử cảm sinh của tr và ts kí hiệu là trs. Gọi là các phép nhúng thì ta được: .
  • 29. 28 Phép chiếu Cho R=(id; A1, A2,...., An ), , r là một khối trên R. Khi đó ta kí hiệu P  R nếu . Một 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: i1 i2 ih |id' |id' |id'(t ,t ,...,t ) , trong đó ij 1 2 n 1 2 n t {t ,t ,...,t }, j=1..h, (t ,t ,...,t ) r  . Biểu diễn hình thức của phép chiếu có dạng: P(r) = {(ti1 , ti2 , ..., tih ) tij  {t1 , t2 , ..., tn }, j = 1 .. h, (t1 , t2 , ..., tn )r}. id’ Ta dễ dàng chứng minh được một số tính chất sau đây của phép chiếu: Mệnh đề 1.1 [5]  .  .  .  .  . ở đây r và s là các khối trên R, còn P, Q  R. Phép chọn 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
  • 30. 29 trong F là : , , . Biểu diễn hình thức của phép chọn có dạng: , trong đó F(t) là giá trị của biểu thức Boolean F tại phần tử t  r. Phép kết nối Cho R = (id; A1, A2, ... , An ) và s = (id; B1, B2, .... , Bm ), cùng với hai khối r(R) và s(S) tương ứng. Gọi T = (id ; C1, C2, ... , Cp), trong đó: . Phép kết nối của 2 khối r và s, kí hiệu là khối t(T) định nghĩa như sau: . Phép kết nối này cũng gọi là phép kết nối tự nhiên của hai khối r(R) và s(S), đôi khi sử dụng kí hiệu . Đặc biệt, khi các khối r(R) và s(S) có tập chỉ số id chỉ gồm một phần tử thì các khối này trở thành các quan hệ và phép kết nối tự nhiên của hai khối lại trở thành phép kết nối tự nhiên của hai quan hệ trong mô hình cơ sở dữ liệu quan hệ [33]. Nế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. Mệnh đề 1.2 [5] Giả sử r(R), r'(R), q(Q), s(S) là các khối đã cho, khi đó ta có:   (r r') s = (r ) (r' )s s   (r r') s = (r ) (r' )s s   (r - r') s = (r ) (r' )s s Ta có thể mở rộng khái niệm kết nối như sau:
  • 31. 30 Giả 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 id id'   , mà ta có với t  r và k  r’: t = (t1 , t2 , ..., tn ), k = (k1 , k2 , ..., kn ) t1 = k1 id id' id id' t2 = k2 id id' id id' ............................................ tn = kn id id' id id' 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 : h id id' dom(A )  sao cho: uh = th , uh = kh ,  h = 1..n, id id’ và kí hiệu: uh = th *id kh .
  • 32. 31  n i i 1 )( idYX,   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. Biểu diễn hình thức của phép nối dài có dạng: r *id r’ = { u = (ui ) i=1..n | (ui ) i=1..n  r và (ui ) i=1..n  r’}. id id’ Phép chia 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ử: thì phần tử tu  r, ở đây phần tử tu có dạng: Biểu diễn hình thức của phép chia có dạng: . 1.2.3 Phụ thuộc hàm Định nghĩa 1.3 [7] 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). Định nghĩa 1.4 [7] Cho R = (id; A1, A2,..., An), F là tập các phụ thuộc hàm trên R. Khi đó, bao đóng của F kí hiệu F+ được xác định như sau: .
  • 33. 32 n (i) i=1 x Nhận xét: Cho  1 2, , ,..., nR id A A A , r(R) là một khối trên R,   1 , , n i i X Y id X Y    là kí hiệu một phụ thuộc hàm. Giả sử r(R) thoả phụ thuộc hàm . Khi đó nếu id = {x} thì : - r(R) trở thành quan hệ r(A1, A2,..., An ) và - Phụ thuộc hàm 1 , ( , ) n i i X Y X Y A    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) (xid, 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  là tập SubSet(   1 n i i id  ). Cho  ,  SubSet (   1 n i i id  ) và M, P 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: M P = MP (hợp của 2 tập con M và P: M  P), M  = {MX | X   },    = {XY | X   , Y  }. Ta kí hiệu các tập con của tập các phụ thuộc hàm:      i j h i A j B F X Y | X x ,Y x ,A,B 1,2,...,n ,x id              n (i) hx h i=1 F X Y F | X,Y x          , Fhx = Fh .
  • 34. 33  n i i 1 )( idX   n (i) i=1 x Định nghĩa 1.5 [7] Cho R=(id; A1, A2,..., An), r(R) là một khối, F là tập các phụ thuộc hàm trên R. Khi đó: - (R,F) gọi là lược đồ khối của r và kí hiệu là  = (R,F), nếu F =  ta kí hiệu đơn giản là R. - (Rx,Fx) gọi là lược đồ lát cắt của khối r tại điểm x và kí hiệu là x= (Rx,Fx), nếu Fx= ta kí hiệu đơn giản là Rx, ( Rx= ({x}; A1, A2,..., An ), Fx là tập các phụ thuộc hàm trên lát cắt của khối r tại điểm x, Fx = F ). Định nghĩa 1.6 [10] Cho lược đồ khối =(R,Fh),  1 2, , ,..., nR id A A A , 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à:  x, yid: với M', N' tương ứng tạo thành 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ố Định nghĩa 1.7 [7] 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. Với mỗi , ta định nghĩa bao đóng của X đối với F kí hiệu X+ như sau: X+ = { x(i) | xid, i=1..n, X  x(i)  F+ }. Mệnh đề 1.3 [7] 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, M   n i i 1 )( id  , M = Ax xM  , Mx   n i i 1 )( x  , Mx  , xA  id.
  • 35. 34 Khi đó nếu M+ là bao đóng của M đối với Fh thì xA  id ,  n i i 1 )( x   M+ là bao đóng của Mx =  n i i 1 )( x   M đối với Fhx. Mệnh đề 1.4 [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, M   n i i 1 )( id  , M = Ax xM  , 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ì Ax xM   là bao đóng của M = Ax xM  đối với Fh. Từ hai mệnh đề trên, ta rút ra điều kiện cần và đủ sau: Mệnh đề 1.5 [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, M   n i i 1 )( id  , M = Ax xM  , Mx   n i i 1 )( x  , Mx  , xA  id. Khi đó M+ là bao đóng của M đối với Fh khi và chỉ khi Mx + = M+   n i i 1 )( x  là bao đóng của Mx đối với Fhx. 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).
  • 36. 35 Nếu K là khoá và K  K’’ thì K’’ gọi là siêu khoá của lược đồ khối R đối với F. Mệnh đề 1.6 [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 đó 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 = idx xK  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 đó: Ai i  )( x với A  {1,2, ..., n} là khoá của Rx đối với ( ) id i hx i A F   là khoá của lược đồ R đối với Fh. Hệ quả này vẫn còn đúng khi ta thay khoá bởi siêu khoá.
  • 37. 36 1.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: 1) Tính phản xạ: f(X)  X. 2) Tính đồng biến: nếu X Y thì f(X)  f(Y). 3) Tính lũy đẳng: f( F(x))= f(X). Ta kí hiệu Close(U) là tập tất cả các ánh xạ đóng (AXĐ) trên tập U cho trước. Mệnh đề 1.9 [6]: 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(X Y)  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.
  • 38. 37 Ta 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ừ m x và xM 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)).
  • 39. 38 1.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, 2) . 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) , 2) . 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
  • 40. 39 mộ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,RU. 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. 1.4 Các công thức Boolean 1.4.1 Khái niệm Định nghĩa 1.18 [6] Cho là tập hữu hạn các biến Boolean, B là tập trị Boolean, . Khi đó các công thức Boolean (CTB) hay còn gọi là các công thức logic được xây dựng như sau: (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. (iv) Nếu a và b là các CTB thì là một CTB. (v) Chỉ có các công thức được tạo bởi các quy tắc từ (i) – (iv) là các CTB. Ta 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 1.19 [6] Mỗi vector các phần tử 0/1, v = {v1, v2, ..., vn} trong không gian được gọi là một phép gán trị. Như vậy, với mỗi CTB
  • 41. 40 f  L(U) ta có f(v) = f(v1, v2, ..., vn) là trị của công thức f đối với phép gán trị v. Trong trường hợp không gây ra nhầm lẫn thì ta hiểu 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 Boolean là hội logic các biến trong X. Mặt khác, nếu , ta kí hiệu: và gọi là dạng hội. và gọi là dạng tuyển. Ta gọi công thức f: Z  V là : - công thức suy dẫn nếu Z và V có dạng hội, nghĩa là: . - công thức suy dẫn mạnh nếu Z có dạng tuyển và V có dạng hội, nghĩa là: . - công thức suy dẫn yếu Z có dạng hội và V có dạng tuyển, nghĩa là: . - công thức suy dẫn đối ngẫu nếu Z và V đều có dạng tuyển, nghĩa là: . Với mỗi tập hữu hạn các CTB trong L(U), ta xem F như là một công thức dạng . Khi đó, ta có: . 1.4.2 Bảng trị và bảng chân lý Với mỗi công thức f trên U, bảng trị của f, kí hiệu Vf chứa n+1 cột, với n cột đầu tiên chứa các giá trị của các biến trong U, còn 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 2n dòng, n là số phần tử của U.
  • 42. 41 Định nghĩa 1.20 [6] Bảng chân lý của f, kí hiệu Tf là tập các phép gán trị v sao cho f(v) nhận giá trị 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. F f f F T T   . Ta có: v  TF khi và chỉ khi f F: f(v) = 1. 1.4.3 Suy dẫn logic Định nghĩa 1.21 [6] Cho f, g là hai CTB, ta nói công thức f suy dẫn logic ra công thức g và kí hiệu . Ta nói f tương đương với g và kí hiệu: . Với F và G trong L(U) ta nói F suy dẫn logic ra G, kí hiệu: . Hơn nữa, ta nói F và G là tương đương, kí hiệu . 1.4.4 Công thức Boolean dương Định nghĩa 1.22 [6] Công thức f  L(U) được gọi là công thức Boolean dương (CTBD) nếu f(e) = 1 với e là phép gán trị đơn vị: e = (1, 1,..., 1), ta kí hiệu P(U) là tập toàn bộ các công thức Boolean dương trên U. Kết luận Phần đầu của chương này đã trình bày khái niệm về mô hình dữ liệu, phân loại các mô hình dữ liệu. Tiếp đó, trình bày những khái niệm cơ bản về mô hình dữ liệu dạng khối như: khối, lát cắt của khối tại một điểm, lược đồ
  • 43. 42 khối, lược đồ lát cắt, đại số khối, bao đóng của tập thuộc tính chỉ số, khóa, phụ thuộc hàm,… Một số tính chất của bao đóng và khóa đối với lược đồ khối cũng đã được trình bày. Bên cạnh đó, ánh xạ đóng và các tính chất của nó cùng với các khái niệm về công thức Boolean, công thức Boolean dương cũng đã được giới thiệu ở đây.
  • 44. 43 CHƯƠNG 2: PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI VÀ LƯỢC ĐỒ KHỐI CÂN BẰNG Như chúng ta đã biết trong mô hình quan hệ, để giảm tính phức tạp của việc xác định bao đóng, khoá trong các cơ sở dữ liệu lớn, phức tạp thì phép dịch chuyển lược đồ quan hệ đã được đề xuất. Trong mô hình cơ sở dữ liệu dạng khối, việc xác định khoá và bao đóng càng khó khăn hơn. Vì vậy, phép dịch chuyển lược đồ khối được đề xuất ở đây, nhờ việc dịch chuyển lược đồ khối mà trong nhiều trường hợp, việc tính bao đóng và khoá của khối trở nên đơn giản hơn. Các kết quả trình bày trong chương này thuộc các bài báo [1], [2], [3], [4] và [5] ở phần danh mục các công trình của tác giả. 2.1 Phép dịch chuyển lược đồ khối Định nghĩa 2.1 Cho hai lược đồ khối α = (R,F),  = (S,G), X   n i i 1 )( id  , X ={x(i) , x id, i  A}, A  {1,2, ..., n}. Ta nói lược đồ  nhận được từ lược đồ α qua phép dịch chuyển theo tập thuộc tính X, nếu sau khi loại bỏ các thuộc tính trong X ở lược đồ α thì ta thu được lược đồ . Để kí hiệu phép dịch chuyển từ lược đồ α thành lược đồ  theo tập thuộc tính X ta viết:  = α X. Thao tác loại bỏ X từ lược đồ α thành lược đồ  như sau: 1. Tính S = R X, R = (id; A1, A2,..., An ), ở đây ta loại bỏ các thuộc tính Ai (i  A) trong R, thủ tục này có độ phức tạp là O(nk), với k là số phần tử của A.
  • 45. 44 2. Với mỗi phụ thuộc hàm từ M N trong F, với M, N   n i i 1 )( id  ta tạo một phụ thuộc hàm mới trong G. Thủ tục này được kí hiệu là G = F X và có độ phức tạp O(mnk) với m là số lượng các phụ thuộc hàm trong F. Từ đó ta thấy độ phức tạp của phép dịch chuyển  = α X = (RX, FX) là O(mnk), do vậy nó là tuyến tính theo chiều dài của dữ liệu vào. Sau khi thực hiện thủ tục G = FX thì: + Nếu G chứa các PTH tầm thường (dạng X Y, X  Y) thì ta loại chúng khỏi G. + Nếu G chứa các PTH trùng nhau thì ta loại bớt các PTH này (G không chứa các PTH trùng nhau). Ta có các nhận xét sau: Nhận xét 1: Cho hai lược đồ khối α = (R, F),  = (S, G), X   n i i 1 )( id  , X ={ x(i) , x id, i  A}, A  {1,2, ..., n}. Lược đồ  nhận được từ lược đồ α qua phép dịch chuyển theo tập thuộc tính X:  = α X. Khi đó, nếu id ={x} thì lược đồ khối α suy biến thành lược đồ quan hệ và phép dịch chuyển theo tập thuộc tính X trong trường hợp này lại trở thành phép dịch chuyển theo tập thuộc tính X từ lược đồ quan hệ α về lược đồ quan hệ  trong mô hình dữ liệu quan hệ. Nhận xét 2: Cho hai lược đồ khối α = (R, Fh ),  = (S, Gh ), X   n i i 1 )( id  , X ={x(i) , x id, i  A}, A  {1,2, ..., n}. Khi đó nếu lược đồ  nhận được từ lược đồ α qua phép dịch chuyển theo tập thuộc tính X nghĩa là  = α X thì:
  • 46. 45 S = R X, Gh = Fh X = idx hxF  X. Từ đó ta có: Ghx = Fhx (X   n i i 1 )( x  ),  x  id . Như vậy, việc dịch chuyển trên khối trong trường hợp này lại được chuyển về việc dịch chuyển trên các lát cắt, mà trong mỗi lát cắt thì việc này chính là việc dịch chuyển lược đồ quan hệ trong mô hình dữ liệu quan hệ. Ví dụ 2.1: Cho lược đồ khối α = (R,F), R=(id; A1, A2, ... , A6 ), id = {1, 2}, X   n i i 1 )( id  , X ={x(i) , x id, i  A}, A = {1,4,6}, ở đó F = {(1(1) 2(1) 1(5) 2(5) )  (1(4) 2(4) ), (1(1) 2(1) )  (1(4) 2(4) 1(6) 2(6) ), (1(2) 2(2) 1(3) 2(3) )  (1(5) 2(5) ), (1(5) 2(5) )  (1(2) 2(2) 1(3) 2(3) )}, ta xác định lược đồ  = (S,G), ở đó  = α X. Để xác định , ta tính lần lượt S và G: S = RX = (id; A2, A3, A5), G = FX = {(1(5) 2(5) )   (loại),    (loại), (1(2) 2(2) 1(3) 2(3) )  (1(5) 2(5) ), (1(5) 2(5) )  (1(2) 2(2) 1(3) 2(3) )}  {(1(2) 2(2) 1(3) 2(3) )  (1(5) 2(5) ), (1(5) 2(5) )  (1(2) 2(2) 1(3) 2(3) )}. 2.2 Thuật toán dịch chuyển lược đồ khối Thuật toán Dich_chuyen_1; Vào: Lược đồ khối α = (R, F), X   n i i 1 )( id  , X ={ x(i) , x id, i  A }, A  {1,2, ..., n}. Ra:  = α X =(V, G), V = RX, G =FX. Phương pháp: V:= R X; G:= ; For each FD L  R in F do
  • 47. 46 G:= G  {LX  RX}; endfor ; For each FD L  R in G do if L  R then G:= G {L  R}; endif; endfor; Return(V,G); Kết thúc Dich_chuyen_1; Từ sự phân tích trong phần 2.1 ta thấy độ phức tạp của thuật toán này là O(mnk), nghĩa là phụ thuộc tuyến tính theo chiều dài của dữ liệu vào. Trong trường hợp tập phụ thuộc hàm F có dạng Fh thì việc dịch chuyển lược đồ khối lại chính là dịch chuyển lược đồ của các lát cắt trong khối đó. Từ đó ta có thuật toán sau: Thuật toán Dich_chuyen_2; Vào: Lược đồ khối α = (R,Fh), X   n i i 1 )( id  , X ={x(i) , x id, i  A}, A  {1,2, ..., n}, Xx = X   n i i 1 )( x  . Ra:  = α X =(V,G), V = RX, G =Fh X. Phương pháp: V:= RX; G:= ; For each x in id do For each FD L  R in Fhx do G:= G  {LXx  RXx}; endfor; endfor;
  • 48. 47 For each FD L  R in G do if L  R then G:= G {L  R}; endif; endfor; return(V,G); Kết thúc Dich_chuyen_2; Tương tự như đối với thuật toán Dịch chuyển 1 ở trên, ta thấy độ phức tạp của thuật toán Dịch chuyển 2 này là O(mnk). 2.3 Biểu diễn bao đóng và khoá qua phép dịch chuyển 2.3.1 Biểu diễn bao đóng Mệnh đề 2.1 Cho lược đồ khối α = (R,Fh), R = (id; A1, A2, ... , An ) , X, Y   n i i 1 )( id  , X ={x(i) , x id, i  A}, Y ={x(i) , x id, i  B}; A, B {1,2, ..., n}, AB = . Khi đó: a) (XY)+ Fh = X (Y)+ Fh X b) (XY)+ Fh = X (  idx XFhxY     n 1i (i) )x( ). c) (XY)+ Fh =   n 1i (i) n 1i (i) ])x)(x[(X      XFhx idx Y . Chứng minh - Trước hết ta chứng minh mệnh đề c): Dựa vào điều kiện cần và đủ của bao đóng trên lược đồ khối (mệnh đề 1.5) ta có: (XY)+ Fh =  idx FhxXY     n 1i (i) )x( . Mặt khác, theo giả thiết ta có: AB =  XY =  Suy ra:  n 1i (i) x(X   )   n 1i (i) x(Y   ) = ,  x id.
  • 49. 48 Tiếp theo, ta chứng minh:    Fhx)x(XY n 1i (i)  =  n 1i (i) x(X   )     XFhx n 1i (i) )x(Y  (1) Để ngắn gọn, ta kí hiệu: Xx =  n 1i (i) xX   , Yx =  n 1i (i) xY   , khi đó đẳng thức (1) có dạng:  Fhx)Y(X xx =  XFhxxx )(YX (2) Mặt khác, theo công thức tính bao đóng của tập XxYx dựa vào phép dịch chuyển lược đồ quan hệ theo tập Xx trong lát cắt Rx (đây là một lược đồ quan hệ trong mô hình quan hệ) đã được chứng minh [6], ta có:  Fhx)Y(X xx =  xXFhxxx )(YX (3) Tuy nhiên: FhxX = FhxXx Do đó:  xXFhxxx )(YX =  XFhxxx )(YX (4) Từ (3) và (4) ta có:  Fhx)Y(X xx =  XFhxxx )(YX (1) được chứng minh. Từ (1) ta có:  idx FhxXY     n 1i (i) )x( =   n 1i (i) n 1i (i) ])x)(x[(X      XFhx idx Y Suy ra: (XY)+ Fh =   n 1i (i) n 1i (i) ])x)(x[(X      XFhx idx Y c) được chứng minh. - Ta chứng minh mệnh đề b): Theo chứng minh mệnh đề c) ở trên, ta có : (XY)+ Fh =   n 1i (i) n 1i (i) ])x)(x[(X      XFhx idx Y . Mà: X = )x(X n 1i (i)  idx   Suy ra: (XY)+ Fh =X ))x(( n 1i (i)      XFhx idx Y . - Ta chứng minh mệnh đề a):
  • 50. 49 Theo kết quả ở phần b) ta có: (XY)+ Fh =X ))x(( n 1i (i)      XFhx idx Y . Dựa vào điều kiện cần và đủ của bao đóng trên lược đồ khối (mệnh đề 1.5) ta có: (Y)+ FhX =  idx XFhxY     n 1i (i) )x( . Vậy: (XY)+ Fh =X (Y)+ FhX a) được chứng minh. Từ mệnh đề ở trên, ta có hệ quả sau: Hệ quả 2.1 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ) , X   n i i 1 )( id  , X ={ x(i) , x id, i  A}, A {1,2, ..., n}. Khi đó: a) . b)     Fh Fh X x id X X            . Chứng minh Thật vậy, sử dụng kết quả a) và b) của mệnh đề 2.1 vừa chứng minh ở trên với trường hợp đặc biệt Y = ta có ngay hệ quả này. 2.3.2 Biểu diễn khóa Cho lược đồ khối α = (R,Fh), R = (id; A1, A2, ... , An ) và X, Uo, UK, UI là các tập thuộc tính chỉ số   n i i 1 )( id  , đối với lược đồ khối α ta ký hiệu: - Uo là tập tất cả các thuộc tính không khoá. - UK là tập tất cả các thuộc tính khoá. - UI là tập tất cả các thuộc tính nằm trong mọi khoá. Cho các lược đồ khối α=(R, Fh), R= (id; A1, A2, ... , An );  = (S,G),  = α X. Khi đó ta kí hiệu: - αx = (Rx,Fhx) là lược đồ lát cắt của α=(R,Fh) tại điểm x,
  • 51. 50 - x = (Sx,Gx) là lược đồ lát cắt của  =(S,G) tại điểm x. Mệnh đề 2.2 Cho lược đồ khối α=(R,Fh), R= (id; A1, A2, ... , An ); X, Y, Q   n i i 1 )( id  , X ={ x(i) , x id, i  A }, Y = { x(i) , x id, i  B }; Q ={ x(i) , x id, i  C }; A, B, C {1,2, ..., n},  = (S,G),  = α X. Khi đó: a) Nếu Y là siêu khoá của α thì YX là siêu khoá của . b) Nếu Y là siêu khoá của α thì YxXx là siêu khoá của x = (Sx, Gx ), x id , ở đây Yx= {x(i) , iB}, Xx= {x(i) , iA}. c) Nếu Q là siêu khoá của  thì XQ là siêu khoá của α. Trường hợp X chỉ gồm các thuộc tính không khoá của α và Q là siêu khoá của  thì Q chính là siêu khoá của α. d) Nếu Q là siêu khoá của  thì XxQx là siêu khoá của αx , x id, ở đây Qx={x(i) , iC}. Trường hợp X chỉ gồm các thuộc tính không khoá của α và Q là siêu khoá của  thì Qx chính là siêu khoá của αx , x id. Chứng minh a) Giả sử Y là siêu khoá của α, đặt . Theo giả thiết Y là siêu khoá của α do đó: X( n i i 1 )( id  X) =  n i i 1 )( id  = Y+ Fh  (XP)+ Fh = X(P)+ FhX . Mà: X( n i i 1 )( id  X) = , X P+ FhX = P+ FhX = n i i 1 )( id  X. (1) Từ (1) ta thấy P = YX chính là siêu khoá của  = α X. b) Giả sử Y là siêu khoá của α, theo kết quả của a) thì YX là siêu khoá của  = α X. Từ đó, áp dụng tính chất của khóa và siêu khóa trên lược đồ khối ta có: YxXx là siêu khoá của x = (Sx,Gx ), x id.
  • 52. 51 c) Giả sử Q là siêu khoá của  thì: Q X = , Q+ FhX = n i i 1 )( id  X Suy ra: (XQ)+ Fh = X(Q)+ FhX =X( n i i 1 )( id  X) =  n i i 1 )( id  . Vậy XQ là siêu khoá của α. Nếu X chỉ gồm các thuộc tính không khoá của α thì việc loại bỏ từ siêu khoá XQ các thuộc tính không khoá X vẫn cho ta siêu khoá Q của α. d) Giả sử Q là siêu khoá của  thì theo c) ta có XQ là siêu khoá của α. Từ đó, áp dụng kết quả của mệnh đề 1.8 ta có: XxQx là siêu khoá của αx , x id. Trường hợp X chỉ gồm các thuộc tính không khoá của α Xx là các thuộc tính không khoá của αx , do đó Qx = XxQx Xx chính là siêu khoá của αx , x id. Mệnh đề 2.3 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, Q   n i i 1 )( id  , X ={x(i) , x id, i  A}, Q ={x(i) , x id, i  C}; A, C {1,2, ..., n},  = (S,G),  = α X + . Khi đó nếu Q là siêu khoá của  thì: a) XQ là siêu khoá của α. b) XxQx là siêu khoá của αx , x id. Chứng minh a) Giả sử Q là siêu khoá của  thì theo mệnh đề trên ta có X+ Q là siêu khoá của α, khi đó: (X+ Q)+ =  n i i 1 )( id  . Mà ta có: (XQ)+ = (X+ Q)+ =  n i i 1 )( id  XQ là siêu khoá của α.
  • 53. 52 b) Giả sử Q là siêu khoá của  thì theo a) ta có XQ là siêu khoá của α. Từ đó, áp dụng kết quả của mệnh đề 1.8 ta có: XxQx là siêu khoá của αx , x id. Mệnh đề 2.4 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K   n i i 1 )( id  , X ={x(i) , x id, i  A}, K = {x(i) , x id, i  B}; A, B {1,2, ..., n},  = (S,G),  = α X. Khi đó: a) Nếu K là khoá của α thì KX là khoá của . b) Nếu K là khoá của α thì KxXx là khoá của x=(Sx,Gx), x id , ở đây Kx = {x(i) , iB}, Xx= {x(i) , iA}. Chứng minh a) Giả sử K là khoá của α K là siêu khoá của α, theo mệnh đề 2.2 ta có KX là siêu khoá của . Nếu KX không phải là khoá của  thì  M  KX là siêu khoá của , theo mệnh đề trên ta lại có XM là siêu khoá của α. Mà: XM  X(KX) = K , điều này mâu thuẫn với giả thiết K là khoá của α. Do đó KX là khoá của . b) Giả sử K là khoá của α, khi đó theo a) ta có KX là khoá của . Từ đó, áp dụng kết quả của mệnh đề 1.8 ta có: Kx Xx là khoá của x x id. Mệnh đề 2.5 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K   n i i 1 )( id  , X ={ x(i) , x id, i  A}, K = {x(i) , x id, i  B}; A, B {1,2, ..., n}, X  Uo,  = (S,G),  = α X. Khi đó: a) Nếu K là khoá của  thì K là khoá của α.
  • 54. 53 b) Nếu Kx là khoá của x = (Sx,Gx), Kx = {x(i) , iB}, x id thì K là khoá của α. Chứng minh a) Giả sử K là khoá của  K là siêu khoá của  theo mệnh đề 2.2 ta có K là siêu khoá của α (vì giả thiết X  Uo ). Ta chứng minh K là khoá của α. Giả sử ngược lại, K không là khoá của α , khi đó  K’  K mà K’ là siêu khoá của α. Theo mệnh đề 2.2 ta có K’ = K’ X (vì giả thiết X  Uo ) là siêu khoá của , điều này mâu thuẫn với giả thiết K là siêu khoá của . Vậy K là khoá của α. b) Giả sử Kx là khoá của x=(Sx,Gx), Kx= {x(i) , iB}, x id khi đó theo kết quả của mệnh đề 1.8 ta có K là khoá của . Từ đó dựa vào kết quả câu a) ta có K là khoá của α. Định lý 2.1 (Điều kiện cần và đủ) Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K   n i i 1 )( id  , X ={ x(i) , x id, i  A}, K = {x(i) , x id, i  B}; A, B {1,2, ..., n}, X  Uo,  = (S,G),  = α X. Khi đó: a) K là khoá của α khi và chỉ khi K là khoá của . b) K là khoá của α khi và chỉ khi Kx là khoá của x=(Sx,Gx), Kx= {x(i) , iB}, x id . Chứng minh a) K là khoá của α K là khoá của . Thật vậy, từ giả thiết K là khoá của α, X  Uo và mệnh đề 2.4 ta suy ra: K = KX là khoá của . K là khoá của  K là khoá của α.
  • 55. 54 Giả sử K là khoá của  vì X  Uo theo kết quả của mệnh đề 2.5 ta có K là khoá của α. b) Giả sử K là khoá của α theo kết quả câu a) ta suy ra K là khoá của  theo kết quả của mệnh đề 1.8 ta có: Kx là khoá của x=(Sx,Gx), Kx= {x(i) , iB}, x id. Ngược lại, nếu Kx là khoá của x=(Sx,Gx), Kx= {x(i) , iB}, x id theo kết quả của mệnh đề 1.8 ta có K là khoá của  . Từ đó, áp dụng kết quả câu a) K là khoá của α. 2.4 Khóa và các tập thuộc tính nguyên thủy, phi nguyên thủy Cho các lược đồ khối α =(R, Fh), R= ( id; A1, A2, ... , An );  = (S, G),  = α X. Khi đó ta kí hiệu: - αx = (Rx,Fhx) là lược đồ lát cắt của α=(R,Fh) tại điểm x, - x = (Sx,Gx) là lược đồ lát cắt của  =(S,G) tại điểm x. Định lý 2.2 (Điều kiện cần và đủ) Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, K   n i i 1 )( id  , X={x(i) , x id, i  A}, K={x(i) , x id, i  B}; A, B {1,2, ..., n}, X  K = , X  UI ,  = (S,G),  = α X. Khi đó: a) K là khoá của  khi và chỉ khi XK là khoá của α. b) K là khoá của  khi và chỉ khi Xx Kx là khoá của αx = ( Rx, Fhx ), Xx = {x(i) , iA}, Kx= {x(i) , iB}, x id. Chứng minh: ( a) ) Giả sử K là khóa của  K là siêu khóa của  XK là siêu khóa của α tồn tại K’  K , XK’ =  mà XK’ là khóa của α (vì X  UI ). Theo tính chất của khóa đã phát biểu trong mệnh đề 2.4 XK’ X = K’ là khóa của , vì K’  K K’ = K. Vậy XK là khóa của α.
  • 56. 55 ( a) ) Ngược lại, giả sử XK là khóa của α, theo tính chất của khóa đã phát biểu trong mệnh đề 2.4 XK X = K là khóa của . ( b) ) Giả sử K là khóa của  theo câu a) ở trên ta có XK là khóa của α, theo điều kiện cần và đủ của khóa trong lược đồ khối [10] XK   n i i 1 )( x  = Xx Kx là khóa của αx=(Rx,Fhx ). ( b) ) Giả sử Xx Kx là khóa của αx=(Rx,Fhx ), Xx= {x(i) , iA}, Kx= {x(i) , iB}, x id xKidx xX  = XK là khóa của α (theo tính chất của khóa trong lược đồ khối [10]) . Mặt khác từ XK là khóa của α, nên theo kết quả của câu a) K là khóa của . Hệ quả 2.2 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, Y, K   n i i 1 )( id  , X ={x(i) , x id, i  A}, Y ={x(i) , x id, i  B}, K ={x(i) , x id, i  C}; A, B, C {1,2, ..., n}, Y  UI , X  Uo ,  = (S,G),  = α XY. Khi đó: a) K là khoá của  khi và chỉ khi YK là khoá của α. b) K là khoá của  khi và chỉ khi Yx Kx là khoá của αx = ( Rx, Fhx ), Yx= {x(i) , iB}, Kx= {x(i) , iC}, x id. Chứng minh: a) Ta kí hiệu  = α X, khi đó  = α XY = (α X) Y =  Y ( ở đây X  Y =  vì Y  UI , X  Uo ) . Từ đó, do Y  UI, áp dụng định lí 2.2 ta có: K là khoá của  khi và chỉ khi YK là khoá của . Mặt khác, do X  Uo nên áp dụng tính chất của khóa khi dịch chuyển lược đồ khối trong định lý 2.1, ta có: YK là khoá của  khi và chỉ khi YK là khoá của α. Như vậy: K là khoá của  khi và chỉ khi YK là khoá của α.
  • 57. 56 b) Giả sử K là khoá của , vậy theo a) ta có: K là khoá của  khi và chỉ khi YK là khoá của α. (1) Từ đó áp dụng tính chất khóa của lược đồ khối trong [10] suy ra: YK là khoá của α khi và chỉ khi Yx Kx là khoá của αx = ( Rx, Fhx ), Yx= {x(i) , iB}, Kx= {x(i) , iC}, x id. (2) Từ (1) và (2) ta có: K là khoá của  khi và chỉ khi Yx Kx là khoá của αx = ( Rx, Fhx ), Yx= {x(i) , iB}, Kx= {x(i) , iC}, x id. Cho lược đồ khối  = (R, F), khi đó ta kí hiệu: - LS(F) là tập các thuộc tính xuất hiện trong vế trái và RS(F) là tập các thuộc tính xuất hiện trong vế phải của các phụ thuộc hàm trong F. - Attr(F) = LS(F)  RS(F). Khi đó ta có: Attr(F)   n i i 1 )( id  . Định lý 2.3 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, M   n i i 1 )( id  , X  M, X ={x(i) , x id, i  A}, M = {x(i) , x id, i  B}; A, B {1,2, ..., n}. Khi đó các điều kiện sau là tương đương: a) Xx +  Mx = Xx , x id b) Xx +  (Mx Xx ) = , x id c) Mx Xx + = Mx Xx , x id trong đó: Xx = {x(i) , i  A}, Mx = {x(i) , i  B}. Chứng minh a) b): Ta có Xx +  Mx = Xx , x id, ta cần chứng minh: Xx +  (Mx Xx ) = , x id.
  • 58. 57 Thật vậy, giả sử ngược lại tồn tại P  Xx +  (Mx Xx ) P  Xx + và P  Mx Xx P  Xx + và P  Mx và P Xx P  Xx +  Mx = Xx và P Xx mâu thuẫn. Do đó Xx +  (Mx Xx ) = , x id. b) c): Ta có Xx +  (Mx Xx ) = , x id, ta cần chứng minh: Mx Xx + = Mx Xx , x id. Thật vậy, do Xx  Xx + Mx Xx +  Mx Xx. (1) Giả sử P  Mx Xx P  Mx và P Xx , như vậy thì P  Xx + vì nếu P  Xx + thì ta lại suy ra P  Xx +  (Mx Xx ) =  (theo giả thiết trên) mâu thuẫn. Do đó P  Mx Xx + Mx Xx  Mx Xx + (2) Từ (1) và (2) ta có: Mx Xx + = Mx Xx , x id. c) a): Ta có Mx Xx + = Mx Xx , x id, ta cần chứng minh: Xx +  Mx = Xx , x id. Thật vậy, theo giả thiết ta có X  M Xx  Mx, mặt khác theo tính chất của bao đóng thì: Xx  Xx + Xx  Xx +  Mx . (3) Ngược lại, giả sử P  Xx +  Mx P  Xx + và P  Mx P Mx Xx Nếu P  Xx thì P  Mx Xx = Mx Xx + , do đó P  Mx và P  Xx + mâu thuẫn P  Xx . Vậy Xx +  Mx  Xx . (4) Từ (3) và (4) ta suy ra Xx +  Mx = Xx . Định lý 2.4 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, M   n i i 1 )( id  , X ={x(i) , x id, i  A}, M = {x(i) , x id, i  B}; A, B {1,2, ..., n}. Khi đó các điều kiện sau là tương đương: a) X +  M = X b) X +  (M X ) =  c) M X + = M X
  • 59. 58 Chứng minh Sử dụng điều kiện cần và đủ về bao đóng của tập thuộc tính chỉ số của lược đồ khối trong [10] ta có: a) Xx +  Mx = Xx , x id X +  M = X b) Xx +  (Mx Xx ) = , x id X +  (M X ) =  c) Mx Xx + = Mx Xx , x id M X + = M X Mặt khác, từ định lý 2.3 ở trên ta suy ra các vế trái của các mệnh đề tương đương trong a), b) và c) là tương đương nhau, kết quả này dẫn tới sự tương đương của các vế phải của 3 mệnh đề a), b) và c). Như vậy, sự tương đương của 3 đẳng thức trong phát biểu của định lý trên đã được chứng minh. Mệnh đề 2.6 Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X   n i i 1 )( id  , X = { x(i) , x id, i  A }; A {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm trên R. Khi đó ta có: a)  n i i 1 )( x  Attr(Fhx )  UIx , x id. b) Nếu Xx  UIx thì Xx +  UKx = Xx , x id. Chứng minh a) Kí hiệu Mx = RS(Fhx) LS(Fhx), khi đó: UIx =  n i i 1 )( x  Mx , hơn nữa ta lại có: Mx  Attr(Fhx )   n i i 1 )( x  Attr(Fhx )   n i i 1 )( x  Mx = UIx. b) Giả sử {K1, K2,…, Kt} là tập các khóa trên lược đồ lát cắt αx=(Rx,Fhx), Xx  UIx , khi đó theo tính chất của khóa ta có: Nếu Xx  UIx thì Xx  UIx  Kix Xx +  Kix = Xx , i=1..t . Vậy: Xx +  UKx = Xx , x id .
  • 60. 59 Hệ quả 2.3 Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X   n i i 1 )( id  , X ={x(i) , x id, i  A}; A {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm trên R. Khi đó ta có: a)  n i i 1 )( id  Attr(Fh )  UI. b) Nếu X  UI thì X +  UK = X. Chứng minh a) Theo phần a) của mệnh đề 2.6 ta có:  n i i 1 )( x  Attr(Fhx )  UIx , x id. Như vậy, khi ta lấy hợp của các vế trái và hợp của các vế phải tương ứng thì tính chất của bao hàm thức không thay đổi, do đó:  n i i 1 )( id  Attr(Fh )  UI. b) Chứng minh theo phương pháp như ở câu a). Mệnh đề 2.7 Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X, Y   n i i 1 )( id  , X ={x(i) , x id, i  A}, Y={x(i) , x id, i  B}; A, B {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm trên R. Khi đó: Nếu x(i)  LS(Fhx ) và Fhx Xx Yx thì Fhx Xx x(i) Yx x(i) , i=1..n, với Xx = {x(i) , i  A}, Yx = {x(i) , i  B}. Chứng minh Ta xét theo lược đồ của lát cắt αx = (Rx, Fhx ), từ giả thiết Fhx Xx Yx suy ra Yx  Xx + . Dựa vào thuật toán tìm bao đóng của Xx thì tồn tại dãy phụ thuộc hàm L1 R1 , L2 R2 , … ,Lk Rk sao cho: L1  X , L2  XR1 , L3  XR1R2 , …, Lk  XR1R2 …Rk-1 ,
  • 61. 60 Y  XR1R2 …Rk-1 Rk = X+ . (1) Vì x(i)  LS(Fhx ) x(i) không xuất hiện trong các vế trái của F nên ta có: L1  X x(i) , L2  (Xx(i) ) R1 , L3  (Xx(i) ) R1R2 , …, Lk  (Xx(i) ) R1R2 …Rk-1 , Y  (Xx(i) ) R1R2 …Rk-1 Rk = (Xx(i) ) + . (2) Từ (1) và (2) ta có: (Xx(i) ) + = (Xx(i) ) R1R2 …Rk-1 Rk = XR1R2 …Rk-1 Rk x(i)  Y x(i) Vậy: Fhx Xx(i) Y x(i) . Hệ quả 2.4 Cho lược đồ khối α = (R, Fh), R = (id; A1, A2, ... , An ); X, Y   n i i 1 )( x  . Khi đó nếu x(i)  LS(Fh ) và Fh X Y thì Fh X x(i) Y x(i) , i = 1..n, x  id. Mệnh đề 2.8 Cho lược đồ khối α = ( R, Fh ), R = ( id; A1, A2, ... , An ); X   n i i 1 )( id  , X = {x(i) , x id, i  A}; A  {1,2, ..., n}, Fh là tập đầy đủ các phụ thuộc hàm trên R. Khi đó: a) Uox + = Uox , x id. b) Xx  Uox Uox Xx Uox Xx + Xx +  Uox, x id. c) Nếu  Xx thì Xx +  Uox , x id. d) RS(Fh) LS(Fh)  Uox, x id. với Xx = {x(i) , i  A}, Uox = {x(i) | x(i)  Uo}, x id. Chứng minh a) Theo định nghĩa của bao đóng ta có: Uox  Uox + , vậy để chứng minh Uox + = Uox ta cần chứng minh Uox +  Uox. Thật vậy, giả sử P là thuộc tính khóa và P Uox + , Kx là khóa chứa P
  • 62. 61 trong αx = (Rx, Fhx). Khi đó: Uox P, đặt Y= KxP YP = Kx. Ta có: YUo YP, mà YP=Kx là khóa YUo là siêu khóa trong αx, mà theo tính chất của siêu khóa thì trong siêu khóa ta có thể bỏ đi tập các thuộc tính không khóa Uo để được một siêu khóa Y là siêu khóa. Điều này mâu thuẫn với giả thiết Y là bộ phận thực sự của khóa Kx. Vậy ta có: Uox +  Uox. b) Để chứng minh dãy trên, ta sẽ chứng minh theo sơ đồ vòng tròn: Thật vậy, từ Xx  Uox Uox Xx Uox Xx + Xx +  Uox + , mà theo a) ta lại có: Uox + = Uox. Do đó: Xx +  Uox Xx  Uox . c) Ta có: Uox , mà  Xx suy ra: Uox Xx. Theo kết quả b) vừa được chứng minh thì Xx +  Uox . d) Ta chứng minh: RS(Fh) LS(Fh)  Uox, x id, thật vậy: Giả sử Fh = {L1 R1, L2 R2, ..., Lk Rk} khi đó nhờ tính chất cộng tính của các phụ thuộc hàm ta có: L1L2...Lk R1R2...Rk nghĩa là: LS(F) RS(F). Để chứng minh RS(Fh) LS(Fh)  Uox, ta sử dụng phương pháp phản chứng. Giả sử ngược lại, ta có thuộc tính khóa P RS(F) LS(F) và Kx là khóa chứa P. Khi đó: Kx Ux , P RS(F), P  LS(F) KxP UxP. Vì P  LS(F) LS(F)  Ux P Ux P LS(F), mà LS(F) RS(F), RS(F) P. Vậy KxP P mâu thuẫn với giả thiết Kx là khóa. Vậy ta có: RS(Fh) LS(Fh)  Uox, x id. 2.5 Lược đồ khối cân bằng Định nghĩa 2.2: Lược đồ khối  = (R,F), R = (id; A1, A2, ... , An ) được gọi là cân bằng nếu tập phụ thuộc hàm F thỏa mãn hai tính chất sau: 1) Hợp của tất cả các vế trái của các phụ thuộc hàm trong F bằng hợp của tất cả các vế phải của nó và bằng tập  n i i 1 )( id  .
  • 63. 62 2) F có dạng thu gọn tự nhiên. Như ta đã biết, F có dạng thu gọn tự nhiên có nghĩa là F thỏa các điều kiện sau: - F không chứa các phụ thuộc hàm tầm thường, nghĩa là các phụ thuộc hàm có dạng: X  Y  F và XY. - Hai vế trái và phải của mọi phụ thuộc hàm trong F không giao nhau:  fF: LS(f) RS(f) = . - Các vế trái của mọi phụ thuộc hàm trong F khác nhau đôi một, nghĩa là :  f, gF: LS(f) = LS(g)  f = g. Ta có nhận xét sau: Nhận xét: Cho lược đồ khối  = (R,F), R = (id; A1, A2, ... , An ) là lược đồ cân bằng. Khi đó, nếu id ={x} thì lược đồ khối cân bằng  suy biến thành lược đồ quan hệ cân bằng trong mô hình dữ liệu quan hệ. Ví dụ 2.2: Cho lược đồ khối α = (R,F), R = (id; A1, A2, A3, A4), id = {1, 2}, F ={1(1) 2(1)  1(3) 2(3) 1(4) 2(4) , 1(2) 2(2)  1(3) 2(3) 1(1) 2(1) , 1(3) 2(3) 1(2) 2(2)  1(1) 2(1) , 1(4) 2(4)  1(2) 2(2) }. Ta thấy lược đồ khối α = (R,F) là lược đồ cân bằng. Thật vậy, ta có: - LS(F) = 1(1) 2(1) 1(2) 2(2) 1(3) 2(3) 1(4) 2(4) = RS(F) =  n i i 1 )( id  (1) - F có dạng thu gọn tự nhiên. (2) Từ (1) & (2) ta kết luận α = (R,F) là lược đồ khối cân bằng. Mệnh đề 2.9
  • 64. 63  n i i 1 )( id   n i i 1 )( x   n i i 1 )( id  Cho lược đồ khối  = (R, Fh ), R = (id; A1, A2, ... , An ) là lược đồ cân bằng. Khi đó  xid, lược đồ của lát cắt tại điểm x: x= (Rx, Fhx ) cũng là lược đồ cân bằng. Chứng minh Thật vậy, vì Fh là lược đồ cân bằng nên theo định nghĩa ta có: Fh ở dạng thu gọn tự nhiên và LS(Fh) = RS(Fh) = . Từ đó suy ra: LS(Fh) = RS(Fh) = LS(Fhx) = RS(Fhx) = x x x Mặt khác, do Fh ở dạng thu gọn tự nhiên Fhx cũng ở dạng thu gọn tự nhiên. Từ đó ta có: x= (Rx,Fhx ) là lược đồ cân bằng với mọi xid. Mệnh đề 2.10 Cho lược đồ khối  = (R, Fh ), R = (id; A1, A2, ... , An ). Khi đó nếu  xid, lược đồ của lát cắt tại điểm x: x= (Rx, Fhx ) là lược đồ cân bằng thì  = (R, Fh ) cũng là lược đồ cân bằng. Chứng minh Thật vậy, vì  xid, x= (Rx, Fhx ) là lược đồ cân bằng nên theo định nghĩa ta có: Fhx ở dạng thu gọn tự nhiên và LS(Fhx) = RS(Fhx) =  n i i 1 )( x  . Từ đó suy ra: ( )hx x id LS F  = ( )hx x id RS F  =     1 1 n n i i x id i i x id          (1) Mặt khác do Fhx ở dạng thu gọn tự nhiên nên: Fh = hx x id F  cũng ở dạng thu gọn tự nhiên. (2) Theo các kết quả (1) và (2) ta có:  = (R, Fh ) là lược đồ cân bằng. Từ các mệnh đề trên ta rút ra điều kiện cần và đủ sau về lược đồ cân
  • 65. 64 bằng: Định lý 2.5 Cho lược đồ khối  = (R,Fh ), R = (id; A1, A2, ... , An ). Khi đó:  = (R,Fh ) là lược đồ cân bằng khi và chỉ khi  xid, lược đồ của lát cắt tại điểm x: x= (Rx, Fhx ) là lược đồ cân bằng. Mệnh đề 2.11 Cho lược đồ khối  = (R,Fh ), R = (id; A1, A2, ... , An ). Khi đó: a) Nếu n =1 thì  xid, x=(Rx,Fhx ) và  = (R,Fh ) là các lược đồ không cân bằng. b) Nếu = (R,Fh ) là lược đồ cân bằng thì giao của các khóa trong lược đồ x=(Rx,Fhx ),  xid là UI x = . c) Nếu = (R,Fh ) là lược đồ cân bằng thì giao của các khóa trong nó là UI = . Chứng minh a) Với n = 1 thì  xid, x = (Rx,Fhx ) có Rx = (x, A1) = x(1) , nghĩa là lược đồ x = (Rx,Fhx ) chỉ có một thuộc tính chỉ số. Như vậy, đối với Fhx chỉ có 4 khả năng tạo các phụ thuộc hàm sau: 1. A  A (tầm thường). 2. A   (tầm thường). 3.    (tầm thường). 4.   A. Do đó ta chỉ có thể chọn Fhx =  hoặc Fhx = {  A}. Trường hợp thứ nhất: Rx = x(1) , Fhx =  ta có: LS(F) = RS(F) =   Rx. Trường hợp thứ hai: Rx = x(1) , Fhx = {  A} ta có: LS(F) =   A = RS(F).
  • 66. 65 ( ( ) ( )) hxf F RS f LS f  ( ) hxf F RS f  ( ( ) ( )) hf F RS f LS f  ( ) hf F RS f  Vậy trong cả hai trường hợp thì lược đồ lát cắt tại điểm xid: x = (Rx, Fhx ) đều không phải là lược đồ cân bằng. b) Nếu  = (R,Fh ) là lược đồ cân bằng thì theo kết quả của mệnh đề trên, các lược đồ lát cắt x = (Rx, Fhx ), ( x  id ) là lược đồ cân bằng. Từ đó, ta có:  fFhx : RS(f)  LS(f) =  Suy ra:  fFhx : RS(f) LS(f) = RS(f). Do đó: M = = = RS(Fhx) = Rx. Theo công thức tính giao các khóa ta có: UIx = Rx M = Rx Rx = ,  xid. c) Nếu  = (R,Fh ) là lược đồ cân bằng thì theo tính chất của nó ta có:  fFh: RS(f)  LS(f) =  Suy ra:  fFh: RS(f) LS(f) = RS(f). Do đó : M = = = RS(Fh) = R. Từ công thức tính giao các khóa ta có: UI = R M = R R = . Cho lược đồ khối  = (R,Fh ), R = (id; A1, A2, ... , An ), Fh là tập đầy đủ các phụ thuộc hàm. Khi đó ta có thuật toán dịch chuyển lược đồ khối  về dạng cân bằng sau đây: 2.6 Thuật toán dịch chuyển lược đồ khối về dạng cân bằng Thuật toán Balance Dạng Balance()
  • 67. 66  n i i 1 )( x   n i i 1 )( x  x x id   x x id V  hx x id G  Vào: = (R, Fh ), Fh là tập đầy đủ các phụ thuộc hàm. Ra: Lược đồ cân bằng  =(V,Gh ). Phương pháp: 1. Đặt Gh := Natural_Reduce(Fh); 2. Chọn x bất kỳ id, tính giao của các khóa trong x= (Rx,Ghx ): UIx = RS(Ghx); 3. Xác định M; 3.1 P:= RS(Ghx) LS(Ghx); 3.2 M = (PUIx)+ Ghx; 3.3 Tạo lược đồ x = (Vx ,Ghx ), Vx = . 4. while M   do 4.1 Dịch chuyển x=(Vx,Ghx ) theo M: x = x M; // Vx := Vx M, Ghx := Ghx M 4.2 Loại khỏi Ghx các phụ thuộc dạng: X . 4.3 Nhóm các phụ thuộc hàm có cùng vế trái trong Ghx XY1, XY2,..., XYk thành X  Y1Y2...Yk ; 4.4 M := Vx LS(Ghx) ; endwhile; 5. Đặt  := ,  =(V,Gh ). // V:= , Gh := 6. Trả kết quả(); Kết thúc Balance; Ở đây Natural_Reduce(Fh) là thuật toán rút gọn tự nhiên đối với tập phụ thuộc hàm Fh.
  • 68. 67 ( ( ) ( )) hxf G RS f LS f  ( ( ) ) hxf G LS f M  ( ) hxf G LS f M  Mệnh đề 2.12 Lược đồ khối  =(V,Gh) thu được sau khi thực hiện thuật toán Balance là lược đồ cân bằng. Chứng minh Để chứng minh  = (V,Gh) là lược đồ cân bằng ta chứng minh với mọi xid thì x = (Vx ,Ghx) là lược đồ cân bằng, từ đó theo kết quả của mệnh đề 2.3 ta suy ra  = (V,Gh) là lược đồ cân bằng. Ta thấy sau khi bước 1 của thuật toán được thực hiện thì Gh đã ở dạng thu gọn tự nhiên. Từ đó suy ra với mọi xid thì Ghx cũng ở dạng thu gọn tự nhiên. Mặt khác, ta có: P:=RS(Ghx) LS(Ghx); M = (PUIx)+ Ghx , Ghx ở dạng thu gọn tự nhiên nên:  f Ghx: RS(f) LS(f) =  RS(f) LS(f) = RS(f). Do đó: UIx = Vx = Vx RS(Ghx). Ta có: LS(Ghx) = = = LS(Ghx) M, tương tự RS(Ghx) = RS(Ghx) M. Ta chứng minh đẳng thức: LS(Ghx) M = RS(Ghx)M = Vx M theo sơ đồ sau: LS(Ghx) M  Vx M  RS(Ghx) M  LS(Ghx) M. Thật vậy, tại bước lặp đầu tiên ta có: a) LS(Ghx) M  Vx M, hiển nhiên. b) Vx M RS(Ghx) M: Nếu A  Vx M thì A M = (PUIx)+ Ghx  UIx, do đó:
  • 69. 68 A UI = Vx RS(Ghx) A RS(Ghx) và do đó A RS(Ghx) M. c) RS(Ghx) M LS(Ghx) M: Nếu A RS(Ghx) M thì A RS(Ghx) và A M = (PUIx)+ Ghx P. Do đó: A P = RS(Ghx) LS(Ghx) A LS(Ghx) và vì vậy: A LS(Ghx) M. Từ lần lặp thứ hai trở đi, tại bước 4.2 của thuật toán, sau khi loại bỏ các phụ thuộc hàm dạng X  khỏi Ghx thì các tập Vx và RS(Ghx) không thay đổi. Cụ thể là đẳng thức Vx = RS(Ghx) vẫn được bảo toàn, tuy nhiên tập LS(Ghx) có thể bị giảm đi. Như vậy, sau bước 4.2 thì tính chất về cân bằng có thể bị vi phạm. Vòng lặp while có nhiệm vụ cân bằng cân bằng ba tập Vx, RS(Ghx) và LS(Ghx). Do vậy, ta phải tính tiếp lượng chênh lệch: M := Vx LS(G ) tại bước 4.4. Theo bổ đề về các thuộc tính phi nguyên thủy ta có M U0 tập các khóa Key(x) không thay đổi trong quá trình dịch chuyển. Nếu M   ta tiếp tục dịch chuyển lược đồ x theo lượng chênh lệch M. Vì lược đồ lúc đầu là hữu hạn và các phép dịch chuyển đều thu nhỏ kích thước của các tệp Vx, LS(Ghx), RS(Ghx) nên đến lúc nào đó thì M = , vòng lặp kết thúc. Ta chứng minh khi vòng lặp kết thúc thì lược đồ thu được thỏa tính cân bằng. Thật vậy, từ M =  Vx = LS(Ghx), mặt khác kết hợp với bất biến của vòng lặp: Vx = RS(Ghx), ta có: LS(Ghx) = RS(Ghx) = Vx. Mệnh đề 2.13 Mọi lược đồ khối  = (R, Fh ) với Fh là tập đầy đủ các phụ thuộc hàm, đều chuyển được về dạng cân bằng  =(V,Gh) thỏa tính chất: Key() = UI  Key()
  • 70. 69 trong đó UI là giao các khóa của . Thuật toán dịch chuyển có độ phức tạp đa thức theo chiều dài dữ liệu vào O(n2 m), trong đó n là số lượng thuộc tính, m là số lượng phụ thuộc hàm. Chứng minh Thuật toán Balance chuyển lược đồ khối  = (R, Fh ) về lược đồ khối cân bằng  =(V,Gh). Ngoài ra, dựa vào kết quả của mệnh đề về việc dịch chuyển lược đồ khối theo các tập thuộc tính không khóa và giao của các khóa ta có: Key() = UI  Key(). Mọi bước của thuật toán Balance đều có độ phức tạp không quá O(mn), M là tập thuộc tính có tối đa n phần tử; do đó để M tiến tới  thì vòng lặp while cần thực hiện tối đa n lần. Tổng hợp lại, độ phức tạp của thuật toán là O(n2 m). Ví dụ 2.3: Cho lược đồ khối α = (R, F), R = ( id; A1, A2, A3, A4, A5, A6 ), id = {1, 2}, F = { 1(1) 2(1) 1(5) 2(5)  1(4) 2(4) , 1(2) 2(2) 1(3) 2(3)  1(3) 2(3) 1(5) 2(5) , 1(6) 2(6)  1(3) 2(3) , 1(5) 2(5)  1(2) 2(2) , 1(5) 2(5)  1(3) 2(3) }. Sau khi chuyển tập phụ thuộc hàm F về dạng thu gọn tự nhiên, ta tính UI = 1(1) 2(1) 1(6) 2(6) , thực hiện việc chuyển lược đồ α = (R,F) về lược đồ cân bằng β = (V,G) ta được: V = (id; A2, A5), G = {1(2) 2(2)  1(5) 2(5) , 1(5) 2(5)  1(2) 2(2) }. Vậy β = (V, G) là lược đồ cân bằng. Mặt khác ta dễ thấy: Key(β) = {1(2) 2(2) , 1(5) 2(5) }, từ đó sử dụng kết quả của mệnh đề 2.13 ta có: Key() = UI  Key() = (1(1) 2(1) 1(6) 2(6) )  {1(2) 2(2) , 1(5) 2(5) }  Key() = {1(1) 2(1) 1(2) 2(2) 1(6) 2(6) , 1(1) 2(1) 1(5) 2(5) 1(6) 2(6) }. 2.7 Tập các vế trái cực tiểu Từ đây trở đi ta luôn giả thiết rằng: mọi lược đồ khối  = (R,Fh ) đều có