ホーム > データベーススペシャリスト試験 > 2011年
データベーススペシャリスト試験 2011年 午前2 問03
人の健康状態の検査では, 検査項目が人によって異なるだけでなく, あらかじめ決まっていないことも多い。このような場合の概念データモデルとして, 最も適切なものはどれか。ここで, 検査項目は標準値をもち, 適宜見直しが発生するものとする。また, モデルの表記にはUMLを用いる。

ア:
イ:(正解)
ウ:
エ:
解説
問題の背景
健康状態の検査においては、検査項目が個々の人によって異なるばかりか、検査項目自体があらかじめ定まっていないことが多くあります。また、各検査項目は基準となる標準値を持ち、その標準値は適宜見直されるものとします。
このような場合、データモデルとしてどのような構造を取るのが最も適切かを問う問題です。なお、モデルの表記にはUML(統一モデリング言語)を用います。
問題のポイント整理
-
検査項目が人によって異なる
つまり、個人ごとに測定する検査の種類が違う。 -
検査項目があらかじめ固定されていない
新たな検査項目が増えたり変更されたりする可能性がある。 -
検査項目は標準値を持ち、それは適宜見直される
標準値(正常値の範囲など)は検査項目に紐づく情報であり、動的に変わり得る。
適切な概念データモデルの特徴
上記の条件を満たすため、以下の点に注意したモデリングが求められます。
-
検査項目を「固定属性」として直接人体のエンティティに持たせるのではなく、検査項目自体をエンティティ(クラス)として独立させる
属性数や種類が不定の場合、固定的な属性の追加では対応できない。 -
「検査項目」と「人」との間に「検査結果」や「実施記録」などの関係を表すエンティティを置く
これにより、人ごとに異なる検査項目の結果を柔軟に扱える。 -
検査項目は標準値という属性(または関連エンティティ)を持ち、標準値が変動することを想定して履歴管理できる設計も考慮する
例えば、標準値を属性として持つか標準値更新の履歴を管理するクラスを設ける。
UMLでの具体的なモデリング例
- Person(人)クラス
- TestItem(検査項目)クラス
- 属性: name(検査項目名)、standardValue(標準値や範囲)
- TestResult(検査結果または検査記録)クラス
- 属性: 実施日、測定値など
- 関連: Person と TestItem に紐づく
このように、検査項目を単独クラスとして分離し、「人」と「検査項目」の間を「検査結果」でつなぐモデルが最も柔軟で拡張性があります。
なぜ「イ」が正解か
問題文の選択肢詳細は提示されていませんが、
- 「イ」が示しているモデルは、恐らく「検査項目を独立エンティティ化し、標準値を属性に持たせ、検査結果を人と検査項目の橋渡しクラスとして設けているモデル」です。
- 他の選択肢(ア、ウ、エ)は、検査項目を固定属性としたり標準値を扱わなかったり、柔軟性が低いモデルである可能性が高いです。
そのため、条件に最も合致した柔軟な概念データモデルを表現した「イ」が正解とされます。
まとめ
この設計思想に基づくモデルこそ、問題文の求める「最も適切な概念データモデル(UML表記)」です。
以上より、「イ」が正解である理由となります。