P 社は,セキュリティを確保するために自社ビルを 10 の区画に分け,各区画への入退室を IC カードで行うシステムを導入し,その管理方法についての検証を始めた。この IC カードを使った入退室管理(以下,入退室管理という)の概要は次のとおりであり,入退室管理で用いるデータベースの構造(一部)を図 1 に示す。 〔入退室管理の概要〕 (1) 社員は一つの部署に所属し,IC カードを 1 人 1 枚貸与される。IC カードはカード固有の IC カード番号をもつ。IC カードの情報は IC カード登録表に登録される。 (2) 社員の入退室が許可されている区画は個別に決められており,許可された区分の情報が入退室許可表に登録される。入退室が可能な場合で,その区画が所属部署の入っている区画の場合は “1”,それ以外で入退室が必要と認められた区画の場合は “2” が,入退室許可表の許可区分に登録される。 (3) 各区画には IC カードリーダが設置されており,入退室が許可された IC カード番号を読み取ったときだけドアを解錠し,入退室の記録を入退室記録表に記録する。このとき,入室の場合は “1”,退室の場合は “−1” を入退室記録表の入退室区分に記録する。 なお,P 社は,社員に対して午前 0 時までに退社することを義務づけている。 入退室管理で用いるデータベースを使って, 入退室に関する調査を行うことにした。図1の三つの表のデータを使って行うことができる調査はどれか。
平成27年度 春期 ITパスポート試験 問88
テクノロジ系データベース › データ操作
这道题的解析和你的作答记录。
問88
頻出度★★☆
解説
問 88
※ 编写解析时的验算未能完全确认公布答案;判定仍按 IPA 公布的答案。
错误ア
进入与离开的记录次数不一致这件事本身,只要数一数记录就能得知,但其「原因」(尾随进入、漏记录、门被长时间打开等)并没有作为项目记录在数据库中。要按原因分别统计员工人数,就必须另行调查那些不会留在记录中的情况并录入,仅凭三个表的数据无法做到。
错误イ
当一次解锁有多名员工同时进出时,未经认证的那名员工的进出本来就不会作为记录留下。要确定他是与谁一起进入的,就等于要从记录中查出没有被记录下来的人,这在逻辑上是不可能的。时刻相近的其他员工的记录虽可作为推测的材料,但并不等于把事实调查清楚了。
- ウ
正解 门禁管理数据库的三个表中保存着员工(及其所属部门)、区域,以及「何时、谁、进入或离开了哪个区域」这样的进出记录。选项ウ「按月统计隶属于各部门的员工进入各区域的次数」,只需把这些记录与员工表连接以取出所属部门,再按区域和年月划分、数出进入的条数即可求得。也就是说,这是一项仅靠表的连接(join)以及按条件选择、分组统计——即数据库本来就拥有的数据——就能完成的调查,无需追加新的信息。因此正确答案是ウ。
错误エ
要判定「未被许可进入的区域」,就需要有哪位员工(或哪个部门)被许可进入哪些区域这样的权限数据,但三个表记录的是进出的事实,并不持有这样的许可信息。既然无法知道是否获得许可,也就无法统计未经许可进入的次数。
ここがポイント
- 判断用数据库「能做哪些调查」的要点,在于该调查所需的项目是否实际存储在表中。已存储的项目可以通过连接、选择、统计自由组合,但没有被记录下来的信息(原因、权限、不留记录的同行者)是无法推导出来的。
- 跨多个表的统计,其做法是先用共同的项目(员工编号、区域代码等)把表连接起来,再按部门、区域、年月这样的划分数出条数。这就是关系数据库中连接与统计的基本思路。
用語