データベースの謎問題について

絶対IPAに勝つマンさん  
(No.1)
応用情報の令和元年の秋期、午後のデータベースについて質問です。
設問3の(2)ですが、主キーを従業員番号と睡眠開始日時にするというのが模範回答になっています。
しかしこれは睡眠開始日時という主キーの一部に睡眠表の測定日が決まってしまうことになりませんか?
私の回答は測定日の値に連番を付ける、にしたのですが、これは間違っていますでしょうか。
例えば、徹夜した日なんかは睡眠開始日時と睡眠終了日時がnullできてしまい、睡眠開始日時を主キーにしてしまうのは問題では?
後に平均睡眠時間として集計しますが、これが全ての日ごとでの平均なのか、一回あたりなのか、記録が取れた日ごとの平均なのか特に詳しく書いておりません。
つまりは徹夜した日も平均睡眠時間の計算に含める可能性も考えたら模範解答ではアウトでは?
あらゆる可能性を考えたら測定日を一意にするのが自然かと思いました。
この考えは間違っていますか?

なんのこっちゃかわからないと思うので、問題全体はこちらです。一度全体見ていただいて、詳しい方の見解教えていただけると助かります。

https://www.ap-siken.com/s/kakomon/01_aki/pm06.html
2025.09.22 17:07
GinSanaさん 
AP プラチナマイスター
(No.2)
>例えば、徹夜した日なんかは睡眠開始日時と睡眠終了日時がnullできてしまい、睡眠開始日時を主キーにしてしまうのは問題では?

どういうとり方をするのかにもよりますが、寝たらリストバンドが反応する形であれば、徹夜した日はレコードがそもそも作られないんじゃないですかね。Pokemon Sleepだと、スマートフォンの加速度センサーとマイクで寝ているか判定するそうなので、そういう仕組みであればレコードにならないので問題ない扱いじゃないですかね。
2025.09.22 18:28
絶対IPAに勝つマンさん  
(No.3)
GinSanaさん

ありがとうございます。
例えばこれ月の1日あたりの睡眠時間を集計する場合、徹夜した日も0時間の睡眠として取らないとダメですよね?
私が思ったのはここら辺の睡眠時間平均の定義が書いていないし、極端な話、日本で睡眠取ったあとアメリカへ行き、同時刻で睡眠取ったらどうなるのか?ということも考えてしまいました。
そうなると平均睡眠日時は主キーとしては不安定?かな〜なんて思い…深読みしすぎ?
2025.09.22 18:42
おにじさんさん 
(No.4)
この投稿は投稿者により削除されました。(2025.09.22 23:34)
2025.09.22 23:34
おにじさんさん 
(No.5)
あの、すみません。

この問題は、「今回の」エラーを引き起こした原因を取り除き、エラーを解消するよう再設計しなさいという話なので、この問題でまさに問題になっているのは、問題の表にあるCSVデータです。

このCSVデータを登録する際、CSVの測定日が重複した部分が原因でエラーが起きています。睡眠テーブルの測定日が主キーのままだと当然エラーになるので、このCSVが登録できるようにテーブルを再設計するわけです。

つまり言いたいことは、このデータを見るかぎりふつうに考えて徹夜はしていないし、海外に行ったかどうかはまったく考えなくていいということです。
起きているエラーを回避するための作業だということを忘れてるんではないでしょうか。そもそも論で恐縮です。

昨日解いたばかりの問題だったのでコメントさせてもらいました。
おにじより🙇
2025.09.22 23:35
電タックさん 
(No.6)
問題の箇所が「②ある表に列の追加以外の変更を加え」となっているので、「測定日の値に連番を付ける」では連番という情報を付けれないと思うので前提を満たせない気がしました。
2025.09.23 10:12
GinSanaさん 
AP プラチナマイスター
(No.7)
>例えばこれ月の1日あたりの睡眠時間を集計する場合、徹夜した日も0時間の睡眠として取らないとダメですよね?
月の対象レコードを足し算してから月の日数で割ってやればいいのではないでしょうかね。excelでsumするときにいちいちそんなことを気にすることがないのと同じで。
2025.09.23 11:28
おにじさんさん 
(No.8)
電タックさんそうですよね💦ぼくもはじめ列を増やして〜って考えたんですが、「列の追加以外」って書いてあるんですよね。

ちなみに測定日の主キー制約をはずすだけでは不備があります。行を一意に特定できなくなるからです。
2025.09.23 12:08

返信投稿用フォーム

※SQL文は全角文字で記載してください。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む記事の投稿はできません。

投稿記事削除用フォーム

投稿番号:
パスワード:

その他のスレッド


Pagetop