開発技術

基本情報技術者試験データ設計」の問題

マネジメント系開発技術難易度:normal
E-R図で表現された『部署』エンティティと『社員』エンティティの間に、一つの部署が複数の社員をもつ関連がある。これを関係データベースのテーブルとして実装するとき、参照整合性を保つために『社員』テーブル側へ設けるべき項目はどれか。
部署テーブルの主キーを参照する外部キー
社員ごとに自動採番される連番の主キーだけ
部署名をそのまま転記した重複可能な文字列項目
社員と部署を結ぶ独立した中間テーブル
正解
部署テーブルの主キーを参照する外部キー

E-R図の一対多の関連を関係データベースで実装する基本は、多側のテーブルに一側の主キーを外部キーとして持たせることである。社員テーブルに部署の主キーを外部キーで保持すれば、どの部署に属するかを一意に参照でき、存在しない部署を指せないよう参照整合性制約で守れる。

?選択肢ごとの解説

ア ○E-R図の一対多の関連を関係データベースで実装する基本は、多側のテーブルに一側の主キーを外部キーとして持たせることである。社員テーブルに部署の主キーを外部キーで保持すれば、どの部署に属するかを一意に参照でき、存在しない部署を指せないよう参照整合性制約で守れる。
イ ×社員の連番主キーだけでは社員を識別できても所属部署との関連を表現できず、一対多の関係を実装したことにならない。
ウ ×部署名の文字列転記は冗長で更新時不整合を招き、参照整合性制約も働かないため、関連の実装手段として不適切である。
エ ×中間テーブルは多対多の関連を分解するときに用いるもので、一対多の関連では不要であり過剰な設計となる。

くわしく

関連の多重度によって実装方法が決まる。一対多は多側に外部キーを置く、多対多は連関(中間)テーブルを設けて二つの一対多へ分解する、というのが定石である。本問は一つの部署に複数社員という一対多なので、社員側に外部キーを置くのが正しい。参照整合性は外部キーが指す行の存在を保証する制約であり、孤立した参照やダングリング参照を防ぐ。

本番での押さえどころ

試験のコツ

『一対多』なら多側に外部キー、『多対多』なら中間テーブル、と多重度から実装を即断する。

覚え方

『多い方が、少ない方のカギ(主キー)を持つ』と一対多の外部キー配置を覚える。

よくある誤り

一対多にもかかわらず中間テーブルを作る過剰設計や、外部キーを一側(部署)に置こうとする誤りが多い。外部キーは必ず多側に置く。

開発技術の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0061

【基本情報技術者試験】データ設計の問題 — 解答・解説|ukamiru 過去問