データベース設計 (全49問中4問目)

No.4

部品在庫管理台帳における,部品,仕入先,在庫の三つのエンティティの関係をデータモデルとして記述した。エンティティa~cの組合せとして,適切なものはどれか。ここで,1 *は1対多の関連を表す。
27.png/image-size:556×239
  • 27a.png/image-size:340×152

            
  • [出典]
  • 午前免除試験 R4-12月 問26
  • 応用情報技術者 H21 問30と同題

分類

テクノロジ系 » データベース » データベース設計

正解

解説

部品在庫管理台帳を見ると、A商会からは少なくともR部品とS部品の2つの部品を仕入れていることがわかります。1つの仕入先が複数の部品に関連しているので、仕入先エンティティから見た部品エンティティの多重度は「多」となります。

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

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

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

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

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

主キー側エンティティと外部キー側エンティティ=1対多の関係により、部品表と在庫表=1対多、仕入先表と在庫表=1対多なので、在庫表を介して部品表と仕入先表が関連する形になります。在庫表を間に入れることで、多対多の関係が1対多の関係になり関係データベースで表現することができるようになります。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop