未分類
春期
データベーススペシャリスト 2017年 春期 問11
11 / 25
PC へのメモリカードの取付け状態を管理するデータモデルを作成した。1台の PC は、スロット番号によって識別されるメモリカードスロットを二つ備える。“取 付け”表を定義する SQL文のaに入る適切な制約はどれか。ここで、モデルの表記 にはUMLを用いる。 PC 取付け メモリカード 0.2 「スロット番号 0.1 PCID メモリカードID [SQL 文〕 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)) )
正解と解説
表示する
正解 ウ
PRIMARY KEY (PCID, スロット番号)、 UNIQUE(メモリカード ID)。
1つのメモリカードは1つのスロットにしか取り付けられない(多重度0..1)ので、PCID+スロット番号を主キーにしつつ、メモリカードIDにUNIQUE制約を付けて重複取付けを防ぐ(ウ)が正解。UNIQUEが無いと同じカードを複数スロットに登録できてしまう。