P 社は,セキュリティを確保するために自社ビルを 10 の区画に分け,各区画への入退室を IC カードで行うシステムを導入し,その管理方法についての検証を始めた。この IC カードを使った入退室管理(以下,入退室管理という)の概要は次のとおりであり,入退室管理で用いるデータベースの構造(一部)を図 1 に示す。 〔入退室管理の概要〕 (1) 社員は一つの部署に所属し,IC カードを 1 人 1 枚貸与される。IC カードはカード固有の IC カード番号をもつ。IC カードの情報は IC カード登録表に登録される。 (2) 社員の入退室が許可されている区画は個別に決められており,許可された区分の情報が入退室許可表に登録される。入退室が可能な場合で,その区画が所属部署の入っている区画の場合は “1”,それ以外で入退室が必要と認められた区画の場合は “2” が,入退室許可表の許可区分に登録される。 (3) 各区画には IC カードリーダが設置されており,入退室が許可された IC カード番号を読み取ったときだけドアを解錠し,入退室の記録を入退室記録表に記録する。このとき,入室の場合は “1”,退室の場合は “−1” を入退室記録表の入退室区分に記録する。 なお,P 社は,社員に対して午前 0 時までに退社することを義務づけている。 ICカードリーダでICカード番号を読み込んだときに,入室の可否を判断するためには,データベース中の幾つかの表を調べる必要がある。調べる表とその順番として,適切なものはどれか。ここで,→は表を参照する順番を示している。 なお,社員は1人ずつICカードを使って入退室することになっている。
平成27年度 春期 ITパスポート試験 問85
テクノロジ系データベース › データ操作
この問題の解説と、これまでの解答の記録です。
問85
頻出度★★☆
解説
問 85
- ア
正解 ICカードリーダが取得できるのは「ICカード番号」だけで、それ自体は誰のカードかを表していません。そこでまず「ICカード登録表」を参照し、カード番号から所有者である社員(社員番号)を特定します。次に、その社員番号をキーに「入退室許可表」を参照し、その社員がこの部屋に入室する権限をもっているかを確認します。この2段階で初めて可否が判断できるので、「ICカード登録表 → 入退室許可表」の順となり、ア が正解です。カード番号→社員番号→許可有無、と鍵をたどっていく流れがそのまま参照順になります。
不正解イ
順序の途中に「入退室記録表」が入っています。記録表は「いつ誰がどこへ出入りしたか」を残す履歴用の表であり、入室の可否そのものを決める情報(権限)は持ちません。設問にも「社員は1人ずつICカードを使って入退室する」とあり、共連れ判定などのために過去の記録を照合する必要もないため、この参照は不要です。
不正解ウ
最初に「入退室記録表」を見ています。読み取った時点で分かっているのはICカード番号だけであり、可否判断に必要なのは所有者の特定と権限確認です。履歴である記録表から始めても社員の特定にも権限確認にもつながらず、参照の出発点として誤りです。
不正解エ
「ICカード登録表」を参照していないため、ICカード番号から社員を特定する手順が抜けています。社員が特定できなければ「入退室許可表」を引くためのキーが得られず、そもそも許可の判定ができません。
ここがポイント
- 関係データベースでは、手元にあるキー(ここではICカード番号)から目的の情報(入室許可)へ、表を順に参照して(結合・選択して)たどり着く。参照順は「入力キー → 対応付けの表 → 判断材料の表」で決まる。
- 表の役割を見分ける: 「登録(マスタ)表」は対応関係の定義、「許可表」は権限の判定材料、「記録(履歴)表」は事後の記録・追跡用で、可否判断の入力には使わない。
用語