PCへのメモリカードの取付け状態を管理するデータモデルを作成した。
1台のPCは、スロット番号によって識別されるメモリカードスロットを二つ備える。
“取付け”表を定義するSQL文のaに入る適切な制約はどれか。
ここで、モデルの表記にはUMLを用いる。
[SQL文]
CREATE TABLE 取付け (
PCID INTEGER NOT NULL FOREIGN KEY REFERENCES PC(PCID)
スロット番号 INTEGER NOT NULL,
メモリカードID INTEGER NOT ALL
FOREIGN KEY REFERENCES メモリカード(メモリカードID),
a
CHECK(スロット番号 IN (1, 2))
)
ア |
PRIMARY KEY(PCID, スロット番号), |
イ |
PRIMARY KEY(PCID, スロット番号, メモリカードID), |
ウ |
PRIMARY KEY(PCID, スロット番号),
UNIQUE(メモリカードID), |
エ |
PRIMARY KEY(スロット番号, メモリカードID),
UNIQUE(PCID) |
答え ウ
【解説】
1台のPCにはメモリカードスロットを2つ備えるので、PRIMARY KRY(主キー)になるのは、PCIDとスロット番号の組になる。
また、主キーでない項目(列)を一意にするためにはUNIQUE制約を使うので、SQL文は
CREATE TABLE 取付け (
PCID INTEGER NOT NULL FOREIGN KEY REFERENCES PC(PCID)
スロット番号 INTEGER NOT NULL,
メモリカードID INTEGER NOT ALL
FOREIGN KEY REFERENCES メモリカード(メモリカードID),
PRIMARY KEY(PCID, スロット番号), UNIQUE(メモリカードID),
CHECK(スロット番号 IN (1, 2))
)
(ウ)になる。
【キーワード】
・主キー
【キーワードの解説】
- 主キー
主キーは関係データベース(リレーショナルデータベース、RDB)において、データの組(レコード、行)を識別するのに最もふさわしいデータの項目(列)のことです。
主キーを使いデータの組を特定します。
もっと、「主キー」について調べてみよう。
戻る
一覧へ
次へ
|