この関係は BCNF に変換できますか?
データベースに関する優れた本に記載されている「分析アルゴリズム」を適用することにより、すべての関係を BCNF に変換できます。
この関係には AB と AC の 2 つのキーがあるため、すべての属性が素数であることに注意してください (このため、関係は自動的に 3NF になります)。
はスーパーキーではないため、この場合のみC → B
、 BCNF に違反するすべての依存関係を見つけることから始める必要がありC
ます。
次に、リレーションを 2 つのリレーションに分解します。1 つは含まC
れており、すべての属性がそれによって決定されます (この場合は のみB
)。もう 1 つは、他のすべての属性と を含みますC
。
したがって、分解は実際には次のようになります。
R1(B, C), with key C, with the only (non-trivial) dependency C → B
R2(A, C), with key AC, without (non-trivial) dependencies
次に、BCNF に違反する何らかの依存関係を持つすべての関係に対して分解を繰り返す必要がありますが、この場合、 と の両方が BCNF にあるため、そのような関係はありませR1
んR2
。
最後に、分解では依存関係が保持されないことに注意してください。実際、依存関係AB → C
は分解で保持されません。