R4午後Ⅱ問2設問1のリレーションシップ

マリンさん  
(No.1)
DB未経験の初受験予定でまだ論理設計は2問目なので、過去問を何年分もやればそのうちわかることかもしれませんが、間違った認識のまま進みたくないので質問させてください。
(なお、わくすた本を購入しておりこの解説は読みました)
長いので、いずれかだけの回答でも大変助かります。

1.航路明細→販売区間(2本)、航路明細→運航スケジュール明細に対して、港→販売区間(2本)、航路→販売区間、港→運航スケジュール明細というように、1対多の1の側を誤ったところから線を出してしまいました。
回答を見れば例えば航路明細と販売区間が意味的に関連しているというのは理解はでき、その間に線を引く妥当性もなんとなくはわかるのですが、ズバリ港コードを持つ港と繋ぐと誤答になってしまう理由を自分で論理的に説明できません。
(「意味的に関連している」とは論理的にどういう意味か、という話になるんでしょうかね?)
数をこなしてこの「なんとなく」の感覚を定着させていくしかないんでしょうか?
あるいは、「○○ごと」「○○内の」というキーワードがあったら機械的にそれを1対多とみなす、という戦法で行けるんでしょうか?

2.宿泊区画→船型別宿泊区画を引いてしましました。
宿泊区画は「185」のような船型によらない通し番号で、船型別宿泊区画は「この船型の185はデラックス」(別の船型だったら185はスイートかもしれない、あるいは小型船なら185自体ないかもしれない)のような情報を持っているのかと思っていました。
後になって見れば、宿泊区画も船型の孫なのでそもそも「船型によらない通し番号」ではなく「船型に沿った番号」を持っているのでこの線は不要ということかと思いますが、正解した方は、文章や概念データモデルから船型→宿泊区画の親孫関係を見抜き、この線を回避したんでしょうか?
私自身、設問1(2)の予約―予約有乗船、予約客―予約有乗船客を早とちりして乗船や乗船客に引いてしまったのですが(サブタイプをよく見ていれば引けた)、概念データモデル(未完成)は引かれている線すべてを理解するつもりでじっくり目を通すのが重要、という感じでしょうか?

3.等級→運賃を引いてしまいました。
1(7)⑥で「運賃種類コードのうち、乗船客の運賃を表すものは等級コードである」というのを見て引きました。
車両などのコードは等級と対応しないから外部キーにはなれない(もしこのフェリー会社が乗船客しか乗せていなければそもそも属性は「運賃種類コード」ではなく「等級コード」になっていたはずだし線が必要だった)という理解でよいでしょうか?

4.等級→宿泊区画を引いてしまいました。
確かにテーブル構造(未完成)には宿泊区画には等級コードがないですが、1(3)①を読む限りありそうです。
ここに線がないのはなぜでしょうか?
また、メタ読み(回答テクニック)になってしまいますが、テーブル構造(未完成)に属性を追加せよという設問が無ければ、ア(カ)以外は完成していると考えればよかったんでしょうか?
2023.07.23 13:36
logres_fanさん 
DB ブロンズマイスター
(No.2)
> ズバリ港コードを持つ港と繋ぐと誤答になってしまう理由を自分で論理的に説明できません。
  航路番号01『C港発F港行(C港-D港-E港-F港)』の販売区間を登録する際に、A港、B港、G港など無関係の港をうっかり登録することも可能になります。なので、組み合わせが定義されているテーブルから参照するのがオーソドックス。下記は、大雑把な例です。
{航路名,港名}
C港発F港行,C港
C港発F港行,D港
C港発F港行,E港
C港発F港行,F港
  しかし、過去問の中にはそうなっていない場合もありまして。在庫のテーブルは、過去問のセオリー通りに回答して下さい。もし定義域テーブルを無視する事になったとしても、セオリー回答がそうなったのであればそれでいいんです。迷って修正する必要はないと思います。
  トリガなどSQLなんやかんやでチェックするので、という事情があるのかな。

> 宿泊区画→船型別宿泊区画を引いてしましました。
  諸々は横に置いて、模範解答にはリレーションシップは設定されていません。が、私の回答は以下です。
