Một phụ thuộc hàm X A là đúng trên một quan hệ r A( 1,...,An) nếu tất cả các bộ mà bằng nhau trên X thì cũng bằng nhau trên A, trong đó
1
{ ,..., n}
X A A A . Việc kiểm tra xem các bộ bất kì bằng nhau trên vế trái thì có bằng nhau trên vế phải của phụ thuộc hàm hay không.
Các phƣơng pháp tiếp cận mở rộng cho các phụ thuộc xấp xỉ đƣợc nghiên cứu và phát triển. Một trong những cách tiếp cận là sử dụng các lớp tƣơng đƣơng và các phân hoạch.
Chúng ta dùng phƣơng pháp phân hoạch chia các bộ dữ liệu thành các nhóm dựa trên những giá trị khác nhau của mỗi cột (thuộc tính). Với mỗi thuộc tính, số các nhóm bằng với số các giá trị khác nhau của mỗi thuộc tính đó. Mỗi nhóm đƣợc gọi là một lớp tƣơng đƣơng.
Hai bộ t và u là tƣơng đƣơng đối với một tập X các thuộc tính cho trƣớc nếu t A[ ]u A[ ] với mọi A trong X . Mỗi tập thuộc tính bất kỳ X
phân hoạch các bộ của quan hệ thành các lớp tƣơng đƣơng. Chúng ta biểu thị lớp tƣơng đƣơng của một bộ tr với một tập cho trƣớc X R bởi [ ]t X , tức là [ ]t X {ur t A| [ ]u A[ ] A X}. Tập X {[ ] |t X tr} của các lớp tƣơng đƣơng là một phân hoạch của r theo X . Nhƣ vậy mỗi lớp tƣơng đƣơng ứng với một giá trị duy nhất cho tập thuộc tính X và hợp của các lớp tƣơng đƣơng bằng với quan hệ r. Bậc | |r của phân hoạch là số lớp tƣơng đƣơng trong .
Ví dụ: Xét quan hệ.
TupleID A B E C D
1 1 a 2 $ Hoa
2 1 x 2 Hoa tulip
3 2 x 0 $ Cây thủy tiên
4 2 x 0 $ Hoa
5 2 y 0 Cây huệ
6 3 y 1 $ Phong lan
7 3 c 1 Hoa
8 3 c 1 # Bông hồng
Thuộc tính A có giá trị “1” chỉ trong các bộ 1 và 2 vì vậy chúng tạo thành một lớp tƣơng đƣơng [1] A [2] A {1, 2}. Tƣơng tự, thuộc tính A có giá trị
“2” trong các bộ 3, 4, 5 và có giá trị “3” trong các bộ 6, 7, 8. Sau đây toàn bộ các lớp tƣơng đƣơng của thuộc tính A: A {{1,2},{3,4,5},{6,7,8}}. Các lớp
tƣơng đƣơng với tổ hợp các thuộc tính B,C là
B C, {{1},{2},{3},{4},{5},{6},{7},{8}}
.
Phân hoạch của các thuộc tính
A {{1,2},{3,4,5}{6,7,8}} B {{1},{2,3,4},{5,6},{7,8}} C {{1,3,4,6},{2,5,7},{8}} D {{1},{2},{3},{4},{5},{6},{7},{8}}