平成19年秋期試験午前問題 問65

スタディング 応用情報技術者講座
部品在庫管理台帳における,部品,仕入先,在庫の三つのエンティティの関係をデータモデルとして記述した。エンティティa~cの組合せとして,適切なものはどれか。ここで,1 *は1対多の関連を表す。
65.gif

65a.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データベース設計
部品在庫管理台帳を見ると、A商会からはR部品とS部品の少なくとも2つの部品を仕入れています。1つの仕入先が複数の部品に関連しているので、仕入先エンティティから見た部品エンティティの多重度は「多」となります。

また、T部品についてはB商店とC商店の少なくとも2ヶ所から仕入れています。1つの部品が複数の仕入先に関連しているので、部品エンティティから見た仕入先エンティティの多重度も「多」となります。

つまり、部品エンティティと仕入先エンティティは「多対多」の関係を持ちます。

多対多の関係は関係データベースとして実装することができない(非正規形になる)ので、連関エンティティという項目を新たに設け、「1対多」の関係2つに分解します。この設問では、在庫エンティティが連関エンティティに該当します。
65_1.gif
したがって、bが在庫エンティティになっている「エ」が正解です。

【別解】
部品在庫管理台帳のレコードを一意に特定するためには{部品コード, 仕入先コード, 仕入日付}の複合主キーが必要です。第2正規化で主キーの一部について決まる関係{部品コード→部品名}と{仕入先コード→仕入先名}を別表に分離すると、次の3つの表になります。

 部品表(部品コード, 部品名)
 在庫表(部品コード, 仕入先コード, 仕入日付, 仕入価格, 在庫数)
 仕入先表(仕入先コード, 仕入先名)

主キー側エンティティと外部キー側エンティティ=1対多の関係により、在庫表と部品表=1対多、在庫表と仕入先表=1対多なので、在庫表を介して部品表と仕入先表が関連する形になります。在庫表を間に入れることで、多対多の関係が1対多の関係になり関係データベースで表現することができるようになります。

この問題の出題歴


Pagetop