[第27回]国家試験解説[AP令和5年春]

応用情報技術者試験 令和5年春期 問29

UMLを用いて表した図のデータモデルのa,bに入れる多重度はどれか。
〔条件〕
(1):部門には1人以上の社員が所属する。
(2):社員はいずれか一つの部門に所属する。
(3):社員が部門に所属した履歴を所属履歴として記録する。

出典 IPA公開[過去問題]:https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_ap_am_qs.pdf

多重度の読み方

2つのデータ(エンティティと言う場合があります)の関係性を表すときに「多重度」という言葉を使うことがあります。1つのデータの中にもう片方のデータがいくつあるかを表します。

例えば次のようなデータモデルがあったとします。

「商品」にはたくさんの商品が登録されていますが、商品番号は重複していません。それに対して、「販売」には販売したデータが入っています。例え、ある1日に限って見ても多くのお客さんが同じ商品を買っていくケースがあります。その場合、「商品」側から「販売」側を見ると、同じ商品番号が複数行あるかもしれません(中には全く売れていない商品もあるでしょう)。この場合、「販売」側に「0..*」というように表記します。ただし、「販売」側から「商品」側を見た場合は、同じ商品番号は1行しかありません。この場合、「商品」側に「1」と表記します。

今回の問題では「部門」と「社員」の間に「所属履歴」があります。条件②には「社員はいずれか一つの部門に所属する。」とあるので、「所属履歴」には全社員の社員コードが1行以上存在しています(長く在籍している社員なら何度か所属変更があるかもしれません。その場合は所属履歴に該当する社員の社員コードが複数行存在します)。ということは、「社員」側から「所属履歴」を見ると「1..*」となります。

次に条件①には「部門には1人以上の社員が所属する。」とあるので、「所属履歴」には全部門の部門コードが1行以上存在します。ということは、「部門」側から「所属履歴」を見ると「1..*」となります。

正解は。「」です。