Định nghĩa 2.11. [4] Cho F là tập các ffd của lược đồ quan hệ R. R được gọi là ở dạng 3NF mờ nếu và chỉ nếu R ở dạng 2NF mờ và với bất cứ X →α A thuộc F và A không nằm trong X thì hoặc X chứa khoá mờ hoặc A là thuộc tính khoá mờ.
2.2.5.1.Kiểm tra dạng chuẩn mờ thứ ba
Định nghĩa về dạng chuẩn mờ thứ 3 được sử dụng để kiểm tra một quan hệ có ở dạng chuẩn mờ 3 hay không. Tất cả các ffd sẽđược kiểm tra dựa trên các điều kiện. Nếu các thuộc tính vế trái chứa tất các thuộc tính vế phải, các ffd đó không vi phạm dạng chuẩn mờ 3NF. Tương tự, nếu vế trái chứa một khoá mờ bất kỳ của quan hệ, không vi phạm dạng chuẩn mờ 3. Và cuối cùng, nếu các thuộc tính vế phải của ffd là thuộc tính khoá mờ, dạng chuẩn mờ 3 cũng không bị vi phạm. Những điều này được diễn giải trong thuật toán sau:
Thuật toán 2.7. [4] Thuật toán kiểm tra dạng chuẩn mờ 3.
Vào: Cho K là tập khoá mờ của quan hệ R.
Ra: Một khẳng định là quan hệ R có ở dạng chuẩn mờ 3 hay không.
Phương pháp:
• Nếu X ⊇Y, 3NF mờ không bị vi phạm, trong trường hợp khác,
• Nếu X ⊇Ki, với bất kỳ Ki ⊂ K, 3NF mờ không bị vi phạm, trong trường hợp khác,
• Cho P là tập các thuộc tính khoá mờ của R. Nếu Y ⊆ P, 3NF mờ
cũng không bị vi phạm.
2) Nếu không một điều kiện nào ở bước 1 được thoả mãn cho ít nhất một trong những ffd của quan hệ, quan hệ không ở dạng 3NF mờ.
Ví dụ 2.12. Cho R= (A, B, C, D) và các ffds là AB →0.9 C, AC →0.8 D, và C→0.6 E. ffd đầu tiên có khóa mờ nằm ở vế trái không vi phạm 3NF mờ. Nhưng ffd thứ 2 và thứ 3 là AC →0.8 D và C→0.6 E, vi phạm định nghĩa 3NF mờ, các vế trái chứa khoá mờ, AB và D, E cũng không là các thuộc tính khoá mờ. Do đó, R không ở dạng 3NF mờ.
2.2.5.2.Phân tách thành dạng chuẩn mờ thứ 3
Quá trình chuẩn hoá một lược đồ quan hệ thành dạng chuẩn mờ 3 phải đảm bảo hai tính chất quan trọng của phép phân tách, đó là tính bảo toàn phụ thuộc và tính có kết nối không mất thông tin. Thuật toán phân tách đảm bảo các tính chất này sẽđược trình bày ở phần sau.
Phủ tối tiểu
Cho một tập phụ thuộc hàm mờ F. Tập phụ thuộc hàm mờ F là tối tiểu nếu thoả mãn các điều kiện sau:
1. Vế phải của mỗi phụ thuộc trong F chỉ có một thuộc tính độc nhất. 2. Không thể thay thế bất cứ X →θA bằng Y→αA, trong đó Y là tập
con thực sự của X với α ≥ θ mà vẫn có một tập phụ thuộc hàm mờ tương đương với F.
3. Không thể loại bỏ bất cứ phụ thuộc nào khỏi F mà vẫn có một tập phụ thuộc hàm tương đương F.
G được gọi là phủ tối tiểu của tập phụ thuộc F nếu G là một tập phụ thuộc tối tiểu (thoả mãn các điều kiện trên) và G tương đương với F.
Thuật toán sau tìm phủ tối tiểu của một tập phụ thuộc hàm mờ F cho trước và đảm bảo không có phụ thuộc hàm mờ một phần nào.
Thuật toán 2.8. [4] Thuật toán tìm phủ tối tiểu.
Vào: Cho F là một tập các ffd. Ra: Phủ tối tiểu G của F. Phương pháp: 1) Khởi tạo: Gán G:=F 2) Thay thế mỗi ffd X →qi{A1, A2, ..., An} trong G bằng n ffd X →qi A1, X →qi A2 ,..., X →qi An . 3) Với mỗi ffd X →qi Ak trong G Với mỗi thuộc tính B ∈X Nếu ((G - {X →qi Ak}) U ((X - {B})→α Ak )) trong đó α ≥ qi
là tương đương với G thì thay thế X →qi Ak bằng (X - {B})→α Ak trong G.
4) Với mỗi ffd còn lại X →qi Ak trong G
Nếu (G - {X →qi Ak }) tương đương với G, loại bỏ X →qi Ak khỏi G.
Tương tự như trong cơ sở dữ liệu truyền thống, trong cơ sở dữ liệu mờ, điều quan trọng trong quá trình phân tách quan hệ là đảm bảo tính bảo toàn phụ thuộc, vì mỗi phụ thuộc hàm mờ biểu diễn một ràng buộc trong cơ sở dữ liệu mờ.
Dưới đây trình bày thuật toán phân tách bảo toàn phụ thuộc của quan hệ R dựa trên tập phụ thuộc hàm mờ F, mỗi quan hệ sau phân tách là ở dạng 3NF mờ.
Thuật toán 2.9. [4] Thuật toán phân tách bảo toàn phụ thuộc thành 3NF mờ.
Vào: Quan hệ R và tập phụ thuộc hàm mờ F.
Ra: Một phép phân tách đảm bảo tính bảo toàn phụ thuộc, sao cho mỗi quan hệ trong phân tách ở dạng 3NF mờ.
Phương pháp:
• Tìm phủ tối tiểu G của F và không có ffd một phần nào trong G (Sử dụng thuật toán tìm phủ tối tiểu ở trên).
• Nếu có những thuộc tính nào không nằm trong bất kỳ ffd nào của G thì đặt các thuộc tính đó vào một lược đồ quan hệ riêng rẽ, và loại bỏ chúng ra khỏi R.
• Nếu có một ffd nào trong G có chứa tất cả các thuộc tính của R, thì phân tách chính là R.
• Ngược lại, với mỗi X nằm ở vế trái ffd trong G, tạo một lược đồ
quan hệ mới trong D với các thuộc tính { X U {A1} U {A2} U...
U {Ak} } trong đó X →q1 A1 , X →q2 A2 ,..., X →qk Ak là các ffd trong G, và X là khoá mờ của quan hệ mới này với độ mạnh là
min
i
Ví dụ 2.13. Cho R=(A, B, C, D, E) và tập các ffd, F={CD →0.7 A, CD →0.7 B, AD →0.5 E, CD →0.7 E, A →0.8 B và B →0.6 E}. CD là khoá mờ của quan hệ với độ mạnh là 0.7.
Bước 1: Áp dụng thuật toán tìm phủ tối tiểu để tìm phủ tối tiểu G của F.
Gán G:=F
Ở bước thứ nhất, tất cả các ffd trong F đều có dạng X →qi Ai , nghĩa là mọi ffd có một thuộc tính nằm ở vế phải ffd.
Ở bước thứ 2, với ffd AD →0.5 E, với thuộc tính D∈{A, D}, (G – {AD →0.5 E}) ∪ ({A →0.6 E}) là tương đương với G vì 0.6 ≥ 0.5. Ở bước này, A→0.6 E thu được từ 2 ffd A→0.8B và B →0.6 E dùng tính chất bắc cầu. Vậy AD →0.5 E được thay thế bởi A →0.6 E trong G. Ở bước cuối cùng, A →0.6 E thu được từ bước trước cũng bị loại bỏ vì nó có thể thu được từ 2 ffd cuối cùng là A →0.8 B và B →0.6 E. Do đó phủ tối tiểu G là
CD →0.7 A, CD →0.7 B, CD →0.7 E, A →0.8 B và B →0.6 E.
Bước 2: Sử dụng thuật toán phân tách bảo toàn phụ thuộc
Với mỗi vế trái của ffd, trong đó CD là khoá mờ của quan hệ với độ mạnh là 0.7, một lược đồ quan hệđược tạo với các thuộc tính A, B, C, D, E và các ffd là CD →0.7 A, CD →0.7 B, CD →0.7 E với CD là khóa mờ với độ mạnh 0.7. Sau đó, với mỗi ffd còn lại A →0.8 B và B →0.6 E, tạo 2 lược đồ quan hệ riêng biệt, một với các thuộc tính A, B và một với các thuộc tính B, E. Cuối cùng, sau phân tách bảo toàn phụ thuộc, thu được 3 lược đồ quan hệ.
Lược đồ thứ nhất, R1=(A, B, C, D, E) với các ffd là CD →0.7 A, CD →0.7 B, CD →0.7 E.
Lược đồ thứ ba, R3=(B, E) với ffd là B →0.6 E.
Phân tách có kết nối không mất thông tin thành dạng chuẩn mờ 3
Tính chất quan trọng khác của việc phân tách là tính phân tách có kết nối không mất thông tin. Nếu phân tách không có tính chất này thì chúng ta sẽ nhận được các bộ dữ liệu sai khi kết nối các quan hệ của phép phân tách so với quan hệ trước phân tách.
Thuật toán 2.10. [4] Thuật toán phân tách có kết nối không mất thông tin thành 3NF mờ.
Vào: Quan hệ R và tập phụ thuộc hàm mờ F.
Ra: Một phép phân tách đảm bảo tính có kết nối không mất thông tin, sao cho mỗi quan hệ trong phân tách ở dạng 3NF mờ.
Phương pháp:
• Tìm phủ tối tiểu G của F và không có ffd một phần nào trong G (Sử dụng thuật toán tìm phủ tối tiểu ở trên).
• Đặt bất cứ thuộc tính nào không nằm trong bất kỳ ffd nào của G vào một lược đồ quan hệ riêng biệt, và loại bỏ chúng ra khỏi R
• Nếu có bất cứ các ffd nào trong G chứa tất cả các thuộc tính của R, thì quan hệ phân tách là R.
• Ngược lại, với mỗi X ở vế trái ffd trong G, tạo một lược đồ quan hệ mới trong D với các thuộc tính {X U{A1}U{A2}U...U{Ak}} trong đó X →q1 A1, X →q2 A2, ..., X →qk Ak là các ffd trong G, và X là khoá mờ của quan hệ mới này với độ mạnh là qimin= min(q1, q2, ..., qk ).
• Nếu không một lược đồ quan hệ nào chứa khoá mờ của R, tạo thêm một lược đồ quan hệ mà tập các thuộc tính có chứa khoá mờ của quan hệ R.
Ví dụ 2.14. Cho lược đồ quan hệ và tập phụ thuộc hàm nhưở ví dụ 2.13. Thuật toán phân tách có kết nối không mất thông tin thêm một bước vào thuật toán phân tách bảo toàn phụ thuộc, đó là bước tạo lược đồ quan hệ mới cho khoá mờ của quan hệ. Do đó chúng ta phải thực hiện tất cả các bước như ở ví dụ 2.13 và thêm vào bước tạo lược đồ quan hệ mới cho khoá mờ của quan hệ, CD, nếu khoá mờ này không nằm trong bất cứ quan hệ phân tách nào. Nhưng trong trường hợp này, khóa mờ CD nằm ở một trong những quan hệ phân tách, do vậy không cần tạo một quan hệ mới. Do đó, sau một phân tách có kết nối không mất thông tin thành 3NF, chúng ta có 3 quan hệ R1=(A, B, C, D, E), R2=(A, B), R3=(B, E) như trong ví dụ 2.13.