総視聴再生時間43万分以上(2017年5月13日現在)の動画で基本情報技術者試験の過去問&キーワード解説!スキマ時間に動画!〜これじょIT〜

PR広告

平成29年度春 基本情報技術者過去問 午後問3 データベース 設問3

住民からの問合せに回答するためのデータベースに関する次の記述を読んで、設問1~3に答えよ。

W市役所の生活環境課では、職員は住民からのごみの出し方に関する問合せがあったとき、対象物(ごみ)を検索条件としてルール表を検索し、出し方のルールを回答する業務を行っている。

問合せごとに一意な受付Noを割り当て、受付日、回答日、回答したルールの区分ID及び対象物IDを入力したレコードを問合せ記録表に登録する。問合せがあった対象物が対象物表になかった場合、回答日、区分ID及び対象物IDはNULLにして、メモ欄に当該対象物をテキストで入力したレコードを登録する。後日、問合せ記録表から、回答日、区分ID及び対象物IDがNULLのレコードを選択し、メモ欄に入力されている当該対象物の分別区分を決定し、一意な対象物IDを割り当て、対象物表に新たな対象物のレコードを登録する。ルール表に新たなルールのレコードを登録して、問合せ記録表の選択したレコードに、追加したルールの区分IDと対象物IDを設定する。

データベースの表構成とデータ格納例は、図1のとおりである。下線付きの項目は主キーを表す。

区分表

区分ID 分別区分
L0008 可燃物

対象物表

対象物ID 対象物
S0123 植木の枝

ルール表

区分ID 対象物ID 更新日 出し方のルール
L0008 S0123 2015-03-01 乾燥させ、ひもで束にする。

問合せ記録表

受付No 受付日 回答日 区分ID 対象物ID メモ欄
C003456 2016-05-14 NULL NULL NULL 自転車のタイヤチューブ

図1 データベースの表構成とデータ格納例

業務を行っている過程で幾つかの課題が明らかになった。これらのうちから対策すべき課題を選び、それを実現するために、データベースの表構成の見直し案を作成した。その結果を、表1に示す。

表1 対策する課題とデータベースの表構成の見直し案

課題 表構成の見直し案
同じ対象物でも、大きさなどによって出し方を分ける必要が出てきた。 ルール表に主キーとしてルールIDの項目を追加し、区分IDと対象物IDの項目を主キーではなくする。問合せ記録表にルールIDの項目を追加する。
新たに登録したルールについて、不都合があり、修正などをしたことが何度かあった。 ルール表に登録状態の項目を追加する。登録状態の項目の値は、"未公開"、"公開"のいずれかである。理由は、ルール表に新たなルールを追加する場合、住民からの問合せに対する検索の対象とならない(未公開)状態で一旦登録し、課内でレビューした後、問題がなければ検索の対象(公開)とするためである。

設問3

ルール表作成用DDLの見直しについて、次の記述中の に入れる適切な答えを、解答群の中から選べ。

図2に示す、ルールIDの項目と登録状態の項目追加後のルール表作成用DDLのレビュー時に、cは削除すべきとの指摘を受けた。また、登録状態の項目に対する制約が不足しているとの指摘もあり、dを追加することになった。

CREATE TABLE ルール (
    ルールID CHAR(6) PRIMARY KEY,
    区分ID CHAR(5) NOT NULL,
    対象物ID CHAR(5) NOT NULL,
    登録状態 VARCHAR(10) NOT NULL,
    更新日 DATE NOT NULL,
    出し方のルール VARCHAR(2048),
    FOREIGN KEY (区分ID) REFERENCES 区分(区分ID),
    FOREIGN KEY (対象物ID) REFERENCES 対象物(対象物ID),
    UNIQUE (区分ID, 対象物ID)
)

図2 ルール表作成用DDL

c に関する解答群

  • ア:区分IDの項目及び対象物IDの項目のUNIQUE制約
  • イ:対象物IDの項目の非NULL制約
  • ウ:対象物IDの項目の参照制約
  • エ:ルールIDの項目の主キー制約

d に関する解答群

  • ア:CHECK(登録状態 IN('未公開', '公開'))
  • イ:CHECK(登録状態 IS NULL)
  • ウ:UNIQUE('未公開', '公開')
  • エ:WHERE 登録状態 IN('未公開', '公開')

解説

正解は

cには「ア:区分IDの項目及び対象物IDの項目のUNIQUE制約」が

dには「ア:CHECK(登録状態 IN('未公開', '公開'))」が

入ります!

下記のDDLように、UNIQUE(区分ID,対象物ID)が入っていると、課題「同じ対象物でも、大きさなどによって出し方を分ける必要が出てきた。」を解決するために、ルールIDをもうけ、同じ区分IDと対象物IDでも登録できるようになりません。

CREATE TABLE ルール (
    ルールID CHAR(6) PRIMARY KEY,
    区分ID CHAR(5) NOT NULL,
    対象物ID CHAR(5) NOT NULL,
    登録状態 VARCHAR(10) NOT NULL,
    更新日 DATE NOT NULL,
    出し方のルール VARCHAR(2048),
    FOREIGN KEY (区分ID) REFERENCES 区分(区分ID),
    FOREIGN KEY (対象物ID) REFERENCES 対象物(対象物ID),
    UNIQUE (区分ID, 対象物ID)
)

従って、「ア:区分IDの項目及び対象物IDの項目のUNIQUE制約」は削除するべきです!

登録状態には次ような仕様があります。

「登録状態の項目の値は、"未公開"、"公開"のいずれかである。」

"未公開"か"公開"以外の文字が入らないようにする必要があります。そのためにア:CHECK(登録状態 IN('未公開', '公開'))」を入れます!

平成29年度春 基本情報技術者過去問 午後

問1 情報セキュリティ 設問1

問1 情報セキュリティ 設問2

問1 情報セキュリティ 設問3

問2 ハードウェア 業務経験が乏しく説得力ある解説ができる自信がありません。ご了承ください。

問3 データベース 設問1

問3 データベース 設問2

問3 データベース 設問3

問4 ネットワーク 業務経験が乏しく説得力ある解説ができる自信がありません。ご了承ください。

問5 ソフトウェア設計 設問1

問5 ソフトウェア設計 設問2

問5 ソフトウェア設計 設問3

問6 プロジェクトマネジメント 設問1

問6 プロジェクトマネジメント 設問2

問7 システム戦略 設問1

問7 システム戦略 設問2

問7 システム戦略 設問3

問8 データ構造及びアルゴリズム 設問1

問8 データ構造及びアルゴリズム 設問2

問11 ソフトウェア開発(Java) 設問1

問11 ソフトウェア開発(Java) 設問2

PR広告

フェイスブックコメント

平成28年度秋 基本情報技術者試験 午後 テキスト・動画解説

平成28年度秋 基本情報技術者試験 午前 テキスト・動画解説

平成28年度春 基本情報技術者試験 午後 テキスト・動画解説

平成28年度春 基本情報技術者試験 午前 テキスト・動画解説

平成27年度秋 基本情報技術者試験 午後 テキスト・動画解説

平成27年度春 基本情報技術者試験 午後 テキスト・動画解説

平成27年度春 基本情報技術者試験 午前 テキスト・動画解説

平成26年度秋 基本情報技術者試験 午前 テキスト・動画解説

平成26年度春 基本情報技術者試験 午前 テキスト・動画解説