HOME»データベーススペシャリスト掲示板»R3 問1 設問2 (1)について
投稿する
DBの試験においては、マスタ系の「●●名」は基本的に重複することが多い印象です。
「組織名は重複しない」と明示しているパターンはレアケースだと思ってもらって問題ないです。
ここからは少し掘り下げて、現実世界における一般的なお話になりますが、企業名というのは重複することがあります。
調べると出てきますが、日本には数百社単位で被る企業名が多数存在するようです。
なので、「加盟企業名→加盟企業コード」が成り立つ場合は、問題文に重複しないと明示されているはずです。
加盟企業というのは問題文の主役であるB社から見て他社であり、他社の企業名自体はコントロールできないので、B社側で何らかのルールを設けないと重複は回避できないですよね。
(正式な企業名とは別に、B社専用の企業名を付与して管理する、等)
DBの過去問をこなしていると、常識とも捉えられるような部分に関しては、問題文で触れていないことが多い印象です。
(三好本の解説でも「常識的に考えれば……だろう」みたいな解説をよく見かけますね…汗)
これは加盟企業エンティティとして切り出す際に、「契約開始日」を主キーとするか否かの判断基準になります。
もしも複数回契約をすることがあるのであれば、契約していた期間の履歴を管理する必要があるので、その場合は、「契約開始日」を主キーに含めないと履歴の管理ができません。
これが仮に、「同じ加盟企業と複数回の契約をすることがあるが、契約期間は最新データのみを保持する」と記述されていた場合は、履歴の管理は不要=「契約開始日」は主キーにはならないな、と判断できます(さすがに午後1でそこまでこねくり回した表現は出てこないと思いますが…)
ただ、本番ではそこまで考えている余裕は無いので、設問で問われたら確認する、程度の箇所になるかなと思います。
R3 問1 設問2 (1)について [0821]
候補キー問題苦手さん(No.1)
お世話になっております
R3 問1 設問2 (1)について
候補キーを見つけ出す過程で、
「同じ加盟企業と複数回の契約をすることはない」という記述から
加盟企業コード→加盟企業名
加盟企業名→加盟企業コード
と捉えることができると思ったのですが違いました。
R5午後1問1にて
「組織は組織コードで識別し組織名を持つ。組織名は重複しない。」
という記述から
組織コード→組織名
組織名→組織コード
という判断ができたのなら加盟企業名も加盟企業コードを特定可能では…?と混乱しております。
はっきり加盟企業名は「重複しない」などと明言されてなかったら〜名が一意であると考えるのは避けるべき…?(解答スピードが遅いことも大きな課題となっているので…)
「同じ加盟企業と複数回の契約をすることはない」→加盟企業名は重複しない
この考えが違う点についてご指摘いただきたいです。
R3 問1 設問2 (1)について
候補キーを見つけ出す過程で、
「同じ加盟企業と複数回の契約をすることはない」という記述から
加盟企業コード→加盟企業名
加盟企業名→加盟企業コード
と捉えることができると思ったのですが違いました。
R5午後1問1にて
「組織は組織コードで識別し組織名を持つ。組織名は重複しない。」
という記述から
組織コード→組織名
組織名→組織コード
という判断ができたのなら加盟企業名も加盟企業コードを特定可能では…?と混乱しております。
はっきり加盟企業名は「重複しない」などと明言されてなかったら〜名が一意であると考えるのは避けるべき…?(解答スピードが遅いことも大きな課題となっているので…)
「同じ加盟企業と複数回の契約をすることはない」→加盟企業名は重複しない
この考えが違う点についてご指摘いただきたいです。
2024.10.10 18:20
候補キー問題苦手さん(No.2)
午後1という記載が抜けてました。
2024.10.10 18:22
ごまさん(No.3)
常識的な考えだと名称でも一意になるとは思いますが、問題文を深読みしすぎないほうがいいと思います。(特にマスタ周り)
『加盟企業は加盟企業コードで識別している』
→エンティティ加盟企業の主キーは加盟企業コード
『同じ加盟企業と複数回の契約をすることはない』
→主キーが加盟企業コードであるエンティティ加盟企業との契約処理は1回のみ行われる
※加盟企業名で一意になるとは言っていない
午後2のようにトランザクション領域がある場合は、加盟企業と契約は1対1になると理解する必要はありますが、素直に問題文を読むほうが得点をもらいやすいです。
『加盟企業は加盟企業コードで識別している』
→エンティティ加盟企業の主キーは加盟企業コード
『同じ加盟企業と複数回の契約をすることはない』
→主キーが加盟企業コードであるエンティティ加盟企業との契約処理は1回のみ行われる
※加盟企業名で一意になるとは言っていない
午後2のようにトランザクション領域がある場合は、加盟企業と契約は1対1になると理解する必要はありますが、素直に問題文を読むほうが得点をもらいやすいです。
2024.10.10 19:35
候補キー問題苦手さん(No.4)
ごまさん
返信ありがとうございます。
確かにそうなんですよね…。
完答したい気持ちが空回っていた気がします…
素直に読みとくことを意識します。
ご助言ありがとうございました。
返信ありがとうございます。
>>加盟企業名で一意になるとは言っていない
確かにそうなんですよね…。
完答したい気持ちが空回っていた気がします…
素直に読みとくことを意識します。
ご助言ありがとうございました。
2024.10.10 20:57
みむろ杉さん(No.5)
> 組織コード→組織名
> 組織名→組織コード
> という判断ができたのなら加盟企業名も加盟企業コードを特定可能では…?と混乱しております。
DBの試験においては、マスタ系の「●●名」は基本的に重複することが多い印象です。
「組織名は重複しない」と明示しているパターンはレアケースだと思ってもらって問題ないです。
ここからは少し掘り下げて、現実世界における一般的なお話になりますが、企業名というのは重複することがあります。
調べると出てきますが、日本には数百社単位で被る企業名が多数存在するようです。
なので、「加盟企業名→加盟企業コード」が成り立つ場合は、問題文に重複しないと明示されているはずです。
加盟企業というのは問題文の主役であるB社から見て他社であり、他社の企業名自体はコントロールできないので、B社側で何らかのルールを設けないと重複は回避できないですよね。
(正式な企業名とは別に、B社専用の企業名を付与して管理する、等)
DBの過去問をこなしていると、常識とも捉えられるような部分に関しては、問題文で触れていないことが多い印象です。
(三好本の解説でも「常識的に考えれば……だろう」みたいな解説をよく見かけますね…汗)
> 「同じ加盟企業と複数回の契約をすることはない」→加盟企業名は重複しない
> この考えが違う点についてご指摘いただきたいです。
これは加盟企業エンティティとして切り出す際に、「契約開始日」を主キーとするか否かの判断基準になります。
もしも複数回契約をすることがあるのであれば、契約していた期間の履歴を管理する必要があるので、その場合は、「契約開始日」を主キーに含めないと履歴の管理ができません。
これが仮に、「同じ加盟企業と複数回の契約をすることがあるが、契約期間は最新データのみを保持する」と記述されていた場合は、履歴の管理は不要=「契約開始日」は主キーにはならないな、と判断できます(さすがに午後1でそこまでこねくり回した表現は出てこないと思いますが…)
ただ、本番ではそこまで考えている余裕は無いので、設問で問われたら確認する、程度の箇所になるかなと思います。
2024.10.10 21:11
候補キー問題苦手さん(No.6)
みむろ杉さん
ものすごく丁寧なご回答ありがとうございます。
企業名は重複しないという先入観がありましたが、そもそも被っている社名が存在するんですね…!(企業名が重複するかどうかの一般常識を確認するべきでした)
大変腑に落ちました…!
付け焼き刃的な考え方になってしまうかもしれませんが、
自分たちで定めているものはコントロール(重複回避)できるが、それ以外はできないということを判断材料の一つにしようと思います。
履歴管理の考え方等も大変参考になりました。
試験前に知れてありがたいです。噛み砕いた説明ありがとうございました!
ものすごく丁寧なご回答ありがとうございます。
>日本には数百社単位で被る企業名が多数存在するようです。
企業名は重複しないという先入観がありましたが、そもそも被っている社名が存在するんですね…!(企業名が重複するかどうかの一般常識を確認するべきでした)
> 他社の企業名自体はコントロールできないので、B社側で何らかのルールを設けないと重複は回避できないですよね。
大変腑に落ちました…!
付け焼き刃的な考え方になってしまうかもしれませんが、
自分たちで定めているものはコントロール(重複回避)できるが、それ以外はできないということを判断材料の一つにしようと思います。
履歴管理の考え方等も大変参考になりました。
試験前に知れてありがたいです。噛み砕いた説明ありがとうございました!
2024.10.10 21:59