DBデータベーススペシャリスト試験 午後Ⅱ
平成21年度春期 データベーススペシャリスト 午後Ⅱ 問1
事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。
問題










解き方のヒントを見る
業務ルールと設計の対応を確かめる
データベース分野の事例問題では、本文に書かれた業務上の決まりごとを根拠にします。各設問の内容がその決まりと矛盾しないかを、一つずつ照合していく姿勢が重要です。記憶や一般論よりも本文の記述を優先しましょう。
この問題で問われていること
確認すべき観点は一つ、本文中の業務ルールや前提条件との整合性です。検討対象の記述や数値が本文のどの文を根拠に成り立つのか、またはどの条件と食い違うのかを、本文の該当箇所に立ち返って確かめてください。
視点
事例型の設計問題では、同じ用語でも一般的な意味と本文での定義が異なることがあります。業務ルールは、データ同士の対応関係や、処理のタイミング・場所に関する制約として表れることが多いです。それらを本文から抜き出して整理しておくと、検討対象を評価する基準が明確になります。
確認ポイント
- 本文中で業務上の決まりや前提条件を述べている箇所を把握したか
- 検討対象の各部分について、根拠となる本文の記述を特定できたか
- 一般的な知識だけで判断せず、本文の条件と食い違う点がないか確かめたか
正解と解説を見る
解説
W銀行の届出印管理システムを題材に、口座・印鑑届・届出印のサブタイプの識別と区分列の追加、法人用照合方法のテーブル設計、共通印を入れたときの検索手順・照合できるかどうか・制約の追加、案A(本店サーバに集中)と案B(支店サーバに分散)での障害時の影響・復旧方法・保守性の比較を問う問題です。公式解答例では、業務ルールから列と制約を導き、レプリケーションの設定とデータの置き場所から障害時の影響を整理しています。
問題の全体像
W銀行は、紙の印鑑届を目で照合する運用をやめ、印影を電子的に保存して自動照合する届出印管理システムを作ります。口座は個人口座・法人口座に分かれ、個人口座はさらに総合口座・非総合口座に、総合口座は総合口座代表普通預金口座・総合口座組入れ口座に分かれます。届出印の登録方法は個人と法人で異なり、法人は代表者印と任意の数の代理者印、照合方法を登録します。届出印を変更すると変更前の印鑑届を廃止扱いにして廃止日付を記録し、約束手形は振出日に有効だった届出印と照合します。出題趣旨にあるとおり、テーブル設計、データ構造と業務の両面からのテーブル構造の検証、障害対策と復旧手順を考えたデータベース構築の力を問う問題です。設問1は概念データモデルとテーブル構造、設問2は共通印を入れたときの構造の検証、設問3は本店と支店へのデータ配置案の比較を扱います。
設問1(1)(a)
図5で、aは口座のサブタイプで、個人顧客から矢印を受けています。本文〔業務の概要〕(3)②に「個人顧客が開設した個人口座と、法人顧客が開設した法人口座がある」とあるので、個人顧客と対応するサブタイプは個人口座です。公式解答例でもaは個人口座です。
設問1(1)(b)
bはaと並ぶ口座のサブタイプで、法人顧客から矢印を受けています。同じ(3)②の記述から、法人顧客が開設する法人口座が入ります。公式解答例でもbは法人口座です。
設問1(1)(c)
c・dはa(個人口座)のサブタイプです。本文(3)⑤に「個人口座は、総合口座と非総合口座に分かれる」とあります。さらにcの下にe・fがあることから、それ自体が分かれる方、つまり総合口座がcです。公式解答例でもcは総合口座です。
設問1(1)(d)
個人口座のもう一方のサブタイプで、それ以上分かれないのは非総合口座です。公式解答例でもdは非総合口座です。
設問1(1)(e)
e・fは総合口座のサブタイプで、eからfへ矢印があります。本文では、総合口座は代表となる一つの普通預金口座(総合口座代表普通預金口座)と、同一支店の一つ以上の普通預金以外の口座(総合口座組入れ口座)からなります。代表口座1件に組入れ口座が複数対応するので、矢印の根元(1側)のeが総合口座代表普通預金口座です。公式解答例でもそうなっています。
設問1(1)(f)
矢印の先(多側)のfが、代表口座に組み入れられる総合口座組入れ口座です。公式解答例でもfは総合口座組入れ口座です。
設問1(1)リレーションシップ
点線枠内で足りないのは、口座側のサブタイプと印鑑届側のサブタイプ(個人用印鑑届・法人用印鑑届)の間の対応です。公式解答例では、個人口座(a)から個人用印鑑届へ、法人口座(b)から法人用印鑑届へ、それぞれ1対多の矢印を引いています。本文では、個人顧客は印鑑届(個人用)を、法人顧客は印鑑届(法人用)を提出します。変更のたびに新しい印鑑届が登録され、古いものは廃止日付付きで残るので、一つの口座に複数の印鑑届が対応します(多側は印鑑届)。個人側の相手をeやdではなくa(個人口座)にするのは、総合口座組入れ口座と非総合口座の間で口座が移ることがあり、どの個人口座にも過去の印鑑届がありうるからです。設問の注記どおり、スーパータイプとサブタイプのうち適切な方との間に線を引く点がポイントです。
設問1(2)
図5のサブタイプを表すには、どのサブタイプかを区分する列と、サブタイプ間の参照を持つ列が必要です。公式解答例では、“口座”テーブルに次の4列を追加します。個人口座・法人口座区分、総合口座・非総合口座区分、総合口座代表普通預金口座・総合口座組入れ口座区分の三つの区分列と、e→fの参照を表す総合口座代表普通預金口座番号です。組入れ口座は代表口座と同じ支店にあり、代表口座の科目は普通預金と決まっているので、参照先を特定するには口座番号を持てば足ります。“届出印”テーブルには、代表者印と代理者印のサブタイプを区分する代表者印・代理者印区分を追加します。列名は、設問の指示どおり列の意味が分かる名称にします。
設問1(3)
図2の照合方法欄は、印鑑届ごとに条件番号付きの行があり、各行に取引種別(複数選択可)、取引条件、代表者印照合要否、代理者印照合数があります。一つの条件に取引種別が複数対応するので、条件と取引種別の組を別テーブルに分けて正規化します。公式解答例は、照合条件(印鑑届番号,条件番号,取引条件,代表者印照合要否,代理者印照合数)と照合印影(印鑑届番号,条件番号,取引種別コード)の2テーブルです。主キーは、照合条件が{印鑑届番号,条件番号}、照合印影が{印鑑届番号,条件番号,取引種別コード}で、公式解答例ではこれらの列に実線の下線が引かれています。印鑑届番号や取引種別コードは他テーブルを参照する列ですが、主キーの一部になっているので、公式解答例では破線の下線を付けず実線の下線だけで示しています。問題冊子の図3でも、主キーの一部である外部キー(“口座”の支店番号・科目コード、“届出印”の印鑑届番号など)は実線の下線だけです。答案でも、主キーの列には実線の下線を付け、それらに破線を重ねないという公式解答例の表記に合わせます。列名は、設問の指示どおり本文の用語(条件番号、取引条件、代表者印照合要否、代理者印照合数など)を使います。
設問2(1)
①の方式では、“顧客”テーブルが共通印の最新の印鑑届番号を持ち、その“印鑑届”の行の支店番号・科目コード・口座番号はNULLになります。表4の記入済みの行で、共通印・個別印区分と印鑑届番号はすでに取得しています。公式解答例では、区分が“Y”の場合は“届出印”テーブルを検索し、印鑑届番号が“顧客”テーブルの印鑑届番号と一致する行から印影イメージを取得します。区分が“N”の場合は、まず“印鑑届”テーブルを支店番号・科目コード・口座番号が通帳の記載と一致し、かつ廃止日付がNULL(最新)という条件で検索して印鑑届番号を取得します。次に“届出印”テーブルで印鑑届番号が一致する行の印影イメージを取得します。廃止日付がNULLという条件を落とさないことがポイントです。
設問2(2)(a)
共通印に変更すると、個別印の印鑑届は廃止扱いになりますが、行は廃止日付付きで残り、支店番号・科目コード・口座番号も残ります。そのため、手形の支店番号・科目コード・口座番号と振出日から、その日に有効だった個別印の印鑑届をたどれます。公式解答例でも照合できる(○)とされています。
設問2(2)(b)
共通印の印鑑届は支店番号・科目コード・口座番号がNULLで、“顧客”テーブルには最新の印鑑届番号しか持てません。共通印をさらに変更すると“顧客”の印鑑届番号は新しいものに上書きされ、変更前の共通印の印鑑届を顧客や口座からたどる手段がなくなります。公式解答例では照合できない(×)とし、理由を「共通印の変更履歴が保存されていないので、変更前の共通印を特定できない」としています。答案では、履歴が保存されないことと、その結果変更前の共通印を特定できないことの二点を書きます。
設問2(2)(c)
代理者印を変更した段階では、個別印の印鑑届は変更前・変更後とも支店番号などを持ったまま、廃止日付付きで履歴として残ります。その後共通印に変更しても、個別印の行は廃止扱いになるだけです。振出日に有効だった個別印の印鑑届をたどれ、法人の約束手形は代表者印と照合すればよいので、公式解答例では照合できる(○)とされています。
設問2(3)
②の方式では、共通印の印鑑届が顧客番号を持ち、支店番号などはNULLです。表1の1行目の制約は口座単位の印鑑届だけを対象にしているので、共通印の場合に最新の印鑑届が1件に限られることを保証する制約が別に必要です。公式解答例では、対象テーブルを顧客と印鑑届とし、制約内容を「“顧客”テーブルの共通印・個別印区分が“Y”である行の顧客番号に対応する“印鑑届”テーブルでは、廃止日付がNULLの行数は1行以下でなければならない」としています。95字以内に収めるには、(1)区分がYの顧客、(2)その顧客番号に対応する印鑑届、(3)廃止日付NULLの行は1行以下、の三要素に絞り、表1の既存の制約の書き方に倣います。
設問3(1)
表3によると、案Aでは本店サーバが全支店のデータを持ち、通常時は本店サーバを参照・更新します。支店サーバへは、毎日の業務終了後に自支店と近隣支店のデータだけがバッチ型で配布されます。バックアップは本店サーバだけで取得します。公式解答例では、本店サーバの障害時は、各支店が支店サーバを使って業務を行うように設定を変更します。この場合、自支店分と近隣支店分の照合は、当日の業務開始から障害発生までの更新が反映されていない点で△、その他の支店分は支店サーバにデータがないので×です。支店サーバの障害時は、通常は本店サーバを使っているので対応措置は不要で、照合はすべて○です。データの復旧方法は、本店サーバの障害時は、データベースを停止してリカバリユーティリティでバックアップデータと更新ログからリカバリし、さらにレプリケーションのユーティリティでレプリケーション用更新ログを支店サーバに反映します。支店サーバの障害時は、支店サーバのテーブルを初期化し、レプリケーションで本店サーバから自支店と近隣支店の全行を複写して同期をとります。本文2.(1)④(初期化したターゲットへフィルタ一致行を複写する機能)と(2)(バックアップ・リカバリ機能)を根拠に組み立てます。
設問3(2)
60字以内で、選んだ観点について案Aと案Bの作業の対象範囲を比べて書きます。公式解答例では、(a)を選んだ場合は「案Aはバックアップ作業・管理を本店サーバだけで行えばよいが、案Bは全支店サーバが対象になる」ことを理由にしています(表3で、バックアップを取得するのは案Aでは本店サーバ、案Bでは支店サーバ)。(b)を選んだ場合は「サブスクリプションの追加・変更が、案Aは本店サーバだけで済むが、案Bは関連するすべての支店サーバで必要になる」ことを理由にしています(案Bは支店サーバがソースで、近隣支店ごとにサブスクリプションがあるため)。どちらを選んでも、案Aは本店サーバだけ、案Bは複数の支店サーバが対象、という対比を明示することが大切です。
学習のポイント
サブタイプ階層を区分列と参照列でテーブルに表す方法、主キーの一部になる外部キーの表記、履歴を保持できる構造かどうかの検証、レプリケーションの設定(ソース・ターゲット・フィルタ・タイミング)から障害時の影響と復旧手順を導く考え方を重点的に学びます。
出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 データベーススペシャリスト試験 午後Ⅱ 問1(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針