DBMS で 3NF の定義を読んでいたところ、次のように述べられています。
機能依存 X --> A は、次の場合に許可されます。 1. X がスーパー キーである。2. A は何らかのキーの一部です。
私は2つの疑問があります:
a: 異常を取り除くために 2 番目の条件がどのように役立つかという点がわかりません。なぜ BCNF 形式があるのでしょうか。代わりに、2 番目の条件を持たないように 3NF 形式を定義できます。
推移的な依存関係を削除するポイントがわかりました。Y --> Z および X が主キーの場合。X --> Y --> Z は、Z を知らない限り (X,Y) の値を格納できないことを意味するため、推移的な依存関係があります。
b: 3NF の 2 番目の条件を削除すると、異常が削除されたり、冗長性が制限されたりする仕組みを説明してください。