[船型別宿泊区画]→[宿泊区画]
理由は、H25スーパーマーケットの販売管理で論点になったから。
[店舗別特売目標]ー[店舗追加特売企画]
しかし、論点化されていない。という事は、今後、論点になる場合、H31製パン業務の設問2(3)のように例示されるか、裏ルールが追加されるはず。
なお、解答の際には、継承を含めて解答すること。
> 等級→運賃を引いてしまいました。
> 等級→宿泊区画を引いてしまいました。
[運賃種類]運賃種類コード,運賃種類名,等級フラグ
DX,デラックス,Y
[等級]等級コード(=運賃種類コード),個数大部屋区分
DX,個室
  関係スキーマによると、等級は船舶ごと宿泊区画ごとに管理されている。[フェリー]から船型番号を継承して参照。
[宿泊区画]←[船型別宿泊区画]
{フェリー番号,宿泊区画番号},[船型番号],等級コード
原則、関係スキーマのうち、記載済みの部分は完成しているという事です。
2023.07.25 01:30
マリンさん  
(No.3)
ありがとうございます。

1.
> 無関係の港をうっかり登録することも可能になります。なので、組み合わせが定義されているテーブルから参照するのがオーソドックス
なるほど!
販売区間の乗船港コードや下船港コードがただ単に港を指し示しているのではなく、航路番号・乗船港コード・下船港コードの3つが揃って意味をなすというイメージが湧いてきました。

2.
宿泊区画と船型別宿泊区画の間に引いてしまったのが頓珍漢な間違いではなかったようで、ひとまず少し安心しました。
ここら辺については過去の分をやっていって問題の書き方を見ながら感覚をつかんでいこうと思います。

3.
書いていただいたテーブル構造を見ながら、今更運賃種類→運賃の線に気付きました。
これなら納得です。
注意不足ですね…

4.
上手く言えませんが、よくある受注と生産のようなテーブルだと受注番号という共通のキーで1対1で紐づきつつ互いに相手が持っていない付加情報を持っていますが、宿泊区画と船型別宿泊区画は付加情報をほぼ持っておらずそのような間柄とは言い難いですね。
宿泊区画が予約のようなトランザクションテーブルだったり、船型別宿泊区画と宿泊区画が1対多だったりしたら話が違ってきますが。
その意味で、この2テーブル間に1対1の関係を見出したところで情報的にあまり意味がなく、IPAがそう言う(ここにリレーションがないと図示している)んならそうなんだろう、という気もします。
本番でここまで考える余裕はないですが、
> 原則、関係スキーマのうち、記載済みの部分は完成しているという事です。 
このことを(過信しない程度に)利用すればどうにか行けそうな気がしてきました。

改めて、ありがとうございます!
2023.07.26 00:36
logres_fanさん 
DB ブロンズマイスター
(No.4)
> 間違った認識のまま進みたくないので質問させてください。
  令和4年午後Ⅱ問2について。例年の午後I問1を踏襲しているので、関係スキーマに従って回答する練習をやりましょう。
  出題文は流し読みの教材です。絵の中から主人公を探し出す絵本ような感覚で練習しましょう。枝葉末節まで読み解くのはお勧めしません。午後Ⅱに移行する為に出題文が盛り沢山になりましたが、弊害が大き過ぎ。枝葉末節まで読み解いても、得るものも少ないです。例年の午後I問1のように、枝葉末節まで読み解いて落ちる仕組みでしたね。
2023.07.29 00:32
マリンさん  
(No.5)
> 枝葉末節まで読み解くのはお勧めしません。
R2午後Ⅱ問2の2(1)①の「製品の種類ごとに3部門ある製品生産部」「部品の種類ごとに5部門ある部品生産部」に惑わされたり、R4午後Ⅰ問1のサで「本当に{FAQ番号(PK・FK)、関連FAQ番号(PK・FK)}でいいのか?」({類似FAQ通番(PK)、FAQ番号(PK・FK)}みたいな作りにして類似FAQ通番が同じ別のFAQ番号を検索する作りにするのが良いのでは?)とか考えたりしてしまいますね…
後者は悩んだ末「類似するFAQを関連付け」という言葉にそのまま従うことにして正解しましたが、前者は悪問だと思ってしまいます…

DBは初学者視点では、考えてもどうにもならない、外したら運が悪かったと思うしかない問題があるように感じますね。
そういう問題で落としても他で確実に正解して合格するためも、解き進めていこうと思います。
2023.07.30 03:11

返信投稿用フォーム

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

その他のスレッド


Pagetop