sql >> データベース >  >> RDS >> Oracle

スーパーキー、候補キー、主キー

    教科書の定義は必要ないので、大まかに言えば、スーパーキーは行を一意に定義する列のセットです。

    このセットには1つ以上の要素を含めることができ、テーブルには複数のスーパーキーを含めることができます。通常、これは機能依存性を介して行います。

    あなたの例では、私は次のことを想定しています:

    StudentNumber    unique
    FamilyName     not unique
    Degree     not unique
    Major      not unique
    Grade      not unique
    PhoneNumber    not unique
    

    この場合、スーパーキーは学生番号を含む任意の組み合わせです。

    したがって、以下はスーパーキーです

    StudentNumber
    StudentNumber, FamilyName
    StudentNumber, FamilyName, Degree
    StudentNumber, FamilyName, Degree, Major
    StudentNumber, FamilyName, Degree, Major, Grade
    StudentNumber, FamilyName, Degree, Major, Grade, PhoneNumber
    StudentNumber, Degree
    StudentNumber, Degree, Major
    StudentNumber, Degree, Major, Grade
    StudentNumber, Degree, Major, Grade, PhoneNumber
    StudentNumber, Major
    StudentNumber, Major, Grade
    StudentNumber, Major, Grade, PhoneNumber
    StudentNumber, Grade
    StudentNumber, Grade, PhoneNumber
    StudentNumber, PhoneNumber
    

    ここで、PhoneNumberが一意である(最近電話を共有している)場合、以下もスーパーキーであると想定します(上記のリストに加えて)。

    PhoneNumber
    PhoneNumber, Grade, 
    PhoneNumber, Major, Grade
    PhoneNumber, Degree, Major, Grade
    PhoneNumber, FamilyName, Degree, Major, Grade
    PhoneNumber, Major
    PhoneNumber, Degree, Major
    PhoneNumber, FamilyName, Degree, Major
    PhoneNumber, StudentNumber, FamilyName, Degree, Major
    PhoneNumber, Degree
    PhoneNumber, FamilyName, Degree
    PhoneNumber, StudentNumber, FamilyName, Degree
    PhoneNumber, FamilyName
    PhoneNumber, StudentNumber, FamilyName
    

    候補キーは、単に「最短」のスーパーキーです。スーパーキーの最初のリストに戻ると(つまり、電話番号は一意ではありません)、最短のスーパーキーはStudentNumberです。

    通常、主キーは候補キーです。



    1. この実装はSQL-92に準拠していますか?

    2. WORDPRESSのテーブルのインポート中にエラー(位置25でONに近い)(外部キーエラー)

    3. JSONから構築されたオブジェクト配列がGoogleマップに表示されない

    4. Postgresqlサーバーのリモート接続