SlideShare a Scribd company logo
1 of 132
BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC
VÀ CÔNG NGHỆ VIỆT NAM
HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
-----------------------------
VŨ QUỐC TUẤN
PHÁT HIỆN PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM
SUY RỘNG TRONG CƠ SỞ DỮ LIỆU
LUẬN ÁN TIẾN SỸ TOÁN HỌC
HÀ NỘI – 2019
BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC
VÀ CÔNG NGHỆ VIỆT NAM
HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
-----------------------------
VŨ QUỐC TUẤN
PHÁT HIỆN PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM
SUY RỘNG TRONG CƠ SỞ DỮ LIỆU
LUẬN ÁN TIẾN SỸ TOÁN HỌC
Chuyên ngành: Cơ sở Toán học cho Tin học
Mã số: 9 46 01 10
Người hướng dẫn khoa học:
1. PGS. TS. Hồ Thuần
2. PGS. TS. Nguyễn Thanh Tùng
Hà Nội – 2019
i
LỜI CAM ĐOAN
Tác giả xin cam đoan đây là công trình nghiên cứu do chính tác giả
thực hiện dưới sự hướng dẫn khoa học của PGS. TS. Hồ Thuần và PGS. TS.
Nguyễn Thanh Tùng tại Học viện Khoa học và Công nghệ - Viện Hàn lâm
Khoa học và Công nghệ Việt Nam. Tất cả các kết quả trình bày trong luận án
là trung thực, không sao chép từ bất kỳ công trình nào khác. Nếu có điều gì
không trung thực, tác giả xin chịu hoàn toàn trách nhiệm.
Tác giả
Vũ Quốc Tuấn
ii
LỜI CẢM ƠN
Luận án này được thực hiện tại Học viện Khoa học và Công nghệ, Viện
Hàn lâm Khoa học và Công nghệ Việt Nam dưới sự hướng dẫn khoa học của
PGS. TS. Hồ Thuần và PGS. TS. Nguyễn Thanh Tùng. Tác giả xin bày tỏ
lòng biết ơn sâu sắc tới các Thầy đã tận tình chỉ bảo, động viên, hướng dẫn và
tạo mọi điều kiện thuận lợi để tác giả hoàn thành luận án.
Tác giả xin trân trọng cảm ơn tập thể các Thầy Cô trong Viện Công
nghệ Thông tin đã có nhiều ý kiến đóng góp và phản biện trong suốt quá trình
tác giả nghiên cứu và hoàn chỉnh luận án. Tác giả xin chân thành cảm ơn các
nhà khoa học, các tác giả của các công trình đã được tham khảo và trích dẫn
trong luận án.
Tác giả xin trân trọng cảm ơn Lãnh đạo Viện Công nghệ Thông tin,
Học Viện Khoa học và Công nghệ đã tạo những điều kiện tốt nhất để tác giả
có được môi trường nghiên cứu và hoàn thành chương trình nghiên cứu sinh
của mình. Xin chân thành cảm ơn các Phòng ban của Viện Công nghệ Thông
tin đã giúp đỡ, tạo điều kiện cho tác giả trong suốt quá trình thực hiện luận án.
Tác giả xin cảm ơn Ban giám hiệu Trường Cao đẳng Hải Dương, Khoa
Tự Nhiên và Khoa Điện-Cơ-Tin đã tạo điều kiện thuận lợi cho tác giả thực
hiện luận án. Xin cảm ơn tất cả các bạn đồng nghiệp đã luôn chia sẻ, động
viên tác giả trong những lúc khó khăn.
Cuối cùng, tác giả xin bày tỏ lòng biết ơn đối với những người thân
trong gia đình, đặc biệt là mẹ và vợ, đã luôn ủng hộ và động viên cho tác giả
trong suốt thời gian hoàn thành luận án.
iii
MỤC LỤC
Danh sách hình vẽ v
Danh sách bảng v
Danh sách chữ viết tắt vi
MỞ ĐẦU 1
Chương 1. PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG
TRONG MÔ HÌNH DỮ LIỆU QUAN HỆ 6
1.1. Nhắc lại một số khái niệm cơ bản.................................................................6
1.1.1. Miền......................................................................................................6
1.1.2. Quan hệ.................................................................................................6
1.1.3. Các tính chất đặc trưng của một quan hệ ...............................................7
1.1.4. Lược đồ quan hệ....................................................................................7
1.2. Phụ thuộc hàm..............................................................................................8
1.2.1. Khái niệm phụ thuộc hàm......................................................................8
1.2.2. Hệ quy tắc suy diễn Armstrong .............................................................9
1.2.3. Bao đóng của một tập thuộc tính ...........................................................9
1.2.4. Khóa của lược đồ quan hệ .....................................................................9
1.3. Phụ thuộc hàm suy rộng .............................................................................10
1.3.1. Phụ thuộc hàm xấp xỉ..........................................................................11
1.3.2. Phụ thuộc hàm mêtric..........................................................................13
1.3.3. Phụ thuộc hàm điều kiện .....................................................................14
1.3.4. Phụ thuộc hàm mờ...............................................................................16
1.3.5. Phụ thuộc sai phân...............................................................................17
1.3.6. Các loại phụ thuộc hàm suy rộng khác ................................................18
1.4. Phát hiện phụ thuộc hàm.............................................................................18
1.4.1. Phương pháp top-down .......................................................................19
1.4.2. Phương pháp bottom-up ......................................................................28
1.4.3. Một số chủ đề liên quan đến phát hiện phụ thuộc hàm.........................32
1.5. Phát hiện phụ thuộc hàm suy rộng..............................................................34
1.5.1. Phát hiện phụ thuộc hàm xấp xỉ...........................................................34
1.5.2. Phát hiện phụ thuộc hàm điều kiện ......................................................36
1.6. Tổng kết chương 1......................................................................................39
iv
Chương 2. PHỤ THUỘC HÀM XẤP XỈ
VÀ PHỤ THUỘC HÀM ĐIỀU KIỆN 41
2.1. Về một số kết quả liên quan đến FD và AFD..............................................41
2.1.1. Phân hoạch..........................................................................................41
2.1.2. Một số kết quả.....................................................................................42
2.2. Phát hiện FD và AFD .................................................................................45
2.2.1. Ma trận tương đương...........................................................................45
2.2.2. Một số tính chất của ma trận thuộc tính...............................................48
2.2.3. Sử dụng ma trận để kiểm tra phụ thuộc hàm........................................49
2.2.4. Sử dụng ma trận để tính một số độ đo xấp xỉ.......................................50
2.3. Phụ thuộc hàm điều kiện.............................................................................54
2.3.1. Sự cần thiết phải mở rộng FD thành CFD............................................54
2.3.2. Cú pháp và ngữ nghĩa của CFD...........................................................54
2.3.3. Một số kết quả quan trọng đã biết về CFD...........................................57
2.4. Về một thứ tự phân cấp giữa các FD, CFD và AR ......................................62
2.5. Kết luận chương 2 ......................................................................................72
Chương 3. THUẬT TOÁN TÍNH BAO ĐÓNG VÀ VẤN ĐỀ RÚT GỌN
BÀI TOÁN TÌM KHÓA CỦA LƯỢC ĐỒ QUAN HỆ 73
3.1. Thuật toán tính bao đóng............................................................................73
3.1.1. Khái niệm bao đóng ............................................................................73
3.1.2. Một số thuật toán tính bao đóng ..........................................................74
3.2. Vấn đề rút gọn bài toán xác định khóa của lược đồ quan hệ........................87
3.2.1. Một số kết quả đã biết .........................................................................87
3.2.2. Một dạng cải tiến cho điều kiện cần đã được công bố năm 1985..........89
3.2.3. So sánh các điều kiện cần....................................................................91
3.2.4. Một bài toán quyết định.......................................................................95
3.3. Kết luận chương 3 ......................................................................................96
Chương 4. VỀ MỘT PHÉP BIẾN ĐỔI TIỀN XỬ LÝ HIỆU QUẢ
CÁC TẬP PHỤ THUỘC HÀM 97
4.1. Giới thiệu ...................................................................................................97
4.2. Sự dư thừa trong tập phụ thuộc hàm ......................................................... 100
4.3. Một phép biến đổi tiền xử lý hiệu quả các tập FD..................................... 101
4.3.1. Logic Paredaens ................................................................................ 102
4.3.2. Một chứng minh mới cho định lý 4.1................................................. 107
4.4. Tổng kết chương 4.................................................................................... 113
KẾT LUẬN 114
DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 116
TÀI LIỆU THAM KHẢO 117
v
DANH SÁCH HÌNH VẼ
Hình 1.1. Minh họa dàn thuộc tính........................................................... 20
Hình 2.1. Các luật suy diễn đối với CFD ................................................. 60
DANH SÁCH BẢNG BIỂU
Bảng 1.1. Quan hệ Nhân viên................................................................... 11
Bảng 1.2. Quan hệ Phim .......................................................................... 13
Bảng 1.3. Quan hệ Qh1............................................................................. 14
Bảng 1.4. Quan hệ Cust ........................................................................... 15
Bảng 1.5. Quan hệ Qh2............................................................................. 17
Bảng 1.6. Quan hệ Qh3............................................................................. 19
Bảng 1.7. Minh họa phụ thuộc hàm điều kiện .......................................... 38
Bảng 2.1. Một quan hệ minh họa ............................................................. 47
Bảng 2 .2. Quan hệ r................................................................................ 67
Bảng 2.3. Quan hệ r1................................................................................ 68
Bảng 2.4. Quan hệ r2................................................................................ 68
Bảng 2.5. Quan hệ r3................................................................................ 68
Bảng 2.6. Quan hệ r4................................................................................ 68
Bảng 3.1. Minh họa cho ví dụ 3.3 ............................................................ 80
Bảng 3.2. Kết quả thử nghiệm.................................................................. 82
Bảng 3.3. Minh họa thuật toán 3.7 ........................................................... 84
Bảng 4.1. Quan hệ phân công .................................................................. 98
Bảng 4.2. Minh họa cho ví dụ 4.6 .......................................................... 111
Bảng 4.3. Minh họa cho ví dụ 4.7 .......................................................... 112
vi
DANH SÁCH CHỮ VIẾT TẮT
Từ
viết tắt
Tiếng Anh Tiếng Việt
FD Functional dependency Phụ thuộc hàm
RFD Relaxed functional dependencies Phụ thuộc hàm suy rộng
AFD Approximate functional dependency Phụ thuộc hàm xấp xỉ
MFD Metric functional dependency Phụ thuộc hàm mêtric
FFD Fuzzy functional dependency Phụ thuộc hàm mờ
DD Differential dependencies Phụ thuộc sai phân
CFD Conditional Functional dependency Phụ thuộc hàm điều kiện
AR Association Rule Luật kết hợp
eCFD
Extended Conditional Functional
dependency
Phụ thuộc hàm điều kiện
mở rộng
CIND Conditional Inclusion Dependency
Phụ thuộc bao hàm điều
kiện
1
MỞ ĐẦU
Các phụ thuộc dữ liệu có vai trò quan trọng trong thiết kế cơ sở dữ liệu,
quản lý chất lượng dữ liệu và biểu diễn tri thức. Việc sử dụng các phụ thuộc
trong thiết kế cơ sở dữ liệu và quản lý chất lượng dữ liệu được giới thiệu
trong phần lớn các sách về cơ sở dữ liệu. Các phụ thuộc trong trường hợp này
được trích xuất từ các yêu cầu về ứng dụng, được sử dụng trong việc chuẩn
hóa cơ sở dữ liệu và được cài đặt trong cơ sở dữ liệu đã được thiết kế để đảm
bảo chất lượng dữ liệu. Ngược lại, các phụ thuộc trong phát hiện tri thức được
trích xuất từ dữ liệu hiện có của cơ sở dữ liệu. Quá trình trích xuất này được
gọi là phát hiện phụ thuộc với mục đích tìm tất cả các phụ thuộc được thỏa
mãn (đúng) trên dữ liệu hiện có.
Mục đích của việc phát hiện phụ thuộc là tìm các phụ thuộc quan trọng
đúng (thỏa mãn) trên dữ liệu của cơ sở dữ liệu. Các phụ thuộc (được phát
hiện) biểu diễn tri thức (thuộc lĩnh vực hoạt động nào đó) và có thể được sử
dụng để kiểm tra thiết kế cơ sở dữ liệu cũng như đánh giá chất lượng dữ liệu.
Ví dụ. Bằng việc kiểm tra dữ liệu của một cơ sở dữ liệu y học có hai
thuộc tính Bệnh và Triệu chứng, nếu viêm phổi là một giá trị của Bệnh và sốt
là một giá trị của Triệu chứng, đồng thời nếu mỗi bệnh nhân viêm phổi đều bị
sốt thì sốt được cho là có liên quan đến viêm phổi. Nếu điều này xảy ra (đúng)
đối với mọi cặp giá trị Triệu chứng và Bệnh thì Bệnh xác định hàm Triệu
chứng và đây là một phụ thuộc hàm. Nếu phụ thuộc hàm này là một tri thức
mới, nó sẽ giúp cho việc chẩn đoán bệnh hiệu quả hơn. Trong lĩnh vực khoa
học sức khỏe hiện đại, việc tìm các mối liên hệ và các phụ thuộc như vậy
(giữa các đoạn DNA và Bệnh) trở nên rất quan trọng đối với sự phát triển của
y học.
Bên cạnh việc phát hiện tri thức, các phụ thuộc được phát hiện từ dữ
liệu có thể được sử dụng để kiểm tra xem các phụ thuộc đã được định nghĩa
trước đây trên cơ sở dữ liệu có đúng (thỏa mãn) và đầy đủ hay không, đồng
thời có thể dùng để kiểm tra ngữ nghĩa của dữ liệu trong cơ sở dữ liệu.
2
Một ứng dụng nữa của các phụ thuộc (được phát hiện) là để đánh giá
chất lượng của dữ liệu. Vai trò chính của việc cài đặt các phụ thuộc trong một
cơ sở dữ liệu là để đảm bảo chất lượng dữ liệu của cơ sở dữ liệu. Do đó, trên
cơ sở phân tích các phụ thuộc được phát hiện và các phụ thuộc phải có giữa
các thuộc tính của dữ liệu, ta có thể tìm và xác định được sự không nhất quán
giữa các thuộc tính và các lỗi sai trên dữ liệu; từ đó, đánh giá được chất lượng
dữ liệu.
Từ những năm đầu thập kỷ 80 của thế kỷ 20, bài toán phát hiện phụ
thuộc đã thu hút được sự quan tâm của đông đảo các nhà khoa học thuộc
nhiều lĩnh vực nghiên cứu khác nhau như thiết kế cơ sở dữ liệu, học máy và
phát hiện tri thức ([3], [10], [12], [18], [21], [26], [32], [33], [34], [37], [42],
[45], [57], [65], [72], [75],...). Và cho đến thời điểm hiện tại, vấn đề phát hiện
phụ thuộc từ các tập dữ liệu lớn (big data) càng trở nên quan trọng vì trong
các tập dữ liệu lớn này chứa rất nhiều tri thức quý giá.
Hiện nay, với sự phát triển của toàn xã hội và các thiết bị số, đặc biệt là
các ứng dụng mạng xã hội và điện thoại thông minh (smartphone), lượng dữ
liệu trong các ứng dụng tăng rất nhanh làm nảy sinh vấn đề lưu trữ, quản lý
dữ liệu và đặc biệt là vấn đề phát hiện tri thức từ các tập dữ liệu lớn đó. Bài
toán phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng trong cơ sở dữ liệu
là một trong những vấn đề quan trọng của phát hiện tri thức (dưới dạng các
phụ thuộc). Ba loại phụ thuộc điển hình được chú ý phát hiện là phụ thuộc
hàm (FD: Functional Dependency), phụ thuộc hàm xấp xỉ (AFD:
Approximate Functional Dependency) và phụ thuộc hàm điều kiện (CFD:
Conditional Functional Dependency). AFD là sự mở rộng của FD, tính chất
xấp xỉ dựa trên độ thỏa hoặc độ đo lỗi; CFD là sự mở rộng của FD, nhằm nắm
bắt những yếu tố không nhất quán trong dữ liệu.
Các hướng nghiên cứu giải quyết bài toán phát hiện FD suy rộng trong
cơ sở dữ liệu, trước hết tập trung vào vấn đề phát hiện FD do loại phụ thuộc
này là trường hợp riêng của tất cả các loại FD suy rộng, các kết quả về phát
hiện FD có thể được thích nghi để phát hiện các loại phụ thuộc khác (chẳng
3
hạn AFD). Mô hình chung của bài toán phát hiện FD là xây dựng không gian
tìm kiếm các FD, kiểm tra sự thỏa mãn của từng FD, tỉa không gian tìm kiếm,
xuất ra tập FD đã phát hiện được và làm gọn tập FD này (giảm bớt sự dư
thừa). Trong bài toán phát hiện FD, phát hiện khóa là trường hợp đặc biệt và
cũng là bài toán rất đáng quan tâm do khóa đóng vai trò quan trọng trong
chuẩn hóa cơ sở dữ liệu quan hệ.
Độ phức tạp thời gian tổng quát của bài toán phát hiện FD là đa thức
theo số bản ghi trong cơ sở dữ liệu nhưng là hàm mũ theo số thuộc tính của cơ
sở dữ liệu đó. Do đó, để giảm thời gian xử lý, cần xây dựng các luật tỉa hiệu
quả. Trong số các luật tỉa đã được đề xuất, tỉa khóa là rất quan trọng, khi phát
hiện được khóa thì có thể tỉa (xóa) mọi nút chứa khóa trong không gian tìm
kiếm. Tuy nhiên, các luật tỉa khóa hiện có vẫn còn nhược điểm là tìm khóa
trên toàn bộ tập thuộc tính  của cơ sở dữ liệu (đây thực sự là vấn đề rất khó
vì độ phức tạp thời gian có thể là hàm mũ theo số thuộc tính của ), vậy có
cách nào phát hiện được khóa trong một tập con thực sự của  hay không?
Câu hỏi trên chính là một trong những động lực cơ bản của luận án này.
Sau khi đã phát hiện được tập các phụ thuộc, tập này có thể rất lớn và
gây khó khăn cho việc sử dụng vì chứa những dư thừa không cần thiết. Vấn
đề quan trọng đặt ra là làm thế nào để loại bỏ được (càng nhiều càng tốt) sự
dư thừa trong tập phụ thuộc đã được phát hiện. Đây cũng là bài toán được
quan tâm trong luận án.
Một hướng nghiên cứu nữa trong luận án là tập trung nghiên cứu, phát
hiện hai loại FD suy rộng điển hình, đó là AFD và CFD. Cả AFD và CFD đều
có nhiều ứng dụng và xuất hiện nhiều trong các cơ sở dữ liệu quan hệ, đặc
biệt CFD còn là công cụ mạnh trong giải quyết bài toán làm sạch dữ liệu
([12]). Với AFD, vấn đề quan trọng nhất là cải tiến và phát triển các kỹ thuật
tính toán các độ thỏa hoặc độ đo lỗi ([34], [72]); với CFD, ngoài việc phát
hiện, thì việc tìm hiểu về một thứ tự phân cấp giữa CFD và một số loại phụ
thuộc khác cũng là vấn đề rất đáng quan tâm.
4
Trong những năm gần đây, các hướng nghiên cứu về cải tiến thuật toán
tính bao đóng của một tập thuộc tính đối với một tập FD, vấn đề rút gọn cho
bài toán xác định khóa của lược đồ quan hệ, vấn đề về các phép biến đổi tiền
xử lý hiệu quả các tập FD cho trước đã được xới lại, làm mới với hàng loạt
các công trình của các tác giả nước ngoài ([22], [23], [24], [25], [52], [53],
[54], [55]), trong khi ở trong nước, có nhiều công trình được công bố liên
quan tới các phương pháp và thuật toán xác định các tập rút gọn (reduct) của
một bảng quyết định theo nhiều tiếp cận khác nhau.
Mục tiêu của luận án là nghiên cứu nhằm thu được một số kết quả giúp
giải quyết có hiệu quả một số vấn đề như đã phân tích ở trên trong phạm vi cơ
sở dữ liệu quan hệ. Để thực hiện các mục tiêu trên, chúng tôi tập trung vào
các nội dung sau:
1) Nghiên cứu tổng quan về các loại FD suy rộng, các phương pháp
phát hiện FD và FD suy rộng trong cơ sở dữ liệu quan hệ.
2) Nghiên cứu về AFD và CFD: kỹ thuật tính độ thỏa hoặc độ đo lỗi
trong AFD, về một thứ tự phân cấp giữa CFD và một số loại phụ thuộc khác.
3) Nghiên cứu các thuật toán tính bao đóng của tập thuộc tính đối với
một tập FD. Cải tiến được các thuật toán này sẽ làm tăng hiệu năng phát hiện
khóa của lược đồ quan hệ. Nghiên cứu vấn đề rút gọn cho bài toán xác định
khóa của lược đồ quan hệ, đây là vấn đề quan trọng, là cơ sở cho các luật tỉa
khóa nhằm thu hẹp không gian tìm kiếm khi phát hiện các FD.
4) Nghiên cứu về một phép biến đổi tiền xử lý các tập FD nhằm thu
được một tập FD tương đương nhưng đơn giản hơn tập FD ban đầu.
Với các nội dung nghiên cứu trên, luận án được cấu trúc gồm phần mở
đầu, bốn chương nội dung và phần kết luận.
Chương 1. Trình bày tổng quan về mô hình dữ liệu quan hệ, các khái
niệm FD, bao đóng của một tập thuộc tính, khóa của lược đồ quan hệ,…Trong
đó tập trung trình bày về FD suy rộng và khát quát các phương pháp đã được
sử dụng để phát hiện các FD và FD suy rộng.
5
Chương 2. Trình bày về AFD và CFD (hai loại FD suy rộng điển hình)
và một số kết quả có liên quan.
Chương 3. Trình bày các thuật toán tính bao đóng của một tập thuộc
tính đối với một tập FD, vấn đề rút gọn cho bài toán xác định khóa của lược
đồ quan hệ và một số kết quả có liên quan.
Chương 4. Trình bày một phép biến đổi tiền xử lý hiệu quả các tập FD
(nhằm hạn chế sự dư thừa trong một tập FD cho trước) và một số kết quả liên
quan.
Kết luận. Tổng kết các kết quả đã đạt được, những điểm còn tồn tại và
hướng nghiên cứu tiếp theo.
6
Chương 1.
PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG
TRONG MÔ HÌNH DỮ LIỆU QUAN HỆ
Chương này nhắc lại các khái niệm cơ bản của mô hình dữ liệu quan
hệ, tập trung vào các khái niệm phụ thuộc hàm, phụ thuộc hàm suy rộng và
khái quát các phương pháp đã được sử dụng để phát hiện phụ thuộc hàm và
phụ thuộc hàm suy rộng.
1.1. Nhắc lại một số khái niệm cơ bản
Mô hình dữ liệu quan hệ được E.F.Codd đề xuất năm 1970 và ngay lập
tức mô hình này đã gây được sự chú ý vì có tính đơn giản và cơ sở toán học
vững chắc. Mô hình dữ liệu quan hệ biểu thị dữ liệu trong một cơ sở dữ liệu
như một tập các quan hệ. Về mặt trực quan, ta có thể hình dung một quan hệ
như là một bảng giá trị gồm các hàng và các cột. Mỗi hàng trong bảng là một
tập các giá trị có liên quan đến nhau, các giá trị này biểu thị một sự kiện
tương ứng với một thực thể hay một mối quan hệ trong thế giới thực.
Trong lý thuyết mô hình dữ liệu quan hệ, các thuật ngữ quan hệ, thuộc
tính, miền và bộ tương ứng được dùng để chỉ bảng, cột, kiểu dữ liệu của một
cột và một hàng trong bảng.
1.1.1. Miền
Một miền D là một tập các giá trị nguyên tố, hiểu theo nghĩa mỗi giá trị
trong miền là không thể phân chia được thành các thành phần nhỏ hơn trong
phạm vi mô hình quan hệ. Mỗi miền được đặc tả thông qua một tên miền và
một kiểu dữ liệu. Tương ứng với mỗi thuộc tính có một miền, các thuộc tính
khác nhau không nhất thiết phải có các miền khác nhau.
1.1.2. Quan hệ
Một quan hệ trên (hay xác định trên) tập thuộc tính Ω = {A1, A2,…,An}
là một tập con của tích Descartes
Dom(A1)  Dom(A2)  …  Dom(An),
trong đó Dom(Ai) là miền trị của thuộc tính Ai, i = 1, 2,…, n.
7
Cho quan hệ r xác định trên tập thuộc tính Ω = {A1, A2,…,An}. Theo
định nghĩa, ta có thể viết r dưới dạng sau:
r  {(a1, a2,…,an) | ai  Dom(Ai), i = 1, 2,…, n}
1.1.3. Các tính chất đặc trưng của một quan hệ
Để làm rõ hơn khái niệm quan hệ trong mô hình dữ liệu quan hệ, ta
xem xét các tính chất đặc trưng sau đây của quan hệ:
 Mỗi quan hệ có một tên phân biệt.
 Mỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố.
 Mỗi thuộc tính có một tên phân biệt.
 Các giá trị của một thuộc tính thuộc cùng một miền.
 Thứ tự của các thuộc tính là không quan trọng.
 Không có hai bộ trùng nhau trong một quan hệ.
 Thứ tự của các bộ là không quan trọng.
