Quan hệ tương tự giữa các nhãn được định nghĩa như ở ví dụ 2.1.
Theo định nghĩa mới, sự phù hợp đối với thuộc tính THU NHẬP của các bộ d2 và d3 được tính như sau:
C(Thu nhập[d2, d3]) = max {max {min {s(thấp, thấp ), 0.8, 0.9}},
max{min{s(trung bình, thấp),0.3, 0.9}}}
= max {max {min{1,0.8, 0.9}}, max{min{0.2, 0.3, 0.9}}} = max {max {0.8}, max {0.2}}
= max {0.8, 0.2} = 0.8
2.2.1.3. Định nghĩa phụ thuộc hàm mờ
Định nghĩa 2.5. [4] Cho quan hệ mờ r là một thể hiện bất kỳ trên lược đồ
quan hệ R(A1,… ,An), U là tập vũ trụ các thuộc tính A1,…, An và X, Y là tập con của U. Quan hệ mờ r gọi là thoả mãn phụ thuộc hàm mờ, X →ϑ Y, nếu mọi cặp bộ t1 và t2 thuộc r, C(Y [ t1, t2]) ≥ min(ϑ, C(X [ t1, t2 ])), trong đó ϑ
là số thực nằm trong đoạn [0, 1], mô tả độ mạnh ngôn ngữ.
Các ffd cần được kiểm tra bất cứ khi nào các bộ được đưa vào cơ sở dữ liệu quan hệ mờ hoặc chúng được sửa đổi, sao cho các ràng buộc toàn vẹn được áp đặt bởi các ffd khơng bị vi phạm.
Ví dụ 2.4. Cho quan hệ mờ NGƯỜI = (TÊN, NĂNG LỰC, THU NHẬP)
được định nghĩa trong ví dụ 2.1
Ràng buộc toàn vẹn cho quan hệ “NGƯỜI” là “Năng lực làm việc của nhân viên nhiều hay ít xác định thu nhập của họ”, ffd của quan hệ này là
NĂNG LỰC →0.6 THU NHẬP, ở đây 0.6 là độ mạnh của ngơn ngữ. “nhiều hay ít”. Ffd này cần được kiểm tra bất cứ khi nào các bộ dữ liệu mới được thêm vào, để xem bộ mới này có vi phạm ffd không. Dưới đây, một cặp bộ được chèn vào để khảo sát sự phù hợp các bộ.
({Nam},{kém, rất kém}, {rất thấp})
Bộ này không xung đột với ffd
Bước 2: Chèn vào bộ thứ hai
({Quang},{trung bình}, {thấp,trung bình})
Các giá trị phù hợp của các thuộc tính vế phải và trái của ffd là
C(Năng lực[t1, t2]) =0.3, C(Thu nhập[t1, t2]) =0.2
Ở đây, ffd: NĂNG LỰC →0.6 THU NHẬP bị vi phạm bởi vì C(Thu nhập[t1, t2]) =0.2 < min(0.6,C(Năng lực[t1, t2]))
Do đó bộ này khơng được chèn vào.
Bước 3: Chèn bộ thứ ba
({Hùng},{trung bình, tốt}, {thấp})
Chỉ có một bộ phù hợp với sự kiểm tra, vì các bộ của bước 2 không được chèn vào.
C(Năng lực[t1, t2]) =0.3, C(Thu nhập[t1, t2]) =0.8
Ffd: NĂNG LỰC →0.6 THU NHẬP khơng bị vi phạm vì
C(Thu nhập[t1, t2]) ≥ min(0.6, C(Năng lực[t1, t2])), do vậy bộ này được chèn
vào. Bây giờ chúng ta có 2 bộ phù hợp với quan hệ
t1: ({Nam},{kém, rất kém}, {rất thấp}) t3: ({Hùng},{trung bình, tốt}, {thấp})
Bước 4: Chèn vào bộ thứ 4
({Hà},{trung bình}, {rất thấp})
C(Năng lực[t1, t3]) =0.3, C(Thu nhập[t1, t3]) =1 C(Năng lực[t2, t3]) =0.6, C(Thu nhập[t2, t3]) =0.8
Sau đó ffd: NĂNG LỰC →0.6 THU NHẬP khơng bị vi phạm bởi vì cả C(Thu nhập[t1, t3]) ≥ min(0.6,C(Năng lực[t1, t3])), C(Thu nhập[t2, t3]) ≥ min(0.6,C(Năng lực[t2, t3]))
Do đó bộ này được chèn vào.
Do vậy chúng ta có 3 bộ thoả mãn ràng buộc của quan hệ
t1: ({Nam},{kém, rất kém}, {rất thấp}) t3: ({Hùng},{trung bình, tốt}, {thấp}) t4: ({Hà},{trung bình}, {rất thấp})
2.2.1.4. Phụ thuộc hàm mờ một phần
Ffd một phần được định nghĩa dựa trên định nghĩa về ffd, chúng được sử dụng để định nghĩa dạng chuẩn mờ thứ 2.
Định nghĩa 2.6. [4] Y được gọi là phụ thuộc hàm mờ một phần vào X với độ
mạnh ϑ, X→ϑY một phần, nếu và chỉ nếu X→ϑ Y và tồn tại X’ ⊂ X, X’ ≠ Ø, và X’→α Y với α ≥ ϑ.
Một phụ thuộc hàm mờ X→ϑY là phụ thuộc hàm mờ một phần, nếu loại
bỏ một thuộc tính A khỏi X thì sự phụ thuộc vẫn giữ được. Có nghĩa, đối với một thuộc tính A∈ X, X − {A} vẫn xác định hàm mờ Y với độ α ≥ ϑ.
Ví dụ 2.5. Cho lược đồ quan hệ R = (A, B, C) và các ffd là AB→0.8 C và
A→0.9 C. Sau khi loại bỏ thuộc tính B từ ffd đầu tiên, phụ thuộc vẫn giữ, do
2.2.1.5. Các quy tắc suy diễn phụ thuộc hàm mờ
Các quy tắc suy diễn của phụ thuộc hàm mờ [31]. 1. Quy tắc gộp (Inclusive rule)
Nếu X→θ1 Y và θ1 ≥ θ2, thì X→θ2 Y 2. Quy tắc phản xạ (Reflexive Rule)
Nếu X ⊇Y, X→θ Y đúng với mọi θ ∈[0,1] 3. Quy tắc tăng trưởng (Augmentation) Nếu r thoả X→θ Y, nó cũng thỏa XZ→θ YZ 4. Quy tắc bắc cầu
Nếu r thoả X→θ1 Y và Y→θ2 Z, nó cũng thỏa X→min(θ1,θ2) Z. Một số quy tắc suy diễn khác được suy ra từ các quy tắc trên
5. Quy tắc hợp (Union Rule)
Nếu r thoả X→θ1 Y và X→θ2 Z, nó cũng thoả X→min(θ1,θ2) YZ. 6. Quy tắc giả bắc cầu (Pseudotransitivty rule)
Nếu r thoả X→θ1 Y và WY→θ2 Z, nó cũng thoả WX→min(θ1,θ2) Z. 7. Quy tắc phân rã (Decomposition Rule)
Nếu X→θ Y và Z ⊆ Y thì X→θ Z
2.2.2. Khố mờ
Tương tự như trong quan hệ truyền thống, trong mơ hình cơ sở dữ liệu quan hệ mờ, các dạng chuẩn mờ được định nghĩa dựa trên khái niệm phụ thuộc hàm mờ và khoá mờ.
Định nghĩa 2.7. [4] Cho K, S ⊆U, và F là một tập phụ thuộc hàm mờ của lược đồ quan hệ R: K được gọi là một khoá mờ của R với độ mạnh ϑ nếu và
chỉ nếu K→ϑi U ∈ F và K→ϑi U không phải là ffd một phần, trong đó
ϑ=minϑi và ϑ >0.
Ví dụ 2.6. Cho quan hệ R=(A, B, C, D), và các phụ thuộc hàm mờ:
A→0.7 B và A→0.9 CD, A là khoá mờ của quan hệ với độ mạnh 0.7, vì giá trị
B được xác định bởi A với độ mạnh là 0.7 và các giá trị C, D được xác định bởi A với độ mạnh 0.9. Các giá trị ϑ1=0.7 và ϑ2 = 0.9 và giá trị ϑ khi đó là min của {0.7,0.9}, đó là 0.7.
Khố mờ có các giá trị như một thuộc tính thơng thường. Nó có thể có nhiều giá trị như là {a,b} ở đó a và b là tương tự nhau với một mức độ tương tự nhất định. Giá trị khoá mờ chỉ có một hạn chế như các thuộc tính khác là không được là tổ hợp của AND. Điều này sẽ được giải thích ở phần sau.
2.2.2.1. Bao đóng các phụ thuộc hàm mờ
Cho một tập các phụ thuộc hàm mờ của một quan hệ, khoá mờ của quan hệ có thể tìm thấy bằng cách sử dụng khái niệm bao đóng bắc cầu. Chen, Kerre và Vandenbulcke ([13]) đã nghiên cứu bao đóng bắc cầu và các tiên đề của phụ thuộc hàm mờ. Việc tính bao đóng bắc cầu của tập phụ thuộc hàm mờ F dựa trên các quy tắc suy diễn là khơng đơn giản, bởi vì tập đó có thể là rất lớn cho dù tập phụ thuộc F là nhỏ. Thay vì sử dụng phương pháp trên, thuật toán sau tìm tất cả các thuộc tính phụ thuộc hàm mờ vào tập thuộc tính X và độ mạnh lớn nhất sẽ được lấy, gọi là bao đóng bắc cầu của X.
Thuật tốn 2.1. [4] Thuật tốn tính bao đóng bắc cầu.
Vào: X là tập k thuộc tính X=X1, X2,....Xk . F là tập các phụ thuộc hàm mờ. Ra: X+, bao đóng bắc cầu của X ứng với F.
1) Khởi tạo danh sách bao đóng của X, ký hiệu là XList, với tập các thuộc tính thuộc X với độ lớn nhất, 1, cho mỗi thuộc tính.
XList={(X1, 1), (X2, 1),...,(X3, 1)}
Gọi Dom là miền thoạt đầu, chứa các thuộc tính trong XList; cụ thể là X1, X2, ...Xk. BList là danh sách bao đóng tạm thời.
2) Với mỗi ffd V→α W, trong F
Nếu vế trái mỗi fdd là một tập con của miền Dom, V ⊆ Dom
• Tìm độ mạnh nhỏ nhất trong XList, trong số các phần tử của XList mà có thuộc tính là các phần tử của V, gọi là minstrength.
• Gọi φ là giá trị nhỏ nhất của α và độ mạnh tìm thấy ở bước trước,
φ = min (α, minstrength).
• Với mỗi thuộc tính Wj của vế phải W, thêm (Wj, φ ) vào BList 3) Tổ hợp BList với XList, sử dụng phép hợp mờ.
4) Nếu có một sự thay đổi ở XList, thiết lập lại BList, điều chỉnh miền,
Dom, theo các phần tử mới của XList, và trở lại bước 2. Trong trường hợp khác thì dừng, XList là bao đóng bắc cầu của X.
Ví dụ 2.7. Cho các quan hệ như ở ví dụ 2.6, quan hệ R với tập thuộc tính
{A, B, C, D} và fdds: A→0.7 B và A→0.9 CD. Chúng ta tính bao đóng bắc cầu
của thuộc tính A. Khởi tạo,
XList = {(A,1)}, Dom={A}, BList =Ø
Với ffd đầu tiên, A→0.7 B
minstrength = 1, φ = min(1, 0.7) =0.7 BList = {(B, 0.7)}
Với ffd thứ 2, A→0.9 CD
BList ={(B, 0.7),(C, 0.9),(D, 0.9)}
Tổ hợp BList vào XList, XList = {(A, 1), (B, 0.7), (C, 0.9), (D, 0.9)}
Vì XList thay đổi, chúng ta thiết lập lại BList và miền Dom mới là Dom = {A,
B, C, D}. Sau đó, 2 ffd cũng được xem lại với kịch bản tương tự. Nhưng tại
thời điểm này, khơng có gì thay đổi ở XList và bao đóng bắc cầu của A là {(A,
1),(B, 0.7), (C, 0.9), (D, 0.9)}.
2.2.2.2. Tìm khố mờ của quan hệ
Để tìm khố mờ của quan hệ, khái niệm tập bao đóng bắc cầu của phụ thuộc hàm mờ được sử dụng.
Thuật toán 2.2. [4] Thuật tốn tìm khố mờ,
Vào: Cho F là một tập các ffd của quan hệ R Ra: Khoá mờ của quan hệ R
Phương pháp:
1) Tìm tất cả các thuộc tính vế trái của các ffd trong F.
2) Tìm tất cả các thuộc tính khơng chứa ở bất kỳ ffd nào của F. 3) Hợp hai tập tìm thấy vào danh sách các thuộc tính AttributeList.
4) Bắt đầu với các tổ hợp một thuộc tính đơn, cho tất cả các tổ hợp lớn
dần các thuộc tính trong danh sách các thuộc tính AttributeList (gọi tắt tổ hợp là comb):
a. Nếu comb chứa một khố đã tìm thấy trước đây, tiếp tục với các tổ hợp khác
b. Tìm bao đóng của comb
c. Nếu bao đóng đã tìm thấy chứa tất cả các thuộc tính của quan
hệ, thiết lập α là giá trị nhỏ nhất của độ mạnh trong tập bao đóng, và thêm comb vào danh sách khoá với độ mạnh là α.
Với thuật toán này, tất cả các khoá dự tuyển được tìm thấy. Bước thứ tư của thuật toán đảm bảo phụ thuộc hàm mờ đầy đủ của các thuộc tính của quan hệ vào khố mờ.
Ví dụ 2.8. Cho các quan hệ như ví dụ 2.6. Để tìm tất cả các khố mờ cho
quan hệ R=(A, B, C, D) với các ffd: A→0.7 B và A→0.9 CD, chúng ta áp dụng thuật toán trên.
Tập thuộc tính vế trái của R là {A}, khơng có thuộc tính nào khơng nằm trong bất cứ ffd nào, do vậy AttributeList={A}. Vì chỉ có một thuộc tính ở
AttributeList, chỉ cần tìm bao đóng cho thuộc tính A.Và bao đóng của thuộc
tính A là {(A, 1),(B, 0.7), (C, 0.9), (D, 0.9)}. Vì bao đóng chứa tất cả các thuộc tính trong quan hệ, A là khố mờ của quan hệ với độ mạnh 0.7, là nhỏ nhất của {1, 0.7, 0.9}
2.2.2.3. Các thuộc tính khố và khơng khố (Fuzzy Prime and Nonprime Attributes)
Để có thể thiết lập các điều kiện cho dạng chuẩn mờ 2, cần phải định nghĩa các thuộc tính khố mờ và khơng khố mờ cho quan hệ.
Định nghĩa 2.8. [4] Cho A∈ U, X ⊆ U và К là một tập khoá mờ của quan hệ
R. A được gọi là thuộc tính khố mờ nếu và chỉ nếu A ∈ K với K∈ К; X được gọi là tập thuộc tính khố mờ nếu và chỉ nếu X ⊆ K với K∈ К. Các thuộc tính khơng phải là thuộc tính khóa mờ được gọi là thuộc tính khơng khố mờ
(nonprime).
Để một thuộc tính là thuộc tính khố mờ thì nó phải là một phần của ít nhất một trong những khoá mờ của quan hệ. Tương tự, để một thuộc tính là thuộc tính khơng khố mờ, nó khơng được xuất hiện trong bất cứ một khoá
mờ nào của quan hệ. Ở ví dụ 2.8, thuộc tính A là thuộc tính khố mờ với độ mạnh 0.7.
2.2.3. Dạng chuẩn mờ thứ nhất
Đầu tiên, một trong những dạng chuẩn truyền thống được mở rộng trong mơ hình quan hệ mờ dựa trên quan hệ tương tự là dạng chuẩn thứ nhất (1NF).
Định nghĩa 2.9. [4] Cho Dk là miền trị của thuộc tính Ak , một lược đồ quan
hệ R được gọi là ở dạng 1NF mờ nếu và chỉ nếu với bất cứ quan hệ r trong R, khơng một thuộc tính nào có giá trị là đa trị ( tổ hợp của AND).
Khi một lược đồ quan hệ không phải là 1NF mờ, thuật toán sau được sử dụng để đưa lược đồ đó về 1NF mờ.
Thuật tốn 2.3. [4] Thuật toán phân tách 1NF mờ
Vào: Một quan hệ khơng có dạng chuẩn 1NF mờ Ra: Quan hệ ở dạng chuẩn 1NF mờ
Phương pháp:
Khi một quan hệ không là 1NF mờ, loại bỏ bộ dữ liệu mà các thuộc tính của nó vi phạm 1NF mờ.
Đặt các thuộc tính đó vào các bộ dữ liệu riêng rẽ cùng với các thuộc tính
khác để đạt được 1NF mờ.
Ví dụ 2.9. Cho lược đồ quan hệ R, bao gồm các thuộc tính là TÊN, TUỔI và NGƠN NGỮ. Một quan hệ r của R bao gồm 4 bộ sau:
t1=(Nam, 35, Tiếng Anh)
t2=(Hùng, trẻ, {Tiếng Anh, Tiếng Pháp}) t3=(Quang, trung niên, Tiếng Trung)
t4=(Hà, 60, Tiếng Đức)
Lược đồ này khơng thoả mãn dạng chuẩn thứ nhất, vì ở bộ thứ 2, Hùng nói 2 ngơn ngữ và đây là một ví dụ về đa giá trị (liên kết AND). Khi chúng ta áp dụng thuật toán để thu được quan hệ ở 1NF mờ:
t1=(Nam,35,Tiếng Anh)
t2 ⇒ t5=(Hùng, trẻ, Tiếng Anh) t6=(Hùng, trẻ, Tiếng Pháp) t3=(Quang, trung niên, Tiếng Trung) t4=(Hà, 60, Tiếng Đức)
Bây giờ quan hệ ở 1NF mờ.
2.2.4. Dạng chuẩn mờ thứ hai
Dạng chuẩn mờ thứ hai, 2NF mờ, được định nghĩa dựa trên khái niệm khoá mờ, phụ thuộc hàm mờ đầy đủ và phụ thuộc hàm mờ một phần.
Định nghĩa 2.10. [4] Cho F là tập các ffd của lược đồ R và К là một tập khoá
mờ của R. R được gọi là ở dạng 2NF mờ nếu và chỉ nếu R ở dạng 1NF mờ và khơng một thuộc tính khơng khố mờ nào là phụ thuộc hàm mờ một phần vào khoá mờ K với K∈ К.
Ví dụ 2.10. Cho lược đồ quan hệ R =(A, B, C, D), và ffd là AB →0.8 D
và A→0.9 C. Các thuộc tính AB là khố mờ với độ mạnh 0.8. Vì thuộc tính khơng khố mờ, C, là phụ thuộc hàm mờ một phần vào khóa mờ AB của R. Do đó R khơng phải là 2NF mờ.
2.2.4.1. Kiểm tra dạng chuẩn mờ thứ hai
Định nghĩa về 2NF mờ dựa trên ffd một phần của thuộc tính khơng khố mờ trên khố mờ của R. Do đó, một thuật tốn được sử dụng để kiểm tra một phụ thuộc hàm có phải là phụ thuộc hàm mờ một phần hay khơng được trình bày như sau:
Thuật toán 2.4. [4] Thuật toán kiểm tra phụ thuộc một phần
Vào: Cho phụ thuộc hàm mờ X→α Y
Ra: Một khẳng định là X→α Y có phải là phụ thuộc một phần hay không.
Phương pháp:
1) Nếu vế trái của ffd, X chứa một thuộc tính đơn, việc kiểm tra khơng cần làm, ffd khơng là phụ thuộc một phần. Trong trường hợp khác,
2) Bắt đầu với các tổ hợp một thuộc tính đơn, rồi với tất cả các tổ hợp lớn dần của các thuộc tính của X, ngoại trừ tổ hợp chứa tất cả các thuộc tính.
• Tìm bao đóng bắc cầu của tổ hợp
• Nếu bao đóng bắc cầu chứa tất cả các thuộc tính của vế phải ffd, Y, và độ mạnh tương ứng là lớn hơn hoặc bằng α, thì ffd là phụ thuộc một phần.
Thuật toán này được xây dựng dựa trên sự thực là nếu các tập con của các thuộc tính vế trái của một ffd mờ xác định vế phải với độ lớn hơn hoặc bằng độ mạnh của ffd thì ffd là ffd một phần.
Để biết được quan hệ đưa ra có phải là 2NF mờ hay không, tất cả các thuộc tính khơng khố mờ của quan hệ cần được kiểm tra để xem chúng có phụ thuộc hàm mờ một phần vào một khố mờ nào của quan hệ hay khơng. Thuật toán dưới đây kiểm tra dạng chuẩn 2NF mờ của một quan hệ.
Thuật toán 2.5. [4] Thuật toán kiểm tra 2NF mờ.
Ra: Một khẳng định là R có ở dạng 2NF mờ hay khơng.
Phương pháp:
Với mỗi khố Ki ∈ К của quan hệ
• Nếu khố mờ chứa một thuộc tính đơn thì nó đã không là ffd một phần rồi, tiếp tục với các khố khác.
• Với mỗi thuộc tính khơng khố Aj của quan hệ,
o Với mỗi ffd là Ki→αi Aj trong đó αi là độ mạnh của Ki
o Áp dụng thuật toán kiểm tra phụ thuộc một phần để kiểm tra ffd có phải là ffd một phần hay không. Nếu đúng, dừng, quan hệ