入室管理システムの設計(DB)ー午後


応用情報技術者平成30年秋期 午後問6

ファイル:2018h30a_ap_pm_qs.pdf

1、図1に適切なエンティティ間の関連を記入し、E-R図を完成させよ。図1の凡例に倣うこと。
・①入室管理用社員 から ②入室許可 に、1対多ですね。複数室に入室許可は可能だから。
・①入室管理用社員 から ④入退室ログに、1対多ですね。複数回に入室するから。
・③室から ②入室許可 に、1対多ですね。表3に記載されている「入室許可登録する時に、同じ社員ID、室ID、入室開始年月日の場合、更新」しますが、入室開始年月日が異なる場合、登録しますから。
・③室から ④入退室ログに、1対多ですね。1つの室に対して、複数回に入室するから。
・②入室許可と入退室ログは、関係は曖昧ですね。入室許可だけど、入退室ログがないのは可能ので、凡例には使えるのエンティティ関連はないですね。

私の答え:

参考答え:

<<図1>>

<<表2>>

<<表3>>

2、表2に示した実表”入室許可”における、主キーを答えよ。
表3に記載されている「入室許可登録する時に、同じ社員ID、室ID、入室開始年月日の場合、更新;その三つが異なる場合は、登録」ので、多分、社員ID、室ID、入室開始年月日ですね。
あとは、もし社員ID、室IDだけがキーとすると、社員ID、室IDが同じ、入室開始年月日が異なるでも登録できないから、入室開始年月日が主キーとしなければならないですね。

3、図2中のaに入れる適切な字句を答えよ。
aは、入室チェックです。入室可の場合、1以上を返す;入室否の場合、0を返すとのSQLです。
図2のSQLから見ると、入室許可の件数を求めるとのことですね。入室許可テーブルに条件満たせるデータがあれば、その件数を戻すこと。なので、COUNT(*)です。もちろん、COUNT(0)などは正しいと思っております。参考答えは、COUNT(*)ですから、それをしよう。

<<図2>>