応用情報技術者試験の令和元年秋期のデータベース設問3(2)についての疑問を解決します。この設問では、主キーの選択に関する問題が出題されています。質問者は、主キーとして従業員番号と睡眠開始日時を選ぶことについて疑問を持ち、その代わりに「測定日に連番を付ける」という方法を提案しています。
1. 主キーの選択について
問題文に記載されているように、主キーとして「従業員番号」と「睡眠開始日時」を選ぶのは、データベース設計において一般的な方法です。この組み合わせは、個々のレコードが一意であることを保証するために必要です。しかし、質問者が指摘するように、「睡眠開始日時」を主キーの一部として選ぶことは、確かに「測定日」の値に影響される可能性があり、この部分が問題視されています。
そのため、「睡眠開始日時」が主キーの一部になると、データの一意性に関する懸念が生じる可能性があります。特に、データの設計においては「測定日」や「睡眠開始日時」など、変動する値を主キーに含めることは、設計ミスを招く原因となりかねません。
2. 測定日に連番を付ける方法について
質問者が提案した「測定日に連番を付ける」という方法も一つのアプローチですが、これはあくまで「測定日」ごとに一意の識別子を付ける方法です。しかし、この方法では「測定日」だけでは個々のレコードを一意に識別することができず、複数のレコードが同じ「測定日」を持つ可能性があります。
そのため、連番を付けるだけでは、他のフィールドに依存したデータが重複する恐れがあり、このアプローチは最適ではないと言えます。特に、測定日の他に「従業員番号」や「睡眠開始日時」など、他の識別情報を組み合わせることが望ましいです。
3. 解決策:従業員番号と睡眠開始日時を主キーにする
適切な方法としては、質問文に記載された「従業員番号」と「睡眠開始日時」を主キーにすることです。この方法であれば、個々のレコードを一意に識別でき、重複を避けることができます。
また、もし「測定日」を加える必要がある場合は、別の列としてデータを追加し、主キーには「従業員番号」と「睡眠開始日時」を使うのが理想的です。これにより、データの整合性を保ちながら効率的に情報を管理できます。
4. まとめ
この問題において、最も重要なのはデータベースの設計における「一意性」の確保です。「従業員番号」と「睡眠開始日時」を主キーとして選択することが、最も一般的で合理的な方法です。もし「測定日」を使用する場合は、主キーとして使用するのではなく、別の列として追加するのがベストです。


コメント