判斷是否是 3NF 的條件: 對於 R 上的每個函數依賴 X->A (X 是關系 R 屬性的一個子集,
A 是 R 的一個屬性) ,以下條件中的一個成立:
1 X ∈ A
2 X 是超碼
3 A 是 R 的碼的一部分
判斷是否是 BCNF 的條件:對於 R 上的每個函數依賴 X->A(X 是關系 R 屬性的一個子
集,A 是 R 的一個屬性) ,以下條件中的一個成立:
1 X ∈ A
2 X 是超碼
例子如下:

(a).
{ACD}+
= {A、C、D、B、E}
{BCD}+
={B、C、D、E、A}
{EDC}+
={E、D、C、A、B}
ACD、BCD、CDE are keys for R.
(b)判斷是否是 3NF 的條件: 對於 R 上的每個函數依賴 X->A (X 是關系 R 屬性的一個子集,
A 是 R 的一個屬性) ,以下條件中的一個成立:
1 X∈ A
2 X 是超碼
3 A 是 R 的碼的一部分
A->B 滿足條件 3
BC->E 滿足條件 3
ED->A 滿足條件 3
所以 R 是 3NF
(c)判斷是否是 BCNF 的條件:對於 R 上的每個函數依賴 X->A(X 是關系 R 屬性的一個子
集,A 是 R 的一個屬性) ,以下條件中的一個成立:
1 X ∈ A
2 X 是超碼
A->B 不滿足 1&2
BC->E 不滿足 1&2
ED->A 不滿足 1&2
所以 R 不是 BCNF
