データベーススペシャリスト 2014年 午前2 問05
問題文
データモデルにおいて、実体 A のインスタンス aが他の実体B のインスタンスbと関連しており、a が存在しなくなれば、b も存在しなくなる。このような実体Bを何と呼ぶか。
選択肢
ア:仮想実体
イ:強実体
ウ:弱実体(正解)
エ:正実体
🔒 解説は解答すると表示されます
弱実体【午前2解説】
正解の理由
設問は「ある実体 A の存在に依存して、A がなくなると B も存在できなくなる」という存在依存性を問うています。この性質は ER モデルの「弱実体」を示します。弱実体はそれ自身だけでは一意に識別できず、所有する強実体(識別元)の主キーを含めた複合キーや部分キーで識別されます。したがって、選択肢ウ(弱実体)が正解です。
解法ステップ
- 問題文から「存在依存(存在しなければ他も存在できない)」の記述を探す。
- ER 用語で「存在依存 = 弱実体(weak entity)」に対応することを確認する。
- 他の選択肢(強実体や仮想実体など)と照らして除外する。
- 識別方法(部分キー+所有者の主キー)や識別関係(identifying relationship)を思い出して最終決定する。
選択肢別の誤答解説
-
ア: 仮想実体
仮想実体は実運用上の実体ではない概念的な用語であり、存在依存や識別方法を表す語ではありません。設問の条件に合致しません。 -
イ: 強実体
強実体(regular/strong entity)は独立して一意に識別され、他の実体の存否に依存しません。設問の「依存する」要件と逆の性質です。 -
ウ: 弱実体
正答。弱実体は所有者(識別元)の存在に依存し、自身だけでは完全な主キーを持たないため、識別元の主キーを含む形で識別されます。選択肢はウです。 -
エ: 正実体
「正実体」は一般的に強実体と同義で使われることが多く、独立して存在できる実体を指します。設問の依存条件には当てはまりません。
よくある誤解
- 「外部キーがあれば弱実体」という誤解:外部キーを持つだけでは弱実体とは限りません。弱実体は存在依存かつ部分キー(識別子となる独自属性が不十分)を持つ点が重要です。
- 「関連がある=弱実体」と考える誤り:関連(リレーションシップ)があるだけでは弱実体ではなく、存在依存かどうか(所有者が消えたら必ず消えるか)を確認する必要があります。
補足コラム
ER 図での表現:弱実体は二重矩形(または二重枠)で描かれ、識別関係(identifying relationship)は二重菱形で表されることが多いです。リレーショナル実装では、弱実体のテーブルは所有者の主キーを外部キーとして持ち、その外部キーを含む複合主キーで一意性を保ちます。また、論理実装で所有者削除時に弱実体を自動削除したい場合は外部キーに ON DELETE CASCADE を設定します。
例:受注と受注明細(Order と OrderLine)
- Order: order_id(PK)
- OrderLine: order_id(FK)、line_no(部分キー) → PRIMARY KEY (order_id, line_no)、FOREIGN KEY (order_id) REFERENCES Order(order_id) ON DELETE CASCADE
SQL 実装例:
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
order_date DATE
);
CREATE TABLE OrderLines (
order_id INT,
line_no INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, line_no),
FOREIGN KEY (order_id) REFERENCES Orders(order_id) ON DELETE CASCADE
);
FAQ
Q1: 弱実体は必ず複合主キーを持つのですか?
A1: 多くの場合、弱実体は識別元の主キーと自身の部分キーを組み合わせた複合主キーで識別しますが、実装上は surrogate key(代理キー)を採用することもあります。ただし概念上は識別元への依存性(存在依存・識別関係)が重要です。
A1: 多くの場合、弱実体は識別元の主キーと自身の部分キーを組み合わせた複合主キーで識別しますが、実装上は surrogate key(代理キー)を採用することもあります。ただし概念上は識別元への依存性(存在依存・識別関係)が重要です。
Q2: 「関連(リレーション)」と「識別関係」はどう違いますか?
A2: 一般的な関連は単に二つの実体が関係することを示しますが、識別関係(identifying relationship)は弱実体がその所有者によって識別されるという特別な意味を持ちます。ER 図では識別関係は二重線などで表現されることがあります。
A2: 一般的な関連は単に二つの実体が関係することを示しますが、識別関係(identifying relationship)は弱実体がその所有者によって識別されるという特別な意味を持ちます。ER 図では識別関係は二重線などで表現されることがあります。
Q3: 多対多の仲介テーブルは弱実体ですか?
A3: 仲介テーブル(結合テーブル)は多対多を解消するために生じるため、必ずしも弱実体とは限りません。所有者の消滅とともに必ず消える依存関係があるなら弱実体と見なせますが、実務では独立した属性や履歴を持つことが多く、強実体として扱う場合もあります。
A3: 仲介テーブル(結合テーブル)は多対多を解消するために生じるため、必ずしも弱実体とは限りません。所有者の消滅とともに必ず消える依存関係があるなら弱実体と見なせますが、実務では独立した属性や履歴を持つことが多く、強実体として扱う場合もあります。
関連キーワード: ER図、弱実体、識別関係、部分キー、複合主キー、ON DELETE CASCADE

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

