DBデータベーススペシャリスト試験 午前Ⅱ

平成27年度春期 データベーススペシャリスト 午前Ⅱ 問4

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

UMLを用いて記述したデータモデルにおいて,“受講”クラスの属性として,適切なものはどれか。
学期,学生,受講,授業科目の四つのクラスと,受講に対する各クラスの1対多の関係を示すUMLクラス図。
学期,学生,受講,授業科目の四つのクラスと,受講に対する各クラスの1対多の関係を示すUMLクラス図。

選択肢

  1. ア
    学期名
  2. イ
    科目名
  3. ウ
    氏名
  4. エ
    成績
解き方のヒントを見る

属性の役割を整理する視点

クラス属性を検討するときは、記述が表している情報の範囲とクラスの責務との対応に注目し、周辺要素との境界や抽象度を順に整理して、意味の取り違えがないか落ち着いて確認します。

この問題で問われていること

判断の中心を、記述がクラス内のどの情報に関係し、責務や周辺要素との区分にどう結び付くかという一点に置き、表現そのものよりモデル上の位置付けを読み取ります。

視点

属性を単独の語句として見るのではなく、クラスの責務、扱う情報の範囲、関連する要素との境界を照らし合わせ、モデル内での位置付けを整理します。

確認ポイント

  • 記述が表している情報の対象範囲を確認する
  • 情報とクラスの責務との対応を確認する
  • 周辺要素との境界や抽象度を確認する
正解と解説を見る

正解

エ

解説

「受講」は学生・授業科目・学期を関連付けるクラスであり、受講という関係の一件ごとに記録される情報を属性にする。学生名や科目名などは、それぞれの独立したクラスの属性として扱う。

理由

図では「受講」が学生、授業科目、学期の間に置かれ、各対象を結び付ける関連クラスとして表現されている。受講という関係の一件ごとに記録される結果や状態は、「受講」クラスの属性になる。したがって、適切なのは成績です。

比較

学期名は学期クラス、科目名は授業科目クラス、氏名は学生クラスに属する情報であり、受講関係そのものの属性ではありません。受講者や科目を特定する情報と、その受講によって生じる情報を区別することがポイントです。

選択肢ア

これは不正解だよ。学期名は、図で「受講」と関連する「学期」クラスを説明する名称であり、学期という対象自身の属性として扱う情報である。学生がどの授業科目を受講したかという関係の一件ごとに記録される属性ではないため、「受講」クラスの属性としては適切でない。

選択肢イ

これは不正解だよ。科目名は、図の「授業科目」クラスに属する名称であり、授業科目そのものを識別・説明する情報である。受講は学生と授業科目などを結び付ける関連クラスなので、科目名を受講の属性として持たせると、授業科目の情報と関係の情報を重ねてしまう。

選択肢ウ

これは不正解だよ。氏名は、図の「学生」クラスに属する学生自身の属性である。受講という関係が成立するたびに記録される情報ではなく、同じ学生が複数の授業科目を受講しても学生クラスの情報として管理されるため、「受講」クラスの属性には当たらない。

選択肢エ(正解)

これは正解だよ。成績は、ある学生がある授業科目を受講したという関係に対して定まる情報であり、学生だけ、授業科目だけ、学期だけの属性ではない。図の「受講」はそれらを結び付ける関連クラスなので、その受講一件に対応する成績を属性として持たせるのが適切である。

学習のポイント

関連クラスには、その関係の成立ごとに変化する属性を持たせると理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度春期 データベーススペシャリスト試験 午前Ⅱ 問4(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針