1. Trang chủ
  2. » Thể loại khác

PHÁT HIỆN PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG TRONG CƠ SỞ DỮ LIỆU

132 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 132
Dung lượng 1,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 5

iii

MỤC LỤC

Chương 1 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 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

Trang 6

iv

Chương 2 PHỤ THUỘC HÀM XẤP XỈ

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

Trang 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ệ Qh 1 14

Bảng 1.4 Quan hệ Cust 15

Bảng 1.5 Quan hệ Qh 2 17

Bảng 1.6 Quan hệ Qh 3 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ệ r 1 68

Bảng 2.4 Quan hệ r 2 68

Bảng 2.5 Quan hệ r 3 68

Bảng 2.6 Quan hệ r 4 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

Trang 8

vi

DANH SÁCH CHỮ VIẾT TẮT

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

eCFD Extended Conditional Functional

Trang 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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

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

Trang 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 , A 2 ,…,A n}

là một tập con của tích Descartes

Dom(A 1)  Dom(A2)  …  Dom(An), trong đó Dom(Ai) là miền trị của thuộc tính Ai, i = 1, 2,…, n

Trang 15

7

Cho quan hệ r xác định trên tập thuộc tính Ω = {A1 , A 2 ,…,A n} Theo định nghĩa, ta có thể viết r dưới dạng sau:

r  {(a 1 , a 2 ,…,a n) | 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à

Trang 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 , A 2 ,…,A n} 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 , A 2 ,…,A n} 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 , A 2 ,…,A n) 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 , S 2 ,…,S p} 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 , t 2  r mà t1[X] = t2[X] thì t1[Y] = t2[Y]

Trang 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ộ t 1 ,

t 2  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:

Q 1 (Phản xạ): Nếu Y  X thì X  Y

Q 2 (Gia tăng): Nếu X  Y thì XZ  YZ

Q 3 (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à X F, 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

F

X= {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

Trang 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 , A 2 ,…,A n} 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 t 1 , t 2

 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

Trang 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 XY 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

Bảng 1.1 Quan hệ Nhân viên

Trang 20

j i j i

j i

t t R t t

t t

TRUTH Nhâ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

r 1 : = ;

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 , t 5}, {t2}, {t3 , t 4 , t 7}, {t6}, {t8}}, r1 = {{t1 , t 5}  {t2}  {t6}  {t8} = {t1 , t 5 , t 2 , t 6 , t 8}, 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

Trang 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

| [ ] | 1

X

T

max  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

( [ ])

X

max   T Y  , trong đó d( [ ])T Ymax p q T Y,  [ ]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 , t 2  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)

t 1 movies.aol.com Aliens 110

t 2 finnguide.fi Aliens 112

t 3 amazon.com Clockwork Orange 137

t 4 movie-vault.com A Beautiful Mind 144

t 5 walmart.com A Beautiful Mind 145

t 6 tesco.com Clockwork Orange 131

Bảng 1.2 Quan hệ Phim

Trang 22

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

Ta thấy quan hệ Qh1 không thỏa phụ thuộc hàm AB  C vì hai bộ t 1 , t 2

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 Qh 1

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, T p), 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

Trang 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:

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ỉ

t 1 01 908 1111111 Mike Tree Ave NYC 07974

t 2 01 908 1111111 Rich Tree Ave NYC 07974

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

Trang 24

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

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 , A 2 ,…,A n} và

X, Y   Với mỗi thuộc tính A i  Ω, 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 , t 2  r,

t 1[X] E() t2[X]  t1[Y] E() t2[Y]

Ví dụ 1.6 [3] Cho Ω = {A 1 , A 2 , A 3} với Dom(A1 ) = {a, b, c}, Dom(A 2 ) = {p, q} và Dom(A 3 ) = {x, y, z}

Trang 25

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 ,

t 2 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)]

Trang 26

18

