メインコンテンツへ
開発技術システム開発技術

ERモデル(実体関連モデル)において、「一つの部署に複数の社員が所属し、一人の社員は一つの部署にのみ所属する」関係を正しく表したものはどれか。

ア.部署 と 社員 の間に 1対多(1:N)の関連正解
イ.部署 と 社員 の間に 多対多(M:N)の関連
ウ.部署 と 社員 の間に 1対1(1:1)の関連
エ.部署 と 社員 の間に 多対1(N:1)の関連(社員側を起点にした表現)だが、ERモデルでは方向性のない多対多として扱う

解説

「1対多」は「お母さんと子供たち」の関係。一人のお母さん(部署)に複数の子供(社員)がいて、各子供は一人のお母さんに属します。ERモデルではこれを部署側が「1」、社員側が「N」と表します。

なぜ ア が正解か

ERモデルで「一つの部署に複数の社員が所属し、一人の社員は一つの部署にのみ所属する」は1対多(1:N)の関連です。部署側(親エンティティ)が「1」、社員側(子エンティティ)が「多(N)」になります。外部キーは多(N)側のエンティティ(社員テーブル)に部署IDが持たれます。

なぜ イ は間違いか

多対多(M:N)は「一人の学生が複数の授業を受け、一つの授業に複数の学生が参加する」のような場合です。社員が複数部署に同時所属できる場合に使いますが、設問では「一人の社員は一つの部署にのみ」と明記されています。

なぜ ウ は間違いか

1対1は「一人のユーザーに一つのプロフィールページ」のような対応です。複数の社員が一部署に所属する設問の条件と合いません。

なぜ エ は間違いか

視点を変えれば「N:1(社員→部署)」とも言えますが、ERモデルでは関係を1対多として表現するのが標準的です。「方向性のない多対多として扱う」という記述は誤りです。

出典: AI生成問題(学習用)