データベーススペシャリスト試験 2012年 午前204


次の概念データモデルを関係データベース上に実装することとし、実装用のデータモデルを作成した。適切な多重度が指定されているものはどれか。ここで, モデルの表記にはUMLを用いる。
問題画像選択肢画像
(正解)

解説

概念データモデルの多重度指定【午前2 解説】

要点まとめ

  • 結論:UMLの多重度は関連の意味を正確に表現し、実装時の整合性を保つために重要です。
  • 根拠:問題の概念モデルでは「会社」と「人」が「雇用する」で関連付けられ、会社側は「0..5」、人側は「0..*」の多重度が示されています。
  • 差がつくポイント:多重度の上下限がどのエンティティに対応するかを正しく理解し、関連クラス(雇用)との接続に適切な多重度を設定できるかが鍵です。

正解の理由

選択肢エは、会社側の多重度「1」、雇用側の「0..」、雇用側の「0..5」、人側の「1」となっており、概念モデルの「会社側0..5」「人側0..」の意味を正しく関係モデルに反映しています。
具体的には、会社は1つ以上存在し、1つの会社が複数の雇用(0以上)を持ち、雇用は最大5人の人に対応し、人は1人に対応する形で多重度が適切に設定されています。
この構造は、UMLの関連クラス(雇用)を介した多重度の表現として妥当であり、実装時の整合性を保ちます。

よくある誤解

多重度の上下限を逆に解釈しやすく、関連クラスの両端に設定する多重度の意味を混同しがちです。
また、関連クラスの多重度を「1」に固定しすぎて、実際の関係性を表現できていないケースも多いです。

解法ステップ

  1. 問題の概念モデルの多重度を正確に読み取る(会社側「0..5」、人側「0..*」)。
  2. 関連クラス「雇用」を介した関係の意味を理解する(会社と人の間の雇用関係)。
  3. UMLの多重度の意味を整理する(「0..*」は0以上の任意の数、「1」は必ず1つ)。
  4. 関連クラスとエンティティ間の多重度を整合させる(会社-雇用、人-雇用の多重度を適切に設定)。
  5. 選択肢の多重度設定と問題の概念モデルを比較し、整合性があるものを選ぶ。

選択肢別の誤答解説

  • ア:会社側の多重度が「0..5」だが、雇用側が「1」と固定されており、関連クラスの多重度として不自然。
  • イ:会社側が「0..*」となっており、問題の「0..5」と異なる。人側の多重度も「0..5」と誤っている。
  • ウ:会社側が「1」、雇用側が「0..5」となっているが、関連クラスの多重度の意味が逆転している。
  • :会社側「1」、雇用側「0..*」、雇用側「0..5」、人側「1」と問題の多重度を正しく反映している。

補足コラム

UMLの多重度は、クラス間の関連の「数の制約」を示します。
関連クラスを用いる場合、エンティティと関連クラス間の多重度設定が重要で、これによりリレーショナルデータベースのテーブル設計や外部キー制約の設計に影響します。
多重度の理解は、正確なデータモデル設計と実装に不可欠です。

FAQ

Q: 多重度「0..*」は何を意味しますか?
A: 「0以上の任意の数」を意味し、関連先が存在しなくてもよいことを示します。
Q: 関連クラスの多重度はなぜ重要ですか?
A: 関連クラスの多重度は、関係の実体化を表し、データベース設計で中間テーブルのレコード数制約に影響します。
Q: UMLの多重度とリレーショナルデータベースの関係は?
A: UMLの多重度はテーブル間の外部キー制約や結合の制約条件を設計する際の指針となります。

関連キーワード: UML, 多重度, 関連クラス, データモデル設計, 関係データベース, 概念データモデル
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