応用情報技術者試験 令和元年秋期のデータベース設問3(2)についての解説

データベース

応用情報技術者試験の令和元年秋期のデータベース設問3(2)についての疑問を解決します。この設問では、主キーの選択に関する問題が出題されています。質問者は、主キーとして従業員番号と睡眠開始日時を選ぶことについて疑問を持ち、その代わりに「測定日に連番を付ける」という方法を提案しています。

1. 主キーの選択について

問題文に記載されているように、主キーとして「従業員番号」と「睡眠開始日時」を選ぶのは、データベース設計において一般的な方法です。この組み合わせは、個々のレコードが一意であることを保証するために必要です。しかし、質問者が指摘するように、「睡眠開始日時」を主キーの一部として選ぶことは、確かに「測定日」の値に影響される可能性があり、この部分が問題視されています。

そのため、「睡眠開始日時」が主キーの一部になると、データの一意性に関する懸念が生じる可能性があります。特に、データの設計においては「測定日」や「睡眠開始日時」など、変動する値を主キーに含めることは、設計ミスを招く原因となりかねません。

2. 測定日に連番を付ける方法について

質問者が提案した「測定日に連番を付ける」という方法も一つのアプローチですが、これはあくまで「測定日」ごとに一意の識別子を付ける方法です。しかし、この方法では「測定日」だけでは個々のレコードを一意に識別することができず、複数のレコードが同じ「測定日」を持つ可能性があります。

そのため、連番を付けるだけでは、他のフィールドに依存したデータが重複する恐れがあり、このアプローチは最適ではないと言えます。特に、測定日の他に「従業員番号」や「睡眠開始日時」など、他の識別情報を組み合わせることが望ましいです。

3. 解決策:従業員番号と睡眠開始日時を主キーにする

適切な方法としては、質問文に記載された「従業員番号」と「睡眠開始日時」を主キーにすることです。この方法であれば、個々のレコードを一意に識別でき、重複を避けることができます。

また、もし「測定日」を加える必要がある場合は、別の列としてデータを追加し、主キーには「従業員番号」と「睡眠開始日時」を使うのが理想的です。これにより、データの整合性を保ちながら効率的に情報を管理できます。

4. まとめ

この問題において、最も重要なのはデータベースの設計における「一意性」の確保です。「従業員番号」と「睡眠開始日時」を主キーとして選択することが、最も一般的で合理的な方法です。もし「測定日」を使用する場合は、主キーとして使用するのではなく、別の列として追加するのがベストです。

コメント

タイトルとURLをコピーしました