H28 午後I 設問1 (2)

ぷーさん  
(No.1)
関係スキーマは
施設(施設ID,施設名,カテゴリコード,施設エリアコード)
周辺施設(駐車場ID,施設ID,所要時間,施設経度,施設緯度)
ではダメなのでしょうか?
(1)の回答を踏まえ、第3正規系にする分には問題ないと思っています。
確かに経度と緯度をどちらに入れるかと言われると施設に入れるべきですが、明確な理由があるなら教えていただきたいです。
2022.08.30 01:05
N.O.さん 
(No.2)
周辺施設に持たせた場合、施設IDが同じでも駐車場IDが違うレコードで異なる(施設経度,施設緯度)の組み合わせを持たせることが可能となってしまいます。
以下のようなレコードが存在することになります。
(※同じ施設IDなのに、緯度経度が異なる)
周辺施設(駐車場ID,施設ID,所要時間,施設経度,施設緯度) = (A01, B01, 1, 110, 120)
                                                       (A02, B01, 1.5, 120, 125)
2022.08.30 23:07
初心者さん 
(No.3)
ぷーさんの回答も第3正規系を満たしており正解と思慮します。
もし不正解なら(1)の問題と話が合わないです。

解答例のようにボイスコット正規系まで分解した方がいいでしょうね。
2022.08.31 09:54
初受験さん 
(No.4)
施設、周辺施設のそれぞれの属性へ下線をつけてみてください。

>第3正規系にする分には問題ない

問題ありと考えます。
施設経度,施設緯度は施設IDに従属するので、施設へ含めるよりありません。
2022.08.31 10:20
初心者さん 
(No.5)
緯度経度は非キー属性ではありません。
(1)で答えてますよね。
2022.08.31 10:23
DCLさん 
(No.6)
かなりの確率で、不正解になると思われます。理由は「経度及び緯度は、再測定を行い、修正されることがある。」という文面です。詳細は省略しますが、変更の可能性がある項目は主キー項目に適しておりません。この文面は候補キーではあるが、主キーにしてはいけない非キー属性扱いにすべきということを示唆しています。
2022.08.31 12:36
初心者さん 
(No.7)
正規化を理解してますか?
定義をよく確認してください。
値が変更されるとかは正規化の条件に入りません。

緯度と経度は候補キーの一部です。
第3までの正規化は非キー属性の分解です。
施設IDから緯度経度へ関数従属はありますが部分関数従属ではありませんので分解はしません。
2022.08.31 12:50
logres_Fanさん 
DB ブロンズマイスター
(No.8)
>表1を参照して下さい。駐車場経度、駐車場緯度、施設経度、施設緯度の意味・制約が定められています。

  駐車場又は施設には、経度及び緯度の組み合わせを一つ定めている。故に、{駐車場ID}→駐車場経度,駐車場緯度、{施設ID}→施設経度,施設緯度。
  
2022.08.31 12:56
DCLさん 
(No.9)
>初心者様
正規化する前の段階ですね。1で答えた周辺施設の複数の候補キーの中から、周辺施設の主キーをどれにするかという判断です。経度、緯度は候補キーですが、上記記述より主キーにすべきではなく、非キー属性になります。あとは初受験様の言われてる通りです。なおこの解法は三好本の解説にも書かれてますので、ご覧下さい。…確か28年の解説ではなく、類似問題の29年の午後一の解説だったと思います。
2022.08.31 13:15
初心者さん 
(No.10)
もしかして候補キーの中から主キーを決めたら他の候補キーは非キー属性になると勘違いしてません?
2022.08.31 13:18
初心者さん 
(No.11)
三好本でも施設IDから緯度経度へは部分関数従属ではないとしてますよ。よく読んでください。
2022.08.31 13:20
初受験さん 
(No.12)
初心者さんへ

>緯度と経度は候補キーの一部です。

施設ID  ⇔  {施設経度,施設緯度}
更には
{施設ID,駐車場ID}  ⇔  {施設経度,施設緯度,駐車場ID}
ですよね。
2022.08.31 13:25
DCLさん 
(No.13)
とりあえず私の言ったことは間違ってますね。しばらく悪い例として残しておいて、あとで削除しておきます。初心者様、お手数をおかけしました。
2022.08.31 14:52
初心者さん 
(No.14)
初受験さん
何が言いたいのか分かりません。
2022.08.31 19:08
初心者さん 
(No.15)
Wikipediaから引用です
ボイス・コッド正規形は、ほとんどの場合第3正規形と等価であり、複数の属性からなる候補キーが複数存在する場合にのみ差異が生じうる。第3正規形は非キー属性を従属項とする関数従属性だけを問題とするので、候補キーを構成する属性の間に候補キーを決定項としない関数従属性が存在することを許す。ボイス・コッド正規形では、この問題が存在することを許さない。ボイス・コッド正規形は、いわば第3正規形をより完全にしたものである。


複数の候補キーがあるエンティティをマニュアル通りに第3正規形まで分解すると候補キー間で関数従属が残ります。(むーさんの解答例)
第3正規形の問題を解決したのがIPAの解答例です。
初めに言ったようにむーさんの解答例は第3正規形を満たしていますので不正解には出来ないです。
2022.08.31 19:25
logres_Fanさん 
DB ブロンズマイスター
(No.16)
>初心者さん(No15)

  むーさんの解答例は第3正規形を満たしている。さらに、ボイスコッド正規化すると、IPAの解答例になるという事になりますか?
2022.08.31 22:34
ぷーさん  
(No.17)
皆さん、ありがとうございます。
※返答を失念しておりました。

理論的にはボイスコッド正規形にすると、IPAの回答になると認識しました。
私の回答は◎ではないと思うので、皆さんのご意見も踏まえて考えるようにします。
2022.09.01 00:41
初受験さん 
(No.18)
初心者さん(No.3)  (No.14)  へ

 ぷーさん(No.1)  

周辺施設(駐車場ID,施設ID,所要時間,施設経度,施設緯度)
は不正解と考えています。

初心者さんは、上記スキーマの属性へ下線をどのように引くのでしょう。
示していただけないでしょうか。

周辺施設の関数従属性図を私はこんな感じで考えていますけど。
施設緯度、施設経度  ⇔  施設ID →カテゴリコード、施設エリアコード、施設名
所要時間  ←  駐車場ID、施設ID
カテゴリコード  →  カテゴリ名
これらより、IPAの解答例にしかなり得えませんでした。
2022.09.01 04:47
初受験さん 
(No.19)
ぷーさん(No.17)  へ

この試験で問われる場合、大抵はボイスコッド正規形になリます。
設問に明示されていない限り、使い分け(考え分け)る必要はないと考えます。

この問題を解く場合も私は「ボイスコッド正規形にする、しない」なんて意識しておりません。
意識しなくてもIPAの解答例に辿り着きました。

試験に合格するには、IPAの解答例に辿り着くこと、その順路を理解することが重要と考えています。
お互い来月の試験を目指してもうひと踏ん張りいたしましょう。
2022.09.01 05:11
せいさん 
(No.20)
この投稿は投稿者により削除されました。(2022.09.07 00:27)
2022.09.07 00:27
せいさん 
(No.21)
どなたか見ていたらご回答をお願いします。

例えば施設IDが「A10」の施設の、施設経度が45施設経度が45の場合

周辺施設スキーマ
施設ID,  駐車場ID, 所要時間,  施設経度,  施設緯度
A10, C20, 30, 45, 45
A10, C30, 50, 45, 45

周辺施設スキーマの候補キー一覧
{施設ID、駐車場ID}
{施設経度、施設緯度、駐車場ID}

周辺施設スキーマの関数従属(一部のみ記載)
施設ID→{施設経度、施設緯度}
決定項が候補キーではない(周辺施設スキーマの候補キーの一部)
被決定項が非キー(周辺施設スキーマの候補キーの一部)のため部分関数従属

{施設経度、施設緯度}→施設ID
決定項が候補キーではない(周辺施設スキーマの候補キーの一部)
被決定項が非キー(周辺施設スキーマの候補キーの一部)のため部分関数従属

以上より部分関数従属があるため、第3正規形ではないと思うのですがどうでしょうか?
2022.09.07 00:42

返信投稿用フォーム

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

その他のスレッド


Pagetop