平成16年度春期午後問6(DB)

さん  
(No.1)
3つ質問があります。
1つめは設問1の(a)についてです。
答えは「出品会員番号」とありますが、「会員番号」では不正解なのでしょうか。

2つめは、設問2のSQLの1行目についてです。
「SELECT 出品.出品価格, 商品名称,」
とありますが、出品価格は出品.出品価格にもかかわらず、なぜ商品名称は表名の記載がないのでしょうか。

3つめです。
同じく設問2のSQLの4行目の(e)についてです。
答えでは「入札1.入札会員番号 = :会員番号」とありますが、「入札2.入札会員番号 = :会員番号」 ではだめなのでしょうか。

リンク
https://www.ap-siken.com/s/kakomon/16_haru/
2022.03.16 12:05
GinSanaさん 
AP プラチナマイスター
(No.2)
>答えは「出品会員番号」とありますが、「会員番号」では不正解なのでしょうか。

実装からすれば会員番号でもいいんですが、入札エンティティで入札会員番号となっているってことは、出品会員番号が要求されますよね。
応用情報のときはこんな説明はないですが、データベーススペシャリストのときはこんな説明があります。

情報処理教科書データベーススペシャリスト
平成30年PM2、P75
P75
サブタイプに対する外部キーの名称は,問題文の 10 ページ目(・・・)「エンティティタイプ名及び属性名は,それぞれ意味を識別できる適切な名称とすること。」という記述があり、〔概念データモデルと関係スキーマの設計〕段落の「1.概念データモデル及び関係スキーマの設計方針」にも(・・・)あることから、そのサブタイプを示す名称を付与する必要があると考えないといけない。
実際、(・・・)“発注品目”の‘仕入先取引コード’や,“受注明細”の‘受注品目コード’など)もそうなっている。

エンティティタイプ名及び属性名は,それぞれ意味を識別できる適切な名称とすること、という意味では、サブタイプに限らずまあ意識しておくことですね。

>出品価格は出品.出品価格にもかかわらず、なぜ商品名称は表名の記載がないのでしょうか。
使用するテーブル内で1つしかその属性が出てこないなら省略できるからです。オプティマイザが構文解釈時に補完するわけですけど、CPUを無駄に使うから省略せずに書けば補完をしなくて済むから実際は書きますけどね・・・。
複数あってその記述を省く場合、DBMSのオプティマイザの構文解釈でなんのテーブルのだよ?ってなってエラーになります。

>答えでは「入札1.入札会員番号 = :会員番号」とありますが、「入札2.入札会員番号 = :会員番号」 ではだめなのでしょうか。
結局全部内部結合で結合して最後に入札会員番号で省いているのと一緒だから、実装的には問題ないようには見えます。

2022.03.16 13:34
さん  
(No.3)
事細かにありがとうございます。物凄く助かります。
2022.03.16 13:57

返信投稿用フォーム

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

その他のスレッド


Pagetop