最初の分解は正しくありませんが、2 番目の分解は正しくありません。3NF で分解するには、「合成」アルゴリズムの最初のステップで、依存関係のセットの標準的なカバーを見つけてから、同じ左辺を持つグループで見つかった依存関係をグループ化する必要があります。
依存関係には冗長な依存関係や余分な属性がないため、左辺が異なる 3 つの依存関係から開始して、3 つの関係を作成できます。
from N → RCT, R1 (N, R, C, T), with key N
from RCT → Z, R2 (R, C, T, Z), with key RCT
from Z → CT, R3 (C, T, Z), with key Z
次に、3 番目の関係が 2 番目の関係に完全に含まれていることに注意して、それを削除できます。アルゴリズムの最後の正式なステップでは、分解されたリレーションに元のリレーションのキーが存在するかどうかを確認する必要があります (存在しない場合は、キーを持つ新しいリレーションを追加する必要があります)。Z
このようなキーは 2 番目の関係に存在するため、これは真です。したがって、最終的な分解は次のとおりです。
R1 (N, R, C, T), with key N
R2 (R, C, T, Z), with key RCT
「分析」アルゴリズムを適用して BCNF を見つけることにより、別の解が得られることに注意してください。
R1 <(N, R, C, T),
{ N → RCT }>
R2 <(C, T, Z),
{ Z → CT } >
R3 <(R, Z),
{ } >
しかし、この分解では機能依存性CRT → Z
が失われます。