SQLのPRIMARY KEYの特徴として正しいものはどれか。
解説
PRIMARY KEYはNOT NULL制約とUNIQUE制約を同時に持つため、NULLも重複も許容しません。各行を一意に特定するための制約なので、「値がない(NULL)」や「同じ値が2つある」状態では行を特定できず、主キーとしての役割を果たせないからです。「1つのテーブルに複数設定できない」は一見正しそうですが、これはPRIMARY KEY制約自体が1つという意味では正しいものの、複合主キー(Composite Primary Key)として複数のカラムを組み合わせて1つのPRIMARY KEYを構成できます。CREATE TABLE order_items ( order_id INT, product_id INT, quantity INT, PRIMARY KEY (order_id, product_id) );この場合、order_idとproduct_idの組み合わせが一意であればよく、それぞれ単体では重複が許されます。PRIMARY KEYとUNIQUE KEYの違い混同されやすいこの2つの違いを整理します。PRIMARY KEY: NULLを許容しない。テーブルに1つだけ定義できる。行の「本人確認証」のような存在UNIQUE KEY: NULLを許容する(RDBMSによって扱いは異なる)。テーブルに複数定義できる。メールアドレスなど「重複させたくないが主キーではない」カラムに使うサロゲートキーとナチュラルキー主キーに何を選ぶかは設計上の重要な判断です。サロゲートキー: AUTO INCREMENTのIDやUUIDなど、業務的な意味を持たない人工的なキー。値が変わらないため外部キーとの整合性が保ちやすいナチュラルキー: メールアドレスや社員番号など、業務上意味のあるデータをそのまま主キーにする方法。変更が入ると関連テーブルまで影響が波及するリスクがある実務ではサロゲートキーを採用し、ナチュラルキーにはUNIQUE制約をかけるパターンが主流です。「主キーは不変であるべき」という原則を守りやすいためです。