人の健康状態の検査に適したデータモデル【午前2 解説】
要点まとめ
- 結論:検査項目ごとに標準値を保持し、計測値は日時とともに「検査値」エンティティで管理するモデルが最適です。
- 根拠:検査項目は固定的な属性であり、計測値は複数回記録されるため、両者を分離し「検査値」で多対多の関係を表現します。
- 差がつくポイント:計測値の履歴管理と標準値の最新値保持を両立させるために、中間エンティティを設ける設計が重要です。
正解の理由
選択肢イは「人」「検査値」「検査項目」の3つのエンティティで構成されており、
- 「検査項目」は項目名と標準値を持ち、最新の標準値を一元管理できる。
- 「検査値」は計測日時と計測値を持ち、複数回の計測履歴を保持可能。
- 「人」と「検査値」は1対多の関係で、1人が複数の検査値を持つことを表現。
- 「検査値」と「検査項目」は多対1の関係で、各検査値がどの検査項目に対応するか明確。
この構造により、検査項目が人によって異なり、かつ計測値の履歴を日時付きで管理する要件を満たしています。
よくある誤解
検査項目と計測値を1つのエンティティにまとめると管理が簡単に見えますが、計測値の履歴管理が困難になります。
また、検査項目と人を直接多対多で結ぶと、計測日時や値の管理ができません。
解法ステップ
- 検査項目の属性(項目名、標準値)と計測値(計測日時、計測値)を分けて考える。
- 計測値は複数回記録されるため、履歴を保持できるエンティティが必要。
- 人と検査値は1対多の関係で、1人が複数の検査値を持つことを表現。
- 検査値と検査項目は多対1の関係で、計測値がどの検査項目に対応するかを明確にする。
- UMLで表現し、各エンティティの属性と関連の多重度を正しく設定する。
選択肢別の誤答解説
- ア:検査項目に計測日時と計測値を持たせているため、複数回の計測履歴を管理できず、標準値と計測値の区別も不明確。
- イ:正解。検査項目と計測値を分離し、履歴管理と標準値保持を両立。
- ウ:検査値と人の関係が多対多となっており、1人の複数検査値は表現できるが、検査項目が破線枠で付随しているため、標準値の管理が不十分。
- エ:検査項目と検査値の多重度が逆で、検査値が1つの検査項目にしか対応しない設計になっており、計測値の履歴管理に不適切。
補足コラム
健康診断や医療データの管理では、検査項目の標準値は頻繁に更新されることがあり、最新値のみを保持する設計が望ましいです。
また、計測値は日時とセットで履歴管理することで、経時的な健康状態の変化を追跡可能になります。
UMLの多重度設定は、実際の業務要件を正確に反映するために重要なポイントです。
FAQ
Q: なぜ検査項目と計測値を分ける必要があるのですか?
A: 検査項目は固定的な属性(項目名、標準値)であり、計測値は日時ごとに変動するため、別エンティティで管理し履歴を保持する必要があります。
Q: 計測値の履歴を管理しない場合はどのモデルが適切ですか?
A: 履歴管理が不要なら、検査項目に計測値を属性として持たせる単純なモデルでもよいですが、実務ではほとんどの場合履歴管理が必要です。
関連キーワード: データモデル、UML, 多重度、履歴管理、健康診断データ、エンティティ設計