複合主キーの NULL 可能列の何が問題なのでしょうか? 質問する

複合主キーの NULL 可能列の何が問題なのでしょうか? 質問する

ORACLE では、主キーを構成するどの列にも NULL 値が許可されません。他のほとんどの「エンタープライズ レベル」のシステムでも同様であると思われます。

同時に、ほとんどのシステムでは個性的NULL 可能列に対する制約。

一意制約には NULL を含めることができるのに、主キーには NULL を含められないのはなぜでしょうか? これには根本的な論理的理由があるのでしょうか、それとも技術的な制限によるものでしょうか?

ベストアンサー1

主キーは行を一意に識別するためのものです。これは、キーのすべての部分を入力と比較することによって行われます。

定義上、NULL は正常な比較の一部にはなりません。それ自体との比較 ( NULL = NULL) も失敗します。つまり、NULL を含むキーは機能しません。

さらに、オプションの関係をマークするために、外部キーで NULL が許可されます。(*) PK でもこれを許可すると、これが破綻します。


(*)注意: NULL 許容の外部キーを持つことは、きれいなリレーショナル データベース設計ではありません。

2つの実体がありABAに任意に関連付けることができる場合B、解決テーブル( としましょう)を作成するのがクリーンな解決策です。そのテーブルは にABリンクします。AB関係がある場合、レコードが含まれます。ないそうならないでしょう。

おすすめ記事