DBデータベーススペシャリスト試験 午前Ⅱ
平成22年度春期 データベーススペシャリスト 午前Ⅱ 問7
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アある教員が唯一担当していた科目の行を削除すると,その教員の基本給データだけが残ってしまう。
- イある教員の基本給を変更するには,該当する行を1件ずつコミットしないとデータの不整合が生じる。
- ウ担当科目のない教員の基本給を登録するときは,一つ以上の科目を削除しなければならない。
- エ複数の科目を担当する教員の基本給を変更するときは,担当するすべての科目について変更しないとデータの不整合が生じる。
解き方のヒントを見る
更新時異常を見分ける視点
データベースの更新に関する設問では、個別の用語や表現だけで判断せず、変更が起きたときに情報の整合性を保てるかという観点で、処理の影響範囲を落ち着いて確認しましょう。一つの変更が他の記録にどう関わるかを考えることが手掛かりです。
この問題で問われていること
今回の確認点は、ある情報を変更したとき、関連する記録や処理との間で整合性に影響が出る可能性を整理することです。変更前後の関係だけに注目し、影響のつながりを丁寧に整理しましょう。
視点
設問の各記述について、変更の対象、関連する情報、変更後に確認すべき関係を順番に書き出し、どの関係を確認している記述なのかを整理します。用語の印象ではなく、影響範囲という一つの視点にそろえて比較しましょう。
確認ポイント
- 変更される情報と、それに関係する情報を区別して書き出したか
- 変更の影響が及ぶ範囲を、記述ごとに同じ基準で確認したか
- どの関係を確認する設問なのかを、表現に惑わされず整理したか
正解と解説を見る
正解
エ
解説
この表では科目番号が主キーですが、基本給は教員ごとに決まります。同じ教員が複数科目を担当すると、基本給が複数行に重複して記録されるため、基本給を変更する際に一部の行だけを変更すると、行によって異なる基本給が残り、データの不整合が発生します。したがって、複数の担当科目に対応するすべての行を更新する必要があります。
理由
基本給は科目ではなく教員に従属する情報です。しかし科目番号を主キーとする一つの表に保存されているため、同じ教員が複数科目を担当すると、同じ基本給が複数行に重複します。その状態で一部の行だけを変更すると、同一教員に複数の基本給が存在することになります。
比較
これは、情報の追加や削除そのものではなく、重複している教員情報の更新漏れによって生じる更新時異常です。教員情報と科目情報を別の表に分ければ、基本給を教員表で一度更新でき、この問題を避けられます。
選択肢ア
これは不正解だよ。唯一担当していた科目の行を削除すると、その行に格納されていた科目情報と教員番号、基本給も同時に削除されます。教員の基本給データだけが残るのではないため、この記述は表の構造から生じる削除時の現象を正しく表していません。
選択肢イ
これは不正解だよ。基本給の変更で必要なのは、同じ教員に対応する複数行の値を整合するよう更新することです。各行を1件ずつ個別にコミットしなければならないわけではなく、まとめて更新して一つのトランザクションとして確定できます。
選択肢ウ
これは不正解だよ。担当科目のない教員を登録できない可能性は、この表が持つ挿入時異常に関係します。しかし、その場合に必要なのは科目を削除することではありません。既存の科目を削除して基本給を登録するという記述は、問題の原因と操作を取り違えています。
選択肢エ(正解)
これは正解だよ。同じ教員が複数科目を担当すると、教員ごとに決まる基本給が複数の科目行へ重複して格納されます。そのため一部の行だけを変更すると、同一教員に異なる基本給が残って不整合になります。担当するすべての行を同じ値に変更する必要があります。
学習のポイント
主キーと関数従属性から、更新時異常の発生条件を判断する。
出典:独立行政法人 情報処理推進機構(IPA)平成22年度春期 データベーススペシャリスト試験 午前Ⅱ 問7(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針