応用情報技術者 2012年 春期 午前2 問29
問題文
関係データベースの表定義において、列の値の重複を禁止するために指定する字句はどれか。
選択肢
ア:CLUSTERING
イ:DISTINCT
ウ:NOT NULL
エ:UNIQUE(正解)
関係データベースの表定義における列の重複禁止指定【午前2 解説】
要点まとめ
- 結論:列の値の重複を禁止するには「UNIQUE」制約を指定します。
- 根拠:UNIQUE制約は、指定した列の値がテーブル内で一意であることを保証し、重複を防ぎます。
- 差がつくポイント:NOT NULLは空値禁止、DISTINCTは検索時の重複排除、CLUSTERINGは物理的なデータ配置に関する用語であり、重複禁止とは異なります。
正解の理由
「UNIQUE」は関係データベースの表定義で列の値の重複を禁止するための制約です。これにより、同じ値が複数行に存在することを防ぎ、データの一意性を保ちます。
一方、NOT NULLは値の欠損を防ぐ制約であり、重複禁止とは目的が異なります。DISTINCTはSQLの検索結果で重複行を排除するキーワードで、表定義では使いません。CLUSTERINGはデータの物理的な配置に関する用語で、重複禁止とは無関係です。
一方、NOT NULLは値の欠損を防ぐ制約であり、重複禁止とは目的が異なります。DISTINCTはSQLの検索結果で重複行を排除するキーワードで、表定義では使いません。CLUSTERINGはデータの物理的な配置に関する用語で、重複禁止とは無関係です。
よくある誤解
DISTINCTは検索時に重複を排除するためのキーワードであり、表定義での重複禁止には使いません。NOT NULLは値の欠損を防ぐだけで重複は許されます。
解法ステップ
- 問題文の「列の値の重複を禁止する」という条件を確認する。
- 各選択肢の意味を整理する。
- 「UNIQUE」が列の値の一意性を保証する制約であることを理解する。
- 他の選択肢が重複禁止と異なる役割であることを確認する。
- 「UNIQUE」を正解として選択する。
選択肢別の誤答解説
- ア: CLUSTERING
データの物理的な配置や索引の種類に関する用語で、重複禁止とは無関係です。 - イ: DISTINCT
SQLのSELECT文で重複行を排除するためのキーワードであり、表定義の制約ではありません。 - ウ: NOT NULL
列にNULL(空値)を許さない制約で、値の重複は許されます。 - エ: UNIQUE
列の値の重複を禁止し、一意性を保証する制約で正解です。
補足コラム
UNIQUE制約は主キー制約(PRIMARY KEY)と似ていますが、主キーはNULLを許さずテーブル内で唯一の行を特定するのに対し、UNIQUEはNULLを許す場合もあります(DBMSによる)。複数の列にUNIQUE制約を設定することで複合一意制約も可能です。
FAQ
Q: UNIQUE制約とPRIMARY KEY制約の違いは何ですか?
A: PRIMARY KEYはテーブル内で行を一意に識別しNULLを許しませんが、UNIQUEは重複禁止は同じでもNULLを許す場合があります。
A: PRIMARY KEYはテーブル内で行を一意に識別しNULLを許しませんが、UNIQUEは重複禁止は同じでもNULLを許す場合があります。
Q: DISTINCTはどのような場面で使いますか?
A: SELECT文で検索結果の重複行を排除するために使います。表定義の制約ではありません。
A: SELECT文で検索結果の重複行を排除するために使います。表定義の制約ではありません。
関連キーワード: UNIQUE制約、重複禁止、関係データベース、表定義、NOT NULL, DISTINCT, PRIMARY KEY

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

