人の健康状態検査における概念データモデルの選択【午前2 解説】
要点まとめ
- 結論:検査項目と検査値を分離し、検査値が人と検査項目の関係を表すモデル(図イ)が最適です。
- 根拠:検査項目は標準値を持ち、見直しが頻繁にあるため独立エンティティとし、検査値は日時や計測値を持つため別エンティティ化が必要です。
- 差がつくポイント:検査項目が人によって異なり、事前に固定されない点を踏まえ、柔軟に拡張可能な多対多の関係を正しく表現できているかが重要です。
正解の理由
図イは「人」「検査項目」「検査値」の3つのエンティティを用い、「検査値」が「人」と「検査項目」の多対多の関係を仲介しています。これにより、検査項目が人ごとに異なり、かつ検査値が日時や計測値を持つことを正確に表現できます。検査項目は標準値を持ち独立して管理され、検査値は計測日時と計測値を属性として持つため、検査の履歴管理も可能です。この構造はUMLの正規化の観点からも適切で、柔軟性と拡張性に優れています。
よくある誤解
検査項目を「検査値」と一体化してしまうと、項目の標準値管理や項目の追加・変更が困難になります。また、多対多の関係を正しく表現せず単純な1対多にしてしまうと、データの冗長性や不整合が生じやすくなります。
解法ステップ
- 問題文から「検査項目は人によって異なり、あらかじめ決まっていない」ことを確認する。
- 検査項目が標準値を持ち、見直しがあるため独立したエンティティが必要と判断。
- 検査値は計測日時・計測値を持ち、検査項目と人の関係を表す役割を持つことを理解。
- UMLで多対多の関係を表現するために、検査値を中間エンティティとして配置するモデルを選択。
- 選択肢の図を比較し、図イが上記条件を満たしていることを確認。
選択肢別の誤答解説
- ア:検査項目に計測日時や計測値を含めており、検査値の履歴管理ができず柔軟性に欠ける。
- イ:正解。検査項目と検査値を分離し、多対多の関係を適切に表現している。
- ウ:検査項目をリレーションシップの属性集合として扱い、標準値の管理や拡張性が不十分。
- エ:検査項目と検査値の関係が逆で、検査値が1対多の関係となり、検査項目の標準値管理が曖昧。
補足コラム
UMLの概念データモデルでは、多対多の関係を表現する際に中間エンティティを設けることが一般的です。これにより、関係に属性を持たせたり、関係の履歴を管理したりすることが可能になります。特に医療情報のように検査項目が流動的で履歴管理が重要な場合、この設計が不可欠です。
FAQ
Q: なぜ検査項目を独立したエンティティにする必要があるのですか?
A: 検査項目は標準値を持ち、頻繁に見直しや追加があるため、独立管理することで柔軟に対応できるからです。
Q: 検査値を中間エンティティにするメリットは何ですか?
A: 検査値が「人」と「検査項目」の多対多の関係を表し、計測日時や計測値などの属性を持てるため、履歴管理や詳細な分析が可能になります。
関連キーワード: UML, 概念データモデル、多対多関係、データ正規化、医療情報システム、検査項目管理、履歴管理