基本情報技術者試験「データ設計」の問題
E-R図で表現された『部署』エンティティと『社員』エンティティの間に、一つの部署が複数の社員をもつ関連がある。これを関係データベースのテーブルとして実装するとき、参照整合性を保つために『社員』テーブル側へ設けるべき項目はどれか。
ア部署テーブルの主キーを参照する外部キー
イ社員ごとに自動採番される連番の主キーだけ
ウ部署名をそのまま転記した重複可能な文字列項目
エ社員と部署を結ぶ独立した中間テーブル
正解
ア.部署テーブルの主キーを参照する外部キー
E-R図の一対多の関連を関係データベースで実装する基本は、多側のテーブルに一側の主キーを外部キーとして持たせることである。社員テーブルに部署の主キーを外部キーで保持すれば、どの部署に属するかを一意に参照でき、存在しない部署を指せないよう参照整合性制約で守れる。
?選択肢ごとの解説
ア ○E-R図の一対多の関連を関係データベースで実装する基本は、多側のテーブルに一側の主キーを外部キーとして持たせることである。社員テーブルに部署の主キーを外部キーで保持すれば、どの部署に属するかを一意に参照でき、存在しない部署を指せないよう参照整合性制約で守れる。
イ ×社員の連番主キーだけでは社員を識別できても所属部署との関連を表現できず、一対多の関係を実装したことにならない。
ウ ×部署名の文字列転記は冗長で更新時不整合を招き、参照整合性制約も働かないため、関連の実装手段として不適切である。
エ ×中間テーブルは多対多の関連を分解するときに用いるもので、一対多の関連では不要であり過剰な設計となる。
✎くわしく
関連の多重度によって実装方法が決まる。一対多は多側に外部キーを置く、多対多は連関(中間)テーブルを設けて二つの一対多へ分解する、というのが定石である。本問は一つの部署に複数社員という一対多なので、社員側に外部キーを置くのが正しい。参照整合性は外部キーが指す行の存在を保証する制約であり、孤立した参照やダングリング参照を防ぐ。
✓本番での押さえどころ
試験のコツ
『一対多』なら多側に外部キー、『多対多』なら中間テーブル、と多重度から実装を即断する。
覚え方
『多い方が、少ない方のカギ(主キー)を持つ』と一対多の外部キー配置を覚える。
よくある誤り
一対多にもかかわらず中間テーブルを作る過剰設計や、外部キーを一側(部署)に置こうとする誤りが多い。外部キーは必ず多側に置く。
開発技術の他の問題
アジャイル開発の手法であるスクラムにおいて、スプリントごとに動作するソフトウェアを開発チームが実際に作り上げ、その成果物をプ…ソフトウェアのテストにおいて、プログラムの内部構造には着目せず、入力に対する出力が仕様どおりであるかを検証する手法を採用した…あるシステムのファンクションポイント(FP)を見積もったところ、未調整FPは200であった。技術的複雑度を表す調整係数が0.…ソフトウェアの企画から開発・運用・保守・廃棄までの各活動について、取得者と供給者が同じ言葉で役割や作業範囲を取り決められるよ…ある開発プロジェクトでは、要件定義・設計・実装・テストの各工程を上流から下流へ順に進め、前工程の成果物を承認してから次工程へ…開発対象を複数の部分に分け、各部分について計画・リスク分析・開発・評価の活動を繰り返し、評価のたびにリスクを見極めながら少し…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0061