UMLを用いて表した図のデータモデルのa、bに入れる多重度はどれか。
〔条件〕
(1) 部門には1人以上の社員が所属する。
(2) 社員はいずれか一つの部門に所属する。
(3) 社員が部門に所属した履歴を所属履歴として記録する。
┌─────┐ ┌─────┐ ┌─────┐
│ 部門 │ │ 所属履歴 │ │ 社員 │
├─────┤1 a ├─────┤ b 1├─────┤
│部門コード├─────┤開始日 ├─────┤社員コード│
│部門名 │ │終了日 │ │氏名 │
│: │ │: │ │: │
└─────┘ └─────┘ └─────┘
┌──────┬──────┐
│ a │ b │
┌─┼──────┼──────┤
│ア│ 0..* │ 0..* │
├─┼──────┼──────┤
│イ│ 0..* │ 1..* │
├─┼──────┼──────┤
│ウ│ 1..* │ 0..* │
├─┼──────┼──────┤
│エ│ 1..* │ 1..* │
└─┴──────┴──────┘
エ
UMLで「部門 1 − 1..* 社員」と表記すると
「部門から見ると、社員は1名以上複数名が所属する。」
「社員からみると、所属部門は必ず1つある。」
という意味になる。
a について、
部門からみると、所属履歴は1以上あり、所属履歴から見ると、部門は必ず1つある。
従って、部門 1 − 1..* 所属履歴 となる。
b について、
所属履歴からみると、社員は必ず1名であり、社員から見ると、所属履歴は1以上ある。
従って、所属履歴 1..* − 1 社員 となる。
問28 | 目次 | 問30 |