H29 午後Ⅰ 問1 設問3 (2)

mgrさん  
(No.1)
標記設問後半の、関係スキーマを答えさせる問題についてです。
模範解答では、
① ステップ番号を主キーから外し、外部キーにあらためる
② 承認連番を主キーに加える
をしているかと思います。
このうち、①の必要性が理解できていません。
②で、課題になっている「一度承認を行った申請が差戻しされた後、再度承認を行った場合」に不具合(主キー重複)が起こることは避けられるので、①は不要なのでは...と考えてしまいます。
ステップ番号も主キーの一部のままだと、関係スキーマ的に違和感があるのでしょうか...?

ご教示いただけますと幸いです。
2023.09.30 00:12
DB見習いさん 
(No.2)
テーブルの各行を一意に識別できるという主キーの役割において、承認と差し戻しのたびに単調増加する承認連番があればステップ番号は不要だからということだと思います。
主キーは通常候補キーの中から選ばれますが、候補キーは各行を一意に識別できる必要最低限の列の組み合わせなので、ステップ番号は除外する必要があります。
2023.09.30 08:42
mgrさん  
(No.3)
> DB見習いさん
ご教示いただきありがとうございます。

>候補キーは各行を一意に識別できる必要最低限の列の組み合わせ
こちらの考えが抜けておりました。
(設問1で候補キーについて答えていたのに...)
23年度の試験まで残りも少ないですが、基礎をしっかり見直してまいります。
2023.10.01 23:23
logres_fanさん 
DB ブロンズマイスター
(No.4)
> ステップ番号も主キーの一部のままだと、関係スキーマ的に違和感があるのでしょうか...?
   関数従属性に違和感を感じませんか?
なお、修正後の関係スキーマは、第3正規形の条件を満たしていること。
   関係従属性を考える、これが正規化です。
2023.10.01 23:46
mgrさん  
(No.5)
> logres_fanさん
ご教示いただきありがとうございます。
再承認できない問題を解決することだけに目がいっており、おっしゃる通り非常に基本的な関係データベース的観点が欠けておりました。
問題文と問題の意図、基礎を理解することを意識しながら、残りの日数勉強してまいります。
2023.10.02 18:31

返信投稿用フォーム

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

その他のスレッド


Pagetop