本文へスキップ

平成27年度 春期 ITパスポート試験 問86

この問題の解説と、これまでの解答の記録です。

問86
頻出度★★★

P 社は,セキュリティを確保するために自社ビルを 10 の区画に分け,各区画への入退室を IC カードで行うシステムを導入し,その管理方法についての検証を始めた。この IC カードを使った入退室管理(以下,入退室管理という)の概要は次のとおりであり,入退室管理で用いるデータベースの構造(一部)を図 1 に示す。 〔入退室管理の概要〕 (1) 社員は一つの部署に所属し,IC カードを 1 人 1 枚貸与される。IC カードはカード固有の IC カード番号をもつ。IC カードの情報は IC カード登録表に登録される。 (2) 社員の入退室が許可されている区画は個別に決められており,許可された区分の情報が入退室許可表に登録される。入退室が可能な場合で,その区画が所属部署の入っている区画の場合は “1”,それ以外で入退室が必要と認められた区画の場合は “2” が,入退室許可表の許可区分に登録される。 (3) 各区画には IC カードリーダが設置されており,入退室が許可された IC カード番号を読み取ったときだけドアを解錠し,入退室の記録を入退室記録表に記録する。このとき,入室の場合は “1”,退室の場合は “−1” を入退室記録表の入退室区分に記録する。 なお,P 社は,社員に対して午前 0 時までに退社することを義務づけている。 入退室許可表のレコードを一意に決めるための主キーとして,適切なものはどれか。ここで,下線は主キーを表す。

  • 社員番号区画番号許可区分(下線:社員番号)
  • 社員番号区画番号許可区分(下線:社員番号, 区画番号)
  • 社員番号区画番号許可区分(下線:社員番号, 許可区分)
  • 社員番号区画番号許可区分(下線:社員番号, 区画番号, 許可区分)
出典 平成27年度 春期 ITパスポート試験 問86
解説

問 86

  • 不正解ア

    社員番号だけを主キーにすると、1人の社員は1行しか持てなくなります。しかし実際には1人の社員が複数の区画の入退室許可をもつため、社員番号が同じ行が複数存在し、レコードを一意に決められません。

  • イ

    正解 入退室許可表は「どの社員が、どの区画に、どんな許可区分で入れるか」を保持する表で、社員と区画の多対多の関係を仲介する表 (交差表) です。1人の社員が複数の区画の許可をもつことができ、逆に1つの区画も複数の社員に許可されるので、社員番号だけ、区画番号だけでは同じ値の行が複数できてしまい、レコードを一意に決められません。社員番号と区画番号の2列を組み合わせて初めて「その社員のその区画についての許可」が1行に定まります。残る許可区分は、その組合せが決まれば従属的に定まる属性なので主キーには含めません。したがって社員番号と区画番号の2列に下線を引いた イ が適切な主キーです。

  • 不正解ウ

    社員番号と許可区分の組合せでは一意になりません。許可区分は「常時可」「時間帯限定」といった少数の分類値なので、同じ社員が同じ許可区分で複数の区画の行をもち得ます。そもそも許可区分は主キーによって値が決まる従属属性であり、主キーの構成列にするのは不適切です。

  • 不正解エ

    3列すべてを主キーにすれば行は一意になりますが、社員番号と区画番号の2列だけで既に一意性が保証されているため、許可区分は余分です。主キーは一意に識別できる最小の列の組合せ (最小性) でなければならず、冗長な列を含む エ は主キーとして適切ではありません。

ここがポイント
  • 主キーは「表のレコードを一意に識別でき、かつ余分な列を含まない最小の列の組合せ」。単独の列で一意にできない場合は、複数列を組み合わせた複合主キー (連結キー) を用いる。
  • 多対多の関係を表す仲介表 (交差表) では、両側のエンティティのキーを組み合わせたものが主キーになり、それ以外の列はその主キーに従属する属性となる。
用語

解答の記録