Nghĩa là, với hai bộ bất kỳ t1 , t 2 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

Trang 27

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 ,A 2 , ,A n}, 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à A1 A 2  A3, A1 A 2 

A 4, Vế trái của các phụ thuộc hàm ứng viên có thể được thể hiện trong một

Trang 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ó

C 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

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à

n n 2n

CCC  C  C

Do C n hC n n h 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à

Trang 29

21

Kí hiệu |r| là số bộ của quan hệ r trên lược đồ Ω = {A1 ,A 2 , ,A n} 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ệ rlà 2 2

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

Trang 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

Trang 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

Trang 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

Trang 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 đó I { },{ },{ },{ }t1 t2 t3 t4 ,

{ , },{ , }1 2 3 4 

  và N NB { },{ , },{ }t1 t t2 3 t4 

Cho hai phân hoạch Xvà 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 uX đều tồn tại một tập con vY

sao cho uvX Y X  Y, Y X

Định lý 1.1 [40] Phụ thuộc hàm XA đú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

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-(i 1) Chẳng hạn, để

Trang 34

26

tính phân hoạch ABC đối với nútABC, 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,

ABC đú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

Do đó, độ phức tạp thời gian của phương pháp phân hoạch là

22

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 n 2 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

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 XA Ta thấy rằng r X[ ] chính là số lớp tương đương của phân hoạch

Trang 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  XA ARX r Xr XA

nghĩa là X chứa thuộc tính A trên nút ở mức tiếp theo nếu XA

Hầu bao đóng X o của tập X được xác định như sau:

1

( ) ( k)

X XXA    XA

trong đó XA1 A k 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

FDXA XFr r AX 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:

Trang 36

28

Card XCard P , thì (1) P P X ; (2) P(XP); (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à: I : 4, N: 3, B: 2, W : 2, : 2

S 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à: NB: 3, NW: 4, NS: 3, BW: 3, BS: 3, WS: 4

WSNW là các khóa Từ lực lượng của các nút ở mức L-2, ta thấy

Card NBCard N , Card NS( )Card N( ) nên NBNS;NB

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 WS NBS; hầu bao đóng của NB

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 hFr r( ) và n = || Độ phức tạp khi

tính Fr r( ) là O h r n 2 với n/ 2 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ệ

Trang 37

29

Tập bằng nhau của hai bộ t và 1 t , kí hiệu 2 ag t t , là tập thuộc tính ( , )1 2

X lớn nhất sao cho t X1[ ]t X2[ ] Tập gồm tất cả các tập bằng nhau trên quan

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 ag t t( , )1 2  X thì với mọi thuộc tính A(RX) ta có t A1[ ]t A2[ ] Nói cách khác, XA bị vi phạm bởi t 1

t Đó là nguyên lý cơ bản của cách tiếp cận dựa trên phủ âm 2

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 XA bị vi phạm bởi ít nhất một cặp bộ

Vì Yag r( ) :XY 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 XYA bị vi phạm bởi một cặp bộ thì XA, YA

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 IBW 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:

Trang 38

30

FD 1(A) = {X  A | X  ( - A),  Y  max(X): X  Y} (1a)

FD(A) = {f | f  FD 1(A),  g  FD1(A): vetrai(g)  vetrai(f)} (2a)

Ta thấy rằng với mọi Ymax A( ) thì YA 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

( )

YVmax A thì YVA đượ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 XA 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  , nếu B L

không thuộc bất kỳ tập nào của max A( ) thì ta bổ sung BA vàoFD 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 BCA

vàoFD 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, NWWS không chứa trong bất kỳ phần tử nào của max I( ) Do đó, NWIWSI đượ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, NBSmax 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 INWI WSI

Trang 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 n r 2 phép so

sánh với n = || Để tính max A( ) với mọi A trong  mất n ag r( )2phé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 )

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

Trang 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

Ngày đăng: 02/08/2020, 09:47

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w