商品情報に価格、サイズなどの管理項目を追加する場合でもスキーマ変更を不要とするために、“管理項目”表を次のSQL文で定義した。“管理項目”表の“ID”は商品ごとに付与する。このとき、同じIDの商品に対して、異なる商品名を定義できないようにしたい。aに入れる字句はどれか。 〔管理項目〕テーブル例: ID=1, 項目名=商品名, データ型=文字列, 値=ライト01 ID=1, 項目名=商品番号, データ型=文字列, 値=L001 ID=1, 項目名=価格, データ型=数値, 値=400 ID=2, 項目名=商品名, データ型=文字列, 値=ノート02 〔商品情報〕(参考) ID=1, 商品名=ライト01, 商品番号=L001, 価格=400 ID=2, 商品名=ノート02, 商品番号=N001, 価格=120, サイズ=A4 〔SQL文〕 CREATE TABLE 管理項目 ( ID INTEGER NOT NULL, 項目名 VARCHAR(20) NOT NULL, データ型 VARCHAR(10) NOT NULL, 値 VARCHAR(100) NOT NULL, [ a ] )
縦持ち表ではIDと項目名の組に一意性制約を課す
管理項目:
商品情報:
| ID | 項目名 | データ型 | 値 |
|---|---|---|---|
| 1 | 商品名 | 文字列 | ライト01 |
| 1 | 商品番号 | 文字列 | L001 |
| 1 | 価格 | 数値 | 400 |
| 2 | 商品名 | 文字列 | ノート02 |
| 2 | … | … | … |
| ID | 商品名 | 商品番号 | 価格 | サイズ |
|---|---|---|---|---|
| 1 | ライト01 | L001 | 400 | |
| 2 | ノート02 | N001 | 120 | A4 |
選択肢
- アUNIQUE(ID)
- イUNIQUE(ID, 項目名)
- ウUNIQUE(ID, 項目名, 値)
- エUNIQUE(項目名, 値)
正解と解説
正解:イ UNIQUE(ID, 項目名)
この表は1行につき1つの項目の値を保持する縦持ちの構造なので、同じIDに同じ項目名の行が複数あると値が一意に定まらなくなる。IDと項目名の組に一意性制約を課せば、1つの商品につき商品名は1行しか登録できなくなる。
選択肢ごとの解説
- アIDだけを一意にすると1商品につき1項目しか登録できず、複数項目を持てなくなる。
- イ正しい。IDと項目名の組を一意にすれば、同じ項目が重複登録されない。
- ウ値まで含めると値が違えば重複登録できてしまい、異なる商品名を防げない。
- エIDを含まないため、別の商品が同じ値を持てなくなるなど意図と異なる制約になる。
同じ分野の他の問題
- 図のような関係データベースの"注文"表と"注文明細"表がある。"注文"表の行を削除すると、対応する"注文明細"表の行が、…2025年度 秋期 午前II 問11
- 表定義に基づいて作成された"システム担当者"表において、トランザクションAの複合文内のSQL文全てを正常終了させるために…2025年度 秋期 午前II 問8
- PCへのメモリカードの取付け状態を管理するデータモデルを作成した。1台のPCは、スロット番号によって識別されるメモリカー…2017年度 春期 午前II 問11
- 関係演算において、商演算と同等な結果が得られる演算の組合せはどれか。2025年度 秋期 午前II 問10
- 関係R、Sに次の演算を行うとき、RとSが和両立である必要のないものはどれか。2024年度 秋期 午前II 問11
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。