DBデータベーススペシャリスト試験 午前Ⅱ

平成29年度春期 データベーススペシャリスト 午前Ⅱ 問11

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

PCへのメモリカードの取付け状態を管理するデータモデルを作成した。1台のPCは,スロット番号によって識別されるメモリカードスロットを二つ備える。“取付け”表を定義するSQL文のaに入る適切な制約はどれか。ここで,モデルの表記にはUMLを用いる。 CREATE TABLE 取付け ( PCID INTEGER NOT NULL FOREIGN KEY REFERENCES PC(PCID), スロット番号 INTEGER NOT NULL, メモリカードID INTEGER NOT NULL FOREIGN KEY REFERENCES メモリカード(メモリカードID), a CHECK(スロット番号 IN(1,2)) )
PC,取付け,メモリカードの属性と,PC側1・取付け側0..2,取付け側0..1・メモリカード側1の多重度を示すUMLモデル。
PC,取付け,メモリカードの属性と,PC側1・取付け側0..2,取付け側0..1・メモリカード側1の多重度を示すUMLモデル。

選択肢

  1. ア
    PRIMARY KEY(PCID,スロット番号),
  2. イ
    PRIMARY KEY(PCID,スロット番号,メモリカードID),
  3. ウ
    PRIMARY KEY(PCID,スロット番号), UNIQUE(メモリカードID),
  4. エ
    PRIMARY KEY(スロット番号,メモリカードID), UNIQUE(PCID),
解き方のヒントを見る

制約とキーの役割を見分ける視点

表の設計を読むときは、各制約やキーがどの列の組合せに関わり、行の識別と表同士の結び付きをどのように整理するものかを、用語の役割ごとに確認していきましょう。

この問題で問われていること

一意性を保証する仕組みと、別の表との対応を表す仕組みを混同しないよう、設問中の列・列の組合せ・参照先の関係を対応付けて読み、それぞれが何を保証する話かを切り分けます。

視点

制約とキーを読む際は、まず対象となる表と列の範囲を区切り、次に重複の扱いと別表との対応という観点を分けて整理します。どの関係を説明している用語なのかを確認すると、条件同士の役割を比較しやすくなります。

確認ポイント

  • 対象となる表と列の範囲を整理する
  • 行の識別に関わる条件か確認する
  • 別表との対応関係に関わる条件か確認する
正解と解説を見る

正解

ウ

解説

PCは二つのスロットを持つため、取付け表ではPCごとにスロット番号を重複させられない。一方、各メモリカードは一つの取付けにしか対応できないため、メモリカードIDも表全体で一意にする必要がある。

理由

主キーをPCIDとスロット番号の組合せにすると、同じPCの同じスロットに複数の取付けを登録できない。さらにメモリカードIDをUNIQUEにすると、同じカードを複数の取付けへ登録できない。これは図の多重度と整合する。

比較

主キーにメモリカードIDを含めるだけでは、PCIDとスロット番号が同じでもカードIDが異なる行を許してしまう。また、PCIDだけをUNIQUEにすると、1台のPCにつき1行しか登録できず、二つのスロットを表せない。

選択肢ア

これは不正解だよ。PRIMARY KEY(PCID,スロット番号)によって、同じPCの同じスロットへの重複登録は防げる。しかし、メモリカードIDに一意性の制約がないため、同じメモリカードを異なるPCや異なるスロットへ複数回登録でき、図のメモリカード側の多重度を満たせない。

選択肢イ

これは不正解だよ。三つの列を主キーにすると、PCID、スロット番号、メモリカードIDの組合せは一意になる。しかし、同じPCの同じスロットに異なるメモリカードIDを登録する行は許されるため、一つのスロットに対して複数の取付けが存在できてしまう。

選択肢ウ(正解)

これは正解だよ。PRIMARY KEY(PCID,スロット番号)により、1台のPCにおける各スロットの取付けを一つに制限できる。UNIQUE(メモリカードID)により、一つのメモリカードが複数の取付けに現れることも防げる。二つの制約が図の多重度に対応している。

選択肢エ

これは不正解だよ。PRIMARY KEY(スロット番号,メモリカードID)ではPCIDが主キーに含まれないため、同じPCの同じスロットに異なるカードを登録できる。また、UNIQUE(PCID)は1台のPCを1行に制限し、メモリカードID単独の一意性も保証しない。

学習のポイント

UMLの多重度を、主キーとUNIQUE制約へ変換する考え方を学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 データベーススペシャリスト試験 午前Ⅱ 問11(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針