平成31年度 春期 午前Ⅱ 問4
データベース方式
オブジェクト図に関する問題
プロパティグラフを表した図のデータモデルを適切に解釈したオブジェクト図はどれか。ここで,モデルの表記にはUMLを用いる。
データモデル:
クラス「ノード」(属性:ノード名) クラス「エッジ」(属性:エッジ名) クラス「プロパティ」(属性:プロパティ名,プロパティ値) ノードからノード自身への関連(両端の多重度 0..*)があり, この関連にエッジが破線で付いている(関連クラス) ノード 0..1 ―――― 0..* プロパティ (関連名:▲所属する) エッジ 0..1 ―――― 0..* プロパティ (関連名:▲所属する) 二つの「所属する」関連は,それぞれ破線で注記「制約:同時には成立しない」に結ばれている
選択肢は原典ではオブジェクト図(インスタンス名:クラス名,属性=値)。実線はリンク,破線は関連クラスのインスタンスがリンクに付いていることを表す。
- アE01:エッジ(エッジ名=中央線)とE02:エッジ(エッジ名=山手線)が実線で結ばれ,その線にN01:ノード(ノード名=東京)が破線で付いている。N01:ノードとP01:プロパティ(プロパティ名=時間(分),プロパティ値=6)が実線で結ばれている。
- イN01:ノード(ノード名=東京)とN02:ノード(ノード名=新宿)が実線で結ばれ,その線にE01:エッジ(エッジ名=中央線)が破線で付いている。E01:エッジとP01:プロパティ(プロパティ名=時間(分),プロパティ値=14)が実線で結ばれている。
- ウN01:ノード(ノード名=東京)とN02:ノード(ノード名=新宿)が実線で結ばれ,その線にE01:エッジ(エッジ名=中央線)が破線で付いている。P01:プロパティ(プロパティ名=時間(分),プロパティ値=14)はN01:ノードとN02:ノードのそれぞれと実線で結ばれている。
- エN01:ノード(ノード名=東京)とE01:エッジ(エッジ名=中央線)が実線で結ばれ,その線にP01:プロパティ(プロパティ名=時間(分),プロパティ値=14)が破線で付いている。N01:ノードとN02:ノード(ノード名=新宿)が実線で結ばれている。N02:ノードとE02:エッジ(エッジ名=山手線)が実線で結ばれ,その線にP02:プロパティ(プロパティ名=時間(分),プロパティ値=12)が破線で付いている。
答えと解説を見る
✓ これが正解イN01:ノード(ノード名=東京)とN02:ノード(ノード名=新宿)が実線で結ばれ,その線にE01:エッジ(エッジ名=中央線)が破線で付いている。E01:エッジとP01:プロパティ(プロパティ名=時間(分),プロパティ値=14)が実線で結ばれている。
解説
ノード同士を結ぶリンクにエッジが付き、プロパティはエッジだけに所属します。
データモデルの読み方を順に当てはめます。ノードからノード自身への関連があり、そこにエッジが関連クラスとして付いているので、オブジェクト図ではノード同士をリンクで結び、そのリンクにエッジのインスタンスを破線で付けた形になります。プロパティはノードかエッジのどちらか一方に所属し、二つの所属は同時には成立しません。さらに、所属先の側の多重度が0..1なので、一つのプロパティが所属できる相手は一つだけです。東京と新宿のノードを結ぶリンクに中央線のエッジが付き、時間(分)のプロパティがそのエッジだけと結ばれている図は、これらをすべて満たします。何と何をリンクで結べるか、関連クラスはどのリンクに付くかを、クラス図の線と一つずつ照らし合わせるのが見分け方です。
ほかの選択肢はなぜ違うのか
- アE01:エッジ(エッジ名=中央線)とE0…:エッジ同士をリンクで結び、そのリンクにノードを付けています。データモデルで自分自身との関連を持つのはノードの側で、関連クラスとして付くのはエッジの側なので、二つの役割が入れ替わっています。
- ウN01:ノード(ノード名=東京)とN02…:一つのプロパティが、東京と新宿の二つのノードの両方とリンクで結ばれています。プロパティから見た所属先の多重度は0..1なので、一つのプロパティが所属できるノードは一つまでであり、この図はモデルに反します。
- エN01:ノード(ノード名=東京)とE01…:ノードとエッジを直接リンクで結び、そこにプロパティを関連クラスとして付けています。データモデルにはノードとエッジを結ぶ関連も、プロパティを関連クラスとする指定もないので、この解釈は成り立ちません。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)