平成29年春期試験問題 午前Ⅱ 問11

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

  • PRIMARY KEY(PCID, スロット番号),
  • PRIMARY KEY(PCID, スロット番号, メモリカードID),
  • PRIMARY KEY(PCID, スロット番号),
    UNIQUE(メモリカードID),
  • PRIMARY KEY(スロット番号, メモリカードID),
    UNIQUE(PCID),
正解 問題へ
分野 :テクノロジ系
中分類:データベース
小分類:データ操作
解説
  • {PC1,1,MC1}と{PC1,2,MC1}、{PC1,1,MC1}と{PC2,1,MC1}のように、1つのメモリカードが複数のメモリカードスロットに対応してしまう状況を制約できていません。
  • {PC1,1,MC1}と{PC1,2,MC1}のように1つのメモリカードが複数のメモリカードスロットに対応してしまう状況、および、{PC1,1,MC1}と{PC1,1,MC2}のように1つのメモリカードスロットに2つのメモリカードが対応してしまう状況を制約できていません。
  • 正しい。
  • PCIDにユニーク制約を付けると、{PC1,1,MC1}と{PC1,2,MC2}のように1つのPCに対して2つ分のメモリカードスロット情報を登録できません。
※PCIDおよびメモリカードIDはINTEGER(整数型)ですが便宜上PC*、MC*で説明しています。

Pagetop