平成31年度春、午後Ⅰ問1

都内SEさん  
(No.1)
下記2点について、お手数ですがご教示いただけますでしょうか。

●設問1
  「大会」エンティティの主キーは「大会番号」であり、「参加申込み」エンティティの主キーは「大会番号」と「会員番号」であるため、大会と参加申込みの間に、1対多の関係があると思ったのですが、IPA解答にはその関係を示す矢印がなく、その理由が知りたいです。
  一般的に、主キーがαのエンティティAと、主キーがα、βのエンティティBがある場合、AとBは1対多になる認識なのですが、相違ないでしょうか?
  また、「会員ポイント」と「参加申込み」の間にも、上記と同様の理由で1対多の関係があるように思いましたが、IPA解答にはその関係を示す矢印がなく、こちらもその理由が知りたいです。

●設問3(2)
  IPA解答は確か下記でしたが、別解の余地について確認させてください。別解が成立しない理由があればご教示いただきたく。
<IPA解答>
  会員ポイント(会員番号(主)、ポイント付与年月日(主)、使用ポイント、付与ポイント)

<自分の解答(別解?)>
  会員ポイント(会員番号(主)、入金年月日(主)、ポイント残高)
  or
  会員ポイント(会員番号(主)、ポイント使用期限日(主)、ポイント残高)

<解答差分の理由>
  ポイント付与年月日(主)については、入金をトリガにポイントが発生するため、入金年月日で置換してもよいかと思いました。また、期限はポイント付与から必ず1年後であり、ポイント付与日と期限日は1対1の関係なので、ポイント使用期限日で置換することも可能かと思いました。
  また、使用ポイント、付与ポイントについては、ポイントの増分と減少を別の属性として管理する必然性が分からず、元々存在するポイント残高でこれら2つの属性を置換しても要件を満たせると思いました。
2022.08.16 08:12
mkkさん 
(No.2)
都内SEさん、こんにちは。
「都内SE」って表現、なんだか憧れちゃいますね!

●設問1について
[大会への参加申込みから参加費用の入金まで]の2.(3)だけを見ると
大会と会員番号がキーなのでそうなってしまうように感じるのですが
そもそも参加申込みは大会に対する申込みではなく、エントリ枠に対しての申込みです。

図2の関係スキーマにあらかじめ『エントリ枠番号』が載っているので
まずはエントリ枠と参加申込みを結びつける時に一緒に大会番号を持ってきます。
そのあと会員と紐づけたうえで、キーはどれにするかを
2.(2),(3)あたりで決定するというイメージです。

「会員ポイント」と「参加申込み」の間は、、、そんな記載ありましたっけ??
わかる人にお任せすることにします。。。

●設問3(2)について
ざっと問題を読んだ限り、都内SEさんの書いた通りでも要件を満たせそうです。
ただ都内SEさんの案だと、ポイント使用時にポイントが更新されてしまうので
当時何ポイント付与されたのかわからなくなってしまいます。
模範例の場合だと、今後ユーザーに照会する際などに適しているかなと思いました。
それなら使用ポイントも、いつ何にどれだけ使用したかを管理すべきかもしれませんが...

問題文に「付与された」とか「使用は」とあるので
この辺からそのような列を想定してほしいという事かもしれません。
2022.08.16 11:19
mkkさん 
(No.3)
再度問題を見直して気づきました。

「会員ポイント」と「参加申込み」の間は
[大会への参加申込みから参加費用の入金まで]の4.(4)を見て
参加申込みにおける使用ポイント列から、上記を結びつけたという事ですね。

前の回答でも書きましたが
参加申込みは、「エントリ枠」に対する「会員」の申込み情報です。
会員ポイントは、あくまで会員に紐づいているポイントだけの情報なので
これを参加申込みに紐づけるのは一般的ではないのかなと思います...。
2022.08.16 11:39
logres_Fanさん 
DB ブロンズマイスター
(No.4)
  まず、私の回答は厳密にDBスペシャリスト試験に準じたものではありません。注意して下さい。また、うっかりミスなどの間違いを指摘される事も多いのでしっかり吟味して下さい。

>●設問1について、
>  …大会と参加申込みの間に、1対多の関係がある

  主催者のエントリ枠登録に先行して参加申込みを登録する場合に矢印を結びます。まず、大会と参加申込みを結び、次に、大会とエントリ枠を結び、エントリ枠と参加申込みを結びます。