Mỗi giá trị trong một bộ phải là một giá trị nguyên tố. Mô hình dữ liệu
quan hệ không cho phép có các thuộc tính phức hợp hoặc các thuộc tính đa
trị. Đặc trưng này đòi hỏi mỗi thuộc tính đa trị phải được biểu diễn bằng một
quan hệ và mỗi thuộc tính phức hợp phải được biểu diễn bằng các thành phần
đơn của nó.
Trường hợp một số ô trong bảng (quan hệ) có thể là chưa biết được giá
trị của chúng vào thời điểm đang xét hoặc không có giá trị nào thích hợp đặt
cho một ô (thuộc tính) của một bộ nào đó thì một giá trị đặc biệt, gọi là giá trị
null, được sử dụng cho các ô kiểu này.
Thứ tự của các thuộc tính trong một quan hệ là không quan trọng khi
đảm bảo được sự tương ứng giữa các thuộc tính với các giá trị.
Vì các phần tử trong một tập hợp là không có thứ tự nên các bộ không
có một thứ tự bắt buộc trong một quan hệ. Định nghĩa quan hệ cũng cho thấy
rằng hai quan hệ được xem là đồng nhất nếu chúng có cùng các bộ cho dù thứ
tự các bộ trong chúng khác nhau.
1.1.4. Lược đồ quan hệ
Một lược đồ quan hệ S là một cặp có thứ tự S = <Ω, F>, trong đó Ω là
8
tập hữu hạn các thuộc tính của quan hệ, F là tập các ràng buộc giữa các thuộc
tính.
Một ràng buộc trên tập thuộc tính {A1, A2,…,An} là một tính chất trên
tập tất cả các quan hệ xác định trên tập thuộc tính này. Mỗi ràng buộc còn
được gọi là một phụ thuộc dữ liệu.
Một lược đồ quan hệ được sử dụng để mô tả về cấu trúc và các ràng
buộc của một quan hệ. Một quan hệ có thể liên tục thay đổi theo thời gian
nhưng cấu trúc và các ràng buộc của nó có thể ổn định trong một khoảng thời
gian nhất định.
Cho lược đồ quan hệ S = <Ω, F> với Ω = {A1, A2,…,An}. Nếu không
quan tâm đến tập các ràng buộc F thì ta sẽ dùng ký hiệu S(A1, A2,…,An) hoặc
S(Ω) thay cho S = <Ω, F>.
Ta dùng ký hiệu r(S) để chỉ một quan hệ r (hay một thể hiện r) của lược
đồ quan hệ S. Với một bộ t của r(S) và X  Ω, ta ký hiệu t[X] là bộ chỉ chứa
các giá trị của bộ t tại các thuộc tính trong X.
Một lược đồ cơ sở dữ liệu quan hệ là một tập các lược đồ quan hệ S’ =
{S1, S2,…,Sp}. Một thể hiện của một lược đồ cơ sở dữ liệu quan hệ S’ là một
tập các thể hiện DB = {r1(S1), r2(S2),…, rp(Sp)}. Một cơ sở dữ liệu quan hệ là
một thể hiện của một lược đồ cơ sở dữ liệu quan hệ.
Một cơ sở dữ liệu quan hệ cỡ lớn là một cơ sở dữ liệu quan hệ chứa
một lượng lớn dữ liệu (cỡ vài chục thuộc tính, hàng trăm nghìn bản ghi).
1.2. Phụ thuộc hàm
Phụ thuộc hàm là một loại phụ thuộc dữ liệu giữa hai nhóm thuộc tính
của một lược đồ quan hệ và nó thể hiện tính chất ngữ nghĩa của các thuộc
tính.
1.2.1. Khái niệm phụ thuộc hàm
Phụ thuộc hàm. Cho  là tập thuộc tính và S() là một lược đồ quan hệ
trên . Giả sử X, Y  . Khi đó Y được gọi là phụ thuộc hàm vào X trên lược
đồ S(), ký hiệu là X  Y, nếu với mọi quan hệ r trên lược đồ S(), với hai
bộ bất kỳ t1, t2  r mà t1[X] = t2[X] thì t1[Y] = t2[Y].
9
Nếu Y phụ thuộc hàm vào X thì ta cũng nói "X xác định hàm Y". Với
mỗi quan hệ r trên lược đồ S(), ta nói r thỏa mãn (hay thỏa) phụ thuộc hàm
X  Y (hay phụ thuộc hàm X  Y đúng trên r) nếu và chỉ nếu với mọi bộ t1,
t2  r, t1[X] = t2[X] kéo theo t1[Y] = t2[Y] . Trong luận án này, ta hạn chế F của
lược đồ S = <, F> chỉ gồm các phụ thuộc hàm.
1.2.2. Hệ quy tắc suy diễn Armstrong
Với lược đồ quan hệ S = <, F> và X, Y  , ta ký hiệu XY thay cho
X  Y. Với mọi X, Y, Z  , hệ quy tắc suy diễn Armstrong đối với các phụ
thuộc hàm gồm ba quy tắc sau đây:
Q1. (Phản xạ): Nếu Y  X thì X  Y.
Q2. (Gia tăng): Nếu X  Y thì XZ  YZ.
Q3. (Bắc cầu): Nếu X  Y và Y  Z thì X  Z.
Ký hiệu F+
là tập tất cả các phụ thuộc hàm được suy diễn từ F bằng
cách áp dụng một số hữu hạn lần các quy tắc của hệ quy tắc suy diễn
Armstrong.
1.2.3. Bao đóng của một tập thuộc tính
Cho tập phụ thuộc hàm F xác định trên tập thuộc tính  (phụ thuộc
hàm Y  Z xác định trên tập thuộc tính  nếu Y, Z  ) và X  . Ta gọi
bao đóng của tập thuộc tính X đối với tập phụ thuộc hàm F, ký hiệu là FX 
, là
tập tất cả các thuộc tính A của  sao cho X  A được suy diễn từ F nhờ hệ
quy tắc suy diễn Armstrong.
FX 
= {A    (X  A)  F+
}
1.2.4. Khóa của lược đồ quan hệ
Một quan hệ là một tập hợp các bộ. Các phần tử trong một tập hợp là
phân biệt nên không thể có hai bộ trùng nhau trong một quan hệ. Như vậy,
với mỗi lược đồ quan hệ S = <Ω, F>, tồn tại một tập thuộc tính SK  Ω có
tính chất: với mỗi thể hiện r(S) thì t1[SK] ≠ t2[SK], với t1, t2 là hai bộ khác
nhau bất kỳ trong r.
10
Siêu khóa của một lược đồ quan hệ S là một tập gồm một hay nhiều
thuộc tính của lược đồ S có tính chất xác định duy nhất một bộ trong mỗi thể
hiện của S.
Cho lược đồ quan hệ S = <Ω, F>. Nếu SK là siêu khóa của S thì mọi tập
con của Ω mà chứa SK cũng là siêu khóa của S. Một siêu khóa "nhỏ nhất"
được gọi là một khóa.
Khóa của một lược đồ quan hệ S là một siêu khóa của S sao cho mọi tập
con thực sự của siêu khóa này đều không phải là siêu khóa của S.
Mỗi lược đồ quan hệ luôn có ít nhất một khóa và có thể có nhiều khóa.
Một thuộc tính xuất hiện trong một khóa nào đó được gọi là thuộc tính khóa.
Ngược lại, một thuộc tính không xuất hiện trong bất kỳ khóa nào được gọi là
thuộc tính không khóa.
Sử dụng khái niệm phụ thuộc hàm, khái niệm khóa và siêu khóa của
lược đồ quan hệ được định nghĩa lại như sau:
Cho lược đồ quan hệ S = <, F> và K  . Ta nói K là một khóa của
S nếu hai điều kiện sau đây đồng thời được thỏa mãn:
(i). (K  )  F+
(ii). Nếu K'  K thì (K'  )  F+
Nếu K   thỏa mãn điền kiện (i) thì K được gọi là một siêu khóa của
S. Như vậy, mọi khóa của S đồng thời cũng là siêu khóa của S.
1.3. Phụ thuộc hàm suy rộng
Cho r là một quan hệ xác định trên tập thuộc tính Ω = {A1, A2,…,An} và
X, Y  . Từ định nghĩa phụ thuộc hàm ở trên, ta nhận thấy: nếu tồn tại t1, t2
 r sao cho t1[X] = t2[X] và t1[Y]  t2[Y] thì ta kết luận được rằng r không thỏa
phụ thuộc hàm X  Y (hay phụ thuộc hàm X  Y không đúng trên r). Điều
này tỏ ra quá chặt chẽ và cứng nhắc khi ta hình dung quan hệ r có hàng nghìn
bộ, trong đó chỉ có một vài bộ vi phạm phụ thuộc hàm X  Y do có một số dữ
liệu bị sai lệch hoặc một số ngoại lệ. Do đó, việc mở rộng khái niệm phụ
thuộc hàm thành phụ thuộc hàm suy rộng theo một cách thức, một nghĩa nào
11
đó là nhu cầu tất yếu và tự nhiên. Tùy theo cách thức và ý nghĩa của sự mở
rộng, các phụ thuộc hàm suy rộng có thể được đặt tên khác nhau như phụ
thuộc hàm xấp xỉ, phụ thuộc hàm điều kiện, phụ thuộc hàm metric,...
1.3.1. Phụ thuộc hàm xấp xỉ
Phụ thuộc hàm xấp xỉ [41] là các phụ thuộc hàm được thỏa mãn với
phần lớn các bộ trong quan hệ. Để định nghĩa thuật ngữ "xấp xỉ" một cách
chính xác hơn, một độ đo được sử dụng để đo mức độ thỏa mãn (độ thỏa) hay
mức độ vi phạm (độ đo lỗi) của mỗi phụ thuộc hàm.
Để xác định mức độ vi phạm của X  Y trên quan hệ r, một độ đo lỗi
nào đó, ký hiệu là ( , )e X Y r , sẽ được sử dụng. Cho trước một ngưỡng lỗi
, 0    1. Ta nói X  Y là phụ thuộc hàm xấp xỉ nếu và chỉ nếu
( , )e X Y r   .
Một độ đo lỗi được sử dụng phổ biến là g3 [41], dựa trên số bộ tối thiểu
cần phải loại bỏ khỏi r để X  Y đúng.
 1 1 1
3
| |: , 
( , )
| |
r r r X Y r r
g X Y r
r
 
 
min ®óng trªn
Ví dụ 1.1. Với quan hệ cho trong bảng 1.1, ta thấy Tên xác định xấp xỉ
Giới tính, để phụ thuộc hàm Tên  Giới tính đúng ta chỉ cần loại bỏ một bộ
có mã số 003. Ta có:
g3(Tên  Giới tính, Nhân viên) = 1/8 = 0.125
Mã số Họ đệm Tên Giới tính Chức vụ
t1 001 Vũ Văn Tuấn Nam Trưởng phòng
t2 002 Nguyễn Thị Mai Nữ Phó trưởng phòng
t3 003 Phạm Thị Hải Nữ Nhân viên
t4 004 Trần Văn Hải Nam Nhân viên
t5 005 Nguyễn Minh Tuấn Nam Nhân viên
t6 006 Vũ Thị Linh Nữ Nhân viên
t7 007 Lê Văn Hải Nam Nhân viên
t8 008 Nguyễn Văn Thắng Nam Nhân viên
Bảng 1.1. Quan hệ Nhân viên
12
Có nhiều phương pháp đã được đề xuất để tính độ thỏa hoặc độ đo lỗi.
Các phương pháp này được tóm tắt và so sánh trong [34]. Chẳng hạn, trong
[72], độ thỏa của X  Y trên quan hệ r được xác định như sau:
TRUTHr(X  Y ) =
NTP
YXTRUTH
ji
ji
jitt
Rtt
tt 
 ,
),( )(
trong đó, nếu ti[X] = tj[X] và ti[Y]  tj[Y] thì ( , ) ( ) 0i jt tTRUTH X Y  , ngược
lại ( , ) ( ) 1i jt tTRUTH X Y  ; NTP là tổng số cặp bộ trong r và bằng
|r|(|r| - 1)/2.
Ví dụ 1.2. Với quan hệ cho trong bảng 1.1, ta có độ thỏa của phụ thuộc hàm
Tên Giới tính là
TRUTHNhân viên(Tên Giới tính) = 26/28  93%
Một cách khác để tính độ thỏa của X  Y trên quan hệ r được giới thiệu
trong [56, 57], cụ thể: xây dựng quan hệ tương đương E(X) trên r như sau:
(t1, t2)  E(X)  t1[X] = t2[X],  t1, t2  r
Quan hệ E(X) phân hoạch r thành các lớp tương đương. Mỗi lớp tương
đương là một tập con của r chứa các bộ giống nhau trên X. Ký hiệu phân
hoạch đó là X .
Với u  X , nếu t1[X] = t2[X]  t1[Y] = t2[Y],  t1, t2  u, thì ta nói
rằng u thỏa X  Y. Ngược lại, u không thỏa X  Y. Thực hiện đoạn chương
trình dưới đây để nhận được quan hệ r1.
r1 : = ;
For each u  X do
if (u thỏa X  Y) then r1 : = r1  u;
Đặt k = |r1| / |r|. Khi đó, ta nói r thỏa X  Y với độ phụ thuộc k, 0  k  1.
Ví dụ 1.3. Xét phụ thuộc hàm Tên  Giới tính trên quan hệ cho trong bảng
1.1, ta có êT n = {{t1, t5}, {t2}, {t3, t4, t7}, {t6}, {t8}}, r1 = {{t1, t5}  {t2} 
{t6}  {t8} = {t1, t5, t2, t6, t8}, k = |r1| / |r| = 5/8 = 0.625. Như vậy, r thỏa phụ
thuộc hàm Tên  Giới tính với độ phụ thuộc 0.625.
13
1.3.2. Phụ thuộc hàm mêtric
Khi tích hợp dữ liệu từ nhiều nguồn khác nhau, thường xảy ra những
sai lệch nhỏ trong định dạng dữ liệu (chẳng hạn các định dạng khác nhau đối
với địa chỉ, số điện thoại) và điều này làm cho các phụ thuộc hàm truyền
thống bị vi phạm, mà thực chất không hề có sự vi phạm về mặt ngữ nghĩa.
Khái niệm phụ thuộc hàm mêtric [42], được định nghĩa dưới đây, sẽ tổng quát
hóa khái niệm phụ thuộc hàm truyền thống.
Xét phụ thuộc hàm X  Y trên quan hệ r. Với mỗi bộ t  r, ký hiệu
[t]X = {u  r : u[X] = t[X]} và X = {[t]X : t  r}.
Với T  r, ký hiệu T[Y] = {t[Y] : t  T}. Khi đó, phụ thuộc hàm X  Y
đúng trên r nếu
| [ ]| 1XTmax T Y 
Cho một mêtric d trên tập Y, d: dom(Y)  dom(Y)  R, và một tham số
  0. Một phụ thuộc hàm mêtric, ký hiệu là X Y
 , được gọi là đúng trên
r (hay thỏa r) nếu
( [ ])XT dmax T Y    ,
trong đó , [ ]( [ ]) ( , )d p q T YT Y max d p q  .
Ta đã biết phụ thuộc hàm X  Y đúng trên quan hệ r nếu với hai bộ bất
kỳ t1, t2  r mà t1[X] = t2[X] thì t1[Y] = t2[Y]. Do đó, về mặt trực quan, ta có
thể hình dung phụ thuộc hàm mêtric là sự mở rộng của phụ thuộc hàm bằng
cách thay thế điều kiện t1[Y] = t2[Y] bằng điều kiện d(t1[Y], t2[Y]) ≤ .
Nguồn dữ liệu Tên phim Thời gian (phút)
t1 movies.aol.com Aliens 110
t2 finnguide.fi Aliens 112
t3 amazon.com Clockwork Orange 137
t4 movie-vault.com A Beautiful Mind 144
t5 walmart.com A Beautiful Mind 145
t6 tesco.com Clockwork Orange 131
Bảng 1.2. Quan hệ Phim
14
Ví dụ 1.4 [42]. Xét quan hệ Phim cho trong bảng 1.2, với X = Tên phim, Y =
Thời gian. Ta có X = {{t1, t2}, {t3, t6}, {t4, t5}}. Với T = {t1, t2}  T[Y] =
{110, 112}  ( [ ]) 2d T Y  ; với T = {t3, t6}  T[Y] = {137, 131} 
( [ ]) 6d T Y  ; với T = {t4, t5}  T[Y] = {144, 145}  ( [ ]) 1d T Y  . Do đó
6
X Y đúng với quan hệ Phim.
1.3.3. Phụ thuộc hàm điều kiện
Phụ thuộc hàm điều kiện [12, 32, 75] được sử dụng trong vấn đề làm
sạch dữ liệu. Xét quan hệ Q1 được cho trong bảng 1.3.
A B C D
t1 001 124 12 34
t2 001 124 21 43
t3 002 157 34 69
t4 002 157 34 61
t5 002 158 89 62
t6 002 158 89 90
t7 003 167 78 96
Bảng 1.3. Quan hệ Qh1
Ta thấy quan hệ Qh1 không thỏa phụ thuộc hàm AB  C vì hai bộ t1, t2
có cùng giá trị trên AB nhưng không có cùng giá trị trên C. Tuy nhiên, Qh1
thỏa ràng buộc  = {A = 002 , B} {C}, nghĩa là nếu chỉ xét các bộ của Qh1
mà các bộ này có giá trị trên thuộc tính A là 002 thì phụ thuộc hàm AB  C
đúng.
Một phụ thuộc hàm điều kiện có dạng  = (X  Y, Tp), trong đó X  Y
là một phụ thuộc hàm và Tp là một bảng mẫu với các thuộc tính trong X  Y.
Bảng mẫu Tp chứa các bộ mẫu, mỗi bộ mẫu tp  Tp chứa các giá trị hằng và
biến không tên "". Biến không tên "" có thể nhận một giá trị tùy ý trong
miền thuộc tính tương ứng. Bảng mẫu xác định các bộ của quan hệ phải thỏa
phụ thuộc hàm X  Y. Một cách trực quan, bảng mẫu Tp của  làm mịn phụ
thuộc hàm X  Y được nhúng trong  bằng việc áp đặt mối liên kết của các
15
giá trị dữ liệu có liên quan về mặt ngữ nghĩa.
Theo định nghĩa phụ thuộc hàm điều kiện, ta thấy ràng buộc  là một
phụ thuộc hàm điều kiện (AB  C, Tp) với Tp là bảng mẫu chỉ gồm một bộ
mẫu như sau:
A B C
002  
Ví dụ 1.5 [12]. Dưới đây là một số minh họa về các phụ thuộc hàm điều kiện
trên quan hệ Khách hàng (Cust) được cho trong bảng 1.4, trong đó CC
(Country Code) là mã quốc gia, AC (Area Code) là mã vùng, PN (Phone
Number) là số điện thoại, NM (Name) là tên và STR (Street), CT (City), ZIP
(Zip Code) là địa chỉ.
CC AC PN NM STR CT ZIP
t1 01 908 1111111 Mike Tree Ave. NYC 07974
t2 01 908 1111111 Rich Tree Ave. NYC 07974
t3 01 212 2222222 Joe Elm Str. NYC 01202
t4 01 212 2222222 Jim Elm Str. NYC 01202
t5 01 215 3333333 Ben Oak Ave. PHI 02394
t6 44 131 4444444 Ian High St. EDI EH4 1DT
Bảng 1.4. Quan hệ Cust
Xét 3 phụ thuộc hàm điều kiện sau đây:
1 = ({CC, ZIP}  {STR}, T1) với bảng mẫu T1
CC ZIP STR
44  
2 = ({CC, AC, PN}  {STR, CT, ZIP}, T2) với bảng mẫu T2
CC AC PN STR CT ZIP
     
01 908   MH 
01 212   NYC 
3 = ({CC, AC}  {CT}, T3) với bảng mẫu T3
CC AC CT
  
01 215 PHI
44 141 GLA
16
Ta thấy quan hệ Cust thỏa 1 và 3 nhưng không thỏa 2 vì bộ t1 vi
phạm bộ mẫu tc = (01, 098, , , MH, ) trong bảng mẫu T2 của 2 . Như vậy,
một bộ cũng có thể vi phạm phụ thuộc hàm điều kiện, trong khi sự vi phạm
của phụ thuộc hàm đòi hỏi phải xem xét hai bộ.
Phụ thuộc hàm là trường hợp đặc biệt của phụ thuộc hàm điều kiện.
Thật vậy, phụ thuộc hàm X  Y chính là phụ thuộc hàm điều kiện
(X  Y, Tp) với Tp chỉ gồm một bộ mẫu tp duy nhất và tp[A] = "" với mọi
A  X  Y.
1.3.4. Phụ thuộc hàm mờ
Khái niệm phụ thuộc hàm mờ được đề xuất trong [3] xuất phát từ dữ
liệu thực tế có bản chất mờ tự nhiên. Phụ thuộc hàm mờ trong [3] được xây
dựng bằng cách thay thế quan hệ bằng nhau trong khái niệm phụ thuộc hàm
truyền thống bằng quan hệ bằng nhau mờ. Thông thường, khi so sánh hai giá
trị dữ liệu, chỉ có thể xảy ra 2 trường hợp là bằng nhau hoặc khác nhau. Sử
dụng lý thuyết tập mờ, hai giá trị dữ liệu có thể bằng nhau với mức  nào đó
(0 ≤  ≤ 1), tham số  được cung cấp bởi người thiết kế cơ sở dữ liệu.
Cho r là một quan hệ xác định trên tập thuộc tính Ω = {A1, A2,…,An} và
X, Y  . Với mỗi thuộc tính Ai  Ω, mức độ bằng nhau của các giá trị dữ
liệu trong Dom(Ai) được xác định bởi quan hệ (hàm) Ri.
Cho trước tham số  (0 ≤  ≤ 1), ta nói 2 bộ t1[X] và t2[X] bằng nhau
với mức , kí hiệu t1[X] E() t2[X], nếu Rk(t1[Ak], t2[Ak])   với mọi Ak  X.
Khi đó, X  Y được gọi là phụ thuộc hàm mờ mức  nếu với mọi t1, t2  r,
t1[X] E() t2[X]  t1[Y] E() t2[Y].
Ví dụ 1.6 [3]. Cho Ω = {A1, A2, A3} với Dom(A1) = {a, b, c}, Dom(A2) = {p,
q} và Dom(A3) = {x, y, z}.
R1 a b c
a 1 0.6 0.4
b 0.6 1 0.5
c 0.4 0.5 1
17
R2 p q
p 1 0.7
q 0.7 1
R3 x y z
x 1 0.8 0.7
y 0.8 1 0.4
z 0.7 0.4 1
A1 A2 A3
b p x
c q y
a q y
a q x
c p z
Bảng 1.5. Quan hệ Qh2
Xét quan hệ Qh2 tại bảng 1.5 và X = {A1, A2}, Y = {A3}. Ta thấy Qh2
không thỏa phụ thuộc hàm X  Y. Tuy nhiên, Qh2 thỏa phụ thuộc hàm mờ
X  Y mức  = 0.6.
1.3.5. Phụ thuộc sai phân
Khái niệm phụ thuộc sai phân [65] mở rộng quan hệ bằng nhau ở cả hai
vế (vế trái và vế phải) của phụ thuộc hàm X  Y trên quan hệ r. Điều kiện t1,
t2 bằng nhau trên X và bằng nhau trên Y tương ứng được thay thế bằng điều
kiện hai bộ này thỏa mãn hàm L và hàm R. Các hàm L, R được gọi là các
hàm sai phân, các phép toán sử dụng trong các hàm sai phân là =, <, >, , ,
ngoài ra còn có thể sử dụng thêm các toán tử  (và),  (hoặc). Thực chất, các
hàm sai phân sử dụng khoảng cách metric để mở rộng các quan hệ bằng nhau
được sử dụng (ở cả vế trái và vế phải) trong khái niệm phụ thuộc hàm.
Ví dụ 1.7 [65]. Xét ràng buộc sau trong một quan hệ lưu trữ thông tin về giá
của các chuyến bay: "sự khác nhau về giá của hai ngày bất kỳ trong khoảng
thời gian một tuần không vượt quá 100$". Ràng buộc này được thể hiện bởi
phụ thuộc sai phân:
[Date (≤ 7)]  [Price (≤ 100)]
18
Nghĩa là, với hai bộ bất kỳ t1, t2 trong quan hệ đang xét,
L(t1[Date], t2[Date]) ≤ 7  R(t1[Price], t2[Price]) ≤ 100
Phụ thuộc hàm là trường hợp đặc biệt của phụ thuộc sai phân trong
trường hợp L[t1[X], t2[X]) = 0 và R[t1[Y], t2[Y]) = 0. Ngoài ra, phụ thuộc sai
phân còn là sự mở rộng của phụ thuộc hàm mêtric khi L[t1[X], t2[X]) = 0 và
R[t1[Y], t2[Y]) ≤ .
1.3.6. Các loại phụ thuộc hàm suy rộng khác
Còn có nhiều loại phụ thuộc hàm suy rộng khác nữa [18], chẳng hạn
phụ thuộc hàm dựa trên xác suất (Probability Based Functional
Dependencies), phụ thuộc hàm tương tự (Similarity Functional
Dependencies), phụ thuộc sai phân xấp xỉ (Approximate Differential
Dependencies),... Xuất phát từ các ứng dụng thực tế, mỗi loại phụ thuộc hàm
suy rộng là kết quả của sự mở rộng (nới lỏng) quan hệ bằng nhau trong khái
niệm phụ thuộc hàm truyền thống theo một cách thức hay một nghĩa nào đó.
1.4. Phát hiện phụ thuộc hàm
Do phụ thuộc hàm là trường hợp riêng của tất cả các loại phụ thuộc
hàm suy rộng nên các kết quả đã có về phụ thuộc hàm có thể được làm thích
nghi để sử dụng cho phụ thuộc hàm suy rộng. Trong phần này, ta sẽ điểm lại
các phương pháp phát hiện phụ thuộc hàm đã được đề xuất: phương pháp
trên-xuống (top-down) và phương pháp dưới-lên (bottom-up). Phương pháp
top-down bắt đầu bằng việc sinh các phụ thuộc hàm ứng viên theo từng mức,
từ vế trái có ít thuộc tính đến vế trái có nhiều thuộc tính hơn, sau đó kiểm tra
phụ thuộc hàm ứng viên có được thỏa mãn hay không bởi quan hệ đang xét
hoặc bởi các phân hoạch tương ứng. Trái lại, phương pháp bottom-up bắt đầu
bằng việc so sánh các bộ để nhận được các tập bằng nhau (agree-set) hoặc
các tập khác nhau (difference-set); sau đó sinh các phụ thuộc hàm ứng viên
và kiểm tra sự thỏa mãn của các phụ thuộc hàm này dựa vào các tập bằng
nhau và các tập khác nhau đã nhận được trước đó.
Quan hệ trong bảng 1.6 dưới đây sẽ được sử dụng để minh họa cho một
số ví dụ trong phần này.
19
I N B W S
1t i1 n1 b1 w1 s5
2t i2 n2 b1 w1 s1
3t i3 n2 b1 w2 s1
4t i4 n3 b2 w2 s2
Bảng 1.6. Quan hệ Qh3
1.4.1. Phương pháp top-down
Phương pháp top-down [45] bắt đầu bằng việc sinh các phụ thuộc hàm
ứng viên. Phương pháp này sinh các phụ thuộc hàm ứng viên dựa trên một
dàn thuộc tính, kiểm tra sự thỏa mãn của các phụ thuộc hàm và sau đó sử
dụng các phụ thuộc hàm đã được phát hiện là đúng (thỏa mãn) để tỉa các phụ
thuộc hàm ứng viên ở các mức thấp hơn trong dàn nhằm thu hẹp không gian
tìm kiếm. Trong phần này, đầu tiên ta trình bày việc sinh và tỉa các phụ thuộc
hàm ứng viên, sau đó sẽ trình bày hai phương pháp cài đặt cụ thể: phương
pháp phân hoạch (các thuật toán bao gồm TANE [37] và FD_Mine [74]) và
phương pháp tập tự do (free-set) sử dụng lực lượng của các quan hệ chiếu để
kiểm tra sự thỏa mãn của các phụ thuộc hàm (thuật toán FUN [59]).
Phụ thuộc hàm ứng viên. Các phụ thuộc hàm ứng viên là các phụ thuộc
hàm mà về cú pháp có thể tồn tại trong một lược đồ quan hệ. Tuy nhiên, sự
thỏa mãn của chúng đối với một thể hiện cụ thể của lược đồ quan hệ này thì
chưa được kiểm tra.
Cho trước lược đồ S(Ω) với Ω = {A1,A2,...,An}, vế trái của các phụ
thuộc hàm ứng viên được sinh nhờ sử dụng tất cả các tổ hợp thuộc tính có thể
của Ω. Như đã biết, ta chỉ quan tâm đến các phụ thuộc hàm tối tiểu có một
thuộc tính ở vế phải, số thuộc tính ở vế trái của một phụ thuộc hàm ứng viên
nhiều nhất là (n - 1) thuộc tính. Chẳng hạn, các phụ thuộc hàm ứng viên
không có thuộc tính ở vế trái là   A1,...,   An; các phụ thuộc hàm ứng
viên có một thuộc tính ở vế trái là A1  A2, A1  A3, A1  An,..., An  An-1;
các phụ thuộc hàm ứng viên có hai thuộc tính ở vế trái là A1A2  A3, A1A2 
A4,... Vế trái của các phụ thuộc hàm ứng viên có thể được thể hiện trong một
20
dàn thuộc tính.
Dàn thuộc tính. Một dàn thuộc tính là một đồ thị có hướng với nút gốc
(L-0) không có thuộc tính nào và được kí hiệu bởi . Các nút con của nút
gốc là các nút mức 1 (L-1) và mỗi nút có một thuộc tính. Tổng cộng L-1 có
1
nC n nút. Mỗi nút ở mức 2 (L-2) là một tổ hợp gồm hai thuộc tính, do đó có
2
nC nút ở L-2. Các mức tiếp theo cũng được xây dựng theo cùng quy tắc. Mức
thứ n (L-n) là mức cuối cùng và chứa tất cả các thuộc tính. Kí hiệu nij là nút
thứ j ở L-i, đồng thời nij cũng được dùng để biểu thị tập các thuộc tính tại nút
này. Một cạnh có hướng sẽ được vẽ giữa nút nij và nút n(i+1)k nếu nij  n(i+1)k.
Theo cách này, mỗi cạnh thể hiện một phụ thuộc hàm ứng viên có dạng nij 
( n(i+1)k - nij). Hình 1.1 minh họa một dàn thuộc tính với Ω = {A, B, C, D},
cạnh giữa nút AB và ABC biểu thị phụ thuộc hàm ứng viên AB  C.
L-0  
L-1 A B C D A B C D
L-2 AB AC AD BC BD CD AB AC AD BC BD CD
L-3 ABC ABD ACD BCD ABC ABD ACD BCD
L-4 ABCD
(a)
ABCD
(b)
Hình 1.1. Minh họa dàn thuộc tính
Như trên đã phân tích, tổng số nút trong dàn thuộc tính là
0 1 2 1
... 2n n n
n n n n nC C C C C
     
Do h n h
n nC C 
 nên các cạnh trong dàn thuộc tính đối xứng nhau qua mức giữa
nếu n là số chẵn hoặc đối xứng nhau qua hai mức giữa nếu n là số lẻ. Tổng số
các phụ thuộc hàm ứng viên (tổng số cạnh trong dàn) là
0 1 2 1
. .( 1) .( 2) ... .1 2
2
n n
n n n n
n
C n C n C n C 
       
Dấu "=" xảy ra khi n là số chẵn.
21
Kí hiệu |r| là số bộ của quan hệ r trên lược đồ Ω = {A1,A2,...,An}. Tính
trung bình, mỗi phụ thuộc hàm liên quan đến n/2 thuộc tính. Do đó, độ phức
tạp khi sử dụng các vòng lặp lồng nhau để kiểm tra tất cả các phụ thuộc hàm
ứng viên trong dàn thuộc tính đối với quan hệ r là
2
2
2 2
nn n
O r
   
   
   
; độ
phức tạp này cũng là độ phức tạp trong trường hợp xấu nhất của tất cả các
phương pháp đã được đề xuất.
Tỉa trên dàn thuộc tính. Do số lượng phụ thuộc hàm ứng viên là hàm
mũ theo số lượng thuộc tính nên việc tỉa trên dàn thuộc tính trở nên quan
trọng. Tỉa trên dàn thuộc tính là loại bỏ các phụ thuộc hàm ứng viên (các
cạnh trong dàn thuộc tính) được suy diễn từ các phụ thuộc hàm đã được phát
hiện, để không cần phải kiểm tra chúng. Chẳng hạn, trong hình 1.1, nếu A 
C đã được phát hiện là đúng thì không cần phải kiểm tra AB  C vì AB  C
cũng đúng theo hệ quy tắc Armstrong.
Các luật tỉa cơ bản dưới đây thường được sử dụng và có thể được
chứng minh bằng hệ quy tắc Armstrong. Gọi  là tập các phụ thuộc hàm đã
được phát hiện; X, Y là các tập con của Ω; A, B là hai thuộc tính trong Ω; X 
Y = ; A, B  X; A, B  Y và A ≠ B.
(T1). Nếu X  A   thì XZ  A đúng và không cần phải kiểm tra.
(T2). Nếu X  A   và nếu XAY  B là một phụ thuộc hàm ứng viên thì
thay cho việc kiểm tra XAY  B ta sẽ kiểm tra XY  B. Với việc kiểm
tra từ trên xuống dưới trên dàn thuộc tính, XY  B phải được kiểm tra
ở mức trước và do vậy không cần thiết phải kiểm tra XAY  B.
(T3). Nếu X là một khóa thì mọi nút chứa X đều bị tỉa (xóa).
Các luật tỉa ở trên được chia thành hai loại: các luật tỉa (T1), (T2) là tỉa
cạnh, luật tỉa (T3) là tỉa nút. Ngoài các luật tỉa cơ bản ở trên, một số thuật toán
còn sử dụng các luật tỉa khác, chẳng hạn thuật toán FD_Mine sử dụng các phụ
thuộc hàm đối xứng (còn gọi là phụ thuộc hàm tương đương, X  Y nếu X 
Y và Y  X ) để tỉa tập thuộc tính (chẳng hạn tập Y) nhằm thu hẹp kích thước
22
dàn thuộc tính, thuật toán FUN tỉa các tập không tự do (non-free-sets) để làm
giảm kích thước dàn thuộc tính. Thuật toán FastFDs [73], một phương pháp
bottom-up, sử dụng các tập khác nhau để tỉa các nút trên dàn thuộc tính.
Các luật tỉa cơ bản ở trên được sử dụng trong thuật toán 1.1 dưới đây để
tìm một phủ của tất cả các phụ thuộc hàm đúng trên r. Thuật toán kiểm tra sự
thỏa mãn của các phụ thuộc hàm dựa trên một dàn thuộc tính theo trình tự từ
trái sang phải và từ trên xuống dưới. Ta tiến hành duyệt từ trên xuống dưới là
vì các phụ thuộc hàm ứng viên ở các mức trên có ít thuộc tính ở vế trái hơn
các phụ thuộc hàm ứng viên ở các mức dưới. Nếu A  C được phát hiện thì
các phụ thuộc hàm ứng viên khác như AX  C sẽ bị tỉa theo luật tỉa (T1).
Điều này rõ ràng hiệu quả hơn nếu như ta duyệt từ dưới lên trên vì theo theo
thứ tự này nếu AX  C được phát hiện, ta vẫn phải kiểm tra A  C và
X  C.
Trong thuật toán 1.1, dòng 7 cài đặt luật tỉa (T3), dòng 11 cài đặt các
luật tỉa (T1) và (T2). Ở dòng 12, supp(f, r) kiểm tra phụ thuộc hàm ứng viên f
trên quan hệ r; nếu f được thỏa mãn, hàm này trả về giá trị true. Ngược lại,
hàm trả về giá trị false.
Dễ thấy rằng thuật toán 1.1 cho kết quả là các phụ thuộc hàm tối tiểu.
Thật vậy, theo tiến trình duyệt từng mức một trên dàn thuộc tính của thuật
toán, ta cần chứng minh rằng với X  A là phụ thuộc hàm bất kỳ thuộc  (tập
các phụ thuộc hàm đã được phát hiện), nếu không có phụ thuộc hàm nào có
dạng f = (XY  A) được bổ sung vào , thì các phụ thuộc hàm trong  là tối
tiểu. Thật vậy, điều kiện  (X  A)   sao cho X  q và XA  c trên dòng
11 phát hiện tình huống này. Nếu phụ thuộc hàm ứng viên f = (XY  A) thì q
= XY và c = XYA. Điều này làm cho điều kiện trên dòng 11 đúng, f bị tỉa và
không được bổ sung vào .
Một ví dụ minh họa việc tỉa các phụ thuộc hàm ứng viên theo thuật toán
1.1 là: quan sát hình 1.1 (b), giả sử A  C thuộc . Khi đó, các phụ thuộc
hàm ứng với các đường chấm chấm bị tỉa theo luật tỉa (T1), các phụ thuộc
23
hàm ứng với các đường nét đứt bị tỉa theo luật tỉa (T2). Từ ví dụ này, ta thấy
rằng khi các phụ thuộc hàm có một thuộc tính ở vế trái được phát hiện thì
chúng trở nên rất quan trọng đối với việc tỉa một số lượng lớn các cạnh và
làm giảm độ phức tạp tính toán. Các phụ thuộc hàm như vậy thường xuất hiện
nhiều trong các cơ sở dữ liệu có khóa chỉ gồm một thuộc tính (chẳng hạn: địa
chỉ email của nhân viên, mã số của sinh viên, mã vạch của sản phẩm, số đăng
ký xe,...là các khóa chỉ gồm một thuộc tính).
------------------------------------------------------------------------------------------------
Thuật toán 1.1 [45]. Phát hiện phụ thuộc hàm
------------------------------------------------------------------------------------------------
INPUT: Một quan hệ r trên tập thuộc tính 
OUTPUT: Tập  gồm các phụ thuộc hàm được phát hiện từ quan hệ r.
1 begin
2 Gọi  là tập lưu trữ các phụ thuộc hàm được phát hiện và K là tập
lưu trữ các khóa được phát hiện;
3 for each mức L = 2 to (|| - 1) do
4 for each nút p ở mức (L - 1) do
5 sinh tất cả các nút con C ở mức L của nút p;
6 for each nút c  C do
7 if c chứa một khóa then xóa c, next loop;
8 if c là một khóa then bổ sung c vào K;
9 for each nút cha q ở mức (L - 1) của c do
10 gọi f là phụ thuộc hàm q  (c - q)
11 if  (X  A)   sao cho X  q và XA  c then
f được suy từ X  A và tỉa f.
12 else if supp(f, r) = true then bổ sung f vào 
13 else bỏ qua f;
14 end;
______________________________________________________________
Ngoài việc phát hiện phụ thuộc hàm, thuật toán 1.1 còn phát hiện được
cả tập các khóa K (dòng 8). Nếu không có nhu cầu sử dụng tập các khóa K, ta
có thể điều chỉnh dòng 2 và bỏ dòng 8.
Độ phức tạp trong trường hợp xấu nhất của thuật toán 1.1 là hàm mũ
như đã phân tích ở trên. Điều này xảy ra khi vế trái của tất cả các phụ thuộc
hàm bao gồm hầu hết các thuộc tính của quan hệ. Trong trường hợp này, tất
24
cả các cạnh của dàn thuộc tính đều cần phải kiểm tra.
Thuật toán 1.1 cho kết quả là một phủ của tất cả các phụ thuộc hàm
đúng trên r. Thật vậy, tất cả các phụ thuộc hàm ứng viên đều thuộc dàn thuộc
tính. Quá trình tỉa (dòng 11) loại bỏ các phụ thuộc hàm được suy diễn. Dòng
13 loại bỏ các phụ thuộc hàm không thỏa. Dòng 12 đưa tất cả các phụ thuộc
hàm còn lại vào . Không có lệnh nào trong thuật toán loại bỏ các phụ thuộc
hàm trong . Do đó  là một phủ của tất cả các phụ thuộc hàm đúng trên r.
Thuật toán 1.1 cho kết quả là một phủ nhưng phủ này có thể chưa tối
tiểu. Lý do là trong quá trình tính toán, ta không sử dụng luật suy diễn bắc
cầu; do vậy ta có thể đưa vào  các phụ thuộc hàm được suy diễn từ các phụ
thuộc hàm đã được phát hiện. Chẳng hạn, theo thuật toán, ta có thể đưa các
phụ thuộc hàm sau theo thứ tự vào : A1  A2, A1  A3 và A2  A3; ở đây, A1
 A3 được suy diễn từ A1  A2, A2  A3.
Tóm lại, ta đã trình bày một thuật toán có thể tỉa các phụ thuộc hàm
ứng viên và các nút của dàn thuộc tính sau khi một tập các phụ thuộc hàm và
một tập các khóa đã được phát hiện. Bài toán quan trọng tiếp theo là làm thế
nào để kiểm tra một phụ thuộc hàm ứng viên sao cho có hiệu quả, nghĩa là
supp(f, r) trong thuật toán 1.1 được tính toán thế nào để có hiệu quả. Một số
phương pháp tính toán sẽ được trình bày dưới đây.
Phương pháp phân hoạch. Hai thuật toán nổi tiếng sử dụng phương
pháp phân hoạch là TANE và FD_Mine. Cả TANE và FD_Mine đều sử dụng
các luật tỉa cơ bản như trên đã trình bày, ngoài ra FD_Mine còn sử dụng các
phụ thuộc hàm đối xứng (còn gọi là phụ thuộc hàm tương đương).
Mặc dù thuật ngữ "phương pháp phân hoạch" được dùng để chỉ một lớp
các thuật toán; tuy nhiên, khái niệm "phân hoạch" còn được sử dụng trong các
thuật toán khác như: phương pháp tập tự do, phương pháp bottom-up để cải
tiến hiệu năng thực hiện.
Cho trước một quan hệ r trên lược đồ  và một tập thuộc tính X  ,
phân hoạch r theo X, kí hiệu X là tập các tập con khác rỗng rời nhau và mỗi
tập con chứa tất cả các bộ có cùng giá trị trên X. Mỗi tập con của một phân
25
hoạch được gọi là một lớp tương đương. Một phân hoạch được lược gọn là
một phân hoạch trong đó các lớp tương đương có một phần tử bị loại bỏ.
Ví dụ 1.8. Xét quan hệ trong bảng 1.6. Khi đó  1 2 3 4{ },{ },{ },{ }I t t t t  ,
 1 2 3 4{ , },{ , }W t t t t  và  1 2 3 4{ },{ , },{ }N NB t t t t   .
Cho hai phân hoạch X và Y , phân hoạch X được gọi là mịn hơn Y ,
kí hiệu là X Y  nếu với mỗi tập con Xu  đều tồn tại một tập con Yv 
sao cho u v . ,X Y X Y Y X         .
Định lý 1.1 [40]. Phụ thuộc hàm X A đúng trên r nếu X A  .
Định lý dưới đây là sự mở rộng của định lý 1.1. Định lý này rất hữu ích
khi kiểm tra các phụ thuộc hàm có dạng X  A vì X và XA tương ứng với hai
nút được nối bởi một cạnh trong dàn thuộc tính.
Định lý 1.2. [37, 40] Phụ thuộc hàm X  A đúng trên r nếu và chỉ nếu
X XA  hoặc X XA  .
Tích của hai phân hoạch X và Y được định nghĩa như sau:
 | , , ,X Y ij ij i j ij i X j Yp p q w p q w          
Định lý 1.3. [27] Ta có: XY X Y Y X        .
Bằng cách so sánh  1 2 3 4{ },{ , },{ }N B t t t t   trong ví dụ 1.10 và
 1 2 3 4{ },{ , },{ }NB t t t t  trong ví dụ 1.7, ta thấy N B NB    .
Dưới đây, ta trình bày cách sử dụng các phân hoạch trong dàn thuộc
tính với lược đồ . Trước tiên, quan hệ r trên lược đồ  được quét để có
được các phân hoạch trên mỗi thuộc tính của  và các phân hoạch này được
lưu trữ trên các nút tương ứng ở mức L-1 của dàn thuộc tính. Điều này thực
hiện được vì kích thước các phân hoạch nhỏ hơn nhiều so với kích thước của
cơ sở dữ liệu. Các phân hoạch của các tập chứa nhiều thuộc tính sẽ được tính
toán dựa trên các phân hoạch của các tập có ít thuộc tính hơn; do đó không
cần phải truy cập lại quan hệ r. Nghĩa là, phân hoạch tại mỗi nút ở mức L-i
được tính toán theo hai phân hoạch của hai nút ở mức L-( 1)i  . Chẳng hạn, để
26
tính phân hoạch ABC đối với nút ABC , ta sử dụng phân hoạch AB của nút
AB và phân hoạch AC của nút AC . Nếu AB ABC  thì theo Định lý 1.2,
AB C đúng.
Ta phân tích độ phức tạp của phương pháp phân hoạch. Đặt n = ||. Độ
phức tạp thời gian cho việc tính toán các phân hoạch của các tập có một thuộc
tính là  2
O n r . Độ phức tạp thời gian để tính một phân hoạch tích là  2
O r .
Do đó, độ phức tạp thời gian của phương pháp phân hoạch là
2 2
2
2
nn
O n r r
 
 
 
với 2
2
nn
là tổng số các phụ thuộc hàm ứng viên. So với độ
phức tạp thời gian của cách tiếp cận sử dụng vòng lặp lồng nhau ở trên thì
phương pháp phân hoạch nhanh hơn 2n lần. Bằng việc sử dụng bảng băm để
tính các phân hoạch và thuật toán tuyến tính được đề xuất trong TANE để tính
tích các phân hoạch, độ phức tạp này có thể giảm xuống còn 2
2
nn
O n r r
 
 
 
.
Để lưu trữ các phân hoạch, phương pháp phân hoạch cần cấp phát bộ
nhớ cho mỗi nút ở hai mức: mức L-( 1)i  và mức L-(i). Do vậy, thuật toán
phân hoạch mất thêm chi phí về bộ nhớ so với cách tiếp cận sử dụng vòng lặp
lồng nhau. Chi phí về bộ nhớ cần sử dụng thêm là   2 / ( )n
O r sqr n trong đó
2 / ( )n
sqr n là độ rộng lớn nhất của dàn thuộc tính theo số lượng nút [37].
Phương pháp tập tự do. Cách tiếp cận tập tự do đã được đề xuất trong
[59] và thuật toán cài đặt cách tiếp cận này là FUN. FUN sử dụng lực lượng
của hình chiếu [ ]r X để kiểm tra phụ thuộc hàm: [ ] [ ]r X r XA khi và chỉ
khi X A . Ta thấy rằng [ ]r X chính là số lớp tương đương của phân hoạch
XP .
Một tập tự do là một tập tối tiểu X các thuộc tính của lược đồ  sao cho
với mọi Y X ta có [Y] < [ ]r r X . Như vậy, các tập gồm một thuộc tính là
các tập tự do vì chúng không có tập con. Nếu X là một tập tự do,
( )A R X  , ( ) ( )r X r XA và [ ] [ ]r A r XA thì XA cũng là một tập tự do.
27
Vế trái của một phụ thuộc hàm tối tiểu phải là một tập tự do. Tập tự do của
quan hệ r, kí hiệu là ( )Fr r , là tập gồm tất cả các tập tự do trên r. Một tập
không tự do là một tập mà lực lượng hình chiếu của nó bằng với lực lượng
hình chiếu của một tập con nào đó của nó. Tập chứa một tập không tự do
cũng là tập không tự do.
Để phát hiện các phụ thuộc hàm đúng trên quan hệ r, ta cần thêm hai
khái niệm: bao đóng thuộc tính X 
và hầu bao đóng X 
.
Bao đóng thuộc tính của tập X được tính như sau:
 | ( ), [ ] [ ]X X A A R X r X r XA
    
nghĩa là X 
chứa thuộc tính A trên nút ở mức tiếp theo nếu X A .
Hầu bao đóng o
X của tập X được xác định như sau:
1( ) ... ( )kX X X A X A  
     
trong đó 1... kX A A . Như vậy, X 
chứa các thuộc tính trên tất cả các nút cha
của X và tất cả các nút phụ thuộc vào các nút cha đó.
Các phụ thuộc hàm được xây dựng dựa trên các thành viên của tập
( )Fr r và của hai bao đóng như đã trình bày.
 | ( ), ( )FD X A X Fr r A X X
    
Luật tỉa của phương pháp tập tự do là tỉa các tập không tự do X (một
nút). Kỹ thuật sau đó nhằm vào các phụ thuộc hàm kết thúc ở X bằng cách
tính bao đóng của các nút (là tập tự do) cha Y của X cùng với lực lượng của
chúng mà không cần phải truy cập đến các phân hoạch. Các luật tỉa cơ bản
cũng được sử dụng trong phương pháp này.
Thuật toán duyệt trên dàn thuộc tính theo từng mức. Ở mức L-1, lực
lượng của tất cả các thuộc tính đơn được tính. Hầu bao đóng của mỗi thuộc
tính ở mức L-1 được khởi tạo bằng chính nó. Ở mức L-2, các tổ hợp gồm hai
thuộc tính được tính từ các thuộc tính không khóa (non-key) ở mức L-1. Sau
đó lực lượng của các tổ hợp hai thuộc tính được tính. Nếu lực lượng của một
tổ hợp hai thuộc tính X bằng lực lượng nút cha P của nó ở mức trước:
28
( ) ( )Card X Card P , thì (1) P P X 
  ; (2) ( )P X P  ; (3) X là một tập
không tự do và không tham gia vào việc sinh nút mới ở các mức sau. Sau khi
bao đóng của mỗi tập thuộc tính P ở mức trước được tính thì hầu bao đóng
của mỗi tập thuộc tính X ở mức hiện tại được tính. Sau đó thuật toán sẽ thực
hiện việc sinh nút ở mức L-3.
Ví dụ, xét quan hệ trong bảng 1.6. Kí hiệu :X m biểu thị tập thuộc tính
X và lực lượng của nó. Mức L-1 có các nút là: :4I , :3N , :2B , :2W ,
:2S . I là một khóa và không tham gia vào việc sinh nút mới ở mức tiếp
theo. Mức L-2 có các nút là: :3NB , :4NW , :3NS , :3BW , :3BS , :4WS .
WS và NW là các khóa. Từ lực lượng của các nút ở mức L-2, ta thấy
( ) ( )Card NB Card N , ( ) ( )Card NS Card N nên N B và N S ; NB và
NS là các tập không tự do. N NBS
 . Bao đóng của các thuộc tính ở mức
L-1: N NBS
 , B B
 , W W
 và S NBS
 ; hầu bao đóng của NB là
NB NBS
 .
Độ phức tạp của cách tiếp cận này bao gồm chi phí tính các tập tự do và
chi phí tính các phụ thuộc hàm. Đặt ( )h Fr r và n = ||. Độ phức tạp khi
tính ( )Fr r là  2O h r n với / 2n là số thuộc tính trung bình của một tập tự
do. Trong trường hợp xấu nhất, chi phí để tính ,X X
và các phụ thuộc hàm
là hàm mũ theo số thuộc tính n vì việc tính toán thực hiện dọc theo dàn thuộc
tính.
1.4.2 Phương pháp bottom-up
Khác với phương pháp top-down ở trên, phương pháp bottom-up [45]
so sánh các bộ của quan hệ để tính các tập bằng nhau và các tập khác nhau.
Các tập này sau đó được sử dụng để có được các phụ thuộc hàm đúng trên
quan hệ đang xét. Đặc trưng của kỹ thuật bottom-up là chúng không kiểm tra
các phụ thuộc hàm ứng viên dựa trên quan hệ, mà kiểm tra các phụ thuộc hàm
ứng viên dựa trên các tập bằng nhau và khác nhau đã được tính.
Phủ âm. Một phủ âm là một phủ gồm tất cả các phụ thuộc hàm vi phạm
quan hệ. Phủ âm được tính từ các tập bằng nhau của các bộ thuộc quan hệ.
29
Tập bằng nhau của hai bộ 1t và 2t , kí hiệu 1 2( , )ag t t , là tập thuộc tính
X lớn nhất sao cho 1 2[ ] [ ]t X t X . Tập gồm tất cả các tập bằng nhau trên quan
hệ r kí hiệu là ( )ag r .
Ví dụ 1.9. Quan sát bảng 1.6, ta có
1 2( , )ag t t BW và  ( ) , , ,ag r BW B NBS W .
Các tập bằng nhau có thể được tính từ các phân hoạch thuộc tính. Cho
trước phân hoạch A của thuộc tính A và hai bộ 1t , 2t . 1 2( , )A ag t t nếu tồn
tại một tập con c là một lớp tương đương trong A sao cho 1 2,t t c . Để hiệu
quả, ta thường dùng các phân hoạch lược gọn khi tính toán.
Tính chất của các tập bằng nhau là nếu 1 2( , )ag t t X thì với mọi thuộc
tính ( )A R X  ta có 1 2[ ] [ ]t A t A . Nói cách khác, X A bị vi phạm bởi 1t
và 2t . Đó là nguyên lý cơ bản của cách tiếp cận dựa trên phủ âm.
Tập cực đại của một thuộc tính A, kí hiệu ( )max A , được định nghĩa
như sau:
max(A) = {X | X  ag(r), A  X,  Y  ag(r) : X  Y}
Do X không chứa A nên X A bị vi phạm bởi ít nhất một cặp bộ.
Vì  ( ):Y ag r X Y  nên X là một tập tối đại. Ý tưởng sử dụng tập tối đại
X từ ( )ag r là nếu XY A bị vi phạm bởi một cặp bộ thì X A , Y A
cũng bị vi phạm bởi cặp bộ đó. Với mục đích là tính hiệu quả, ta chỉ cần xem
xét các tập tối đại chứ không phải tất cả các tập bằng nhau.
Các tập cực đại của tất cả các thuộc tính tạo nên một phủ của bao đóng
âm gồm tất cả các phụ thuộc hàm vi phạm quan hệ đang xét.
Ví dụ 1.10. Từ ví dụ 1.9, ta có:
 ( ) ,max I BW NBS
Các tập cực đại sau đó được dùng để tìm các phụ thuộc hàm đúng trên
r. Các phụ thuộc hàm có vế phải là A, kí hiệu là ( )FD A , được xây dựng theo
2 bước:
30
FD1(A) = {X  A | X  ( - A),  Y  max(X): X  Y} (1a)
FD(A) = {f | f  FD1(A),  g  FD1(A): vetrai(g)  vetrai(f)} (2a)
Ta thấy rằng với mọi ( )Y max A thì Y A bị vi phạm bởi ít nhất một
cặp bộ của r; nếu một tập thuộc tính V nào đó được bổ sung vào Y sao cho
( )YV max A thì YV A được thỏa mãn. Do đó, vì X không phải tập con
của một Y như vậy nên X A phải được thỏa mãn. Từ (2a) suy ra ( )FD A
chỉ chứa các phụ thuộc hàm tối tiểu.
Tập ( )FD A có thể được xây dựng như sau: Kí hiệu L là tập tất cả các
thuộc tính trong ( )max A . Đầu tiên, ta kiểm tra từng thuộc tính B L , nếu B
không thuộc bất kỳ tập nào của ( )max A thì ta bổ sung B A vào ( )FD A .
Tiếp theo, ta kiểm tra các tập gồm hai thuộc tính từ L . Nếu một tập, chẳng
hạn BC , không là tập con của bất kỳ tập con nào của ( )max A và không chứa
vế trái của phụ thuộc hàm nào trong ( )FD A thì ta lại bổ sung BC A
vào ( )FD A . Cứ tiếp tục như vậy cho đến khi các tập gồm 3, 4, ... thuộc tính
không chứa A được kiểm tra. Luật tỉa (T1) được sử dụng để thu hẹp các tổ
hợp cần kiểm tra.
Ví dụ 1.11 [45]. Từ ví dụ 1.10, ta có  ( ) ,max I BW NBS . Tất cả các tập
gồm một thuộc tính (trừ I ) đều chứa trong một phần tử của ( )max I nên
không có thuộc tính nào xác định hàm I . Tiếp theo, ta xét các tổ hợp hai
thuộc tính: , , , , ,NB NW NS BW BS WS . Ta thấy, NW và WS không chứa trong
bất kỳ phần tử nào của ( )max I . Do đó, NW I và WS I được bổ sung
vào ( )FD I . Tiếp đến, ta xét các tổ hợp ba thuộc tính:
, , ,NBW NBS NWS BWS . Trong số này, ( )NBS max I ; , ,NBW NWS BWS
chứa vế trái của một phụ thuộc hàm trong ( )FD I ; như vậy không có phụ
thuộc hàm nào được suy từ các tập ba thuộc tính. Tương tự, không có các phụ
thuộc hàm nào được suy từ các tập bốn thuộc tính. Kết quả ta có
 ( ) ,FD I NW I WS I   .
31
Độ phức tạp của cách tiếp cận phủ âm là hàm mũ theo số thuộc tính của
 trong trường hợp xấu nhất. Để tính tập bằng nhau ( )ag r cần
2
n r phép so
sánh với n = ||. Để tính ( )max A với mọi A trong  mất
2
( )n ag r phép so
sánh. Cuối cùng, để nhận được các phụ thuộc hàm từ ( )max A (với mọi A)
cần ( ) 2
2
LL
n max A trong đó 2
2
LL
là số các phụ thuộc hàm ứng viên và L
là tập tất cả các thuộc tính trong ( )max A . Độ phức tạp tổng cộng của phương
pháp này là
2 2
( ( ) ( ) 2 )
2
LL
O n r n ag r n max A  . Trường hợp xấu nhất xảy
ra khi L R .
Các biến thể khác nhau của cách tiếp cận phủ âm được đề xuất trong
[33]. Khác với việc sử dụng tập cực đại để trực tiếp phát hiện các phụ thuộc
hàm được thỏa (bởi quan hệ), công trình trong [46] sử dụng phần bù của các
tập bằng nhau cực đại để tìm các phụ thuộc hàm được thỏa. Phương pháp này
được đề cập cùng với cách tiếp cận tập khác nhau dưới đây.
Tập khác nhau. Thuật ngữ "tập khác nhau" đồng nghĩa với tập cần
thiết [49] và phần bù của tập cực đại [46]. Phương pháp tập khác nhau sử
dụng tư tưởng đối ngẫu của khái niệm phủ âm. Tập khác nhau của một thuộc
tính A, kí hiệu ( )dif A , là tập chứa các tập con thuộc tính sao cho khi thuộc
tính A có các giá trị khác nhau trên hai bộ thì một tập con trong ( )dif A cũng
có các giá trị khác nhau trên hai bộ đó [73].
Khi đã tính được ( )dif A thì vế trái của các phụ thuộc hàm được thỏa
phải chứa một thuộc tính từ mỗi tập con của ( )dif A .
Mặc dù nguyên lý để phát hiện vế trái của các phụ thuộc hàm được thỏa
mãn là đơn giản nhưng không gian tìm kiếm trong quá trình tính toán phụ
thuộc hàm được thỏa mãn là hàm mũ theo số tất cả các thuộc tính trong
( )dif A . Thuật toán Dep-Miner được đề xuất trong [46] cũng dùng ý tưởng
này. Kí hiệu 'R là tập gồm tất cả các thuộc tính xuất hiện trong bất kỳ tập con
nào của ( )dif A . Về cơ bản, Dep-Miner xem xét tất cả các tổ hợp thuộc tính
32
có thể theo từng mức trên dàn thuộc tính của 'R . Vế trái của một phụ thuộc
hàm được thỏa là một tổ hợp trong dàn có giao với tất cả các tập con của
( )dif A .
Độ phức tạp của phương pháp này tương tự như phương pháp phủ âm.
Để giảm độ phức tạp, thuật toán FastFDs đã được đề xuất trong [73]. Thuật
toán xây dựng một dàn trước tiên theo chiều sâu (depth-first) sử dụng các
phần tử của một tập khác nhau. Quá trình xây dựng dàn kết thúc bằng một
phủ của tất cả các phụ thuộc hàm được thỏa mãn. Về lý thuyết, số nút trong
dàn được xây dựng là hàm mũ theo số thuộc tính trong tập khác nhau. Thuật
toán sử dụng các tập con của tập khác nhau để thu hẹp kích thước dàn.
1.4.3. Một số chủ đề liên quan đến phát hiện phụ thuộc hàm
Trong phần này, ta sẽ trình bày tóm tắt một số chủ đề liên quan đến
phát hiện phụ thuộc hàm [45].
Lấy mẫu. Khi quan hệ r lớn, chi phí cho việc kiểm tra một phụ thuộc
hàm ứng viên có thể rất cao. Để giảm thời gian kiểm tra một phụ thuộc hàm
ứng viên trên r, lấy mẫu là một phương pháp được đề xuất cho mục đích này.
Kí hiệu f là một phụ thuộc hàm ứng viên, s là một mẫu nhỏ của quan hệ r ,
[0,1]  là một tham số tin cậy (nhỏ). Ý tưởng chính của phương pháp lấy
mẫu là nếu f được thỏa bởi s thì f được thỏa bởi r với độ tin cậy (1 ) .
Nếu f bị vi phạm bởi các bộ trong s thì chắc chắn f không được thỏa bởi r
[41]. Sử dụng ý tưởng này, các phụ thuộc hàm ứng viên không được thỏa bởi
quan hệ r có thể được tỉa một cách hiệu quả. Phương pháp lấy mẫu thường
được sử dụng kết hợp với các phương pháp khác.
Duy trì các phụ thuộc hàm đã được phát hiện. Trong phần này, giả sử
quan hệ r được cho trước và tất cả các phụ thuộc hàm được thỏa bởi r đã
được phát hiện và được lưu trữ trong tập . Ta nghiên cứu vấn đề tập  sẽ
thay đổi như thế nào khi thực hiện chèn thêm một bộ vào r hoặc xóa đi một
bộ khỏi r .
33
Khi một bộ t được chèn vào r , các phụ thuộc hàm có thể được duy trì
theo cách sau [10]: Với mỗi phụ thuộc hàm X A trong , kí hiệu X 
là bao
đóng thuộc tính được tính từ . Sau thao tác chèn, tính:
[ ]q SELECT X FROM r WHERE X t X
 
Nếu 1q  thì việc chèn thêm bộ không ảnh hưởng đến . Nếu 1q 
thì phải tồn tại B trong X 
có các giá trị khác nhau trong [ ]q X 
. Tìm Z B
trong  sao cho Z X 
 và loại bỏ Z B khỏi .
Khi một bộ t bị xóa khỏi quan hệ r , các phụ thuộc hàm đúng trên r
vẫn đúng trên ( )r t . Tuy nhiên, các phụ thuộc hàm mới có thể được bổ sung
vào  do việc xóa có thể loại bỏ các bộ vi phạm một số phụ thuộc hàm. Đáng
tiếc là chưa có cách nào đơn giản để phát hiện các phụ thuộc hàm mới sẽ
được bổ sung; ta có thể áp dụng lại các thuật toán phát hiện phụ thuộc hàm
đối với quan hệ ( )r t .
Phát hiện khóa. Phát hiện khóa là trường hợp đặc biệt của phát hiện
phụ thuộc hàm. Định lý sau đây kiểm tra một tập thuộc tính có phải là khóa
đối với quan hệ r hay không.
Định lý 1.4 [45].
(1) Cho X là một tập con của  và r là một quan hệ. Tập X là một
khóa của r nếu và chỉ nếu [ ]r X r . [32, 59]
(2) Một thuộc tính A R là một khóa nếu và chỉ nếu A không thuộc
bất kỳ tập bằng nhau nào của quan hệ r .
Theo (1), điểm mấu chốt của định lý là việc tính lực lượng. Lực lượng
r có thể nhận được từ các siêu dữ liệu (metadata) của r . Lực lượng
[ ]r X được tính trong 2 trường hợp: nếu X chỉ có một thuộc tính thì cũng có
thể nhận được từ các siêu dữ liệu của r giống như r . Nếu X gồm nhiều
thuộc tính thì có thể sử dụng phương pháp phân hoạch để tính [ ]r X [59].
Công trình trong [9] chỉ rõ: cho trước một tập các phụ thuộc hàm, bài
toán xác định xem có hay không một khóa (nhiều nhất k thuộc tính) là NP-C.
34
1.5. Phát hiện phụ thuộc hàm suy rộng
Hai loại phụ thuộc hàm suy rộng điển hình là phụ thuộc hàm xấp xỉ và
phụ thuộc hàm điều kiện. Phần này sẽ trình bày ngắn gọn vấn đề phát hiện
phụ thuộc hàm xấp xỉ và phụ thuộc hàm điều kiện.
1.5.1. Phát hiện phụ thuộc hàm xấp xỉ
Thuật ngữ "phụ thuộc hàm xấp xỉ" [41] mang ý nghĩa là sự thỏa mãn
gần đúng của một phụ thuộc hàm thông thường :f X Y . Một phụ thuộc
hàm xấp xỉ đòi hỏi phụ thuộc hàm thông thường phải được thỏa mãn bởi phần
lớn các bộ của quan hệ r .
Để định nghĩa thuật ngữ "xấp xỉ" một cách chính xác hơn, các bộ vi
phạm được sử dụng để tính độ đo lỗi hoặc độ thỏa của một phụ thuộc hàm
xấp xỉ.
Có nhiều phương pháp đã được đề xuất để tính độ thỏa hoặc độ đo lỗi.
Các phương pháp này được tóm tắt và so sánh trong [34]. Dưới đây là một
phương pháp được đề xuất trong [41].
 
3
| , |
( , ) 1
max s s r s X A
g X A r
r
  
  
Để kiểm tra các phụ thuộc hàm xấp xỉ trên r , các phương pháp phát
hiện phụ thuộc hàm có thể được thích nghi để phát hiện các phụ thuộc hàm
xấp xỉ bằng cách bổ sung vào phần tính toán độ thỏa hoặc độ đo lỗi. Một ví
dụ trong công trình [47] là sử dụng phương pháp phủ âm. Ý tưởng của việc sử
dụng phủ âm là với một tập bất kỳ ( )Z max A thì Z A không đúng trên
quan hệ r . Tuy nhiên, với việc phát hiện các phụ thuộc hàm xấp xỉ, nếu
Z A không bị vi phạm bởi một số lượng lớn các bộ, nghĩa là 3 ( , )g Z A r
nhỏ hơn hoặc bằng một ngưỡng nào đó, thì Z A là một phụ thuộc hàm xấp
xỉ được phát hiện.
Phương pháp lấy mẫu được đề xuất trong [41] là một cách tiếp cận
khác để phát hiện các phụ thuộc hàm xấp xỉ. Phương pháp lấy mẫu sử dụng
một lượng nhỏ các bộ để quyết định một phụ thuộc hàm xấp xỉ có được thỏa
35
mãn hay không trên toàn bộ quan hệ r , điều này làm nảy sinh thêm độ phức
tạp của vấn đề. Kí hiệu s là một mẫu ngẫu nhiên của quan hệ r . Xét hai
trường hợp sau:
- Nếu f được thỏa mãn hoặc được thỏa mãn xấp xỉ bởi s thì có thể
f không thỏa (vi phạm) bởi các bộ trong r s .
- Nếu f bị vi phạm bởi một số ít các bộ trong s thì có thể f thỏa xấp xỉ r
vì có thể f thỏa tất cả các bộ trong r s .
Để mô tả các tình huống xác suất giữa việc thỏa bởi s và việc thỏa xấp
xỉ bởi r , một tham số tin cậy  được đưa vào. Với tham số đó, nếu f được
thỏa bởi s , ta nói rằng f được thỏa bởi r với xác suất (1 ) .
Với cùng lập luận, một phủ của các phụ thuộc hàm xấp xỉ đúng trên s
trở thành một phủ xác suất trên r .
Kích thước của mẫu (ngẫu nhiên) có ảnh hưởng đến độ chính xác của
phủ mặc dù nó không hoàn toàn xác định độ chính xác. Một mẫu lớn hơn có
thể không chứa bất kỳ bộ vi phạm nào của r , nhưng một mẫu nhỏ có thể chứa
đa số các bộ vi phạm; do đó việc xác định kích thước của mẫu là một bài toán
rất quan trọng. [41] đề xuất kích thước của mẫu phải nằm trong một phạm vi
nhất định.
Ta thấy rằng có sự khác nhau giữa việc dùng mẫu để phát hiện các phụ
thuộc hàm và các phụ thuộc hàm xấp xỉ. Trong trường hợp các phụ thuộc
hàm, mẫu được sử dụng hiệu quả để loại bỏ các phụ thuộc hàm không thỏa
mãn. Ý tưởng rất đơn giản là nếu một phụ thuộc hàm vi phạm mẫu s của r
thì nó vi phạm r ; từ đó, các phụ thuộc hàm ứng viên không thỏa s được xóa
bỏ một cách hiệu quả. Các phụ thuộc hàm ứng viên còn lại thỏa s , kí hiệu
( )dep s , sau đó cần phải kiểm tra vì một số phụ thuộc hàm trong ( )dep s có
thể không được thỏa bởi r . Với mỗi phụ thuộc hàm ( )f dep s , nếu f thỏa
r thì đưa f vào ( )dep r . Cuối cùng, ( )dep r chứa tất cả các phụ thuộc hàm
thỏa r và là một phủ của tất cả các phụ thuộc hàm thỏa r .
36
Trái lại, trong trường hợp các phụ thuộc hàm xấp xỉ, một phủ của các
phụ thuộc hàm xấp xỉ được phát hiện từ một mẫu là một phủ xác suất trên r .
Công trình [40] sử dụng độ đo lỗi của các siêu khóa để xác định sự thỏa
mãn xấp xỉ của các phụ thuộc hàm và chứng minh rằng X A nếu và chỉ
nếu 3 3( ) ( )g X g XA với 3( ) 1 ( ) /g Z r Z r  là phần bộ tối thiểu cần loại bỏ
khỏi r để Z là một siêu khóa.
Công trình [37] mở rộng phương pháp phân hoạch để tính sự thỏa mãn
xấp xỉ nhờ sử dụng độ đo lỗi 3( )g X A .
1.5.2. Phát hiện phụ thuộc hàm điều kiện
Các phụ thuộc hàm có điều kiện là một kiểu ràng buộc mới mở rộng
phụ thuộc hàm truyền thống dùng cho các mục đích làm sạch dữ liệu [12].
Các phụ thuộc hàm điều kiện mặc dù còn mới đối với cộng đồng nghiên cứu
cơ sở dữ liệu nhưng bài toán phát hiện phụ thuộc hàm điều kiện đã được bắt
đầu nghiên cứu [32, 35]. Phần dưới đây trình bày ngắn gọn về định nghĩa của
phụ thuộc hàm điều kiện và việc phát hiện phụ thuộc hàm điều kiện.
Cho trước 2 tập con ,X Y của , một phụ thuộc hàm có điều kiện là
một phát biểu có dạng ( , )X Y S với S là một bảng mẫu trên X  Y. Một
bộ p  S là một bộ xác định trên tập thuộc tính X  Y, trong đó  A  X  Y,
p[A] = a  Dom(A) hoặc p[A] = "" với "" là một biến không tên lấy giá trị
thuộc Dom(A). Một bộ t trong một quan hệ r trên  sánh hợp một bộ mẫu p
trong S , kí hiệu t[X  Y]  p[X  Y], nếu với mỗi A X thì [ ] ' 'p A   hoặc
[ ] [ ]p A t A . Một phụ thuộc hàm có điều kiện được thỏa bởi quan hệ r trên 
nếu và chỉ nếu: 1 2,t t r  , p S  , nếu 1 2[ ] [ ]t X t X  p[X] thì 1 2[ ] [ ]t Y t Y
 p[Y].
Trong định nghĩa trên, X Y được gọi là một phụ thuộc hàm nhúng.
Ví dụ 1.12 [12]. Xét một thể hiện của lược đồ quan hệ cust(CC, AC, PN,
NM, STR, CT, ZIP) được cho trong bảng 1.4.
37
Ta thấy các phụ thuộc hàm được thỏa gồm:
1 :[ , , ] [ , , ]f CC AC PN STR CT ZIP
2 :[ , ] [ ]f CC AC CT
Dưới đây là hai phụ thuộc hàm điều kiện được thỏa bởi quan hệ trên:
1 :[ 01, 212, ] [ , , ]CC AC PN STR CT NYC ZIP    
2 :[ 01, 215] [ ]CC AC CT PHI    
Sự khác nhau giữa phụ thuộc hàm, phụ thuộc hàm xấp xỉ và phụ thuộc
hàm điều kiện. Phụ thuộc hàm và phụ thuộc hàm xấp xỉ đều có dạng X Y ,
sự khác nhau là ở mức độ thỏa. Phụ thuộc hàm đòi hỏi X Y phải được
thỏa mãn bởi tất cả các bộ trong quan hệ, trong khi phụ thuộc hàm xấp xỉ cho
phép một phần nhỏ các bộ vi phạm. Phụ thuộc hàm điều kiện sử dụng kí hiệu
( , )X Y S và sự thỏa mãn chỉ cần đối với các bộ sánh hợp với bảng S . Một
phụ thuộc hàm là trường hợp đặc biệt của phụ thuộc hàm điều kiện khi bảng
S chứa duy nhất một bộ toàn giá trị '-'. Cũng giống như các phụ thuộc hàm,
phụ thuộc hàm điều kiện cũng có thể được thỏa mãn xấp xỉ [26].
Phát hiện phụ thuộc hàm điều kiện [45]. Những khó khăn xuất hiện
khi phát hiện các phụ thuộc hàm điều kiện đến từ hai khía cạnh. Cũng như
trong trường hợp của phụ thuộc hàm, số lượng các phụ thuộc hàm nhúng cần
kiểm tra đối với các phụ thuộc hàm điều kiện có thể có là hàm mũ theo số
thuộc tính. Mặt khác, bài toán phát hiện bảng mẫu tối ưu cho một phụ thuộc
hàm nhúng là NP-C [35].
Một thuật toán được đề xuất trong [21] nhằm phát hiện các phụ thuộc
hàm điều kiện. Các phụ thuộc hàm ứng viên nhận được từ dàn thuộc tính. Ý
tưởng sử dụng trong thuật toán này là dựa trên những tính chất của các phân
hoạch thuộc tính. Mọi bộ trong một lớp tương đương của phân hoạch Y có
cùng giá trị trên Y . Nếu một lớp tương đương c trong XA bằng với một lớp
tương đương trong X thì các bộ của c có cùng giá trị trên A.
38
Cho trước một phụ thuộc hàm ứng viên X A , vế trái X được chia
thành các tập con Q và W , Q được gọi là tập điều kiện và W được gọi là tập
biến. Thuật toán sử dụng các phân hoạch ,Q X  và XA . Sau đó tính một tập
XU chứa tất cả các lớp tương đương trong X với tính chất: có ít nhất l bộ và
bằng hoặc được chứa trong một lớp tương đương nào đó của XA . Cuối cùng,
một bộ mẫu trong bảng S của phụ thuộc hàm có điều kiện được phát hiện nếu
tồn tại một lớp tương đương z trong Q sao cho các bộ trong z được chứa
trong XU . Bộ mẫu là [ ], |z Q   nếu z không phải là một lớp tương đương
trong XA ; ngược lại, bộ mẫu là [ ], | [ ]z Q z A .
S1
N B S
John d1 e1
S2
N B S
- d1 e1
Bảng 1.7. Minh họa phụ thuộc hàm điều kiện
Xét bảng 1.7 và một phụ thuộc hàm ứng viên NB S với X NB và
A S . Đặt Q N và 2l  . Khi đó
 1 2 3 4{ },{ , },{ }N NB NBS t t t t     và 2 3{{ , }}XU t t .
Xét lớp tương đương thứ hai 2 3z {t ,t } trong N ta thấy các bộ của z
đều nằm trong XU và NBSz  nên bộ mẫu được phát hiện là , | 1john e .
Một thuật toán xấp xỉ (dùng chiến lược tham lam) được đề xuất trong
[35] để tính một bảng mẫu gần tối ưu cho một phụ thuộc hàm điều kiện khi
cho trước phụ thuộc hàm nhúng. Tính chất gần tối ưu của bảng mẫu được
phát hiện so với bảng mẫu tối ưu được kiểm soát bới hai tham số là độ hỗ trợ
và độ tin cậy. Cho trước một phụ thuộc hàm nhúng X Y và với mỗi bộ t
trong quan hệ r , thuật toán tính các mẫu ứng viên bằng cách xem xét tất cả
39
các tổ hợp giá trị có thể trong [ ]t X và điều này đưa đến kết quả với số lượng
mẫu ứng viên là hàm mũ theo X : [ ] 2
X
r X . Tiếp đó, đối với mỗi mẫu ứng
viên, thuật toán tính độ hỗ trợ và độ tin cậy tương ứng. Sau đó lựa chọn các
mẫu có độ hỗ trợ cao nhất trên ngưỡng hỗ trợ để đưa vào bảng. Thuật toán đòi
hỏi độ phức tạp thời gian là 2
X
r .
Công trình [32] đề xuất ba thuật toán CFDMiner, CTANE và FastCFD.
Các thuật toán này tương ứng với các phiên bản FD_Miner, TANE và
FastFD. CFDMiner tập trung phát hiện các phụ thuộc hàm điều kiện hằng
(các bộ mẫu không chứa kí hiệu '-'), trong khi CTANE và FastCFD phát hiện
phụ thuộc hàm điều kiện tổng quát.
1.6. Tổng kết chương 1
Trong chương này, ta đã nhắc lại một số khái niệm quan trọng trong mô
hình dữ liệu quan hệ, tập trung vào các khái niệm liên quan đến phụ thuộc
hàm, trình bày một số loại phụ thuộc hàm suy rộng, xem xét tổng quan các
phương pháp phát hiện các phụ thuộc hàm, phụ thuộc hàm xấp xỉ, phụ thuộc
hàm điều kiện trong cơ sở dữ liệu quan hệ.
Bài toán phát hiện phụ thuộc dữ liệu có không gian tìm kiếm là hàm mũ
theo số thuộc tính trong cơ sở dữ liệu. Điều thuận lợi là phần lớn dữ liệu thỏa
các phụ thuộc hàm và các phụ thuộc hàm xấp xỉ với một hoặc một vài thuộc
tính ở vế trái. Một số thuật toán hiệu quả đã được đề xuất.
Với bài toán phát hiện các phụ thuộc hàm, ý tưởng thực hiện là xuất
phát từ các phụ thuộc hàm có ít thuộc tính ở vế trái. Các phụ thuộc hàm đã
được phát hiện, sau đó, được sử dụng để tỉa bớt các phụ thuộc hàm ứng viên
trong dàn thuộc tính nhằm thu hẹp không gian tìm kiếm. Phương pháp thông
dụng nhất là phương pháp phân hoạch và phương pháp phủ âm.
Các phương pháp phát hiện phụ thuộc hàm có thể được làm thích nghi
để sử dụng cho bài toán phát hiện các phụ thuộc hàm suy rộng. Chẳng hạn, có
thể bổ sung thêm phần tính độ đo lỗi hoặc độ thỏa để phát hiện các phụ thuộc
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY
Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY

More Related Content

What's hot

Chương 2.pdf
Chương 2.pdfChương 2.pdf
Chương 2.pdfPhamBaNam
 
300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100
300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100
300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100ghost243
 
Cơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí Minh
Cơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí MinhCơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí Minh
Cơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí MinhVuKirikou
 
Đề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sở
Đề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sởĐề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sở
Đề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sởViết thuê trọn gói ZALO 0934573149
 
Phương pháp nghiên cứu khoa học - KFC
Phương pháp nghiên cứu khoa học - KFCPhương pháp nghiên cứu khoa học - KFC
Phương pháp nghiên cứu khoa học - KFCHuyen $kyline
 
ASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docx
ASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docxASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docx
ASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docxhealthybeefood
 
sự ra đời của Đảng Cộng sản Việt Nam.ppt
sự ra đời của Đảng Cộng sản Việt Nam.pptsự ra đời của Đảng Cộng sản Việt Nam.ppt
sự ra đời của Đảng Cộng sản Việt Nam.pptmyduyen2820
 
Bạo Lực Học Đường
Bạo Lực Học ĐườngBạo Lực Học Đường
Bạo Lực Học ĐườngTmKemme
 
De tai kinh doanh canteen
De tai   kinh doanh canteenDe tai   kinh doanh canteen
De tai kinh doanh canteenNguyen Binh
 
BÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌC
BÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌCBÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌC
BÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌCSophie Lê
 
PHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚI
PHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚIPHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚI
PHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚIdinhtrongtran39
 
Bai tap trac nghiem kinh te vi mo co dap an
Bai tap trac nghiem kinh te vi mo   co dap anBai tap trac nghiem kinh te vi mo   co dap an
Bai tap trac nghiem kinh te vi mo co dap anmrs_bean
 
Tốc độ phản ứng hóa học
Tốc độ phản ứng hóa họcTốc độ phản ứng hóa học
Tốc độ phản ứng hóa họcKim Ngân
 
Kết thúc dự án - bt nhóm1
Kết thúc dự án -  bt nhóm1Kết thúc dự án -  bt nhóm1
Kết thúc dự án - bt nhóm1Ngọc Hà Nguyễn
 
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
 mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t... mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...hieu anh
 
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxHỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxChangChang438370
 
Di tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng Nai
Di tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng NaiDi tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng Nai
Di tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng NaiBình Hoàng
 
Case Study: CloseUp Tìm em nơi đâu
Case Study: CloseUp Tìm em nơi đâuCase Study: CloseUp Tìm em nơi đâu
Case Study: CloseUp Tìm em nơi đâuTuan Le
 
TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017
TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017
TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017Trương Đình Cảnh
 

What's hot (20)

Chương 2.pdf
Chương 2.pdfChương 2.pdf
Chương 2.pdf
 
300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100
300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100
300 câu hỏi trắc nghiệm lý luận chính trị ( có đáp án )1 100
 
Cơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí Minh
Cơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí MinhCơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí Minh
Cơ sở, quá trình hình thành & phát triển Tư tưởng Hồ Chí Minh
 
Đề tài: Xây dựng kế hoạch kinh doanh xà bông của công ty TNHH –ESCOCO Việt Na...
Đề tài: Xây dựng kế hoạch kinh doanh xà bông của công ty TNHH –ESCOCO Việt Na...Đề tài: Xây dựng kế hoạch kinh doanh xà bông của công ty TNHH –ESCOCO Việt Na...
Đề tài: Xây dựng kế hoạch kinh doanh xà bông của công ty TNHH –ESCOCO Việt Na...
 
Đề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sở
Đề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sởĐề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sở
Đề tài: Tác động của mạng xã hội Facebook đối với học sinh trung học cơ sở
 
Phương pháp nghiên cứu khoa học - KFC
Phương pháp nghiên cứu khoa học - KFCPhương pháp nghiên cứu khoa học - KFC
Phương pháp nghiên cứu khoa học - KFC
 
ASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docx
ASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docxASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docx
ASM_PRO1131_Nhom6_EC17331_quannvph26895 (1).docx
 
sự ra đời của Đảng Cộng sản Việt Nam.ppt
sự ra đời của Đảng Cộng sản Việt Nam.pptsự ra đời của Đảng Cộng sản Việt Nam.ppt
sự ra đời của Đảng Cộng sản Việt Nam.ppt
 
Bạo Lực Học Đường
Bạo Lực Học ĐườngBạo Lực Học Đường
Bạo Lực Học Đường
 
De tai kinh doanh canteen
De tai   kinh doanh canteenDe tai   kinh doanh canteen
De tai kinh doanh canteen
 
BÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌC
BÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌCBÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌC
BÀI TẬP TÌNH HUỐNG QUẢN TRỊ HỌC
 
PHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚI
PHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚIPHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚI
PHÂN TÍCH QUAN ĐIỂM CỦA ĐẢNG VỀ GIẢI QUYẾT CÁC VẤN ĐỀ XÃ HỘI THỜI KÌ ĐỔI MỚI
 
Bai tap trac nghiem kinh te vi mo co dap an
Bai tap trac nghiem kinh te vi mo   co dap anBai tap trac nghiem kinh te vi mo   co dap an
Bai tap trac nghiem kinh te vi mo co dap an
 
Tốc độ phản ứng hóa học
Tốc độ phản ứng hóa họcTốc độ phản ứng hóa học
Tốc độ phản ứng hóa học
 
Kết thúc dự án - bt nhóm1
Kết thúc dự án -  bt nhóm1Kết thúc dự án -  bt nhóm1
Kết thúc dự án - bt nhóm1
 
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
 mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t... mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
mô hình quản lý công trình thể thao câu lạc bộ bóng đá - trung tâm thể dục t...
 
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxHỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
 
Di tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng Nai
Di tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng NaiDi tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng Nai
Di tích Nhà lao Tân Hiệp, thành phố Biên Hòa, tỉnh Đồng Nai
 
Case Study: CloseUp Tìm em nơi đâu
Case Study: CloseUp Tìm em nơi đâuCase Study: CloseUp Tìm em nơi đâu
Case Study: CloseUp Tìm em nơi đâu
 
TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017
TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017
TÀI TRỢ CHƯƠNG TRÌNH “LỤC LẠC VÀNG” NĂM 2016 - 2017
 

Similar to Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY

Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...https://www.facebook.com/garmentspace
 
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...https://www.facebook.com/garmentspace
 
Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...
Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...
Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...TÀI LIỆU NGÀNH MAY
 
đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...
đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...
đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...TÀI LIỆU NGÀNH MAY
 
Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...
Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...
Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...https://www.facebook.com/garmentspace
 
Luận văn thạc sĩ kỹ thuật xây dựng.
Luận văn thạc sĩ kỹ thuật xây dựng.Luận văn thạc sĩ kỹ thuật xây dựng.
Luận văn thạc sĩ kỹ thuật xây dựng.ssuser499fca
 
Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...
Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...
Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...Man_Ebook
 
03 - LUANVAN_NopQuyen.pdf
03 - LUANVAN_NopQuyen.pdf03 - LUANVAN_NopQuyen.pdf
03 - LUANVAN_NopQuyen.pdfNguyễn Thái
 
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng ViênẢnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng ViênHỗ Trợ Viết Đề Tài luanvanpanda.com
 
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...huyendv
 

Similar to Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY (20)

Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
 
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
Luận án Tiến sĩ Kỹ thuật Nghiên cứu phương pháp cố kết chân không xử lý nền đ...
 
Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...
Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...
Nghiên cứu chế độ vận hành tích nước trong thời kỳ mùa lũ cho hệ thống hồ chứ...
 
Phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời, HAY
Phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời, HAYPhương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời, HAY
Phương pháp nâng cao hiệu quả khai thác nguồn pin mặt trời, HAY
 
đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...
đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...
đáNh giá hiện trạng môi trường không khí và đề xuất biện pháp giảm thiểu ô nh...
 
Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...
Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...
Nghiên cứu thành phần alkaloid, flavonoid và hoạt tính chống oxy của lá sen n...
 
Luận văn thạc sĩ kỹ thuật xây dựng.
Luận văn thạc sĩ kỹ thuật xây dựng.Luận văn thạc sĩ kỹ thuật xây dựng.
Luận văn thạc sĩ kỹ thuật xây dựng.
 
Bài toán thiết kế luật điều khiển cho rô bốt di động kiểu bánh xe, HAY
Bài toán thiết kế luật điều khiển cho rô bốt di động kiểu bánh xe, HAYBài toán thiết kế luật điều khiển cho rô bốt di động kiểu bánh xe, HAY
Bài toán thiết kế luật điều khiển cho rô bốt di động kiểu bánh xe, HAY
 
Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...
Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...
Nghiên cứu phát triển một số thuật toán điều khiển rô bốt di động có tính đến...
 
03 - LUANVAN_NopQuyen.pdf
03 - LUANVAN_NopQuyen.pdf03 - LUANVAN_NopQuyen.pdf
03 - LUANVAN_NopQuyen.pdf
 
Nghiên cứu tác dụng giảm sóng của rừng cây ngập mặn ven biển
Nghiên cứu tác dụng giảm sóng của rừng cây ngập mặn ven biểnNghiên cứu tác dụng giảm sóng của rừng cây ngập mặn ven biển
Nghiên cứu tác dụng giảm sóng của rừng cây ngập mặn ven biển
 
Đề tài: Tải trọng động do gió và động đất tác dụng lên nhà cao tầng
Đề tài: Tải trọng động do gió và động đất tác dụng lên nhà cao tầngĐề tài: Tải trọng động do gió và động đất tác dụng lên nhà cao tầng
Đề tài: Tải trọng động do gió và động đất tác dụng lên nhà cao tầng
 
Luận án: Đặc trưng thủy động lực học của dòng nối tiếp, HAY
Luận án: Đặc trưng thủy động lực học của dòng nối tiếp, HAYLuận án: Đặc trưng thủy động lực học của dòng nối tiếp, HAY
Luận án: Đặc trưng thủy động lực học của dòng nối tiếp, HAY
 
Chương trình xếp lịch trực nhật cho sinh viên ở các lớp học tín chỉ
Chương trình xếp lịch trực nhật cho sinh viên ở các lớp học tín chỉ Chương trình xếp lịch trực nhật cho sinh viên ở các lớp học tín chỉ
Chương trình xếp lịch trực nhật cho sinh viên ở các lớp học tín chỉ
 
Luận Văn Phân Tích Báo Cáo Tài Chính Của Công Ty Xuân Anh
Luận Văn Phân Tích Báo Cáo Tài Chính Của Công Ty Xuân AnhLuận Văn Phân Tích Báo Cáo Tài Chính Của Công Ty Xuân Anh
Luận Văn Phân Tích Báo Cáo Tài Chính Của Công Ty Xuân Anh
 
Luận án: Giới hạn ổn định lật ngang của đoàn xe sơ mi rơ moóc
Luận án: Giới hạn ổn định lật ngang của đoàn xe sơ mi rơ moócLuận án: Giới hạn ổn định lật ngang của đoàn xe sơ mi rơ moóc
Luận án: Giới hạn ổn định lật ngang của đoàn xe sơ mi rơ moóc
 
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng ViênẢnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
 
Luận văn: Ứng dụng một số phương pháp tính toán mềm xây dựng phần mềm hỗ trợ ...
Luận văn: Ứng dụng một số phương pháp tính toán mềm xây dựng phần mềm hỗ trợ ...Luận văn: Ứng dụng một số phương pháp tính toán mềm xây dựng phần mềm hỗ trợ ...
Luận văn: Ứng dụng một số phương pháp tính toán mềm xây dựng phần mềm hỗ trợ ...
 
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
Cac nhan to_cua_chat_luong_dich_vu_dao_tao_anh_huong_den_su_hai_long_cua_hoc_...
 
Nâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuật
Nâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuậtNâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuật
Nâng cao độ chính xác tra cứu ảnh dựa vào nội dung sử dụng kỹ thuật
 

More from Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864

Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.docTạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.docDịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 

More from Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864 (20)

Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.docYếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
Yếu Tố Tự Truyện Trong Truyện Ngắn Thạch Lam Và Thanh Tịnh.doc
 
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.docTừ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
Từ Ngữ Biểu Thị Tâm Lí – Tình Cảm Trong Ca Dao Người Việt.doc
 
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và K...
 
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên ...
 
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh ...
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại ...
 
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
Vaporisation Of Single And Binary Component Droplets In Heated Flowing Gas St...
 
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quản...
 
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.docTác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
Tác Giả Hàm Ẩn Trong Tiểu Thuyết Nguyễn Việt Hà.doc
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi...
 
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
Quản Lý Nhà Nước Về Nuôi Trồng Thủy Sản Nước Ngọt Trên Địa Bàn Thành Phố Hải ...
 
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.docSong Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
Song Song Hóa Các Thuật Toán Trên Mạng Đồ Thị.doc
 
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.docỨng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
Ứng Dụng Số Phức Trong Các Bài Toán Sơ Cấp.doc
 
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.docVai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
Vai Trò Của Cái Bi Trong Giáo Dục Thẩm Mỹ.doc
 
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh ...
 
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.docThu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
Thu Hút Vốn Đầu Tư Vào Lĩnh Vực Nông Nghiệp Trên Địa Bàn Tỉnh Gia Lai.doc
 
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trê...
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại ...
 
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.docTạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
Tạo Việc Làm Cho Thanh Niên Trên Địa Bàn Quận Thanh Khê, Thành Phố Đà Nẵng.doc
 
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương ...
 

Recently uploaded

2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hardBookoTime
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21nguyenthao2003bd
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptxvat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptxlephuongvu2019
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...Nguyen Thanh Tu Collection
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem Số Mệnh
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfXem Số Mệnh
 

Recently uploaded (20)

2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptxvat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
 

Luận án: Phát hiện phụ thuộc hàm trong cơ sở dữ liệu, HAY

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ ----------------------------- VŨ QUỐC TUẤN PHÁT HIỆN PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG TRONG CƠ SỞ DỮ LIỆU LUẬN ÁN TIẾN SỸ TOÁN HỌC HÀ NỘI – 2019
  • 2. BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ ----------------------------- VŨ QUỐC TUẤN PHÁT HIỆN PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG TRONG CƠ SỞ DỮ LIỆU LUẬN ÁN TIẾN SỸ TOÁN HỌC Chuyên ngành: Cơ sở Toán học cho Tin học Mã số: 9 46 01 10 Người hướng dẫn khoa học: 1. PGS. TS. Hồ Thuần 2. PGS. TS. Nguyễn Thanh Tùng Hà Nội – 2019
  • 3. i LỜI CAM ĐOAN Tác giả xin cam đoan đây là công trình nghiên cứu do chính tác giả thực hiện dưới sự hướng dẫn khoa học của PGS. TS. Hồ Thuần và PGS. TS. Nguyễn Thanh Tùng tại Học viện Khoa học và Công nghệ - Viện Hàn lâm Khoa học và Công nghệ Việt Nam. Tất cả các kết quả trình bày trong luận án là trung thực, không sao chép từ bất kỳ công trình nào khác. Nếu có điều gì không trung thực, tác giả xin chịu hoàn toàn trách nhiệm. Tác giả Vũ Quốc Tuấn
  • 4. ii LỜI CẢM ƠN Luận án này được thực hiện tại Học viện Khoa học và Công nghệ, Viện Hàn lâm Khoa học và Công nghệ Việt Nam dưới sự hướng dẫn khoa học của PGS. TS. Hồ Thuần và PGS. TS. Nguyễn Thanh Tùng. Tác giả xin bày tỏ lòng biết ơn sâu sắc tới các Thầy đã tận tình chỉ bảo, động viên, hướng dẫn và tạo mọi điều kiện thuận lợi để tác giả hoàn thành luận án. Tác giả xin trân trọng cảm ơn tập thể các Thầy Cô trong Viện Công nghệ Thông tin đã có nhiều ý kiến đóng góp và phản biện trong suốt quá trình tác giả nghiên cứu và hoàn chỉnh luận án. Tác giả xin chân thành cảm ơn các nhà khoa học, các tác giả của các công trình đã được tham khảo và trích dẫn trong luận án. Tác giả xin trân trọng cảm ơn Lãnh đạo Viện Công nghệ Thông tin, Học Viện Khoa học và Công nghệ đã tạo những điều kiện tốt nhất để tác giả có được môi trường nghiên cứu và hoàn thành chương trình nghiên cứu sinh của mình. Xin chân thành cảm ơn các Phòng ban của Viện Công nghệ Thông tin đã giúp đỡ, tạo điều kiện cho tác giả trong suốt quá trình thực hiện luận án. Tác giả xin cảm ơn Ban giám hiệu Trường Cao đẳng Hải Dương, Khoa Tự Nhiên và Khoa Điện-Cơ-Tin đã tạo điều kiện thuận lợi cho tác giả thực hiện luận án. Xin cảm ơn tất cả các bạn đồng nghiệp đã luôn chia sẻ, động viên tác giả trong những lúc khó khăn. Cuối cùng, tác giả xin bày tỏ lòng biết ơn đối với những người thân trong gia đình, đặc biệt là mẹ và vợ, đã luôn ủng hộ và động viên cho tác giả trong suốt thời gian hoàn thành luận án.
  • 5. iii MỤC LỤC Danh sách hình vẽ v Danh sách bảng v Danh sách chữ viết tắt vi MỞ ĐẦU 1 Chương 1. PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG TRONG MÔ HÌNH DỮ LIỆU QUAN HỆ 6 1.1. Nhắc lại một số khái niệm cơ bản.................................................................6 1.1.1. Miền......................................................................................................6 1.1.2. Quan hệ.................................................................................................6 1.1.3. Các tính chất đặc trưng của một quan hệ ...............................................7 1.1.4. Lược đồ quan hệ....................................................................................7 1.2. Phụ thuộc hàm..............................................................................................8 1.2.1. Khái niệm phụ thuộc hàm......................................................................8 1.2.2. Hệ quy tắc suy diễn Armstrong .............................................................9 1.2.3. Bao đóng của một tập thuộc tính ...........................................................9 1.2.4. Khóa của lược đồ quan hệ .....................................................................9 1.3. Phụ thuộc hàm suy rộng .............................................................................10 1.3.1. Phụ thuộc hàm xấp xỉ..........................................................................11 1.3.2. Phụ thuộc hàm mêtric..........................................................................13 1.3.3. Phụ thuộc hàm điều kiện .....................................................................14 1.3.4. Phụ thuộc hàm mờ...............................................................................16 1.3.5. Phụ thuộc sai phân...............................................................................17 1.3.6. Các loại phụ thuộc hàm suy rộng khác ................................................18 1.4. Phát hiện phụ thuộc hàm.............................................................................18 1.4.1. Phương pháp top-down .......................................................................19 1.4.2. Phương pháp bottom-up ......................................................................28 1.4.3. Một số chủ đề liên quan đến phát hiện phụ thuộc hàm.........................32 1.5. Phát hiện phụ thuộc hàm suy rộng..............................................................34 1.5.1. Phát hiện phụ thuộc hàm xấp xỉ...........................................................34 1.5.2. Phát hiện phụ thuộc hàm điều kiện ......................................................36 1.6. Tổng kết chương 1......................................................................................39
  • 6. iv Chương 2. PHỤ THUỘC HÀM XẤP XỈ VÀ PHỤ THUỘC HÀM ĐIỀU KIỆN 41 2.1. Về một số kết quả liên quan đến FD và AFD..............................................41 2.1.1. Phân hoạch..........................................................................................41 2.1.2. Một số kết quả.....................................................................................42 2.2. Phát hiện FD và AFD .................................................................................45 2.2.1. Ma trận tương đương...........................................................................45 2.2.2. Một số tính chất của ma trận thuộc tính...............................................48 2.2.3. Sử dụng ma trận để kiểm tra phụ thuộc hàm........................................49 2.2.4. Sử dụng ma trận để tính một số độ đo xấp xỉ.......................................50 2.3. Phụ thuộc hàm điều kiện.............................................................................54 2.3.1. Sự cần thiết phải mở rộng FD thành CFD............................................54 2.3.2. Cú pháp và ngữ nghĩa của CFD...........................................................54 2.3.3. Một số kết quả quan trọng đã biết về CFD...........................................57 2.4. Về một thứ tự phân cấp giữa các FD, CFD và AR ......................................62 2.5. Kết luận chương 2 ......................................................................................72 Chương 3. THUẬT TOÁN TÍNH BAO ĐÓNG VÀ VẤN ĐỀ RÚT GỌN BÀI TOÁN TÌM KHÓA CỦA LƯỢC ĐỒ QUAN HỆ 73 3.1. Thuật toán tính bao đóng............................................................................73 3.1.1. Khái niệm bao đóng ............................................................................73 3.1.2. Một số thuật toán tính bao đóng ..........................................................74 3.2. Vấn đề rút gọn bài toán xác định khóa của lược đồ quan hệ........................87 3.2.1. Một số kết quả đã biết .........................................................................87 3.2.2. Một dạng cải tiến cho điều kiện cần đã được công bố năm 1985..........89 3.2.3. So sánh các điều kiện cần....................................................................91 3.2.4. Một bài toán quyết định.......................................................................95 3.3. Kết luận chương 3 ......................................................................................96 Chương 4. VỀ MỘT PHÉP BIẾN ĐỔI TIỀN XỬ LÝ HIỆU QUẢ CÁC TẬP PHỤ THUỘC HÀM 97 4.1. Giới thiệu ...................................................................................................97 4.2. Sự dư thừa trong tập phụ thuộc hàm ......................................................... 100 4.3. Một phép biến đổi tiền xử lý hiệu quả các tập FD..................................... 101 4.3.1. Logic Paredaens ................................................................................ 102 4.3.2. Một chứng minh mới cho định lý 4.1................................................. 107 4.4. Tổng kết chương 4.................................................................................... 113 KẾT LUẬN 114 DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 116 TÀI LIỆU THAM KHẢO 117
  • 7. v DANH SÁCH HÌNH VẼ Hình 1.1. Minh họa dàn thuộc tính........................................................... 20 Hình 2.1. Các luật suy diễn đối với CFD ................................................. 60 DANH SÁCH BẢNG BIỂU Bảng 1.1. Quan hệ Nhân viên................................................................... 11 Bảng 1.2. Quan hệ Phim .......................................................................... 13 Bảng 1.3. Quan hệ Qh1............................................................................. 14 Bảng 1.4. Quan hệ Cust ........................................................................... 15 Bảng 1.5. Quan hệ Qh2............................................................................. 17 Bảng 1.6. Quan hệ Qh3............................................................................. 19 Bảng 1.7. Minh họa phụ thuộc hàm điều kiện .......................................... 38 Bảng 2.1. Một quan hệ minh họa ............................................................. 47 Bảng 2 .2. Quan hệ r................................................................................ 67 Bảng 2.3. Quan hệ r1................................................................................ 68 Bảng 2.4. Quan hệ r2................................................................................ 68 Bảng 2.5. Quan hệ r3................................................................................ 68 Bảng 2.6. Quan hệ r4................................................................................ 68 Bảng 3.1. Minh họa cho ví dụ 3.3 ............................................................ 80 Bảng 3.2. Kết quả thử nghiệm.................................................................. 82 Bảng 3.3. Minh họa thuật toán 3.7 ........................................................... 84 Bảng 4.1. Quan hệ phân công .................................................................. 98 Bảng 4.2. Minh họa cho ví dụ 4.6 .......................................................... 111 Bảng 4.3. Minh họa cho ví dụ 4.7 .......................................................... 112
  • 8. vi DANH SÁCH CHỮ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt FD Functional dependency Phụ thuộc hàm RFD Relaxed functional dependencies Phụ thuộc hàm suy rộng AFD Approximate functional dependency Phụ thuộc hàm xấp xỉ MFD Metric functional dependency Phụ thuộc hàm mêtric FFD Fuzzy functional dependency Phụ thuộc hàm mờ DD Differential dependencies Phụ thuộc sai phân CFD Conditional Functional dependency Phụ thuộc hàm điều kiện AR Association Rule Luật kết hợp eCFD Extended Conditional Functional dependency Phụ thuộc hàm điều kiện mở rộng CIND Conditional Inclusion Dependency Phụ thuộc bao hàm điều kiện
  • 9. 1 MỞ ĐẦU Các phụ thuộc dữ liệu có vai trò quan trọng trong thiết kế cơ sở dữ liệu, quản lý chất lượng dữ liệu và biểu diễn tri thức. Việc sử dụng các phụ thuộc trong thiết kế cơ sở dữ liệu và quản lý chất lượng dữ liệu được giới thiệu trong phần lớn các sách về cơ sở dữ liệu. Các phụ thuộc trong trường hợp này được trích xuất từ các yêu cầu về ứng dụng, được sử dụng trong việc chuẩn hóa cơ sở dữ liệu và được cài đặt trong cơ sở dữ liệu đã được thiết kế để đảm bảo chất lượng dữ liệu. Ngược lại, các phụ thuộc trong phát hiện tri thức được trích xuất từ dữ liệu hiện có của cơ sở dữ liệu. Quá trình trích xuất này được gọi là phát hiện phụ thuộc với mục đích tìm tất cả các phụ thuộc được thỏa mãn (đúng) trên dữ liệu hiện có. Mục đích của việc phát hiện phụ thuộc là tìm các phụ thuộc quan trọng đúng (thỏa mãn) trên dữ liệu của cơ sở dữ liệu. Các phụ thuộc (được phát hiện) biểu diễn tri thức (thuộc lĩnh vực hoạt động nào đó) và có thể được sử dụng để kiểm tra thiết kế cơ sở dữ liệu cũng như đánh giá chất lượng dữ liệu. Ví dụ. Bằng việc kiểm tra dữ liệu của một cơ sở dữ liệu y học có hai thuộc tính Bệnh và Triệu chứng, nếu viêm phổi là một giá trị của Bệnh và sốt là một giá trị của Triệu chứng, đồng thời nếu mỗi bệnh nhân viêm phổi đều bị sốt thì sốt được cho là có liên quan đến viêm phổi. Nếu điều này xảy ra (đúng) đối với mọi cặp giá trị Triệu chứng và Bệnh thì Bệnh xác định hàm Triệu chứng và đây là một phụ thuộc hàm. Nếu phụ thuộc hàm này là một tri thức mới, nó sẽ giúp cho việc chẩn đoán bệnh hiệu quả hơn. Trong lĩnh vực khoa học sức khỏe hiện đại, việc tìm các mối liên hệ và các phụ thuộc như vậy (giữa các đoạn DNA và Bệnh) trở nên rất quan trọng đối với sự phát triển của y học. Bên cạnh việc phát hiện tri thức, các phụ thuộc được phát hiện từ dữ liệu có thể được sử dụng để kiểm tra xem các phụ thuộc đã được định nghĩa trước đây trên cơ sở dữ liệu có đúng (thỏa mãn) và đầy đủ hay không, đồng thời có thể dùng để kiểm tra ngữ nghĩa của dữ liệu trong cơ sở dữ liệu.
  • 10. 2 Một ứng dụng nữa của các phụ thuộc (được phát hiện) là để đánh giá chất lượng của dữ liệu. Vai trò chính của việc cài đặt các phụ thuộc trong một cơ sở dữ liệu là để đảm bảo chất lượng dữ liệu của cơ sở dữ liệu. Do đó, trên cơ sở phân tích các phụ thuộc được phát hiện và các phụ thuộc phải có giữa các thuộc tính của dữ liệu, ta có thể tìm và xác định được sự không nhất quán giữa các thuộc tính và các lỗi sai trên dữ liệu; từ đó, đánh giá được chất lượng dữ liệu. Từ những năm đầu thập kỷ 80 của thế kỷ 20, bài toán phát hiện phụ thuộc đã thu hút được sự quan tâm của đông đảo các nhà khoa học thuộc nhiều lĩnh vực nghiên cứu khác nhau như thiết kế cơ sở dữ liệu, học máy và phát hiện tri thức ([3], [10], [12], [18], [21], [26], [32], [33], [34], [37], [42], [45], [57], [65], [72], [75],...). Và cho đến thời điểm hiện tại, vấn đề phát hiện phụ thuộc từ các tập dữ liệu lớn (big data) càng trở nên quan trọng vì trong các tập dữ liệu lớn này chứa rất nhiều tri thức quý giá. Hiện nay, với sự phát triển của toàn xã hội và các thiết bị số, đặc biệt là các ứng dụng mạng xã hội và điện thoại thông minh (smartphone), lượng dữ liệu trong các ứng dụng tăng rất nhanh làm nảy sinh vấn đề lưu trữ, quản lý dữ liệu và đặc biệt là vấn đề phát hiện tri thức từ các tập dữ liệu lớn đó. Bài toán phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng trong cơ sở dữ liệu là một trong những vấn đề quan trọng của phát hiện tri thức (dưới dạng các phụ thuộc). Ba loại phụ thuộc điển hình được chú ý phát hiện là phụ thuộc hàm (FD: Functional Dependency), phụ thuộc hàm xấp xỉ (AFD: Approximate Functional Dependency) và phụ thuộc hàm điều kiện (CFD: Conditional Functional Dependency). AFD là sự mở rộng của FD, tính chất xấp xỉ dựa trên độ thỏa hoặc độ đo lỗi; CFD là sự mở rộng của FD, nhằm nắm bắt những yếu tố không nhất quán trong dữ liệu. Các hướng nghiên cứu giải quyết bài toán phát hiện FD suy rộng trong cơ sở dữ liệu, trước hết tập trung vào vấn đề phát hiện FD do loại phụ thuộc này là trường hợp riêng của tất cả các loại FD suy rộng, các kết quả về phát hiện FD có thể được thích nghi để phát hiện các loại phụ thuộc khác (chẳng
  • 11. 3 hạn AFD). Mô hình chung của bài toán phát hiện FD là xây dựng không gian tìm kiếm các FD, kiểm tra sự thỏa mãn của từng FD, tỉa không gian tìm kiếm, xuất ra tập FD đã phát hiện được và làm gọn tập FD này (giảm bớt sự dư thừa). Trong bài toán phát hiện FD, phát hiện khóa là trường hợp đặc biệt và cũng là bài toán rất đáng quan tâm do khóa đóng vai trò quan trọng trong chuẩn hóa cơ sở dữ liệu quan hệ. Độ phức tạp thời gian tổng quát của bài toán phát hiện FD là đa thức theo số bản ghi trong cơ sở dữ liệu nhưng là hàm mũ theo số thuộc tính của cơ sở dữ liệu đó. Do đó, để giảm thời gian xử lý, cần xây dựng các luật tỉa hiệu quả. Trong số các luật tỉa đã được đề xuất, tỉa khóa là rất quan trọng, khi phát hiện được khóa thì có thể tỉa (xóa) mọi nút chứa khóa trong không gian tìm kiếm. Tuy nhiên, các luật tỉa khóa hiện có vẫn còn nhược điểm là tìm khóa trên toàn bộ tập thuộc tính  của cơ sở dữ liệu (đây thực sự là vấn đề rất khó vì độ phức tạp thời gian có thể là hàm mũ theo số thuộc tính của ), vậy có cách nào phát hiện được khóa trong một tập con thực sự của  hay không? Câu hỏi trên chính là một trong những động lực cơ bản của luận án này. Sau khi đã phát hiện được tập các phụ thuộc, tập này có thể rất lớn và gây khó khăn cho việc sử dụng vì chứa những dư thừa không cần thiết. Vấn đề quan trọng đặt ra là làm thế nào để loại bỏ được (càng nhiều càng tốt) sự dư thừa trong tập phụ thuộc đã được phát hiện. Đây cũng là bài toán được quan tâm trong luận án. Một hướng nghiên cứu nữa trong luận án là tập trung nghiên cứu, phát hiện hai loại FD suy rộng điển hình, đó là AFD và CFD. Cả AFD và CFD đều có nhiều ứng dụng và xuất hiện nhiều trong các cơ sở dữ liệu quan hệ, đặc biệt CFD còn là công cụ mạnh trong giải quyết bài toán làm sạch dữ liệu ([12]). Với AFD, vấn đề quan trọng nhất là cải tiến và phát triển các kỹ thuật tính toán các độ thỏa hoặc độ đo lỗi ([34], [72]); với CFD, ngoài việc phát hiện, thì việc tìm hiểu về một thứ tự phân cấp giữa CFD và một số loại phụ thuộc khác cũng là vấn đề rất đáng quan tâm.
  • 12. 4 Trong những năm gần đây, các hướng nghiên cứu về cải tiến thuật toán tính bao đóng của một tập thuộc tính đối với một tập FD, vấn đề rút gọn cho bài toán xác định khóa của lược đồ quan hệ, vấn đề về các phép biến đổi tiền xử lý hiệu quả các tập FD cho trước đã được xới lại, làm mới với hàng loạt các công trình của các tác giả nước ngoài ([22], [23], [24], [25], [52], [53], [54], [55]), trong khi ở trong nước, có nhiều công trình được công bố liên quan tới các phương pháp và thuật toán xác định các tập rút gọn (reduct) của một bảng quyết định theo nhiều tiếp cận khác nhau. Mục tiêu của luận án là nghiên cứu nhằm thu được một số kết quả giúp giải quyết có hiệu quả một số vấn đề như đã phân tích ở trên trong phạm vi cơ sở dữ liệu quan hệ. Để thực hiện các mục tiêu trên, chúng tôi tập trung vào các nội dung sau: 1) Nghiên cứu tổng quan về các loại FD suy rộng, các phương pháp phát hiện FD và FD suy rộng trong cơ sở dữ liệu quan hệ. 2) Nghiên cứu về AFD và CFD: kỹ thuật tính độ thỏa hoặc độ đo lỗi trong AFD, về một thứ tự phân cấp giữa CFD và một số loại phụ thuộc khác. 3) Nghiên cứu các thuật toán tính bao đóng của tập thuộc tính đối với một tập FD. Cải tiến được các thuật toán này sẽ làm tăng hiệu năng phát hiện khóa của lược đồ quan hệ. Nghiên cứu vấn đề rút gọn cho bài toán xác định khóa của lược đồ quan hệ, đây là vấn đề quan trọng, là cơ sở cho các luật tỉa khóa nhằm thu hẹp không gian tìm kiếm khi phát hiện các FD. 4) Nghiên cứu về một phép biến đổi tiền xử lý các tập FD nhằm thu được một tập FD tương đương nhưng đơn giản hơn tập FD ban đầu. Với các nội dung nghiên cứu trên, luận án được cấu trúc gồm phần mở đầu, bốn chương nội dung và phần kết luận. Chương 1. Trình bày tổng quan về mô hình dữ liệu quan hệ, các khái niệm FD, bao đóng của một tập thuộc tính, khóa của lược đồ quan hệ,…Trong đó tập trung trình bày về FD suy rộng và khát quát các phương pháp đã được sử dụng để phát hiện các FD và FD suy rộng.
  • 13. 5 Chương 2. Trình bày về AFD và CFD (hai loại FD suy rộng điển hình) và một số kết quả có liên quan. Chương 3. Trình bày các thuật toán tính bao đóng của một tập thuộc tính đối với một tập FD, vấn đề rút gọn cho bài toán xác định khóa của lược đồ quan hệ và một số kết quả có liên quan. Chương 4. Trình bày một phép biến đổi tiền xử lý hiệu quả các tập FD (nhằm hạn chế sự dư thừa trong một tập FD cho trước) và một số kết quả liên quan. Kết luận. Tổng kết các kết quả đã đạt được, những điểm còn tồn tại và hướng nghiên cứu tiếp theo.
  • 14. 6 Chương 1. PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG TRONG MÔ HÌNH DỮ LIỆU QUAN HỆ Chương này nhắc lại các khái niệm cơ bản của mô hình dữ liệu quan hệ, tập trung vào các khái niệm phụ thuộc hàm, phụ thuộc hàm suy rộng và khái quát các phương pháp đã được sử dụng để phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng. 1.1. Nhắc lại một số khái niệm cơ bản Mô hình dữ liệu quan hệ được E.F.Codd đề xuất năm 1970 và ngay lập tức mô hình này đã gây được sự chú ý vì có tính đơn giản và cơ sở toán học vững chắc. Mô hình dữ liệu quan hệ biểu thị dữ liệu trong một cơ sở dữ liệu như một tập các quan hệ. Về mặt trực quan, ta có thể hình dung một quan hệ như là một bảng giá trị gồm các hàng và các cột. Mỗi hàng trong bảng là một tập các giá trị có liên quan đến nhau, các giá trị này biểu thị một sự kiện tương ứng với một thực thể hay một mối quan hệ trong thế giới thực. Trong lý thuyết mô hình dữ liệu quan hệ, các thuật ngữ quan hệ, thuộc tính, miền và bộ tương ứng được dùng để chỉ bảng, cột, kiểu dữ liệu của một cột và một hàng trong bảng. 1.1.1. Miền Một miền D là một tập các giá trị nguyên tố, hiểu theo nghĩa mỗi giá trị trong miền là không thể phân chia được thành các thành phần nhỏ hơn trong phạm vi mô hình quan hệ. Mỗi miền được đặc tả thông qua một tên miền và một kiểu dữ liệu. Tương ứng với mỗi thuộc tính có một miền, các thuộc tính khác nhau không nhất thiết phải có các miền khác nhau. 1.1.2. Quan hệ Một quan hệ trên (hay xác định trên) tập thuộc tính Ω = {A1, A2,…,An} là một tập con của tích Descartes Dom(A1)  Dom(A2)  …  Dom(An), trong đó Dom(Ai) là miền trị của thuộc tính Ai, i = 1, 2,…, n.
  • 15. 7 Cho quan hệ r xác định trên tập thuộc tính Ω = {A1, A2,…,An}. Theo định nghĩa, ta có thể viết r dưới dạng sau: r  {(a1, a2,…,an) | ai  Dom(Ai), i = 1, 2,…, n} 1.1.3. Các tính chất đặc trưng của một quan hệ Để làm rõ hơn khái niệm quan hệ trong mô hình dữ liệu quan hệ, ta xem xét các tính chất đặc trưng sau đây của quan hệ:  Mỗi quan hệ có một tên phân biệt.  Mỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố.  Mỗi thuộc tính có một tên phân biệt.  Các giá trị của một thuộc tính thuộc cùng một miền.  Thứ tự của các thuộc tính là không quan trọng.  Không có hai bộ trùng nhau trong một quan hệ.  Thứ tự của các bộ là không quan trọng. Mỗi giá trị trong một bộ phải là một giá trị nguyên tố. Mô hình dữ liệu quan hệ không cho phép có các thuộc tính phức hợp hoặc các thuộc tính đa trị. Đặc trưng này đòi hỏi mỗi thuộc tính đa trị phải được biểu diễn bằng một quan hệ và mỗi thuộc tính phức hợp phải được biểu diễn bằng các thành phần đơn của nó. Trường hợp một số ô trong bảng (quan hệ) có thể là chưa biết được giá trị của chúng vào thời điểm đang xét hoặc không có giá trị nào thích hợp đặt cho một ô (thuộc tính) của một bộ nào đó thì một giá trị đặc biệt, gọi là giá trị null, được sử dụng cho các ô kiểu này. Thứ tự của các thuộc tính trong một quan hệ là không quan trọng khi đảm bảo được sự tương ứng giữa các thuộc tính với các giá trị. Vì các phần tử trong một tập hợp là không có thứ tự nên các bộ không có một thứ tự bắt buộc trong một quan hệ. Định nghĩa quan hệ cũng cho thấy rằng hai quan hệ được xem là đồng nhất nếu chúng có cùng các bộ cho dù thứ tự các bộ trong chúng khác nhau. 1.1.4. Lược đồ quan hệ Một lược đồ quan hệ S là một cặp có thứ tự S = <Ω, F>, trong đó Ω là
  • 16. 8 tập hữu hạn các thuộc tính của quan hệ, F là tập các ràng buộc giữa các thuộc tính. Một ràng buộc trên tập thuộc tính {A1, A2,…,An} là một tính chất trên tập tất cả các quan hệ xác định trên tập thuộc tính này. Mỗi ràng buộc còn được gọi là một phụ thuộc dữ liệu. Một lược đồ quan hệ được sử dụng để mô tả về cấu trúc và các ràng buộc của một quan hệ. Một quan hệ có thể liên tục thay đổi theo thời gian nhưng cấu trúc và các ràng buộc của nó có thể ổn định trong một khoảng thời gian nhất định. Cho lược đồ quan hệ S = <Ω, F> với Ω = {A1, A2,…,An}. Nếu không quan tâm đến tập các ràng buộc F thì ta sẽ dùng ký hiệu S(A1, A2,…,An) hoặc S(Ω) thay cho S = <Ω, F>. Ta dùng ký hiệu r(S) để chỉ một quan hệ r (hay một thể hiện r) của lược đồ quan hệ S. Với một bộ t của r(S) và X  Ω, ta ký hiệu t[X] là bộ chỉ chứa các giá trị của bộ t tại các thuộc tính trong X. Một lược đồ cơ sở dữ liệu quan hệ là một tập các lược đồ quan hệ S’ = {S1, S2,…,Sp}. Một thể hiện của một lược đồ cơ sở dữ liệu quan hệ S’ là một tập các thể hiện DB = {r1(S1), r2(S2),…, rp(Sp)}. Một cơ sở dữ liệu quan hệ là một thể hiện của một lược đồ cơ sở dữ liệu quan hệ. Một cơ sở dữ liệu quan hệ cỡ lớn là một cơ sở dữ liệu quan hệ chứa một lượng lớn dữ liệu (cỡ vài chục thuộc tính, hàng trăm nghìn bản ghi). 1.2. Phụ thuộc hàm Phụ thuộc hàm là một loại phụ thuộc dữ liệu giữa hai nhóm thuộc tính của một lược đồ quan hệ và nó thể hiện tính chất ngữ nghĩa của các thuộc tính. 1.2.1. Khái niệm phụ thuộc hàm Phụ thuộc hàm. Cho  là tập thuộc tính và S() là một lược đồ quan hệ trên . Giả sử X, Y  . Khi đó Y được gọi là phụ thuộc hàm vào X trên lược đồ S(), ký hiệu là X  Y, nếu với mọi quan hệ r trên lược đồ S(), với hai bộ bất kỳ t1, t2  r mà t1[X] = t2[X] thì t1[Y] = t2[Y].
  • 17. 9 Nếu Y phụ thuộc hàm vào X thì ta cũng nói "X xác định hàm Y". Với mỗi quan hệ r trên lược đồ S(), ta nói r thỏa mãn (hay thỏa) phụ thuộc hàm X  Y (hay phụ thuộc hàm X  Y đúng trên r) nếu và chỉ nếu với mọi bộ t1, t2  r, t1[X] = t2[X] kéo theo t1[Y] = t2[Y] . Trong luận án này, ta hạn chế F của lược đồ S = <, F> chỉ gồm các phụ thuộc hàm. 1.2.2. Hệ quy tắc suy diễn Armstrong Với lược đồ quan hệ S = <, F> và X, Y  , ta ký hiệu XY thay cho X  Y. Với mọi X, Y, Z  , hệ quy tắc suy diễn Armstrong đối với các phụ thuộc hàm gồm ba quy tắc sau đây: Q1. (Phản xạ): Nếu Y  X thì X  Y. Q2. (Gia tăng): Nếu X  Y thì XZ  YZ. Q3. (Bắc cầu): Nếu X  Y và Y  Z thì X  Z. Ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn từ F bằng cách áp dụng một số hữu hạn lần các quy tắc của hệ quy tắc suy diễn Armstrong. 1.2.3. Bao đóng của một tập thuộc tính Cho tập phụ thuộc hàm F xác định trên tập thuộc tính  (phụ thuộc hàm Y  Z xác định trên tập thuộc tính  nếu Y, Z  ) và X  . Ta gọi bao đóng của tập thuộc tính X đối với tập phụ thuộc hàm F, ký hiệu là FX  , là tập tất cả các thuộc tính A của  sao cho X  A được suy diễn từ F nhờ hệ quy tắc suy diễn Armstrong. FX  = {A    (X  A)  F+ } 1.2.4. Khóa của lược đồ quan hệ Một quan hệ là một tập hợp các bộ. Các phần tử trong một tập hợp là phân biệt nên không thể có hai bộ trùng nhau trong một quan hệ. Như vậy, với mỗi lược đồ quan hệ S = <Ω, F>, tồn tại một tập thuộc tính SK  Ω có tính chất: với mỗi thể hiện r(S) thì t1[SK] ≠ t2[SK], với t1, t2 là hai bộ khác nhau bất kỳ trong r.
  • 18. 10 Siêu khóa của một lược đồ quan hệ S là một tập gồm một hay nhiều thuộc tính của lược đồ S có tính chất xác định duy nhất một bộ trong mỗi thể hiện của S. Cho lược đồ quan hệ S = <Ω, F>. Nếu SK là siêu khóa của S thì mọi tập con của Ω mà chứa SK cũng là siêu khóa của S. Một siêu khóa "nhỏ nhất" được gọi là một khóa. Khóa của một lược đồ quan hệ S là một siêu khóa của S sao cho mọi tập con thực sự của siêu khóa này đều không phải là siêu khóa của S. Mỗi lược đồ quan hệ luôn có ít nhất một khóa và có thể có nhiều khóa. Một thuộc tính xuất hiện trong một khóa nào đó được gọi là thuộc tính khóa. Ngược lại, một thuộc tính không xuất hiện trong bất kỳ khóa nào được gọi là thuộc tính không khóa. Sử dụng khái niệm phụ thuộc hàm, khái niệm khóa và siêu khóa của lược đồ quan hệ được định nghĩa lại như sau: Cho lược đồ quan hệ S = <, F> và K  . Ta nói K là một khóa của S nếu hai điều kiện sau đây đồng thời được thỏa mãn: (i). (K  )  F+ (ii). Nếu K'  K thì (K'  )  F+ Nếu K   thỏa mãn điền kiện (i) thì K được gọi là một siêu khóa của S. Như vậy, mọi khóa của S đồng thời cũng là siêu khóa của S. 1.3. Phụ thuộc hàm suy rộng Cho r là một quan hệ xác định trên tập thuộc tính Ω = {A1, A2,…,An} và X, Y  . Từ định nghĩa phụ thuộc hàm ở trên, ta nhận thấy: nếu tồn tại t1, t2  r sao cho t1[X] = t2[X] và t1[Y]  t2[Y] thì ta kết luận được rằng r không thỏa phụ thuộc hàm X  Y (hay phụ thuộc hàm X  Y không đúng trên r). Điều này tỏ ra quá chặt chẽ và cứng nhắc khi ta hình dung quan hệ r có hàng nghìn bộ, trong đó chỉ có một vài bộ vi phạm phụ thuộc hàm X  Y do có một số dữ liệu bị sai lệch hoặc một số ngoại lệ. Do đó, việc mở rộng khái niệm phụ thuộc hàm thành phụ thuộc hàm suy rộng theo một cách thức, một nghĩa nào
  • 19. 11 đó là nhu cầu tất yếu và tự nhiên. Tùy theo cách thức và ý nghĩa của sự mở rộng, các phụ thuộc hàm suy rộng có thể được đặt tên khác nhau như phụ thuộc hàm xấp xỉ, phụ thuộc hàm điều kiện, phụ thuộc hàm metric,... 1.3.1. Phụ thuộc hàm xấp xỉ Phụ thuộc hàm xấp xỉ [41] là các phụ thuộc hàm được thỏa mãn với phần lớn các bộ trong quan hệ. Để định nghĩa thuật ngữ "xấp xỉ" một cách chính xác hơn, một độ đo được sử dụng để đo mức độ thỏa mãn (độ thỏa) hay mức độ vi phạm (độ đo lỗi) của mỗi phụ thuộc hàm. Để xác định mức độ vi phạm của X  Y trên quan hệ r, một độ đo lỗi nào đó, ký hiệu là ( , )e X Y r , sẽ được sử dụng. Cho trước một ngưỡng lỗi , 0    1. Ta nói X  Y là phụ thuộc hàm xấp xỉ nếu và chỉ nếu ( , )e X Y r   . Một độ đo lỗi được sử dụng phổ biến là g3 [41], dựa trên số bộ tối thiểu cần phải loại bỏ khỏi r để X  Y đúng.  1 1 1 3 | |: , ( , ) | | r r r X Y r r g X Y r r     min ®óng trªn Ví dụ 1.1. Với quan hệ cho trong bảng 1.1, ta thấy Tên xác định xấp xỉ Giới tính, để phụ thuộc hàm Tên  Giới tính đúng ta chỉ cần loại bỏ một bộ có mã số 003. Ta có: g3(Tên  Giới tính, Nhân viên) = 1/8 = 0.125 Mã số Họ đệm Tên Giới tính Chức vụ t1 001 Vũ Văn Tuấn Nam Trưởng phòng t2 002 Nguyễn Thị Mai Nữ Phó trưởng phòng t3 003 Phạm Thị Hải Nữ Nhân viên t4 004 Trần Văn Hải Nam Nhân viên t5 005 Nguyễn Minh Tuấn Nam Nhân viên t6 006 Vũ Thị Linh Nữ Nhân viên t7 007 Lê Văn Hải Nam Nhân viên t8 008 Nguyễn Văn Thắng Nam Nhân viên Bảng 1.1. Quan hệ Nhân viên
  • 20. 12 Có nhiều phương pháp đã được đề xuất để tính độ thỏa hoặc độ đo lỗi. Các phương pháp này được tóm tắt và so sánh trong [34]. Chẳng hạn, trong [72], độ thỏa của X  Y trên quan hệ r được xác định như sau: TRUTHr(X  Y ) = NTP YXTRUTH ji ji jitt Rtt tt   , ),( )( trong đó, nếu ti[X] = tj[X] và ti[Y]  tj[Y] thì ( , ) ( ) 0i jt tTRUTH X Y  , ngược lại ( , ) ( ) 1i jt tTRUTH X Y  ; NTP là tổng số cặp bộ trong r và bằng |r|(|r| - 1)/2. Ví dụ 1.2. Với quan hệ cho trong bảng 1.1, ta có độ thỏa của phụ thuộc hàm Tên Giới tính là TRUTHNhân viên(Tên Giới tính) = 26/28  93% Một cách khác để tính độ thỏa của X  Y trên quan hệ r được giới thiệu trong [56, 57], cụ thể: xây dựng quan hệ tương đương E(X) trên r như sau: (t1, t2)  E(X)  t1[X] = t2[X],  t1, t2  r Quan hệ E(X) phân hoạch r thành các lớp tương đương. Mỗi lớp tương đương là một tập con của r chứa các bộ giống nhau trên X. Ký hiệu phân hoạch đó là X . Với u  X , nếu t1[X] = t2[X]  t1[Y] = t2[Y],  t1, t2  u, thì ta nói rằng u thỏa X  Y. Ngược lại, u không thỏa X  Y. Thực hiện đoạn chương trình dưới đây để nhận được quan hệ r1. r1 : = ; For each u  X do if (u thỏa X  Y) then r1 : = r1  u; Đặt k = |r1| / |r|. Khi đó, ta nói r thỏa X  Y với độ phụ thuộc k, 0  k  1. Ví dụ 1.3. Xét phụ thuộc hàm Tên  Giới tính trên quan hệ cho trong bảng 1.1, ta có êT n = {{t1, t5}, {t2}, {t3, t4, t7}, {t6}, {t8}}, r1 = {{t1, t5}  {t2}  {t6}  {t8} = {t1, t5, t2, t6, t8}, k = |r1| / |r| = 5/8 = 0.625. Như vậy, r thỏa phụ thuộc hàm Tên  Giới tính với độ phụ thuộc 0.625.
  • 21. 13 1.3.2. Phụ thuộc hàm mêtric Khi tích hợp dữ liệu từ nhiều nguồn khác nhau, thường xảy ra những sai lệch nhỏ trong định dạng dữ liệu (chẳng hạn các định dạng khác nhau đối với địa chỉ, số điện thoại) và điều này làm cho các phụ thuộc hàm truyền thống bị vi phạm, mà thực chất không hề có sự vi phạm về mặt ngữ nghĩa. Khái niệm phụ thuộc hàm mêtric [42], được định nghĩa dưới đây, sẽ tổng quát hóa khái niệm phụ thuộc hàm truyền thống. Xét phụ thuộc hàm X  Y trên quan hệ r. Với mỗi bộ t  r, ký hiệu [t]X = {u  r : u[X] = t[X]} và X = {[t]X : t  r}. Với T  r, ký hiệu T[Y] = {t[Y] : t  T}. Khi đó, phụ thuộc hàm X  Y đúng trên r nếu | [ ]| 1XTmax T Y  Cho một mêtric d trên tập Y, d: dom(Y)  dom(Y)  R, và một tham số   0. Một phụ thuộc hàm mêtric, ký hiệu là X Y  , được gọi là đúng trên r (hay thỏa r) nếu ( [ ])XT dmax T Y    , trong đó , [ ]( [ ]) ( , )d p q T YT Y max d p q  . Ta đã biết phụ thuộc hàm X  Y đúng trên quan hệ r nếu với hai bộ bất kỳ t1, t2  r mà t1[X] = t2[X] thì t1[Y] = t2[Y]. Do đó, về mặt trực quan, ta có thể hình dung phụ thuộc hàm mêtric là sự mở rộng của phụ thuộc hàm bằng cách thay thế điều kiện t1[Y] = t2[Y] bằng điều kiện d(t1[Y], t2[Y]) ≤ . Nguồn dữ liệu Tên phim Thời gian (phút) t1 movies.aol.com Aliens 110 t2 finnguide.fi Aliens 112 t3 amazon.com Clockwork Orange 137 t4 movie-vault.com A Beautiful Mind 144 t5 walmart.com A Beautiful Mind 145 t6 tesco.com Clockwork Orange 131 Bảng 1.2. Quan hệ Phim
  • 22. 14 Ví dụ 1.4 [42]. Xét quan hệ Phim cho trong bảng 1.2, với X = Tên phim, Y = Thời gian. Ta có X = {{t1, t2}, {t3, t6}, {t4, t5}}. Với T = {t1, t2}  T[Y] = {110, 112}  ( [ ]) 2d T Y  ; với T = {t3, t6}  T[Y] = {137, 131}  ( [ ]) 6d T Y  ; với T = {t4, t5}  T[Y] = {144, 145}  ( [ ]) 1d T Y  . Do đó 6 X Y đúng với quan hệ Phim. 1.3.3. Phụ thuộc hàm điều kiện Phụ thuộc hàm điều kiện [12, 32, 75] được sử dụng trong vấn đề làm sạch dữ liệu. Xét quan hệ Q1 được cho trong bảng 1.3. A B C D t1 001 124 12 34 t2 001 124 21 43 t3 002 157 34 69 t4 002 157 34 61 t5 002 158 89 62 t6 002 158 89 90 t7 003 167 78 96 Bảng 1.3. Quan hệ Qh1 Ta thấy quan hệ Qh1 không thỏa phụ thuộc hàm AB  C vì hai bộ t1, t2 có cùng giá trị trên AB nhưng không có cùng giá trị trên C. Tuy nhiên, Qh1 thỏa ràng buộc  = {A = 002 , B} {C}, nghĩa là nếu chỉ xét các bộ của Qh1 mà các bộ này có giá trị trên thuộc tính A là 002 thì phụ thuộc hàm AB  C đúng. Một phụ thuộc hàm điều kiện có dạng  = (X  Y, Tp), trong đó X  Y là một phụ thuộc hàm và Tp là một bảng mẫu với các thuộc tính trong X  Y. Bảng mẫu Tp chứa các bộ mẫu, mỗi bộ mẫu tp  Tp chứa các giá trị hằng và biến không tên "". Biến không tên "" có thể nhận một giá trị tùy ý trong miền thuộc tính tương ứng. Bảng mẫu xác định các bộ của quan hệ phải thỏa phụ thuộc hàm X  Y. Một cách trực quan, bảng mẫu Tp của  làm mịn phụ thuộc hàm X  Y được nhúng trong  bằng việc áp đặt mối liên kết của các
  • 23. 15 giá trị dữ liệu có liên quan về mặt ngữ nghĩa. Theo định nghĩa phụ thuộc hàm điều kiện, ta thấy ràng buộc  là một phụ thuộc hàm điều kiện (AB  C, Tp) với Tp là bảng mẫu chỉ gồm một bộ mẫu như sau: A B C 002   Ví dụ 1.5 [12]. Dưới đây là một số minh họa về các phụ thuộc hàm điều kiện trên quan hệ Khách hàng (Cust) được cho trong bảng 1.4, trong đó CC (Country Code) là mã quốc gia, AC (Area Code) là mã vùng, PN (Phone Number) là số điện thoại, NM (Name) là tên và STR (Street), CT (City), ZIP (Zip Code) là địa chỉ. CC AC PN NM STR CT ZIP t1 01 908 1111111 Mike Tree Ave. NYC 07974 t2 01 908 1111111 Rich Tree Ave. NYC 07974 t3 01 212 2222222 Joe Elm Str. NYC 01202 t4 01 212 2222222 Jim Elm Str. NYC 01202 t5 01 215 3333333 Ben Oak Ave. PHI 02394 t6 44 131 4444444 Ian High St. EDI EH4 1DT Bảng 1.4. Quan hệ Cust Xét 3 phụ thuộc hàm điều kiện sau đây: 1 = ({CC, ZIP}  {STR}, T1) với bảng mẫu T1 CC ZIP STR 44   2 = ({CC, AC, PN}  {STR, CT, ZIP}, T2) với bảng mẫu T2 CC AC PN STR CT ZIP       01 908   MH  01 212   NYC  3 = ({CC, AC}  {CT}, T3) với bảng mẫu T3 CC AC CT    01 215 PHI 44 141 GLA
  • 24. 16 Ta thấy quan hệ Cust thỏa 1 và 3 nhưng không thỏa 2 vì bộ t1 vi phạm bộ mẫu tc = (01, 098, , , MH, ) trong bảng mẫu T2 của 2 . Như vậy, một bộ cũng có thể vi phạm phụ thuộc hàm điều kiện, trong khi sự vi phạm của phụ thuộc hàm đòi hỏi phải xem xét hai bộ. Phụ thuộc hàm là trường hợp đặc biệt của phụ thuộc hàm điều kiện. Thật vậy, phụ thuộc hàm X  Y chính là phụ thuộc hàm điều kiện (X  Y, Tp) với Tp chỉ gồm một bộ mẫu tp duy nhất và tp[A] = "" với mọi A  X  Y. 1.3.4. Phụ thuộc hàm mờ Khái niệm phụ thuộc hàm mờ được đề xuất trong [3] xuất phát từ dữ liệu thực tế có bản chất mờ tự nhiên. Phụ thuộc hàm mờ trong [3] được xây dựng bằng cách thay thế quan hệ bằng nhau trong khái niệm phụ thuộc hàm truyền thống bằng quan hệ bằng nhau mờ. Thông thường, khi so sánh hai giá trị dữ liệu, chỉ có thể xảy ra 2 trường hợp là bằng nhau hoặc khác nhau. Sử dụng lý thuyết tập mờ, hai giá trị dữ liệu có thể bằng nhau với mức  nào đó (0 ≤  ≤ 1), tham số  được cung cấp bởi người thiết kế cơ sở dữ liệu. Cho r là một quan hệ xác định trên tập thuộc tính Ω = {A1, A2,…,An} và X, Y  . Với mỗi thuộc tính Ai  Ω, mức độ bằng nhau của các giá trị dữ liệu trong Dom(Ai) được xác định bởi quan hệ (hàm) Ri. Cho trước tham số  (0 ≤  ≤ 1), ta nói 2 bộ t1[X] và t2[X] bằng nhau với mức , kí hiệu t1[X] E() t2[X], nếu Rk(t1[Ak], t2[Ak])   với mọi Ak  X. Khi đó, X  Y được gọi là phụ thuộc hàm mờ mức  nếu với mọi t1, t2  r, t1[X] E() t2[X]  t1[Y] E() t2[Y]. Ví dụ 1.6 [3]. Cho Ω = {A1, A2, A3} với Dom(A1) = {a, b, c}, Dom(A2) = {p, q} và Dom(A3) = {x, y, z}. R1 a b c a 1 0.6 0.4 b 0.6 1 0.5 c 0.4 0.5 1
  • 25. 17 R2 p q p 1 0.7 q 0.7 1 R3 x y z x 1 0.8 0.7 y 0.8 1 0.4 z 0.7 0.4 1 A1 A2 A3 b p x c q y a q y a q x c p z Bảng 1.5. Quan hệ Qh2 Xét quan hệ Qh2 tại bảng 1.5 và X = {A1, A2}, Y = {A3}. Ta thấy Qh2 không thỏa phụ thuộc hàm X  Y. Tuy nhiên, Qh2 thỏa phụ thuộc hàm mờ X  Y mức  = 0.6. 1.3.5. Phụ thuộc sai phân Khái niệm phụ thuộc sai phân [65] mở rộng quan hệ bằng nhau ở cả hai vế (vế trái và vế phải) của phụ thuộc hàm X  Y trên quan hệ r. Điều kiện t1, t2 bằng nhau trên X và bằng nhau trên Y tương ứng được thay thế bằng điều kiện hai bộ này thỏa mãn hàm L và hàm R. Các hàm L, R được gọi là các hàm sai phân, các phép toán sử dụng trong các hàm sai phân là =, <, >, , , ngoài ra còn có thể sử dụng thêm các toán tử  (và),  (hoặc). Thực chất, các hàm sai phân sử dụng khoảng cách metric để mở rộng các quan hệ bằng nhau được sử dụng (ở cả vế trái và vế phải) trong khái niệm phụ thuộc hàm. Ví dụ 1.7 [65]. Xét ràng buộc sau trong một quan hệ lưu trữ thông tin về giá của các chuyến bay: "sự khác nhau về giá của hai ngày bất kỳ trong khoảng thời gian một tuần không vượt quá 100$". Ràng buộc này được thể hiện bởi phụ thuộc sai phân: [Date (≤ 7)]  [Price (≤ 100)]
  • 26. 18 Nghĩa là, với hai bộ bất kỳ t1, t2 trong quan hệ đang xét, L(t1[Date], t2[Date]) ≤ 7  R(t1[Price], t2[Price]) ≤ 100 Phụ thuộc hàm là trường hợp đặc biệt của phụ thuộc sai phân trong trường hợp L[t1[X], t2[X]) = 0 và R[t1[Y], t2[Y]) = 0. Ngoài ra, phụ thuộc sai phân còn là sự mở rộng của phụ thuộc hàm mêtric khi L[t1[X], t2[X]) = 0 và R[t1[Y], t2[Y]) ≤ . 1.3.6. Các loại phụ thuộc hàm suy rộng khác Còn có nhiều loại phụ thuộc hàm suy rộng khác nữa [18], chẳng hạn phụ thuộc hàm dựa trên xác suất (Probability Based Functional Dependencies), phụ thuộc hàm tương tự (Similarity Functional Dependencies), phụ thuộc sai phân xấp xỉ (Approximate Differential Dependencies),... Xuất phát từ các ứng dụng thực tế, mỗi loại phụ thuộc hàm suy rộng là kết quả của sự mở rộng (nới lỏng) quan hệ bằng nhau trong khái niệm phụ thuộc hàm truyền thống theo một cách thức hay một nghĩa nào đó. 1.4. Phát hiện phụ thuộc hàm Do phụ thuộc hàm là trường hợp riêng của tất cả các loại phụ thuộc hàm suy rộng nên các kết quả đã có về phụ thuộc hàm có thể được làm thích nghi để sử dụng cho phụ thuộc hàm suy rộng. Trong phần này, ta sẽ điểm lại các phương pháp phát hiện phụ thuộc hàm đã được đề xuất: phương pháp trên-xuống (top-down) và phương pháp dưới-lên (bottom-up). Phương pháp top-down bắt đầu bằng việc sinh các phụ thuộc hàm ứng viên theo từng mức, từ vế trái có ít thuộc tính đến vế trái có nhiều thuộc tính hơn, sau đó kiểm tra phụ thuộc hàm ứng viên có được thỏa mãn hay không bởi quan hệ đang xét hoặc bởi các phân hoạch tương ứng. Trái lại, phương pháp bottom-up bắt đầu bằng việc so sánh các bộ để nhận được các tập bằng nhau (agree-set) hoặc các tập khác nhau (difference-set); sau đó sinh các phụ thuộc hàm ứng viên và kiểm tra sự thỏa mãn của các phụ thuộc hàm này dựa vào các tập bằng nhau và các tập khác nhau đã nhận được trước đó. Quan hệ trong bảng 1.6 dưới đây sẽ được sử dụng để minh họa cho một số ví dụ trong phần này.
  • 27. 19 I N B W S 1t i1 n1 b1 w1 s5 2t i2 n2 b1 w1 s1 3t i3 n2 b1 w2 s1 4t i4 n3 b2 w2 s2 Bảng 1.6. Quan hệ Qh3 1.4.1. Phương pháp top-down Phương pháp top-down [45] bắt đầu bằng việc sinh các phụ thuộc hàm ứng viên. Phương pháp này sinh các phụ thuộc hàm ứng viên dựa trên một dàn thuộc tính, kiểm tra sự thỏa mãn của các phụ thuộc hàm và sau đó sử dụng các phụ thuộc hàm đã được phát hiện là đúng (thỏa mãn) để tỉa các phụ thuộc hàm ứng viên ở các mức thấp hơn trong dàn nhằm thu hẹp không gian tìm kiếm. Trong phần này, đầu tiên ta trình bày việc sinh và tỉa các phụ thuộc hàm ứng viên, sau đó sẽ trình bày hai phương pháp cài đặt cụ thể: phương pháp phân hoạch (các thuật toán bao gồm TANE [37] và FD_Mine [74]) và phương pháp tập tự do (free-set) sử dụng lực lượng của các quan hệ chiếu để kiểm tra sự thỏa mãn của các phụ thuộc hàm (thuật toán FUN [59]). Phụ thuộc hàm ứng viên. Các phụ thuộc hàm ứng viên là các phụ thuộc hàm mà về cú pháp có thể tồn tại trong một lược đồ quan hệ. Tuy nhiên, sự thỏa mãn của chúng đối với một thể hiện cụ thể của lược đồ quan hệ này thì chưa được kiểm tra. Cho trước lược đồ S(Ω) với Ω = {A1,A2,...,An}, vế trái của các phụ thuộc hàm ứng viên được sinh nhờ sử dụng tất cả các tổ hợp thuộc tính có thể của Ω. Như đã biết, ta chỉ quan tâm đến các phụ thuộc hàm tối tiểu có một thuộc tính ở vế phải, số thuộc tính ở vế trái của một phụ thuộc hàm ứng viên nhiều nhất là (n - 1) thuộc tính. Chẳng hạn, các phụ thuộc hàm ứng viên không có thuộc tính ở vế trái là   A1,...,   An; các phụ thuộc hàm ứng viên có một thuộc tính ở vế trái là A1  A2, A1  A3, A1  An,..., An  An-1; các phụ thuộc hàm ứng viên có hai thuộc tính ở vế trái là A1A2  A3, A1A2  A4,... Vế trái của các phụ thuộc hàm ứng viên có thể được thể hiện trong một
  • 28. 20 dàn thuộc tính. Dàn thuộc tính. Một dàn thuộc tính là một đồ thị có hướng với nút gốc (L-0) không có thuộc tính nào và được kí hiệu bởi . Các nút con của nút gốc là các nút mức 1 (L-1) và mỗi nút có một thuộc tính. Tổng cộng L-1 có 1 nC n nút. Mỗi nút ở mức 2 (L-2) là một tổ hợp gồm hai thuộc tính, do đó có 2 nC nút ở L-2. Các mức tiếp theo cũng được xây dựng theo cùng quy tắc. Mức thứ n (L-n) là mức cuối cùng và chứa tất cả các thuộc tính. Kí hiệu nij là nút thứ j ở L-i, đồng thời nij cũng được dùng để biểu thị tập các thuộc tính tại nút này. Một cạnh có hướng sẽ được vẽ giữa nút nij và nút n(i+1)k nếu nij  n(i+1)k. Theo cách này, mỗi cạnh thể hiện một phụ thuộc hàm ứng viên có dạng nij  ( n(i+1)k - nij). Hình 1.1 minh họa một dàn thuộc tính với Ω = {A, B, C, D}, cạnh giữa nút AB và ABC biểu thị phụ thuộc hàm ứng viên AB  C. L-0   L-1 A B C D A B C D L-2 AB AC AD BC BD CD AB AC AD BC BD CD L-3 ABC ABD ACD BCD ABC ABD ACD BCD L-4 ABCD (a) ABCD (b) Hình 1.1. Minh họa dàn thuộc tính Như trên đã phân tích, tổng số nút trong dàn thuộc tính là 0 1 2 1 ... 2n n n n n n n nC C C C C       Do h n h n nC C   nên các cạnh trong dàn thuộc tính đối xứng nhau qua mức giữa nếu n là số chẵn hoặc đối xứng nhau qua hai mức giữa nếu n là số lẻ. Tổng số các phụ thuộc hàm ứng viên (tổng số cạnh trong dàn) là 0 1 2 1 . .( 1) .( 2) ... .1 2 2 n n n n n n n C n C n C n C          Dấu "=" xảy ra khi n là số chẵn.
  • 29. 21 Kí hiệu |r| là số bộ của quan hệ r trên lược đồ Ω = {A1,A2,...,An}. Tính trung bình, mỗi phụ thuộc hàm liên quan đến n/2 thuộc tính. Do đó, độ phức tạp khi sử dụng các vòng lặp lồng nhau để kiểm tra tất cả các phụ thuộc hàm ứng viên trong dàn thuộc tính đối với quan hệ r là 2 2 2 2 nn n O r             ; độ phức tạp này cũng là độ phức tạp trong trường hợp xấu nhất của tất cả các phương pháp đã được đề xuất. Tỉa trên dàn thuộc tính. Do số lượng phụ thuộc hàm ứng viên là hàm mũ theo số lượng thuộc tính nên việc tỉa trên dàn thuộc tính trở nên quan trọng. Tỉa trên dàn thuộc tính là loại bỏ các phụ thuộc hàm ứng viên (các cạnh trong dàn thuộc tính) được suy diễn từ các phụ thuộc hàm đã được phát hiện, để không cần phải kiểm tra chúng. Chẳng hạn, trong hình 1.1, nếu A  C đã được phát hiện là đúng thì không cần phải kiểm tra AB  C vì AB  C cũng đúng theo hệ quy tắc Armstrong. Các luật tỉa cơ bản dưới đây thường được sử dụng và có thể được chứng minh bằng hệ quy tắc Armstrong. Gọi  là tập các phụ thuộc hàm đã được phát hiện; X, Y là các tập con của Ω; A, B là hai thuộc tính trong Ω; X  Y = ; A, B  X; A, B  Y và A ≠ B. (T1). Nếu X  A   thì XZ  A đúng và không cần phải kiểm tra. (T2). Nếu X  A   và nếu XAY  B là một phụ thuộc hàm ứng viên thì thay cho việc kiểm tra XAY  B ta sẽ kiểm tra XY  B. Với việc kiểm tra từ trên xuống dưới trên dàn thuộc tính, XY  B phải được kiểm tra ở mức trước và do vậy không cần thiết phải kiểm tra XAY  B. (T3). Nếu X là một khóa thì mọi nút chứa X đều bị tỉa (xóa). Các luật tỉa ở trên được chia thành hai loại: các luật tỉa (T1), (T2) là tỉa cạnh, luật tỉa (T3) là tỉa nút. Ngoài các luật tỉa cơ bản ở trên, một số thuật toán còn sử dụng các luật tỉa khác, chẳng hạn thuật toán FD_Mine sử dụng các phụ thuộc hàm đối xứng (còn gọi là phụ thuộc hàm tương đương, X  Y nếu X  Y và Y  X ) để tỉa tập thuộc tính (chẳng hạn tập Y) nhằm thu hẹp kích thước
  • 30. 22 dàn thuộc tính, thuật toán FUN tỉa các tập không tự do (non-free-sets) để làm giảm kích thước dàn thuộc tính. Thuật toán FastFDs [73], một phương pháp bottom-up, sử dụng các tập khác nhau để tỉa các nút trên dàn thuộc tính. Các luật tỉa cơ bản ở trên được sử dụng trong thuật toán 1.1 dưới đây để tìm một phủ của tất cả các phụ thuộc hàm đúng trên r. Thuật toán kiểm tra sự thỏa mãn của các phụ thuộc hàm dựa trên một dàn thuộc tính theo trình tự từ trái sang phải và từ trên xuống dưới. Ta tiến hành duyệt từ trên xuống dưới là vì các phụ thuộc hàm ứng viên ở các mức trên có ít thuộc tính ở vế trái hơn các phụ thuộc hàm ứng viên ở các mức dưới. Nếu A  C được phát hiện thì các phụ thuộc hàm ứng viên khác như AX  C sẽ bị tỉa theo luật tỉa (T1). Điều này rõ ràng hiệu quả hơn nếu như ta duyệt từ dưới lên trên vì theo theo thứ tự này nếu AX  C được phát hiện, ta vẫn phải kiểm tra A  C và X  C. Trong thuật toán 1.1, dòng 7 cài đặt luật tỉa (T3), dòng 11 cài đặt các luật tỉa (T1) và (T2). Ở dòng 12, supp(f, r) kiểm tra phụ thuộc hàm ứng viên f trên quan hệ r; nếu f được thỏa mãn, hàm này trả về giá trị true. Ngược lại, hàm trả về giá trị false. Dễ thấy rằng thuật toán 1.1 cho kết quả là các phụ thuộc hàm tối tiểu. Thật vậy, theo tiến trình duyệt từng mức một trên dàn thuộc tính của thuật toán, ta cần chứng minh rằng với X  A là phụ thuộc hàm bất kỳ thuộc  (tập các phụ thuộc hàm đã được phát hiện), nếu không có phụ thuộc hàm nào có dạng f = (XY  A) được bổ sung vào , thì các phụ thuộc hàm trong  là tối tiểu. Thật vậy, điều kiện  (X  A)   sao cho X  q và XA  c trên dòng 11 phát hiện tình huống này. Nếu phụ thuộc hàm ứng viên f = (XY  A) thì q = XY và c = XYA. Điều này làm cho điều kiện trên dòng 11 đúng, f bị tỉa và không được bổ sung vào . Một ví dụ minh họa việc tỉa các phụ thuộc hàm ứng viên theo thuật toán 1.1 là: quan sát hình 1.1 (b), giả sử A  C thuộc . Khi đó, các phụ thuộc hàm ứng với các đường chấm chấm bị tỉa theo luật tỉa (T1), các phụ thuộc
  • 31. 23 hàm ứng với các đường nét đứt bị tỉa theo luật tỉa (T2). Từ ví dụ này, ta thấy rằng khi các phụ thuộc hàm có một thuộc tính ở vế trái được phát hiện thì chúng trở nên rất quan trọng đối với việc tỉa một số lượng lớn các cạnh và làm giảm độ phức tạp tính toán. Các phụ thuộc hàm như vậy thường xuất hiện nhiều trong các cơ sở dữ liệu có khóa chỉ gồm một thuộc tính (chẳng hạn: địa chỉ email của nhân viên, mã số của sinh viên, mã vạch của sản phẩm, số đăng ký xe,...là các khóa chỉ gồm một thuộc tính). ------------------------------------------------------------------------------------------------ Thuật toán 1.1 [45]. Phát hiện phụ thuộc hàm ------------------------------------------------------------------------------------------------ INPUT: Một quan hệ r trên tập thuộc tính  OUTPUT: Tập  gồm các phụ thuộc hàm được phát hiện từ quan hệ r. 1 begin 2 Gọi  là tập lưu trữ các phụ thuộc hàm được phát hiện và K là tập lưu trữ các khóa được phát hiện; 3 for each mức L = 2 to (|| - 1) do 4 for each nút p ở mức (L - 1) do 5 sinh tất cả các nút con C ở mức L của nút p; 6 for each nút c  C do 7 if c chứa một khóa then xóa c, next loop; 8 if c là một khóa then bổ sung c vào K; 9 for each nút cha q ở mức (L - 1) của c do 10 gọi f là phụ thuộc hàm q  (c - q) 11 if  (X  A)   sao cho X  q và XA  c then f được suy từ X  A và tỉa f. 12 else if supp(f, r) = true then bổ sung f vào  13 else bỏ qua f; 14 end; ______________________________________________________________ Ngoài việc phát hiện phụ thuộc hàm, thuật toán 1.1 còn phát hiện được cả tập các khóa K (dòng 8). Nếu không có nhu cầu sử dụng tập các khóa K, ta có thể điều chỉnh dòng 2 và bỏ dòng 8. Độ phức tạp trong trường hợp xấu nhất của thuật toán 1.1 là hàm mũ như đã phân tích ở trên. Điều này xảy ra khi vế trái của tất cả các phụ thuộc hàm bao gồm hầu hết các thuộc tính của quan hệ. Trong trường hợp này, tất
  • 32. 24 cả các cạnh của dàn thuộc tính đều cần phải kiểm tra. Thuật toán 1.1 cho kết quả là một phủ của tất cả các phụ thuộc hàm đúng trên r. Thật vậy, tất cả các phụ thuộc hàm ứng viên đều thuộc dàn thuộc tính. Quá trình tỉa (dòng 11) loại bỏ các phụ thuộc hàm được suy diễn. Dòng 13 loại bỏ các phụ thuộc hàm không thỏa. Dòng 12 đưa tất cả các phụ thuộc hàm còn lại vào . Không có lệnh nào trong thuật toán loại bỏ các phụ thuộc hàm trong . Do đó  là một phủ của tất cả các phụ thuộc hàm đúng trên r. Thuật toán 1.1 cho kết quả là một phủ nhưng phủ này có thể chưa tối tiểu. Lý do là trong quá trình tính toán, ta không sử dụng luật suy diễn bắc cầu; do vậy ta có thể đưa vào  các phụ thuộc hàm được suy diễn từ các phụ thuộc hàm đã được phát hiện. Chẳng hạn, theo thuật toán, ta có thể đưa các phụ thuộc hàm sau theo thứ tự vào : A1  A2, A1  A3 và A2  A3; ở đây, A1  A3 được suy diễn từ A1  A2, A2  A3. Tóm lại, ta đã trình bày một thuật toán có thể tỉa các phụ thuộc hàm ứng viên và các nút của dàn thuộc tính sau khi một tập các phụ thuộc hàm và một tập các khóa đã được phát hiện. Bài toán quan trọng tiếp theo là làm thế nào để kiểm tra một phụ thuộc hàm ứng viên sao cho có hiệu quả, nghĩa là supp(f, r) trong thuật toán 1.1 được tính toán thế nào để có hiệu quả. Một số phương pháp tính toán sẽ được trình bày dưới đây. Phương pháp phân hoạch. Hai thuật toán nổi tiếng sử dụng phương pháp phân hoạch là TANE và FD_Mine. Cả TANE và FD_Mine đều sử dụng các luật tỉa cơ bản như trên đã trình bày, ngoài ra FD_Mine còn sử dụng các phụ thuộc hàm đối xứng (còn gọi là phụ thuộc hàm tương đương). Mặc dù thuật ngữ "phương pháp phân hoạch" được dùng để chỉ một lớp các thuật toán; tuy nhiên, khái niệm "phân hoạch" còn được sử dụng trong các thuật toán khác như: phương pháp tập tự do, phương pháp bottom-up để cải tiến hiệu năng thực hiện. Cho trước một quan hệ r trên lược đồ  và một tập thuộc tính X  , phân hoạch r theo X, kí hiệu X là tập các tập con khác rỗng rời nhau và mỗi tập con chứa tất cả các bộ có cùng giá trị trên X. Mỗi tập con của một phân
  • 33. 25 hoạch được gọi là một lớp tương đương. Một phân hoạch được lược gọn là một phân hoạch trong đó các lớp tương đương có một phần tử bị loại bỏ. Ví dụ 1.8. Xét quan hệ trong bảng 1.6. Khi đó  1 2 3 4{ },{ },{ },{ }I t t t t  ,  1 2 3 4{ , },{ , }W t t t t  và  1 2 3 4{ },{ , },{ }N NB t t t t   . Cho hai phân hoạch X và Y , phân hoạch X được gọi là mịn hơn Y , kí hiệu là X Y  nếu với mỗi tập con Xu  đều tồn tại một tập con Yv  sao cho u v . ,X Y X Y Y X         . Định lý 1.1 [40]. Phụ thuộc hàm X A đúng trên r nếu X A  . Định lý dưới đây là sự mở rộng của định lý 1.1. Định lý này rất hữu ích khi kiểm tra các phụ thuộc hàm có dạng X  A vì X và XA tương ứng với hai nút được nối bởi một cạnh trong dàn thuộc tính. Định lý 1.2. [37, 40] Phụ thuộc hàm X  A đúng trên r nếu và chỉ nếu X XA  hoặc X XA  . Tích của hai phân hoạch X và Y được định nghĩa như sau:  | , , ,X Y ij ij i j ij i X j Yp p q w p q w           Định lý 1.3. [27] Ta có: XY X Y Y X        . Bằng cách so sánh  1 2 3 4{ },{ , },{ }N B t t t t   trong ví dụ 1.10 và  1 2 3 4{ },{ , },{ }NB t t t t  trong ví dụ 1.7, ta thấy N B NB    . Dưới đây, ta trình bày cách sử dụng các phân hoạch trong dàn thuộc tính với lược đồ . Trước tiên, quan hệ r trên lược đồ  được quét để có được các phân hoạch trên mỗi thuộc tính của  và các phân hoạch này được lưu trữ trên các nút tương ứng ở mức L-1 của dàn thuộc tính. Điều này thực hiện được vì kích thước các phân hoạch nhỏ hơn nhiều so với kích thước của cơ sở dữ liệu. Các phân hoạch của các tập chứa nhiều thuộc tính sẽ được tính toán dựa trên các phân hoạch của các tập có ít thuộc tính hơn; do đó không cần phải truy cập lại quan hệ r. Nghĩa là, phân hoạch tại mỗi nút ở mức L-i được tính toán theo hai phân hoạch của hai nút ở mức L-( 1)i  . Chẳng hạn, để
  • 34. 26 tính phân hoạch ABC đối với nút ABC , ta sử dụng phân hoạch AB của nút AB và phân hoạch AC của nút AC . Nếu AB ABC  thì theo Định lý 1.2, AB C đúng. Ta phân tích độ phức tạp của phương pháp phân hoạch. Đặt n = ||. Độ phức tạp thời gian cho việc tính toán các phân hoạch của các tập có một thuộc tính là  2 O n r . Độ phức tạp thời gian để tính một phân hoạch tích là  2 O r . Do đó, độ phức tạp thời gian của phương pháp phân hoạch là 2 2 2 2 nn O n r r       với 2 2 nn là tổng số các phụ thuộc hàm ứng viên. So với độ phức tạp thời gian của cách tiếp cận sử dụng vòng lặp lồng nhau ở trên thì phương pháp phân hoạch nhanh hơn 2n lần. Bằng việc sử dụng bảng băm để tính các phân hoạch và thuật toán tuyến tính được đề xuất trong TANE để tính tích các phân hoạch, độ phức tạp này có thể giảm xuống còn 2 2 nn O n r r       . Để lưu trữ các phân hoạch, phương pháp phân hoạch cần cấp phát bộ nhớ cho mỗi nút ở hai mức: mức L-( 1)i  và mức L-(i). Do vậy, thuật toán phân hoạch mất thêm chi phí về bộ nhớ so với cách tiếp cận sử dụng vòng lặp lồng nhau. Chi phí về bộ nhớ cần sử dụng thêm là   2 / ( )n O r sqr n trong đó 2 / ( )n sqr n là độ rộng lớn nhất của dàn thuộc tính theo số lượng nút [37]. Phương pháp tập tự do. Cách tiếp cận tập tự do đã được đề xuất trong [59] và thuật toán cài đặt cách tiếp cận này là FUN. FUN sử dụng lực lượng của hình chiếu [ ]r X để kiểm tra phụ thuộc hàm: [ ] [ ]r X r XA khi và chỉ khi X A . Ta thấy rằng [ ]r X chính là số lớp tương đương của phân hoạch XP . Một tập tự do là một tập tối tiểu X các thuộc tính của lược đồ  sao cho với mọi Y X ta có [Y] < [ ]r r X . Như vậy, các tập gồm một thuộc tính là các tập tự do vì chúng không có tập con. Nếu X là một tập tự do, ( )A R X  , ( ) ( )r X r XA và [ ] [ ]r A r XA thì XA cũng là một tập tự do.
  • 35. 27 Vế trái của một phụ thuộc hàm tối tiểu phải là một tập tự do. Tập tự do của quan hệ r, kí hiệu là ( )Fr r , là tập gồm tất cả các tập tự do trên r. Một tập không tự do là một tập mà lực lượng hình chiếu của nó bằng với lực lượng hình chiếu của một tập con nào đó của nó. Tập chứa một tập không tự do cũng là tập không tự do. Để phát hiện các phụ thuộc hàm đúng trên quan hệ r, ta cần thêm hai khái niệm: bao đóng thuộc tính X  và hầu bao đóng X  . Bao đóng thuộc tính của tập X được tính như sau:  | ( ), [ ] [ ]X X A A R X r X r XA      nghĩa là X  chứa thuộc tính A trên nút ở mức tiếp theo nếu X A . Hầu bao đóng o X của tập X được xác định như sau: 1( ) ... ( )kX X X A X A         trong đó 1... kX A A . Như vậy, X  chứa các thuộc tính trên tất cả các nút cha của X và tất cả các nút phụ thuộc vào các nút cha đó. Các phụ thuộc hàm được xây dựng dựa trên các thành viên của tập ( )Fr r và của hai bao đóng như đã trình bày.  | ( ), ( )FD X A X Fr r A X X      Luật tỉa của phương pháp tập tự do là tỉa các tập không tự do X (một nút). Kỹ thuật sau đó nhằm vào các phụ thuộc hàm kết thúc ở X bằng cách tính bao đóng của các nút (là tập tự do) cha Y của X cùng với lực lượng của chúng mà không cần phải truy cập đến các phân hoạch. Các luật tỉa cơ bản cũng được sử dụng trong phương pháp này. Thuật toán duyệt trên dàn thuộc tính theo từng mức. Ở mức L-1, lực lượng của tất cả các thuộc tính đơn được tính. Hầu bao đóng của mỗi thuộc tính ở mức L-1 được khởi tạo bằng chính nó. Ở mức L-2, các tổ hợp gồm hai thuộc tính được tính từ các thuộc tính không khóa (non-key) ở mức L-1. Sau đó lực lượng của các tổ hợp hai thuộc tính được tính. Nếu lực lượng của một tổ hợp hai thuộc tính X bằng lực lượng nút cha P của nó ở mức trước:
  • 36. 28 ( ) ( )Card X Card P , thì (1) P P X    ; (2) ( )P X P  ; (3) X là một tập không tự do và không tham gia vào việc sinh nút mới ở các mức sau. Sau khi bao đóng của mỗi tập thuộc tính P ở mức trước được tính thì hầu bao đóng của mỗi tập thuộc tính X ở mức hiện tại được tính. Sau đó thuật toán sẽ thực hiện việc sinh nút ở mức L-3. Ví dụ, xét quan hệ trong bảng 1.6. Kí hiệu :X m biểu thị tập thuộc tính X và lực lượng của nó. Mức L-1 có các nút là: :4I , :3N , :2B , :2W , :2S . I là một khóa và không tham gia vào việc sinh nút mới ở mức tiếp theo. Mức L-2 có các nút là: :3NB , :4NW , :3NS , :3BW , :3BS , :4WS . WS và NW là các khóa. Từ lực lượng của các nút ở mức L-2, ta thấy ( ) ( )Card NB Card N , ( ) ( )Card NS Card N nên N B và N S ; NB và NS là các tập không tự do. N NBS  . Bao đóng của các thuộc tính ở mức L-1: N NBS  , B B  , W W  và S NBS  ; hầu bao đóng của NB là NB NBS  . Độ phức tạp của cách tiếp cận này bao gồm chi phí tính các tập tự do và chi phí tính các phụ thuộc hàm. Đặt ( )h Fr r và n = ||. Độ phức tạp khi tính ( )Fr r là  2O h r n với / 2n là số thuộc tính trung bình của một tập tự do. Trong trường hợp xấu nhất, chi phí để tính ,X X và các phụ thuộc hàm là hàm mũ theo số thuộc tính n vì việc tính toán thực hiện dọc theo dàn thuộc tính. 1.4.2 Phương pháp bottom-up Khác với phương pháp top-down ở trên, phương pháp bottom-up [45] so sánh các bộ của quan hệ để tính các tập bằng nhau và các tập khác nhau. Các tập này sau đó được sử dụng để có được các phụ thuộc hàm đúng trên quan hệ đang xét. Đặc trưng của kỹ thuật bottom-up là chúng không kiểm tra các phụ thuộc hàm ứng viên dựa trên quan hệ, mà kiểm tra các phụ thuộc hàm ứng viên dựa trên các tập bằng nhau và khác nhau đã được tính. Phủ âm. Một phủ âm là một phủ gồm tất cả các phụ thuộc hàm vi phạm quan hệ. Phủ âm được tính từ các tập bằng nhau của các bộ thuộc quan hệ.
  • 37. 29 Tập bằng nhau của hai bộ 1t và 2t , kí hiệu 1 2( , )ag t t , là tập thuộc tính X lớn nhất sao cho 1 2[ ] [ ]t X t X . Tập gồm tất cả các tập bằng nhau trên quan hệ r kí hiệu là ( )ag r . Ví dụ 1.9. Quan sát bảng 1.6, ta có 1 2( , )ag t t BW và  ( ) , , ,ag r BW B NBS W . Các tập bằng nhau có thể được tính từ các phân hoạch thuộc tính. Cho trước phân hoạch A của thuộc tính A và hai bộ 1t , 2t . 1 2( , )A ag t t nếu tồn tại một tập con c là một lớp tương đương trong A sao cho 1 2,t t c . Để hiệu quả, ta thường dùng các phân hoạch lược gọn khi tính toán. Tính chất của các tập bằng nhau là nếu 1 2( , )ag t t X thì với mọi thuộc tính ( )A R X  ta có 1 2[ ] [ ]t A t A . Nói cách khác, X A bị vi phạm bởi 1t và 2t . Đó là nguyên lý cơ bản của cách tiếp cận dựa trên phủ âm. Tập cực đại của một thuộc tính A, kí hiệu ( )max A , được định nghĩa như sau: max(A) = {X | X  ag(r), A  X,  Y  ag(r) : X  Y} Do X không chứa A nên X A bị vi phạm bởi ít nhất một cặp bộ. Vì  ( ):Y ag r X Y  nên X là một tập tối đại. Ý tưởng sử dụng tập tối đại X từ ( )ag r là nếu XY A bị vi phạm bởi một cặp bộ thì X A , Y A cũng bị vi phạm bởi cặp bộ đó. Với mục đích là tính hiệu quả, ta chỉ cần xem xét các tập tối đại chứ không phải tất cả các tập bằng nhau. Các tập cực đại của tất cả các thuộc tính tạo nên một phủ của bao đóng âm gồm tất cả các phụ thuộc hàm vi phạm quan hệ đang xét. Ví dụ 1.10. Từ ví dụ 1.9, ta có:  ( ) ,max I BW NBS Các tập cực đại sau đó được dùng để tìm các phụ thuộc hàm đúng trên r. Các phụ thuộc hàm có vế phải là A, kí hiệu là ( )FD A , được xây dựng theo 2 bước:
  • 38. 30 FD1(A) = {X  A | X  ( - A),  Y  max(X): X  Y} (1a) FD(A) = {f | f  FD1(A),  g  FD1(A): vetrai(g)  vetrai(f)} (2a) Ta thấy rằng với mọi ( )Y max A thì Y A bị vi phạm bởi ít nhất một cặp bộ của r; nếu một tập thuộc tính V nào đó được bổ sung vào Y sao cho ( )YV max A thì YV A được thỏa mãn. Do đó, vì X không phải tập con của một Y như vậy nên X A phải được thỏa mãn. Từ (2a) suy ra ( )FD A chỉ chứa các phụ thuộc hàm tối tiểu. Tập ( )FD A có thể được xây dựng như sau: Kí hiệu L là tập tất cả các thuộc tính trong ( )max A . Đầu tiên, ta kiểm tra từng thuộc tính B L , nếu B không thuộc bất kỳ tập nào của ( )max A thì ta bổ sung B A vào ( )FD A . Tiếp theo, ta kiểm tra các tập gồm hai thuộc tính từ L . Nếu một tập, chẳng hạn BC , không là tập con của bất kỳ tập con nào của ( )max A và không chứa vế trái của phụ thuộc hàm nào trong ( )FD A thì ta lại bổ sung BC A vào ( )FD A . Cứ tiếp tục như vậy cho đến khi các tập gồm 3, 4, ... thuộc tính không chứa A được kiểm tra. Luật tỉa (T1) được sử dụng để thu hẹp các tổ hợp cần kiểm tra. Ví dụ 1.11 [45]. Từ ví dụ 1.10, ta có  ( ) ,max I BW NBS . Tất cả các tập gồm một thuộc tính (trừ I ) đều chứa trong một phần tử của ( )max I nên không có thuộc tính nào xác định hàm I . Tiếp theo, ta xét các tổ hợp hai thuộc tính: , , , , ,NB NW NS BW BS WS . Ta thấy, NW và WS không chứa trong bất kỳ phần tử nào của ( )max I . Do đó, NW I và WS I được bổ sung vào ( )FD I . Tiếp đến, ta xét các tổ hợp ba thuộc tính: , , ,NBW NBS NWS BWS . Trong số này, ( )NBS max I ; , ,NBW NWS BWS chứa vế trái của một phụ thuộc hàm trong ( )FD I ; như vậy không có phụ thuộc hàm nào được suy từ các tập ba thuộc tính. Tương tự, không có các phụ thuộc hàm nào được suy từ các tập bốn thuộc tính. Kết quả ta có  ( ) ,FD I NW I WS I   .
  • 39. 31 Độ phức tạp của cách tiếp cận phủ âm là hàm mũ theo số thuộc tính của  trong trường hợp xấu nhất. Để tính tập bằng nhau ( )ag r cần 2 n r phép so sánh với n = ||. Để tính ( )max A với mọi A trong  mất 2 ( )n ag r phép so sánh. Cuối cùng, để nhận được các phụ thuộc hàm từ ( )max A (với mọi A) cần ( ) 2 2 LL n max A trong đó 2 2 LL là số các phụ thuộc hàm ứng viên và L là tập tất cả các thuộc tính trong ( )max A . Độ phức tạp tổng cộng của phương pháp này là 2 2 ( ( ) ( ) 2 ) 2 LL O n r n ag r n max A  . Trường hợp xấu nhất xảy ra khi L R . Các biến thể khác nhau của cách tiếp cận phủ âm được đề xuất trong [33]. Khác với việc sử dụng tập cực đại để trực tiếp phát hiện các phụ thuộc hàm được thỏa (bởi quan hệ), công trình trong [46] sử dụng phần bù của các tập bằng nhau cực đại để tìm các phụ thuộc hàm được thỏa. Phương pháp này được đề cập cùng với cách tiếp cận tập khác nhau dưới đây. Tập khác nhau. Thuật ngữ "tập khác nhau" đồng nghĩa với tập cần thiết [49] và phần bù của tập cực đại [46]. Phương pháp tập khác nhau sử dụng tư tưởng đối ngẫu của khái niệm phủ âm. Tập khác nhau của một thuộc tính A, kí hiệu ( )dif A , là tập chứa các tập con thuộc tính sao cho khi thuộc tính A có các giá trị khác nhau trên hai bộ thì một tập con trong ( )dif A cũng có các giá trị khác nhau trên hai bộ đó [73]. Khi đã tính được ( )dif A thì vế trái của các phụ thuộc hàm được thỏa phải chứa một thuộc tính từ mỗi tập con của ( )dif A . Mặc dù nguyên lý để phát hiện vế trái của các phụ thuộc hàm được thỏa mãn là đơn giản nhưng không gian tìm kiếm trong quá trình tính toán phụ thuộc hàm được thỏa mãn là hàm mũ theo số tất cả các thuộc tính trong ( )dif A . Thuật toán Dep-Miner được đề xuất trong [46] cũng dùng ý tưởng này. Kí hiệu 'R là tập gồm tất cả các thuộc tính xuất hiện trong bất kỳ tập con nào của ( )dif A . Về cơ bản, Dep-Miner xem xét tất cả các tổ hợp thuộc tính
  • 40. 32 có thể theo từng mức trên dàn thuộc tính của 'R . Vế trái của một phụ thuộc hàm được thỏa là một tổ hợp trong dàn có giao với tất cả các tập con của ( )dif A . Độ phức tạp của phương pháp này tương tự như phương pháp phủ âm. Để giảm độ phức tạp, thuật toán FastFDs đã được đề xuất trong [73]. Thuật toán xây dựng một dàn trước tiên theo chiều sâu (depth-first) sử dụng các phần tử của một tập khác nhau. Quá trình xây dựng dàn kết thúc bằng một phủ của tất cả các phụ thuộc hàm được thỏa mãn. Về lý thuyết, số nút trong dàn được xây dựng là hàm mũ theo số thuộc tính trong tập khác nhau. Thuật toán sử dụng các tập con của tập khác nhau để thu hẹp kích thước dàn. 1.4.3. Một số chủ đề liên quan đến phát hiện phụ thuộc hàm Trong phần này, ta sẽ trình bày tóm tắt một số chủ đề liên quan đến phát hiện phụ thuộc hàm [45]. Lấy mẫu. Khi quan hệ r lớn, chi phí cho việc kiểm tra một phụ thuộc hàm ứng viên có thể rất cao. Để giảm thời gian kiểm tra một phụ thuộc hàm ứng viên trên r, lấy mẫu là một phương pháp được đề xuất cho mục đích này. Kí hiệu f là một phụ thuộc hàm ứng viên, s là một mẫu nhỏ của quan hệ r , [0,1]  là một tham số tin cậy (nhỏ). Ý tưởng chính của phương pháp lấy mẫu là nếu f được thỏa bởi s thì f được thỏa bởi r với độ tin cậy (1 ) . Nếu f bị vi phạm bởi các bộ trong s thì chắc chắn f không được thỏa bởi r [41]. Sử dụng ý tưởng này, các phụ thuộc hàm ứng viên không được thỏa bởi quan hệ r có thể được tỉa một cách hiệu quả. Phương pháp lấy mẫu thường được sử dụng kết hợp với các phương pháp khác. Duy trì các phụ thuộc hàm đã được phát hiện. Trong phần này, giả sử quan hệ r được cho trước và tất cả các phụ thuộc hàm được thỏa bởi r đã được phát hiện và được lưu trữ trong tập . Ta nghiên cứu vấn đề tập  sẽ thay đổi như thế nào khi thực hiện chèn thêm một bộ vào r hoặc xóa đi một bộ khỏi r .
  • 41. 33 Khi một bộ t được chèn vào r , các phụ thuộc hàm có thể được duy trì theo cách sau [10]: Với mỗi phụ thuộc hàm X A trong , kí hiệu X  là bao đóng thuộc tính được tính từ . Sau thao tác chèn, tính: [ ]q SELECT X FROM r WHERE X t X   Nếu 1q  thì việc chèn thêm bộ không ảnh hưởng đến . Nếu 1q  thì phải tồn tại B trong X  có các giá trị khác nhau trong [ ]q X  . Tìm Z B trong  sao cho Z X   và loại bỏ Z B khỏi . Khi một bộ t bị xóa khỏi quan hệ r , các phụ thuộc hàm đúng trên r vẫn đúng trên ( )r t . Tuy nhiên, các phụ thuộc hàm mới có thể được bổ sung vào  do việc xóa có thể loại bỏ các bộ vi phạm một số phụ thuộc hàm. Đáng tiếc là chưa có cách nào đơn giản để phát hiện các phụ thuộc hàm mới sẽ được bổ sung; ta có thể áp dụng lại các thuật toán phát hiện phụ thuộc hàm đối với quan hệ ( )r t . Phát hiện khóa. Phát hiện khóa là trường hợp đặc biệt của phát hiện phụ thuộc hàm. Định lý sau đây kiểm tra một tập thuộc tính có phải là khóa đối với quan hệ r hay không. Định lý 1.4 [45]. (1) Cho X là một tập con của  và r là một quan hệ. Tập X là một khóa của r nếu và chỉ nếu [ ]r X r . [32, 59] (2) Một thuộc tính A R là một khóa nếu và chỉ nếu A không thuộc bất kỳ tập bằng nhau nào của quan hệ r . Theo (1), điểm mấu chốt của định lý là việc tính lực lượng. Lực lượng r có thể nhận được từ các siêu dữ liệu (metadata) của r . Lực lượng [ ]r X được tính trong 2 trường hợp: nếu X chỉ có một thuộc tính thì cũng có thể nhận được từ các siêu dữ liệu của r giống như r . Nếu X gồm nhiều thuộc tính thì có thể sử dụng phương pháp phân hoạch để tính [ ]r X [59]. Công trình trong [9] chỉ rõ: cho trước một tập các phụ thuộc hàm, bài toán xác định xem có hay không một khóa (nhiều nhất k thuộc tính) là NP-C.
  • 42. 34 1.5. Phát hiện phụ thuộc hàm suy rộng Hai loại phụ thuộc hàm suy rộng điển hình là phụ thuộc hàm xấp xỉ và phụ thuộc hàm điều kiện. Phần này sẽ trình bày ngắn gọn vấn đề phát hiện phụ thuộc hàm xấp xỉ và phụ thuộc hàm điều kiện. 1.5.1. Phát hiện phụ thuộc hàm xấp xỉ Thuật ngữ "phụ thuộc hàm xấp xỉ" [41] mang ý nghĩa là sự thỏa mãn gần đúng của một phụ thuộc hàm thông thường :f X Y . Một phụ thuộc hàm xấp xỉ đòi hỏi phụ thuộc hàm thông thường phải được thỏa mãn bởi phần lớn các bộ của quan hệ r . Để định nghĩa thuật ngữ "xấp xỉ" một cách chính xác hơn, các bộ vi phạm được sử dụng để tính độ đo lỗi hoặc độ thỏa của một phụ thuộc hàm xấp xỉ. Có nhiều phương pháp đã được đề xuất để tính độ thỏa hoặc độ đo lỗi. Các phương pháp này được tóm tắt và so sánh trong [34]. Dưới đây là một phương pháp được đề xuất trong [41].   3 | , | ( , ) 1 max s s r s X A g X A r r       Để kiểm tra các phụ thuộc hàm xấp xỉ trên r , các phương pháp phát hiện phụ thuộc hàm có thể được thích nghi để phát hiện các phụ thuộc hàm xấp xỉ bằng cách bổ sung vào phần tính toán độ thỏa hoặc độ đo lỗi. Một ví dụ trong công trình [47] là sử dụng phương pháp phủ âm. Ý tưởng của việc sử dụng phủ âm là với một tập bất kỳ ( )Z max A thì Z A không đúng trên quan hệ r . Tuy nhiên, với việc phát hiện các phụ thuộc hàm xấp xỉ, nếu Z A không bị vi phạm bởi một số lượng lớn các bộ, nghĩa là 3 ( , )g Z A r nhỏ hơn hoặc bằng một ngưỡng nào đó, thì Z A là một phụ thuộc hàm xấp xỉ được phát hiện. Phương pháp lấy mẫu được đề xuất trong [41] là một cách tiếp cận khác để phát hiện các phụ thuộc hàm xấp xỉ. Phương pháp lấy mẫu sử dụng một lượng nhỏ các bộ để quyết định một phụ thuộc hàm xấp xỉ có được thỏa
  • 43. 35 mãn hay không trên toàn bộ quan hệ r , điều này làm nảy sinh thêm độ phức tạp của vấn đề. Kí hiệu s là một mẫu ngẫu nhiên của quan hệ r . Xét hai trường hợp sau: - Nếu f được thỏa mãn hoặc được thỏa mãn xấp xỉ bởi s thì có thể f không thỏa (vi phạm) bởi các bộ trong r s . - Nếu f bị vi phạm bởi một số ít các bộ trong s thì có thể f thỏa xấp xỉ r vì có thể f thỏa tất cả các bộ trong r s . Để mô tả các tình huống xác suất giữa việc thỏa bởi s và việc thỏa xấp xỉ bởi r , một tham số tin cậy  được đưa vào. Với tham số đó, nếu f được thỏa bởi s , ta nói rằng f được thỏa bởi r với xác suất (1 ) . Với cùng lập luận, một phủ của các phụ thuộc hàm xấp xỉ đúng trên s trở thành một phủ xác suất trên r . Kích thước của mẫu (ngẫu nhiên) có ảnh hưởng đến độ chính xác của phủ mặc dù nó không hoàn toàn xác định độ chính xác. Một mẫu lớn hơn có thể không chứa bất kỳ bộ vi phạm nào của r , nhưng một mẫu nhỏ có thể chứa đa số các bộ vi phạm; do đó việc xác định kích thước của mẫu là một bài toán rất quan trọng. [41] đề xuất kích thước của mẫu phải nằm trong một phạm vi nhất định. Ta thấy rằng có sự khác nhau giữa việc dùng mẫu để phát hiện các phụ thuộc hàm và các phụ thuộc hàm xấp xỉ. Trong trường hợp các phụ thuộc hàm, mẫu được sử dụng hiệu quả để loại bỏ các phụ thuộc hàm không thỏa mãn. Ý tưởng rất đơn giản là nếu một phụ thuộc hàm vi phạm mẫu s của r thì nó vi phạm r ; từ đó, các phụ thuộc hàm ứng viên không thỏa s được xóa bỏ một cách hiệu quả. Các phụ thuộc hàm ứng viên còn lại thỏa s , kí hiệu ( )dep s , sau đó cần phải kiểm tra vì một số phụ thuộc hàm trong ( )dep s có thể không được thỏa bởi r . Với mỗi phụ thuộc hàm ( )f dep s , nếu f thỏa r thì đưa f vào ( )dep r . Cuối cùng, ( )dep r chứa tất cả các phụ thuộc hàm thỏa r và là một phủ của tất cả các phụ thuộc hàm thỏa r .
  • 44. 36 Trái lại, trong trường hợp các phụ thuộc hàm xấp xỉ, một phủ của các phụ thuộc hàm xấp xỉ được phát hiện từ một mẫu là một phủ xác suất trên r . Công trình [40] sử dụng độ đo lỗi của các siêu khóa để xác định sự thỏa mãn xấp xỉ của các phụ thuộc hàm và chứng minh rằng X A nếu và chỉ nếu 3 3( ) ( )g X g XA với 3( ) 1 ( ) /g Z r Z r  là phần bộ tối thiểu cần loại bỏ khỏi r để Z là một siêu khóa. Công trình [37] mở rộng phương pháp phân hoạch để tính sự thỏa mãn xấp xỉ nhờ sử dụng độ đo lỗi 3( )g X A . 1.5.2. Phát hiện phụ thuộc hàm điều kiện Các phụ thuộc hàm có điều kiện là một kiểu ràng buộc mới mở rộng phụ thuộc hàm truyền thống dùng cho các mục đích làm sạch dữ liệu [12]. Các phụ thuộc hàm điều kiện mặc dù còn mới đối với cộng đồng nghiên cứu cơ sở dữ liệu nhưng bài toán phát hiện phụ thuộc hàm điều kiện đã được bắt đầu nghiên cứu [32, 35]. Phần dưới đây trình bày ngắn gọn về định nghĩa của phụ thuộc hàm điều kiện và việc phát hiện phụ thuộc hàm điều kiện. Cho trước 2 tập con ,X Y của , một phụ thuộc hàm có điều kiện là một phát biểu có dạng ( , )X Y S với S là một bảng mẫu trên X  Y. Một bộ p  S là một bộ xác định trên tập thuộc tính X  Y, trong đó  A  X  Y, p[A] = a  Dom(A) hoặc p[A] = "" với "" là một biến không tên lấy giá trị thuộc Dom(A). Một bộ t trong một quan hệ r trên  sánh hợp một bộ mẫu p trong S , kí hiệu t[X  Y]  p[X  Y], nếu với mỗi A X thì [ ] ' 'p A   hoặc [ ] [ ]p A t A . Một phụ thuộc hàm có điều kiện được thỏa bởi quan hệ r trên  nếu và chỉ nếu: 1 2,t t r  , p S  , nếu 1 2[ ] [ ]t X t X  p[X] thì 1 2[ ] [ ]t Y t Y  p[Y]. Trong định nghĩa trên, X Y được gọi là một phụ thuộc hàm nhúng. Ví dụ 1.12 [12]. Xét một thể hiện của lược đồ quan hệ cust(CC, AC, PN, NM, STR, CT, ZIP) được cho trong bảng 1.4.
  • 45. 37 Ta thấy các phụ thuộc hàm được thỏa gồm: 1 :[ , , ] [ , , ]f CC AC PN STR CT ZIP 2 :[ , ] [ ]f CC AC CT Dưới đây là hai phụ thuộc hàm điều kiện được thỏa bởi quan hệ trên: 1 :[ 01, 212, ] [ , , ]CC AC PN STR CT NYC ZIP     2 :[ 01, 215] [ ]CC AC CT PHI     Sự khác nhau giữa phụ thuộc hàm, phụ thuộc hàm xấp xỉ và phụ thuộc hàm điều kiện. Phụ thuộc hàm và phụ thuộc hàm xấp xỉ đều có dạng X Y , sự khác nhau là ở mức độ thỏa. Phụ thuộc hàm đòi hỏi X Y phải được thỏa mãn bởi tất cả các bộ trong quan hệ, trong khi phụ thuộc hàm xấp xỉ cho phép một phần nhỏ các bộ vi phạm. Phụ thuộc hàm điều kiện sử dụng kí hiệu ( , )X Y S và sự thỏa mãn chỉ cần đối với các bộ sánh hợp với bảng S . Một phụ thuộc hàm là trường hợp đặc biệt của phụ thuộc hàm điều kiện khi bảng S chứa duy nhất một bộ toàn giá trị '-'. Cũng giống như các phụ thuộc hàm, phụ thuộc hàm điều kiện cũng có thể được thỏa mãn xấp xỉ [26]. Phát hiện phụ thuộc hàm điều kiện [45]. Những khó khăn xuất hiện khi phát hiện các phụ thuộc hàm điều kiện đến từ hai khía cạnh. Cũng như trong trường hợp của phụ thuộc hàm, số lượng các phụ thuộc hàm nhúng cần kiểm tra đối với các phụ thuộc hàm điều kiện có thể có là hàm mũ theo số thuộc tính. Mặt khác, bài toán phát hiện bảng mẫu tối ưu cho một phụ thuộc hàm nhúng là NP-C [35]. Một thuật toán được đề xuất trong [21] nhằm phát hiện các phụ thuộc hàm điều kiện. Các phụ thuộc hàm ứng viên nhận được từ dàn thuộc tính. Ý tưởng sử dụng trong thuật toán này là dựa trên những tính chất của các phân hoạch thuộc tính. Mọi bộ trong một lớp tương đương của phân hoạch Y có cùng giá trị trên Y . Nếu một lớp tương đương c trong XA bằng với một lớp tương đương trong X thì các bộ của c có cùng giá trị trên A.
  • 46. 38 Cho trước một phụ thuộc hàm ứng viên X A , vế trái X được chia thành các tập con Q và W , Q được gọi là tập điều kiện và W được gọi là tập biến. Thuật toán sử dụng các phân hoạch ,Q X  và XA . Sau đó tính một tập XU chứa tất cả các lớp tương đương trong X với tính chất: có ít nhất l bộ và bằng hoặc được chứa trong một lớp tương đương nào đó của XA . Cuối cùng, một bộ mẫu trong bảng S của phụ thuộc hàm có điều kiện được phát hiện nếu tồn tại một lớp tương đương z trong Q sao cho các bộ trong z được chứa trong XU . Bộ mẫu là [ ], |z Q   nếu z không phải là một lớp tương đương trong XA ; ngược lại, bộ mẫu là [ ], | [ ]z Q z A . S1 N B S John d1 e1 S2 N B S - d1 e1 Bảng 1.7. Minh họa phụ thuộc hàm điều kiện Xét bảng 1.7 và một phụ thuộc hàm ứng viên NB S với X NB và A S . Đặt Q N và 2l  . Khi đó  1 2 3 4{ },{ , },{ }N NB NBS t t t t     và 2 3{{ , }}XU t t . Xét lớp tương đương thứ hai 2 3z {t ,t } trong N ta thấy các bộ của z đều nằm trong XU và NBSz  nên bộ mẫu được phát hiện là , | 1john e . Một thuật toán xấp xỉ (dùng chiến lược tham lam) được đề xuất trong [35] để tính một bảng mẫu gần tối ưu cho một phụ thuộc hàm điều kiện khi cho trước phụ thuộc hàm nhúng. Tính chất gần tối ưu của bảng mẫu được phát hiện so với bảng mẫu tối ưu được kiểm soát bới hai tham số là độ hỗ trợ và độ tin cậy. Cho trước một phụ thuộc hàm nhúng X Y và với mỗi bộ t trong quan hệ r , thuật toán tính các mẫu ứng viên bằng cách xem xét tất cả
  • 47. 39 các tổ hợp giá trị có thể trong [ ]t X và điều này đưa đến kết quả với số lượng mẫu ứng viên là hàm mũ theo X : [ ] 2 X r X . Tiếp đó, đối với mỗi mẫu ứng viên, thuật toán tính độ hỗ trợ và độ tin cậy tương ứng. Sau đó lựa chọn các mẫu có độ hỗ trợ cao nhất trên ngưỡng hỗ trợ để đưa vào bảng. Thuật toán đòi hỏi độ phức tạp thời gian là 2 X r . Công trình [32] đề xuất ba thuật toán CFDMiner, CTANE và FastCFD. Các thuật toán này tương ứng với các phiên bản FD_Miner, TANE và FastFD. CFDMiner tập trung phát hiện các phụ thuộc hàm điều kiện hằng (các bộ mẫu không chứa kí hiệu '-'), trong khi CTANE và FastCFD phát hiện phụ thuộc hàm điều kiện tổng quát. 1.6. Tổng kết chương 1 Trong chương này, ta đã nhắc lại một số khái niệm quan trọng trong mô hình dữ liệu quan hệ, tập trung vào các khái niệm liên quan đến phụ thuộc hàm, trình bày một số loại phụ thuộc hàm suy rộng, xem xét tổng quan các phương pháp phát hiện các phụ thuộc hàm, phụ thuộc hàm xấp xỉ, phụ thuộc hàm điều kiện trong cơ sở dữ liệu quan hệ. Bài toán phát hiện phụ thuộc dữ liệu có không gian tìm kiếm là hàm mũ theo số thuộc tính trong cơ sở dữ liệu. Điều thuận lợi là phần lớn dữ liệu thỏa các phụ thuộc hàm và các phụ thuộc hàm xấp xỉ với một hoặc một vài thuộc tính ở vế trái. Một số thuật toán hiệu quả đã được đề xuất. Với bài toán phát hiện các phụ thuộc hàm, ý tưởng thực hiện là xuất phát từ các phụ thuộc hàm có ít thuộc tính ở vế trái. Các phụ thuộc hàm đã được phát hiện, sau đó, được sử dụng để tỉa bớt các phụ thuộc hàm ứng viên trong dàn thuộc tính nhằm thu hẹp không gian tìm kiếm. Phương pháp thông dụng nhất là phương pháp phân hoạch và phương pháp phủ âm. Các phương pháp phát hiện phụ thuộc hàm có thể được làm thích nghi để sử dụng cho bài toán phát hiện các phụ thuộc hàm suy rộng. Chẳng hạn, có thể bổ sung thêm phần tính độ đo lỗi hoặc độ thỏa để phát hiện các phụ thuộc