DBデータベーススペシャリスト試験 午後Ⅱ

平成21年度春期 データベーススペシャリスト 午後Ⅱ 問1

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

問1 届出印管理システムのデータベース設計・運用に関する次の記述を読んで,設問1~3に答えよ。 関東を中心に100か所に支店をもつW銀行は,預金などの主要業務には,勘定系システムを使用しているが,届出印の管理には,顧客が届出用紙に記入・押印した印鑑届を使用している。窓口での出金や振込などを行う際に,担当者が印鑑届と出金伝票の印影を目視で照合しており,窓口の混雑の一因となっている。そこでW銀行は,サービスと業務効率の向上を図るため,印鑑届を電子的に保存し,印影を自動照合できる届出印管理システムを構築することにし,システム部が検討を開始した。 〔業務の概要〕 W銀行では,次のような業務を行っている。 (1) 支店には,一意な支店番号が付与されている。支店では,担当者が口座の開設,氏名・住所・届出印などの変更(以下,口座変更という),解約,預金の入出金,振込,振替などを行っている。本店では,これらを行っていない。 (2) 取引相手である顧客には,個人顧客と法人顧客があり,両者をあわせて一意な顧客番号が付与されている。 (3) 顧客は,W銀行の支店に口座を開設して,取引を行う。取引には,口座変更,解約,預金の入出金,振込,振替などの種別(以下,取引種別という)がある。 口座は次のように管理されている。 ① 預金の種別を科目と呼ぶ。科目には,当座預金,普通預金,定期預金,積立預金,積立定期預金,外貨預金などがあり,一意な科目コードが付与されている。 ② 口座には,個人顧客が開設した個人口座と,法人顧客が開設した法人口座がある。口座を開設したときに,支店ごと科目ごとに,個人口座と法人口座をあわせて一意な口座番号が付与される。 ③ 顧客は,一つの支店で異なる科目の口座をもつことができる。また,異なる支店であれば,同一科目の口座をもつことができる。 ④ 顧客は,口座をもつ支店に関係なく,すべての支店の窓口で取引を行うことができる。現状では,顧客のうち,約5割は口座をもっている支店(以下,自支店という)で取引を行い,4割強は口座をもっていない近隣支店で取引を行い,残りは,その他の支店で取引を行っている。 ⑤ 個人顧客は,総合口座と総合口座以外の口座(以下,非総合口座という)の両方をもつことができる。総合口座は,普通預金口座に定期預金,積立定期預金などを組み合わせたもので,定期預金などを担保に融資を受けられる。 ・個人口座は,総合口座と非総合口座に分かれる。 ・総合口座は,代表となる一つの普通預金口座(以下,総合口座代表普通預金口座という)と,同一支店の定期預金など一つ以上の普通預金以外の口座(以下,総合口座組入れ口座という)からなる。 ⑥ 当座預金口座をもつ顧客は,約束手形を振り出すことができる。約束手形は,一定の期日(以下,支払期日という)に一定の金額を支払うことを約束する有価証券で,法人顧客が取引先への代金支払などに利用することが多い。約束手形が振り出された日(以下,振出日という)から支払期日までの期間は,2~3か月とする場合が多い。W銀行では,支払期日を迎えた約束手形が持ち込まれると,当座預金口座から指定された金額を引き落とし,受取人に現金で渡す。 〔届出印の管理〕 W銀行では,届出印管理システムの導入に伴い,届出印の管理を次のように行う。 1. 届出印の登録 口座を開設する顧客は,W銀行の支店あてに口座開設申込書を提出する。担当者は,口座開設申込書につづられている印鑑届をスキャナにかける。印鑑届には,一意な印鑑届番号が印刷されており,支店番号,科目コード,口座番号及び印影とともにデータベースに登録される。 届出印の登録方法は,個人顧客と法人顧客とでは,次のように異なる。 (1) 個人顧客の場合 ① 個人顧客は,図1の“印鑑届(個人用)”を提出して,一つの口座に一つの届出印を登録する。 ② 総合口座の場合は,総合口座代表普通預金口座に一つの届出印を登録し,総合口座組入れ口座の届出印登録は不要である。非総合口座を総合口座に変更する場合には,非総合口座の届出印を取り消して,総合口座代表普通預金口座の届出印を使用する。逆に,総合口座組入れ口座を非総合口座に変更する場合には,新たに印鑑届(個人用)を提出して届出印を登録する。 図1 印鑑届(個人用)の例 (2) 法人顧客の場合 ① 法人顧客は,図2の“印鑑届(法人用)”を提出して,一つの口座に一つの代表者印と任意の数の代理者印を登録することができる。代理者印は,特に指定した場合を除いて,代表者印の代わりに使用することができる。 ② 代理者印の登録は,取引種別や取引条件によって,代表者印を必要とする場合や,複数の代理者印を必要とする場合などがあり,届出印の照合方法を指定することができる。照合方法は,取引種別の組合せと取引条件を指定し,代表者印の必須・任意の区分と,代理者印の照合必要数(以下,代理者印照合数という)を指定する。図2は,次の照合方法を指定した例である。 ・取引種別が口座変更又は解約の場合は,必ず代表者印を照合する。 ・取引種別が出金又は振込で,かつ,金額が百万円以上の場合は,代表者印又は二つの代理者印を照合する。 図2 印鑑届(法人用)の例 2. 届出印の変更 顧客は,届出印を変更することができる。変更は次のように行う。 (1) 印鑑届の“新規・変更”の区分を“変更”とする。届出印を紛失した場合は,紛失届と印鑑届を提出する。 (2) 変更内容にかかわらず,印鑑届には新規と同様に必要事項をすべて記入し,届出印を押す。例えば,法人顧客が代理者印の一つを変更する場合も,再度代表者印,その他の代理者印を押し,照合方法を記入する必要がある。 (3) 担当者は,印鑑届の届出印や本人の確認など,必要な手続を行った後,新規の届出印の登録と同じ手順で届出印の変更登録を行う。 (4) 変更前の印鑑届を廃止扱いとし,廃止日付を記録する。 3. 届出印の照合 出金や振込などの取引又は支払期日を迎えた約束手形の支払手続を行う際には,届出印の照合を次のように行う。 (1) 出金や振込などの取引は,通帳と取引種別ごとの依頼書に基づいて行われる。顧客は,依頼書に必要事項を記入の上,届出印を押し,通帳と一緒に窓口に提出する。担当者が依頼書をスキャナにかけると,システムは支店番号,科目コード,口座番号及び届出印欄の印影を読み取って,最新の届出印と照合する。法人顧客の場合は,印鑑届に照合方法の指定があれば,対象となる届出印と照合する。指定がなければ,代表者印及びすべての代理者印と照合する。 (2) 支払期日を迎えた約束手形が持ち込まれた場合は,手形に記載されている支店番号,科目コード,口座番号及び印影をスキャナで読み取って登録済の届出印と照合する。法人顧客の約束手形は,代表者印と照合する。約束手形には,振出日時点の届出印が押されているので,振出日以降に届出印を変更した場合には,振出日に有効であった届出印と照合する。 (3) 照合結果は,印影が同一である度合いを百分率(以下,照合率という)で表し,端末の画面に表示される。一定以上の照合率の場合に取引を行う。 4. 届出印の廃止 口座を解約した場合は,届出印の廃止手続を行う。届出印の廃止手続を行うと,印鑑届と登録されているすべての届出印を廃止の扱いとし,廃止日付を記録する。 5. 印鑑届の原本管理 届出印管理システムの導入に伴って,印鑑届の原本を本店で集中管理する。支店での届出印の照合にはシステムを使用する。 6. 届出印の更新及び照合の記録 届出印の登録,変更,照合,廃止のすべてのアクセスを記録し,監査に使用する。照合の場合は照合率も記録する。 7. 大規模災害発生時の届出印の照合 大規模災害が発生し,支店で勘定系システムを使用できず,残高を確認できない場合も,支店に通帳と届出印を持参した顧客に対しては,一定限度額まで引き出しに応じる。このとき,少なくとも自支店又は近隣支店に口座をもつ顧客については,届出印の照合を行う。それ以外の顧客については,照合を省略して引き出しに応じる。 〔届出印管理システムのテーブル構造〕 届出印の管理内容を基に,データベースには届出印の管理に必要な最小限の属性を保有し,顧客や口座などの属性は勘定系システムを参照することにして,図3の届出印管理システムのテーブル構造(未完成)を作成した。更に,図3のテーブル構造を前提に,複数テーブル間の整合性を保つための制約を表1にまとめた。 図3 届出印管理システムのテーブル構造(未完成) 表1 複数テーブル間の整合性を保つための制約 〔届出印管理システムの構成とRDBMSの機能〕 システム部では,届出印管理システムの主な要件を基に,システム構成と採用する関係データベース管理システム(RDBMS)について検討した。 1. システム構成案の概要(図4) (1) 本店及び支店に,それぞれ届出印管理用のサーバ(以下,本店サーバ及び支店サーバという)を追加し,既存のLANとWANで接続する。 (2) 本店サーバと支店サーバにRDBMSを導入して,届出印データを管理する。サーバの性能,ディスクの容量,バックアップ装置の要否は,データ配置を検討した上で決める。 (3) 届出印管理システムは,勘定系システムのようにバックアップサイトに待機系システムを置かず,本店サーバと支店サーバにデータを分散して保有する。これによって,ディスク故障などの障害発生時にも,業務への影響を最小限にとどめることができる。 図4 システム構成案 2. RDBMSの機能 (1) レプリケーション機能 ① 1か所から複数か所にデータを分散する機能,複数か所のデータを1か所に集約する機能,及び両者を組み合わせて双方向に同期をとる機能がある。これらの機能を使用すると,一方のテーブルやテーブル内の行の追加,更新,削除を他方に自動的に反映させ,データの同期をとることができる。 ② 一つのレプリケーション元(以下,ソースという)と一つのレプリケーション先(以下,ターゲットという)の組ごとに,レプリケーションの定義(以下,サブスクリプションという)を作成する。ソースのデータベースにサブスクリプションを設定すると,そのサブスクリプションはターゲットに反映される。サブスクリプションには,表2のような設定を行う。 表2 サブスクリプションの設定 ③ 障害によってレプリケーションを完了できなかった場合,RDBMSはレプリケーション用更新ログを自動的に保存する。復旧後に手動でユーティリティを起動すれば,レプリケーション用更新ログを使用して同期をとることができる。 障害の発生から手動でユーティリティを起動するまでの間は,レプリケーションによる更新の反映は行われず,レプリケーション用更新ログが保存される。 ④ ターゲットのテーブルを初期化した場合に,ソースから指定されたフィルタに一致するすべての行をターゲットに複写して同期をとることができる。 (2) バックアップ,リカバリ機能 レプリケーション機能以外に,RDBMSが備えているバックアップ,リカバリ機能は,次のとおりである。 ① データベースのバックアップデータを作成するユーティリティがある。 ② 更新ログを自動的に取得する。 ③ バックアップデータと更新ログを使用して,データベースのリカバリを行うユーティリティがある。 ④ ユーティリティは手動で起動する。ユーティリティを実行するためには,データベースを停止しなければならない。 〔本店サーバと支店サーバへのデータ配置〕 “支店”,“顧客”,“科目”,“取引種別”テーブルは,本店サーバで管理し,更新のたびにイベント型のレプリケーションによって支店サーバに配布する。 “口座”,“印鑑届”,“届出印”,“更新・照会履歴”テーブルは,データ配置について次の二つの案を検討することにし,表3にその内容をまとめた。 【案A】 本店サーバで全支店のデータを管理し,各支店サーバにデータを配布する。 【案B】 各支店サーバにデータを分散し,支店サーバ間で相互に参照,更新を行う。 表3 データ配置案 〔届出印の新たな業務要件〕 顧客の要望に対応して,口座ごとに届出印を登録するのではなく,一つの届出印を登録すれば,支店や口座に関係なく取引ができる共通印を導入する予定である。共通印の運用は,次のようになる見込みである。 (1) 既に口座をもっている顧客が共通印に変更する場合は,通帳と印鑑届を提出する。口座ごとに登録されている届出印(以下,個別印という)はすべて廃止の扱いとし,共通印を新たに届出印として登録する。 (2) 各支店の顧客の口座を調べて個別印の廃止手続を行い,すべての支店で廃止手続が完了した後で共通印を登録する。 (3) 共通印であることは通帳に記載しない。顧客が通帳と届出印を窓口に持参した場合には,通帳の支店番号,科目コード,口座番号を基に,届出印を照合する。 解答に当たっては,主キー及び外部キーの表記を含めて,巻頭の表記ルールに従うこと。ただし,エンティティタイプ間の対応関係にゼロを含むか否かの表記は不要である。 設問1 届出印管理システムのテーブル構造(図3)について,(1)~(3)に答えよ。 (1) 図3のテーブル構造の業務への適合性を確認するために,届出印管理に関連するサブタイプを識別して,図5の概念データモデルを作成することにした。図5中の[a]~[f]に入れる適切なサブタイプ名を答えよ。また,図5の点線枠内にリレーションシップを補って,図を完成させよ。 なお,ほかのエンティティタイプとのリレーションシップは,スーパータイプ又はサブタイプのいずれか適切な方との間に記述せよ。 図5 届出印管理システムの概念データモデル (2) 業務への適合性を確認した結果,図3中でサブタイプを区分する列とサブタイプ間の参照関係を保有する列が不足しているテーブルが幾つかある。その中で,“口座”テーブルと“届出印”テーブルについて,追加する列名をすべて答えよ。 なお,追加する列名は,列の意味を表す名称を用いること。 (3) 法人顧客の届出印の照合方法を登録するために追加するテーブル構造を示せ。 なお,追加するテーブル名は,意味を表す名称を用いること。また,列名は,本文中の用語を用いること。 設問2 〔届出印の新たな業務要件〕の導入について,(1)~(3)に答えよ。ここで,設問1のテーブルの追加や変更は,考慮しないものとする。 共通印を登録・照合できるように,図3のテーブル構造に主キー以外の列を追加して対応することにした。そのために,“顧客”テーブルに共通印・個別印区分の列を追加して,共通印を“Y”,個別印を“N”で表し,更に次の①,②のいずれかを行うことを検討した。 ① “顧客”テーブルに印鑑届番号の列を追加し,共通印の場合は,最新の印鑑届番号を設定する。さらに,共通印の場合は,最新の印鑑届番号に対応する“印鑑届”テーブルの行の支店番号,科目コード,口座番号をNULLにする。 ② “印鑑届”テーブルに顧客番号の列を追加する。共通印の場合は,顧客番号を設定し,支店番号,科目コード,口座番号をNULLにする。 (1) ①を行う場合,通帳と依頼書の提示を受けて届出印を照合する際に,テーブルを結合せずに,支店番号,科目コード,口座番号から照合の対象となる届出印を検索する手順を表4にまとめた。記入済の例に倣って太枠内の空欄を埋め,表を完成させよ。 表4 届出印の検索手順 (2) ①を行う場合,次の(a)~(c)の取引が発生した際に,届出印を正しく照合できるか。照合できる場合は解答欄の照合可否欄に“○”印を記入し,照合できない場合は照合可否欄に“×”印を記入せよ。また,照合できない場合のテーブル構造上の理由を具体的に述べよ。 (a) 複数の支店に複数の口座をもつ顧客が,共通印に変更した。その後,顧客の個別印を押した約束手形が持ち込まれた。 (b) 一つの支店に複数の口座をもつ顧客が,共通印に変更し,更に数週間後に共通印を変更した。その後,変更前の共通印を押した約束手形が持ち込まれた。 (c) 複数の支店に複数の口座をもつ法人顧客が,代理者の届出印を変更し,更に数週間後に共通印に変更した。その後,当該法人顧客の個別印を押した約束手形が持ち込まれた。 (3) ②を行う場合,表1に制約を追加する必要がある。その対象テーブルを挙げ,制約内容を95字以内で述べよ。 設問3 〔本店サーバと支店サーバへのデータ配置〕について,(1),(2)に答えよ。 (1) 案Aと案Bについて,障害発生時の通常業務への影響を比較する。本店サーバ又は支店サーバのテーブルが格納されたディスク装置が故障し,装置を交換して復旧する場合を想定して,案Bについてディスク装置障害発生時の通常業務への影響と復旧方法(案B)を表5にまとめた。案Aについても,表5の例に倣って表にまとめよ。 なお,障害発生から復旧までの間は,届出印の登録や変更は行わないものとする。 表5 ディスク装置障害発生時の通常業務への影響と復旧方法(案B) (2) データ配置案の評価に当たっては,可用性以外の観点からも検討する必要がある。システム部が行った評価では,性能面では案Aが優れており,機器導入費用面では案Bが優れていた。 また,保守性では,(a)通常運用時のバックアップ作業・管理の負荷と,(b)支店の新設・統廃合時のレプリケーションの設定,の二つの点で案Aの方が優れていた。(a),(b)のいずれか一つの観点を選択して,その理由を60字以内で述べよ。
図1 印鑑届(個人用)の例。個人用印鑑届の記入例。印鑑届番号1234567890、新規/変更の区分、お届け年月日、お名前(フリガナ・自署)、生年月日、性別、おところ、電話番号、お取引支店(横浜支店)、口座番号、科目(普通)の欄と届出印欄がある。
図1 印鑑届(個人用)の例。個人用印鑑届の記入例。印鑑届番号1234567890、新規/変更の区分、お届け年月日、お名前(フリガナ・自署)、生年月日、性別、おところ、電話番号、お取引支店(横浜支店)、口座番号、科目(普通)の欄と届出印欄がある。
図2 印鑑届(法人用)の例。法人用印鑑届の記入例。法人名称、代表者、法人所在地、電話番号、お取引支店、口座番号、科目(当座)、代表者印欄に加え、代理者3名分の署名・届出印欄がある。条件番号ごとに取引種別、取引条件、代表者印照合要否、代理者印照合数を指定する照合方法表が付く。
図2 印鑑届(法人用)の例。法人用印鑑届の記入例。法人名称、代表者、法人所在地、電話番号、お取引支店、口座番号、科目(当座)、代表者印欄に加え、代理者3名分の署名・届出印欄がある。条件番号ごとに取引種別、取引条件、代表者印照合要否、代理者印照合数を指定する照合方法表が付く。
図3 届出印管理システムのテーブル構造(未完成)。支店、顧客、科目、取引種別、口座、印鑑届、届出印、更新・照会履歴の各テーブルの列構成を関係スキーマで示す。実線下線は主キー、破線下線は外部キー。注に印鑑届の開始日付・廃止日付の設定方法がある。
図3 届出印管理システムのテーブル構造(未完成)。支店、顧客、科目、取引種別、口座、印鑑届、届出印、更新・照会履歴の各テーブルの列構成を関係スキーマで示す。実線下線は主キー、破線下線は外部キー。注に印鑑届の開始日付・廃止日付の設定方法がある。
表1 複数テーブル間の整合性を保つための制約。対象テーブルと制約内容の2列の表。口座・印鑑届では、廃止日付がNULLの印鑑届の行は口座ごとに1行以下。顧客・口座・印鑑届・届出印では、個人顧客の口座に対応する印鑑届ごとに届出印の行が1行でなければならない。
表1 複数テーブル間の整合性を保つための制約。対象テーブルと制約内容の2列の表。口座・印鑑届では、廃止日付がNULLの印鑑届の行は口座ごとに1行以下。顧客・口座・印鑑届・届出印では、個人顧客の口座に対応する印鑑届ごとに届出印の行が1行でなければならない。
図4 システム構成案。本店サイト(本店サーバ、端末、勘定系システムサーバ)、バックアップサイト(待機系の勘定系システムサーバ)、複数の支店サイト(支店サーバ、端末)をLANとWANで接続した構成図。各サーバにDBとBKがあり、破線枠は追加を検討中の機器を示す。
図4 システム構成案。本店サイト(本店サーバ、端末、勘定系システムサーバ)、バックアップサイト(待機系の勘定系システムサーバ)、複数の支店サイト(支店サーバ、端末)をLANとWANで接続した構成図。各サーバにDBとBKがあり、破線枠は追加を検討中の機器を示す。
表2 サブスクリプションの設定。設定項目と設定内容の表。ソースとターゲットはデータベース接続情報を指定する。テーブルは複製対象名、フィルタはWHERE句と同じ構文の行選択条件。タイミングはイベント型かバッチ型を選ぶ。
表2 サブスクリプションの設定。設定項目と設定内容の表。ソースとターゲットはデータベース接続情報を指定する。テーブルは複製対象名、フィルタはWHERE句と同じ構文の行選択条件。タイミングはイベント型かバッチ型を選ぶ。
表3 データ配置案。案Aと案Bを、データ配置、レプリケーション(ソース、ターゲット、テーブル、フィルタ、タイミング)、本店・支店サーバのバックアップ取得の有無で比較した表。案Aは本店集中・バッチ型、案Bは支店分散・イベント型。
表3 データ配置案。案Aと案Bを、データ配置、レプリケーション(ソース、ターゲット、テーブル、フィルタ、タイミング)、本店・支店サーバのバックアップ取得の有無で比較した表。案Aは本店集中・バッチ型、案Bは支店分散・イベント型。
図5 届出印管理システムの概念データモデル。支店、科目、口座、顧客(個人顧客・法人顧客)、空欄a~fの口座サブタイプ、印鑑届(個人用・法人用)、届出印(代表者印・代理者印)、更新・照会履歴、取引種別のエンティティとリレーションシップを示す。点線枠内は未完成。
図5 届出印管理システムの概念データモデル。支店、科目、口座、顧客(個人顧客・法人顧客)、空欄a~fの口座サブタイプ、印鑑届(個人用・法人用)、届出印(代表者印・代理者印)、更新・照会履歴、取引種別のエンティティとリレーションシップを示す。点線枠内は未完成。
表4 届出印の検索手順。条件、テーブル名、行の検索条件、取得する列の表。記入済は口座(顧客番号を取得)と顧客(共通印・個別印区分、印鑑届番号を取得)の2行。区分が“Y”の場合と“N”の場合の太枠内の欄は空欄。
表4 届出印の検索手順。条件、テーブル名、行の検索条件、取得する列の表。記入済は口座(顧客番号を取得)と顧客(共通印・個別印区分、印鑑届番号を取得)の2行。区分が“Y”の場合と“N”の場合の太枠内の欄は空欄。
表5 ディスク装置障害発生時の通常業務への影響と復旧方法(案B)。案Bについて、本店サーバ障害時と支店サーバ障害時の業務継続のための対応措置、自支店・近隣支店・その他の支店分の照合への影響(○△)、データ復旧方法を示す表。表下に○、△、×の凡例がある。
表5 ディスク装置障害発生時の通常業務への影響と復旧方法(案B)。案Bについて、本店サーバ障害時と支店サーバ障害時の業務継続のための対応措置、自支店・近隣支店・その他の支店分の照合への影響(○△)、データ復旧方法を示す表。表下に○、△、×の凡例がある。
解き方のヒントを見る

業務ルールと設計の対応を確かめる

データベース分野の事例問題では、本文に書かれた業務上の決まりごとを根拠にします。各設問の内容がその決まりと矛盾しないかを、一つずつ照合していく姿勢が重要です。記憶や一般論よりも本文の記述を優先しましょう。

この問題で問われていること

確認すべき観点は一つ、本文中の業務ルールや前提条件との整合性です。検討対象の記述や数値が本文のどの文を根拠に成り立つのか、またはどの条件と食い違うのかを、本文の該当箇所に立ち返って確かめてください。

視点

事例型の設計問題では、同じ用語でも一般的な意味と本文での定義が異なることがあります。業務ルールは、データ同士の対応関係や、処理のタイミング・場所に関する制約として表れることが多いです。それらを本文から抜き出して整理しておくと、検討対象を評価する基準が明確になります。

確認ポイント

  • 本文中で業務上の決まりや前提条件を述べている箇所を把握したか
  • 検討対象の各部分について、根拠となる本文の記述を特定できたか
  • 一般的な知識だけで判断せず、本文の条件と食い違う点がないか確かめたか
正解と解説を見る

解説

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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針