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 khoá 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à khoá mờ với độ mạnh 0.8. Vì thuộc tính không khoá 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 khoá mờ trên khoá mờ của R. Do đó, một thuật toá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 khoá 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 khoá 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 khoá Ki∈К của quan hệ
• Nếu khoá 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 khoá khác.
• Với mỗi thuộc tính không khoá 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ệ
không phải là 2NF mờ.
2.2.4.2.Phân tách thành dạng chuẩn mờ thứ hai
Nếu lược đồ quan hệ không ở dạng 2NF mờ, nó có thể được chuẩn hoá thành một số quan hệ nhỏ hơn ở dạng 2NF mờ bởi thuật toán sau.
Thuật toán 2.6. [4] Thuật toán phân tách thành 2NF mờ
Vào: Cho quan hệ R.
Ra: Một phép phân tách sao cho các quan hệ sau phân tách ở dạng chuẩn 2NF
Phương pháp:
• Sử dụng thuật toán kiểm tra 2NF mờ, tìm các khoá mờ một phần và các thuộc tính không khoá mờ phụ thuộc của chúng.
• Phân tách và thiết lập quan hệ mới cho mỗi khóa mờ một phần với các thuộc tính phụ thuộc của nó.
• Rút các thuộc tính không khoá mờ phụ thuộc hàm mờ một phần vào bất cứ khoá mờ nào của quan hệ ra khỏi quan hệ gốc và thiết lập một quan hệ mới với các thuộc tính còn lại.
Ví dụ 2.11. Cho quan hệ R=(A, B, C, D) và ffd là AB →0.8 D và A→0.9
C. AB là khoá mờ của quan hệ với độ mạnh là 0.8. Ffd thứ 2, A→0.9 C chứa một phần của khoá mờ, nằm ở vế trái của ffd, chúng ta phải phân tách quan hệ này. Theo như thuật toán, việc phân tách sẽ là R1=(A, C) và R2=(A, B, D) ở đây A là khoá mờ của quan hệđầu tiên với độ mạnh là 0.9 và AB là khoá mờ của quan hệ thứ 2 với độ mạnh là 0.8.