①大会:{大会番号},大会名,…
②④参加申込み:{大会番号,会員番号},エントリ枠番号,参加申込日,…
③エントリ枠:{大会番号,エントリ枠番号},エントリ枠番号,エントリ枠名,…

  エントリ枠番号が時限nullとなります。扱えなければ、サブタイプとして切り出します。

①大会:{大会番号},大会名,…
②参加申込み:{大会番号,会員番号},参加申込日,…
④参加申込みサブタイプ:{大会番号,会員番号},エントリ枠番号
③エントリ枠:{大会番号,エントリ枠番号},エントリ枠番号,エントリ枠名,…

> また、「会員ポイント」と「参加申込み」の間にも、
  
  会員ポイント(会員番号,ポイント残高)から自身の会員番号を検索・参照出来るのであれば、矢印を結びます。
  以上、スレ主さんの疑問に答える為の回答です。試験問題に厳密に準じたものではありません。

> 一般的に、主キーがαのエンティティAと、主キーがα、βのエンティティBがある場合、AとBは1対多になる認識なのですが、相違ないでしょうか?

  テーブルA:{α},…、テーブルB:{α,β},…の場合、親子関係と認識しています。

>●設問3(2)
> <IPA解答>会員ポイント(会員番号(主)、ポイント付与年月日(主)、使用ポイント、付与ポイント)

  使用ポイントではなく、使用済ポイント(=使用ポイントを合計したもの)なので、受験生の皆様は、ご注意下さい。
  <IPA解答>会員番号(主),ポイント付与年月日(主),付与ポイント,使用済ポイント
  
>&#160;…必然性が分からず、元々存在するポイント残高でこれら2つの属性を置換しても要件を満たせると思いました。

  根拠が無くなると、正しい値と言えなくなるので置換出来ません。

  会員ポイント:{会員番号},ポイント残高
  ↓
  会員ポイント:{会員番号},付与済ポイント,使用済ポイント
  ↓
  会員ポイント:{会員番号,ポイント付与年月日},付与ポイント,使用済ポイント
  ※大会別管理の課題が残ります。
  
>…入金年月日で置換してもよいかと思いました。

  主キーを置換すると、関数従属性に従い、属性項目も置換する事になります。

  会員入金:{会員番号,入金年月日},入金額,入金ポイント,…
  会員入金ポイント:{会員番号,入金年月日,入金ポイント},使用済ポイント,使用期限年月日

  入金トリガ→ポイント付与の前に、参加費用から付与ポイントが発生しているので、結局、次のようになります。

  会員入金:{会員番号,入金年月日},入金額,ポイント付与年月日
  会員ポイント:{会員番号,ポイント付与年月日},付与ポイント,使用済ポイント
  

>…ポイント使用期限日で置換することも可能かと思いました。

  会員ポイント:{会員番号,ポイント使用期限日},失効ポイント  

>別解

  ポイント獲得年月日と獲得ポイントを使っても、点数が貰えたかもしれません。

●感想

  実装する場合、ポイント有効期限に対応する為に終了年月日と失効年月日も検討します。
2022.08.21 02:12
初受験さん 
(No.5)
>●設問1
>  「大会」エンティティの主キーは「大会番号」であり、「参加申込み」エンティティの主キーは「大会番号」と「会員番号」であるため、大会と参加申込みの間に、1対多の関係があると思ったのですが、IPA解答にはその関係を示す矢印がなく、その理由が知りたいです。

エントリ枠を介して、大会や種目とリレーションがある(推移的関数従属)ので不要。

>  また、「会員ポイント」と「参加申込み」の間にも、上記と同様の理由で1対多の関係があるように思いましたが、IPA解答にはその関係を示す矢印がなく、こちらもその理由が知りたいです。

会員を介して、会員ポイントとリレーションがある(推移的関数従属)ので不要。

>●設問3(2)
>  IPA解答は確か下記でしたが、別解の余地について確認させてください。別解が成立しない理由があればご教示いただきたく。

別解についてきちんと解説された対策本もありますので、購入し確認なさってはいかがでしょう。
ご参考になれば幸いです。
2022.08.21 10:10

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop