HOME»応用情報技術者試験掲示板»午後問6DBについて
投稿する
午後問6DBについて [0463]
すずきさん(No.1)
午後問DBについて解答を見てもいまいち理解できません。
設問1(2)b:部署ID C:上位部署ID
部署ID ⇒ 上位部署IDということですが私には
上位部署ID ⇒ 部署ID で1対多になるとしか考えられます。
複数の部署が上位部署にぶら下がっていると思っています。
設問1(2)b:部署ID C:上位部署ID
部署ID ⇒ 上位部署IDということですが私には
上位部署ID ⇒ 部署ID で1対多になるとしか考えられます。
複数の部署が上位部署にぶら下がっていると思っています。
2015.10.24 23:14
通りすがりさん(No.2)
間違ってたら悪い
普通リレーションは
主キー→非主キー(1対多)って流れが基本的
何で部署IDが主キーかっていうと
上位部署IDにはnullが入ることを
許容しているっていうことを問題の中で書いている
普通nullが入っている属性に主キーとして扱うことはない
また他のテーブルで部署IDは主キーとして扱われている
だから部署ID→上位部署IDって考えました
散々某掲示板で荒れたからもうあそこで聞かないほうがいい
普通リレーションは
主キー→非主キー(1対多)って流れが基本的
何で部署IDが主キーかっていうと
上位部署IDにはnullが入ることを
許容しているっていうことを問題の中で書いている
普通nullが入っている属性に主キーとして扱うことはない
また他のテーブルで部署IDは主キーとして扱われている
だから部署ID→上位部署IDって考えました
散々某掲示板で荒れたからもうあそこで聞かないほうがいい
2015.10.25 07:57
あつみんさん(No.3)
この投稿は削除されました。(2015.10.27 08:40)
2015.10.27 08:40
あつみんさん(No.4)
この投稿は削除されました。(2015.10.27 08:38)
2015.10.27 08:38
あつみんさん(No.5)
この投稿は削除されました。(2015.10.27 08:38)
2015.10.27 08:38
あつみんさん(No.6)
この投稿は削除されました。(2015.10.27 08:36)
2015.10.27 08:36
あつみんさん(No.7)
試験お疲れさまです。
いろいろ検証してみたんですが、模範解答の方がまちがっているのではと思います。
以下に検証結果を報告します。
1.まず参考にするのが図2です。
○図2はシステム改修後の部署テーブルを表しています。
2.問題になっているのは、
○システム改修前の部署テーブルの『部署ID』と『上位部署ID』の関係です。
3.改修前のシステム(現行システム)は、冒頭の書き出しより
○『現時点での情報しか管理していません。』となっています。
4.そこで、図2を改修前の状態に戻します。
○現在の情報というのは、適用終了年月日が未定のデータです。
※:厳密にいえば今が何月何日かわからないと、未来のデータが登録されていた
場合は検出できない。
5.上記の事柄を実現するため、『9999-12-31』だけ抜き出します。
部署ID 部署名 上位部署ID
A000 R株式会社 NULL
A100 新第1本部 A000
A110 営業1部 A100
A120 営業2部 A200
A200 第2本部 A000
J000 人事部 A000
6.上の表をコード単位でまとめます。
部署ID 部署名 上位部署ID
――――――――――――――――――――
A000 R株式会社 NULL
――――――――――――――――――――
A200 第2本部 A000
J000 人事部 A000
A100 新第1本部 A000
――――――――――――――――――――
A110 営業1部 A100
――――――――――――――――――――
A120 営業2部 A200
――――――――――――――――――――
7.結果の評価
上位部署ID『A000』
に対して
部署IDは『A100』/『A200』/『J000』
つまり、上位部署IDは1件に対し部署IDは3件
8.結論
『上位部署ID』と『部署ID』の関係は【1対多】、
【→】は【1対多】を表しているので
表1の空欄は、b:『上位部署ID』c:『部署ID』となります。
これ以外の回答はないと思うのですが。。。。。
以上です
いろいろ検証してみたんですが、模範解答の方がまちがっているのではと思います。
以下に検証結果を報告します。
1.まず参考にするのが図2です。
○図2はシステム改修後の部署テーブルを表しています。
2.問題になっているのは、
○システム改修前の部署テーブルの『部署ID』と『上位部署ID』の関係です。
3.改修前のシステム(現行システム)は、冒頭の書き出しより
○『現時点での情報しか管理していません。』となっています。
4.そこで、図2を改修前の状態に戻します。
○現在の情報というのは、適用終了年月日が未定のデータです。
※:厳密にいえば今が何月何日かわからないと、未来のデータが登録されていた
場合は検出できない。
5.上記の事柄を実現するため、『9999-12-31』だけ抜き出します。
部署ID 部署名 上位部署ID
A000 R株式会社 NULL
A100 新第1本部 A000
A110 営業1部 A100
A120 営業2部 A200
A200 第2本部 A000
J000 人事部 A000
6.上の表をコード単位でまとめます。
部署ID 部署名 上位部署ID
――――――――――――――――――――
A000 R株式会社 NULL
――――――――――――――――――――
A200 第2本部 A000
J000 人事部 A000
A100 新第1本部 A000
――――――――――――――――――――
A110 営業1部 A100
――――――――――――――――――――
A120 営業2部 A200
――――――――――――――――――――
7.結果の評価
上位部署ID『A000』
に対して
部署IDは『A100』/『A200』/『J000』
つまり、上位部署IDは1件に対し部署IDは3件
8.結論
『上位部署ID』と『部署ID』の関係は【1対多】、
【→】は【1対多】を表しているので
表1の空欄は、b:『上位部署ID』c:『部署ID』となります。
これ以外の回答はないと思うのですが。。。。。
以上です
2015.10.27 09:33
社会人10年目さん(No.8)
すみません
自分はもっと簡単に考えてしまいました。
図1の部署だけに注目してみると
部署.部署ID→部署.上位部署ID
と線が引かれていることが見えますよね?
問題文は
部署.( b )→部署.( c )
のb.c空欄を埋めなさい
ということだったと思うので
単純に 図どおりに空欄を埋めたまでなんですが
間違ってるでしょうか?
理屈としても
上位部署IDは上位部署の部署IDを保持するとかかれています。
例えば
部署IDは
営業部が001
システム部が002だとします。
営業部 カスタマー課が005だとします。
営業部 特命課が006だとします。
システム部 WEB課が010
システム部 社内課が011
だったとします
この場合にWEB課と社内課で考えると
WEB課010の上位部署は一意に決まるシステム部002です。
システム課の部署IDは WEB課010と社内課011
そう考えると
部署.部署ID→部署.上位部署ID
になりませんかね???
すみませんリレーションあまり得意じゃないもので・・・
自分はもっと簡単に考えてしまいました。
図1の部署だけに注目してみると
部署.部署ID→部署.上位部署ID
と線が引かれていることが見えますよね?
問題文は
部署.( b )→部署.( c )
のb.c空欄を埋めなさい
ということだったと思うので
単純に 図どおりに空欄を埋めたまでなんですが
間違ってるでしょうか?
理屈としても
上位部署IDは上位部署の部署IDを保持するとかかれています。
例えば
部署IDは
営業部が001
システム部が002だとします。
営業部 カスタマー課が005だとします。
営業部 特命課が006だとします。
システム部 WEB課が010
システム部 社内課が011
だったとします
この場合にWEB課と社内課で考えると
WEB課010の上位部署は一意に決まるシステム部002です。
システム課の部署IDは WEB課010と社内課011
そう考えると
部署.部署ID→部署.上位部署ID
になりませんかね???
すみませんリレーションあまり得意じゃないもので・・・
2015.10.28 10:21
あつみんさん(No.9)
この文章を書いている間に、書き込みがありましたので話が前後しますが、
第2部として、なぜまちがえたのか原因を究明していきましょう。
社会人10年目さんには、(そろそろ寝る時間なので)後でレスさせて頂ます。
結論を先に言ってしまうと、【参照】と【関数従属】違いが理解できていないからです。
完全正規化された場合、
2つの表間の【外部キー】と【主キー】の関係 → 【参照】
1つの表内の【主キー】と【非キー】の関係 → 【関数従属】
30ページの図1の説明は、1行目の【参照】の説明です。
それに対して、設問の3行目は同一表内なので【関数従属】の関係です。
間違いの原因は、【参照関係】のルールを【関数従属】に使ったためと推察します。
<<【参照関係】のルール>>
○多対1のリレーションシップの多側が外部キー、1側が主キー
<<【関数従属】のルール>>
○主キーは、UNIQUE制約とNOT NULL制約を必然的に兼ねる。
○ 主キーが決まると他の属性が一意的に決まる。
故に、主キー側から見ると非キーは1
非キーがわから見ると、主キーは多
つまり、主キーは多側、非キーは1側です。
例)
<<部署表>>
【部署ID】 部署名 部長社員ID 上位部署
B000 総務部 A H001(東京本部)
B001 営業1部 A H001(東京本部)
B002 営業2部 D H002(大阪本部)
H001 東京本部 HA K000(川崎工業)
H002 大阪本部 HB K000(川崎工業)
K000 川崎工業 KA NULL
(1)主キーの部署IDから見ると (上位部署は1)
【部署ID】 上位部署
B000 H001(東京本部)
B001 H001(東京本部)
B002 H002(大阪本部)
H001 K000(川崎工業)
H002 K000(川崎工業)
K000 NULL
(2)非キー側からみると(部署IDは多)
上位部署 【部署ID】
H001(東京本部) B000
H001(東京本部) B001
H002(大阪本部) B002
K000(川崎工業) H001
K000(川崎工業) H002
K000 NULL 川崎工業
以上です。
第2部として、なぜまちがえたのか原因を究明していきましょう。
社会人10年目さんには、(そろそろ寝る時間なので)後でレスさせて頂ます。
結論を先に言ってしまうと、【参照】と【関数従属】違いが理解できていないからです。
完全正規化された場合、
2つの表間の【外部キー】と【主キー】の関係 → 【参照】
1つの表内の【主キー】と【非キー】の関係 → 【関数従属】
30ページの図1の説明は、1行目の【参照】の説明です。
それに対して、設問の3行目は同一表内なので【関数従属】の関係です。
間違いの原因は、【参照関係】のルールを【関数従属】に使ったためと推察します。
<<【参照関係】のルール>>
○多対1のリレーションシップの多側が外部キー、1側が主キー
<<【関数従属】のルール>>
○主キーは、UNIQUE制約とNOT NULL制約を必然的に兼ねる。
○ 主キーが決まると他の属性が一意的に決まる。
故に、主キー側から見ると非キーは1
非キーがわから見ると、主キーは多
つまり、主キーは多側、非キーは1側です。
例)
<<部署表>>
【部署ID】 部署名 部長社員ID 上位部署
B000 総務部 A H001(東京本部)
B001 営業1部 A H001(東京本部)
B002 営業2部 D H002(大阪本部)
H001 東京本部 HA K000(川崎工業)
H002 大阪本部 HB K000(川崎工業)
K000 川崎工業 KA NULL
(1)主キーの部署IDから見ると (上位部署は1)
【部署ID】 上位部署
B000 H001(東京本部)
B001 H001(東京本部)
B002 H002(大阪本部)
H001 K000(川崎工業)
H002 K000(川崎工業)
K000 NULL
(2)非キー側からみると(部署IDは多)
上位部署 【部署ID】
H001(東京本部) B000
H001(東京本部) B001
H002(大阪本部) B002
K000(川崎工業) H001
K000(川崎工業) H002
K000 NULL 川崎工業
以上です。
2015.10.28 11:10
あつみんさん(No.10)
社会人10年目さんへ
たいへんおまたせしました、今、仕事から帰ってきました。
社会人10年目さんの主要な部分を取り出すと以下の通りです。
*************************************************************************
* この場合にWEB課と社内課で考えると *
* WEB課010の上位部署は一意に決まるシステム部002です。 *
* システム課の部署IDは WEB課010と社内課011 *
* そう考えると *
* 部署.部署ID→部署.上位部署ID *
* になりませんかね??? *
**************************************************************************
説明の都合上 ここだけの特別な記号を定義します
A => B 意味:Aから見たらBは***
1.社会人10年目さんの例をこの表記で表記します。
※:なお、わかりやすくするため、IDでなく実名部署で表記します。
部署(WEB課) => 上位部署(システム部) ・・・ 式1
上位部署(システム部)=> 部署(WEB課、社内課) ・・・ 式2
2.リレーション表記の意味
ここで、ちょっと脱線してリレーション表記の意味を考えます。
例} AとBの関係は1:多である。
上記例題の意味は
Aから見たら、【Bは多】 ・・・・・・式A
Bから見たら、【Aは1】 ・・・・・・式B
となります。
3.あてはめ
リレーションで、式1、式2を書き直すと。
<<式1>>
部署からみたら【上位部署は1】
<<式2>>
上位部署からみたら、【部署はWEB課と社内課で2】
4.リレーション表記
リレーションが聞いているのは、【 】のなかの事を聞いています。
したがって、【上位部署は1】、【部署は2】となります。
たいへんおまたせしました、今、仕事から帰ってきました。
社会人10年目さんの主要な部分を取り出すと以下の通りです。
*************************************************************************
* この場合にWEB課と社内課で考えると *
* WEB課010の上位部署は一意に決まるシステム部002です。 *
* システム課の部署IDは WEB課010と社内課011 *
* そう考えると *
* 部署.部署ID→部署.上位部署ID *
* になりませんかね??? *
**************************************************************************
説明の都合上 ここだけの特別な記号を定義します
A => B 意味:Aから見たらBは***
1.社会人10年目さんの例をこの表記で表記します。
※:なお、わかりやすくするため、IDでなく実名部署で表記します。
部署(WEB課) => 上位部署(システム部) ・・・ 式1
上位部署(システム部)=> 部署(WEB課、社内課) ・・・ 式2
2.リレーション表記の意味
ここで、ちょっと脱線してリレーション表記の意味を考えます。
例} AとBの関係は1:多である。
上記例題の意味は
Aから見たら、【Bは多】 ・・・・・・式A
Bから見たら、【Aは1】 ・・・・・・式B
となります。
3.あてはめ
リレーションで、式1、式2を書き直すと。
<<式1>>
部署からみたら【上位部署は1】
<<式2>>
上位部署からみたら、【部署はWEB課と社内課で2】
4.リレーション表記
リレーションが聞いているのは、【 】のなかの事を聞いています。
したがって、【上位部署は1】、【部署は2】となります。
2015.10.29 09:48
あつみんさん(No.11)
いままで、『これが正解!!』みたいに書いてきましたが、『ほんとかな?』と思っておられる人もいるかと思います。
そこで、同様の内容がのっている文献を探しました。
書籍:応用情報技術者 合格教本 平成27年度 『春期』『秋期』
掲載ページ:269ページ
タイトル:R-E図の再帰構造
※:【上位分類】対【下位分類】は【1対多】となる。
以上です。
そこで、同様の内容がのっている文献を探しました。
書籍:応用情報技術者 合格教本 平成27年度 『春期』『秋期』
掲載ページ:269ページ
タイトル:R-E図の再帰構造
※:【上位分類】対【下位分類】は【1対多】となる。
以上です。
2015.10.29 10:16