- 問1
- 問2
公式サイトの問題冊子はこちら。
https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt8000000apad-att/2021r03a_db_pm2_qs.pdf
問1-設問1-(1)
表3中のア~ウに入れる適切な字句を答えよ
- 「担当者が顧客との間で行うこれらの活動を追客といい、受付、実施、応対の区分に分けて記録する」とあるが、方法①だとサブタイプ:受付/実施/応対を区分されなくなるので、単一のサブタイプを参照するための区分が新たに必要
- ア:新たにサブタイプの区分が必要
- G「スーパータイプと全部のサブタイプを参照する処理の性能」は、
E「全部のサブタイプを参照する処理の性能」と、
F「スーパータイプと単一のサブタイプを参照する処理の性能」の両方を兼ね備える
- イ:和集合と結合が必要
- ウ:和集合が必要
本文中のエ、オに入れる表3中の項目A~Gのいずれか一つを答えよ
- 「接触日時、追客種別、追客概要を商談管理画面に表示する」なので、スーパータイプを参照する
- 「追客概要は、本処理において追客区分ごとに固有な属性値を基にして作成した文字列」なので、全てのサブタイプを参照
- エ:G
- 「追客種別ごとの接触日時の日ごとに件数を集計し、物件コード、年月日、資料請求数、来場予約数、来場応接数、購入申込受領数を出力する」
- 「Webサイトから受信する資料請求データには、資料請求日時、物件コード、顧客コード、氏名、住所、住所コードなどが記録されている。同時に来場予約データには、開始予定日時、物件コード、顧客コード、氏名などが記録されている」なので、スーパータイプは参照するが、サブタイプの参照は不要
- オ:C
問1-設問1-(2)
表4中のカ~クに入れる一つ又は複数のテーブル名を答えよ
- カ:住所
- キ:駅、物件
- ク:棟、販売期、最寄り駅
問1-設問1-(3)
表5中のケ、コに入れる適切な定義内容を、記入済みの例に倣って、ケは40字以内、コは60字以内で具体的に述べよ
- 「同じ顧客、接触日時及び追客種別の追客を行うことはない」
- 追客(顧客コード、物件コード、連番、追客区分、接触日時、追客種別、、、)
- ケ:顧客コード、接触日時、追客種別の列の組で一意性制約を定義する
- 「トリガ内の行の旧値を参照する相関名をOROW、新値を参照する相関名をNROWと定義する」
- コ:OROW.契約ステータス<NROW.契約ステータスをチェックする検査制約を定義する
問1-設問1-(4)
行うべき処置を二つ挙げ、それぞれ25字以内で述べよ
- 処理4「契約システムから受領した契約データを基に、契約の契約ステータスを更新し、追客を追加する」
- ロック待ちタイムアウトによる例外が発生した場合の処置はトランザクションのロールバックとやり直し
- トランザクションのロールバック
- トランザクションの再実行
問1-設問2-(1)
完全外結合を行う理由を40字以内で述べ、サに入れる演算の内容を答えよ
- 「価格帯と面積帯の組ごとに、該当する住戸数と顧客数の片方又は両方を対応させて、価格帯、面積帯、住戸数、顧客数を抽出する」
- M2は、価格帯と面積帯の組ごとの住戸数
- T2は、価格帯と面積帯の組ごとの顧客数
- M2とT2のどちらかが存在する行が抽出の対象
- 住戸数か顧客数のどちらかが欠ける価格帯と面積帯の組が存在するから
- サ:COALESCE(M2.価格帯, T2.価格帯)
問1-設問2-(2)
図3中のシ~ソに入れる適切な字句を答えよ
- 価格帯テーブルは(価格帯、下限値、上限値)なので、シには「販売価格3000未満」の{下限値、上限値}、スには「4000未満」の{下限値、上限値}、セには「6000以上」の{下限値、上限値}が入る
- 表1より、「販売価格、購入予算の金額(単位:万円、0~99,999)」
- シ:0,2999
- ス:3000,5999
- セ:6000,99999
- 住戸(物件コード、棟コード、住戸コード、販売価格、販売期コード...) A
- 価格帯テーブルは(価格帯、下限値、上限値) B
- 販売価格が下限値と上限値の間にあるときにJOIN
- ソ:A.販売価格>=B.下限値 AND A.販売価格<=B.上限値
問1-設問3-(1)
(a)
本文中のa~fに入れる適切な数値を答えよ
- 「1ページ当たりのストレージへのI/Oを10ミリ秒」
- 「1ページ当たりの平均行数まではバッファ上で処理するので4000回、、、合わせて404,000回発生する」
ストレージI/O時間=10ミリ秒×404000回
- a:4040
- 「回復の際、ストレージへのI/Oは、追加では1ページ当たりの平均行数まではバッファ上で処理する」
ストレージI/O回数=\frac{50000件×8時間}{25行}
- b:16000
- 「更新ではバッファピット率を0とする」
ストレージI/O回数=5000件×8時間
- c:40000
- 「更新ではバッファピット率を0とする」
ストレージI/O時間=10ミリ秒×(16000+40000)
- d:560
- 「障害が18:00に発生し、10:00から8時間分の各テーブルへの追加、更新ログによる回復を想定」
- 「毎日12:00,14:00,16:00に商談及び追客テーブルのテーブル単位の増分又は差分バックアップをとることを検討」
- バックアップ間隔は2時間
- e:2
- 8時間分の更新ログだと4040秒なので、2時間分だとその4分の1
- f:1010
(b)
本文中の下線部について、差分バックアップからの復元が増分バックアップからの復元よりも時間がかからない理由を30字以内で具体的に述べよ
- 表5制約④「契約テーブルの行の更新を契機に、NROW.契約ステータスに対応する商談ステータスの値を設定して商談テーブルを更新するAFTERトリガを定義する」
- 「前回の全体バックアップ取得以降に増分バックアップを取得していた場合は、前回の増分バックアップ取得後に変更されたページだけが含まれる」
- 増分バックアップの場合は、同じ行が更新されると、更新の度に行が増える
- 差分バックアップの場合は、同じ行が何度更新されても一行分だけ
- 同じ行に対する更新が複数回発生しても、復元は一回分で済むから
問1-設問3-(2)
(a)
バックアップの復元及び更新ログによる回復によって誤登録発生直前の日時の状態にする方法では問題を解決できない理由を、60字以内で述べよ
- 「誤登録発生の前後の時間帯では、断続的に追客を記録する業務を行っている」
- 復元と回復によって、誤登録の行と、誤登録ではない追客の記録も失われる
- 誤登録発生以降の誤登録ではない追客の記録も失われるから
(b)
gに適切な字句を、h~jに一つの適切な述語を入れ、SQL文を完成させよ
- 追客(顧客コード、物件コード、連番、追客区分、接触日時、追客種別、、、)
- 商談(顧客コード、物件コード、商談ステータス、最新接触日時、、、、)
- 最新接触日時は、接触日時の最大値
- 商談と追客は{顧客コード、物件コード}をキーに多対1のリレーションシップで接続
- 「行の削除は論理削除によって行うこととし、削除フラグ列(0:未削除、1:削除済)を追加する」
- g: MAX(T.接触日時)
- h: S.顧客コード=T.顧客コード
- i: S.物件コード=T.物件コード
- j: T.削除フラグ=0
問1-設問3-(3)
表9中のk~sに適切な字句を入れ、表を完成させよ。なお、m,p,sに入れる作業内容は、RDBMSの機能に指定する内容を含めてそれぞれ40字以内で記入すること
- 「誤更新が行われた直前の日時は、2021-07-21 13:45:11であり、誤更新の発生中にも顧客テーブルへの追加及び更新が行われている。また、誤更新の発生後、商談管理システムは参照系機能だけを利用可能な状態で稼働させ、後続の処理への影響はない」
- 誤更新が発生したのは顧客テーブル
- 誤更新発生後には更新が発生していない
- 本番DBの稼働は止められない
- RDBMSの機能には「トリガ機能」「バックアップ機能」「復元機能」「更新ログによる回復機能」「エクスポート機能」「インポート機能」がある
- 「エクスポート対象テーブルの行の抽出条件を指定することができる」
- 「インポート先のテーブルに主キーが一致するデータが存在する場合の動作として、処理しない(SKIP)、又は**更新する(MERGE)**のいずれかのオプションを指定することができる」
- 作業用DB上で2021-07-21 13:45:11の状態に戻し、誤更新が発生した行のみ更新する
- k: 更新ログによる回復機能
- l: 作業用DB
- m: 2021-07-21 13:45:11時点の状態にロールフォワードする
- n: エクスポート機能
- o: 作業用DB
- p: 名寄せ先顧客コードがNULLの抽出条件で顧客テーブルをエクスポートする
- q: インポート機能
- r: 本番DB
- s: エクスポートしたデータをMERGEオプションで顧客テーブルにインポートする
問2-設問1-(1)
図2中のアに入れる適切なエンティティタイプ名を答えよ
- 「チェーン法人ごとに適用する締め契機は、チェーン法人と協議の上で、週3回程度に設定している」
- チェーン法人と締め契機は多対多と考えられるので、「ア」はそれらの中間テーブル
ア: チェーン法人ごとの締め契機
図2に欠落しているリレーションシップを補って図を完成させよ
- ア(チェーン法人ごとの締め契機)は、多対多を接続するための中間テーブルなので、チェーン法人、締め契機とそれぞれ多対1のリレーションシップをもつ
- 「商品には、PB商品とNB商品があり、流通方法区分で分類している」
- PB商品とNB商品は、商品のサブタイプ
- 「PB商品は、どのチェーン法人のものかをもつ」
- 「引当在庫は、物流拠点、商品、製造ロットの別に、その時点の在庫数、引当済数、引当可能数を記録するもので、商品の引当てに用いる」
- 商品は製造ロットと1対多の関係
- 「払出在庫は、物流拠点、商品、製造ロット、荷姿の別に、その時点の在庫数(荷姿別在庫数)を記録するもので、商品の出庫の記録に用いる」
- 商品は製造ロットと1対多の関係
- 「商品カテゴリは、どの顧客も似ているが微妙に異なり」
- 「あらかじめどの商品をどの商品カテゴリにするかを知らされているので、商品カテゴリの明細として商品を設定している」
- 商品カテゴリは微妙に異なる場合があるので、商品と商品カテゴリは多対多の関係
問2-設問1-(2)
図3中のイに入れる適切なエンティティタイプ名を答えよ
- 「ピース梱包実績は、一つ又は複数の種類の商品の詰め合わせであり、どのピース出庫実績から幾つの商品を構成したかのピース梱包内訳を記録する」
イ: ピース梱包内訳
図3に欠落しているリレーションシップを補って図を完成させよ
- イ(ピース梱包内訳)は、多対多を接続するための中間テーブルなので、ピース梱包実績、ピース出庫実績とそれぞれ多対1のリレーションシップをもつ
- 「出庫実績には、出庫実績番号を付与し、荷姿区分で分類して、ケースを出庫した出庫実績には出庫ケース数を、ピースを出庫した出庫実績には出庫ピース数を記録する」
- ケース出庫実績とピース出庫実績は、出庫実績のサブタイプ
- 出荷実績:「出荷指示の単位に梱包を納入先別に配送した実績である」
- 「出荷実績に対応する梱包実績に、どの出荷実績で出荷されたかを記録する」
- 「出荷指示は、納入先別に行う。梱包を分ける単位を示す出荷指示梱包明細、梱包を分けた中に入れる商品を示す出荷指示梱包内商品明細の3階層の形式をとる」
- 出荷指示と出荷指示梱包明細は1対多なので、出荷実績と梱包実績も1対多
- 梱包実績:「梱包実績には、ケース梱包実績とピース梱包実績がある」
- ケース梱包実績とピース梱包実績は、梱包実績のサブタイプ
- 「ケース梱包実績は、どのケース出庫実績によるものかを関連付ける」
- 梱包実績:「出庫された商品を、出荷指示梱包明細に基づいて配送できるように段ボールに詰めた実績」
- 出荷指示梱包明細は、納入先別
- 出庫実績:「出庫指示明細で指示された商品の出庫指示数を、幾つのケースと幾つのピースで出庫したかの実績」
- 出庫指示:「物流拠点ごとに、同じ締め契機の、全ての納入先の出荷指示を集約」する
- 複数の納入先が集約された出庫実績に対して、梱包実績は納入先ごとに分けられるので、出庫実績と梱包実績は1対多の関係
- 「出荷指示梱包明細ごとに、出荷指示梱包明細番号を付与し、梱包方法によって、店舗別梱包の場合は梱包対象チェーン店舗を、商品カテゴリ別梱包の場合は商品カテゴリを設定する」
出荷指示店舗別梱包明細と出荷指示商品カテゴリ別梱包明細は、出荷指示梱包明細のサブタイプ
- 「店舗別梱包では、受注で指定される梱包対象の店舗は一つである」
- 図5の店舗別梱包指定受注は、受注に梱包対象の店舗を加えたサブタイプ
店舗別梱包指定受注は受注のサブタイプ
- 出荷指示:「締め契機で在庫引当てに成功した受注を集約した情報である」
- 出荷指示と受注が1対多
- 出庫指示:「物流拠点ごとに、同じ締め契機の、全ての納入先の出荷指示を集約し、物流拠点の倉庫から出荷対象の商品を出すための情報である」
- 出荷指示と受注が1対多
問2-設問1-(3)
図4中のa~fに入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ
- 「PB商品は、どのチェーン法人のものかをもつ」
- 商品のサブタイプなので同じ主キーをもつ
a: チェーン法人コード(FK)、商品コード
- 「NB商品は、売上金額のランクをもつ」
- 商品のサブタイプなので同じ主キーをもつ
b: 売上金額ランク、商品コード
- 「商品カテゴリは、どの顧客も似ているが微妙に異なり、チェーン法人コードと商品カテゴリコードによって識別する」
- 「商品カテゴリコードと商品カテゴリ名は顧客が使っている値を用いる」
c: チェーン法人コード、商品カテゴリコード、商品カテゴリ名
- 「チェーン法人ごとに適用する締め契機は、チェーン法人と協議の上で、週3回程度に設定している」
- チェーン法人と締め契機の候補キーを主キーにもつ
d: チェーン法人コード、締め年月日、回目
- 「引当在庫は、物流拠点、商品、製造ロットの別に、その時点の在庫数、引当済数、引当可能数を記録するもので、商品の引当に用いる」
e: 拠点コード、商品コード、製造ロット番号、在庫数、引当済数、引当可能数
- 「払出在庫は、物流拠点、商品、製造ロット、荷姿の別に、その時点の在庫数(荷姿別在庫数)を記録するもので、商品の出庫の記録に用いる」
f: 拠点コード、商品コード、製造ロット番号、荷姿区分、在庫数
問2-設問1-(4)
図5中のg~vに入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ
- 出荷指示と受注が1対多なので、受注の外部キーに出荷指示の主キーを対応させる
g: 出荷指示番号(FK)
- 店舗別梱包指定受注は、受注のサブタイプであり、梱包対象の店舗を一つもつ
h: 受注番号、チェーン店舗コード(FK)
- 「在庫引当ての成否は、受注明細に記録する」
i: 在庫引当成否
- 「出荷指示ごとに、出荷指示番号を付与し、適用した締め契機、出荷指示対象の納入先を記録する」
- 締め契機の主キーは{締め年月日、回目}
- 「対象の出荷指示に出庫指示番号を記録する」
j: 締め年月日(FK)、回目(FK)、出庫指示番号(FK)
- 「店舗別梱包の場合は梱包対象チェーン店舗を」
k: 梱包対象チェーン店舗コード(FK)
- 「商品カテゴリ別梱包の場合は商品カテゴリを」
l: チェーン法人コード(FK)、商品カテゴリコード(FK)
- 「出荷指示梱包内商品明細ごとに、梱包すべき商品について製造ロット別に出荷指示数を設定する」
- 製造ロットの主キーは{商品コード、製造ロット番号}
m: 商品コード(FK)、製造ロット番号(FK)、出荷指示数
- 「出庫指示には、出庫指示番号を付与し、対象の物流拠点と適用した締め契機を記録する」
n: 物流拠点コード(FK)、締め年月日(FK)、回目(FK)
- 「出庫指示明細には、出庫指示明細番号を付与し、製造ロット別の商品と出庫指示数を設定する」
o: 製造ロット番号(FK)、出庫指示数
- 「出庫指示明細で指示された商品の出庫指示数を、幾つのケースと幾つのピースで出庫したかの実績である」
- 出庫指示明細の主キーは{出庫指示番号、出庫指示明細番号}
- 「出庫実績には、出庫実績番号を付与し、荷姿区分で分類」
p: 出庫指示番号(FK)、出庫指示明細番号(FK)、荷姿区分(FK)
- 「ケースを出庫した出庫実績には、出庫ケース数を」
q: 出庫実績番号、出庫ケース数
- 「ピースを出庫した出庫実績には、出庫ピース数を記録する」
r: 出庫実績番号、出庫ピース数
- 「出庫された商品を、出荷指示梱包明細に基づいて配送できるように段ボール箱に詰めた実績」
- 「いずれの実績かは、段ボール箱区分で分類する」
- 「出荷実績に対応する梱包実績に、どの出荷実績で出荷されたかを記録する」
- 出荷指示梱包明細の主キーは{出荷指示番号、出荷指示梱包明細番号}
- 出荷実績の主キーは出荷実績番号
s: 出荷指示番号(FK)、出荷指示梱包明細番号(FK)、段ボール箱区分、出荷実績番号(FK)、
- 「ケース梱包実績は、どのケース出庫実績によるものかを関連付ける」
- ケース出庫実績の主キーは出庫実績番号
t: 出庫実績番号(FK)、
- 「どの出庫実績から幾つの商品を構成したかのピース梱包内訳を記録する」
- イ(ピース梱包内訳)は、ピース梱包実績とピース出庫実績の多対多を接続するための中間テーブル
- ピース梱包実績の主キーは梱包実績番号
- ピース出庫実績の主キーは出庫実績番号
u: 梱包実績番号、出庫実績番号、商品構成数
- 「出荷指示の単位に梱包を納入先別に配送した実績である」
- 「出荷実績には、車両番号と出荷年月日時刻を記録する」
u: 出荷指示番号(FK)、車両番号(FK)、出荷年月日時刻
問2-設問2-(1)
欠落しているリレーションシップを補って図を完成させよ
- 「受注は、チェーンDC又はチェーン本支部から受けることになったので、この両者を併せて受注先と呼ぶ」
- チェーンDCとチェーン本支部は受注先のサブタイプ
- 「納入は、チェーンDC又は直接納入する対象のチェーン店舗(以下、直納対象チェーン店舗という)に行うので、この両者を併せて納入先と呼ぶ 」
- チェーンDCと直納対象チェーン店舗は納入先のサブタイプ
- 「受注先と納入先を併せてチェーン組織と呼ぶ」
- 受注先はチェーン組織のサブタイプ
- 納入先はチェーン組織のサブタイプ
- 「チェーン店舗は、スコープを広げて、店舗別梱包対象チェーン店舗と直納対象チェーン店舗を併せたものにする」
- 店舗別梱包対象チェーン店舗と直納対象チェーン店舗はチェーン店舗のサブタイプ
問2-設問2-(2)
図7中のあ~くに入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ
- 「チェーン組織には、チェーン法人を越えて一意に識別できるチェーン組織コードを付与し、どのチェーン法人のチェーン組織なのかを設定する」
- 「受注先に該当するチェーン組織には受注先フラグを、納入先に該当するチェーン組織には納入先フラグを設定する」
- あ: チェーン組織コード(FK)、受注先フラグ、納入先フラグ
- 「その受注先がチェーンDCかチェーン本支部のいずれかを示す受注先区分を設定する」
- い: チェーン組織コード、受注先区分
- 「受注先は、受注の対象の納入先が全て分かるようにする」
- 受注先と納入先は、1対多なので、納入先に受注先チェーン組織コードをもたせる
- 「配送地域は、納入先に設定し、チェーンDCからは外す」
- う: チェーン組織コード、受注先チェーン組織コード(FK)、配送地域コード(FK)
- チェーンDC(チェーン法人コード、チェーンDCコード、梱包方法区分、チェーンDC名、配送地域コード(FK))
- 「配送地域は、納入先に設定し、チェーンDCからは外す」
- 梱包方法区分はスーパータイプ納入先に設定されているので、チェーンDCからは外す
- チェーンDCは、納入先のサブタイプだが、既に納入先と別のサロゲートキー{チェーン法人コード、チェーンDCコード}が設定されているので、納入先の主キー{チェーン組織コード)を外部キーに設定する
- え: チェーン組織コード(FK)
- 「受注し得るチェーン本支部について、コード及び名称を顧客から知らされて登録し、チェーン法人コードとチェーン本支部コードによって識別する」
- チェーン本支部は、受注先のサブタイプだが、既に受注先と別のサロゲートキー{チェーン法人コード、チェーン本支部コード}が設定されているので、受注先の主キー**{チェーン組織コード)を外部キーに**設定する
- お: チェーン組織コード(FK)、チェーン本支部名称
- チェーン店舗(チェーン法人コード、チェーン店舗コード、チェーンDCコード(FK)、チェーン店舗名)
- 「チェーンDCのないチェーン店舗が発生する」
- 「設計変更前に対象にしていたチェーン店舗を、店舗別梱包対象チェーン店舗に呼び替える」とあるので、チェーンDCコードは店舗別梱包対象チェーン店舗に移動
- 「チェーン店舗が店舗別梱包対象チェーン店舗か直接対象チェーン店舗のいずれかを示すチェーン店舗区分を設定する」
- か: チェーン店舗名、チェーン店舗区分
- 店舗別梱包対象チェーン店舗はチェーン店舗のサブタイプ
- チェーン店舗の主キーは{チェーン法人コード、チェーン店舗コード}
- き: チェーン法人コード、チェーン店舗コード
- 直納対象チェーン店舗はチェーン店舗のサブタイプ
- チェーン店舗の主キーは{チェーン法人コード、チェーン店舗コード}
- 直納対象チェーン店舗は納入先のサブタイプ
- 納入先の主キーは{チェーン組織コード}
- く: チェーン法人コード、チェーン店舗コード、チェーン組織コード(FK)
問2-設問2-(3)
次の表の①~③に、設計変更前にチェーンDCを参照していた三つのエンティティタイプ名とそれぞれに対応する設計変更後の参照先エンティティタイプ名を答えよ
- 図4にあるエンティティタイプのうち、チェーンDCコードを属性にもつエンティティタイプのうち、図7に無いものは、納入商品最終ロットだけ
- 図5にあるエンティティタイプのうち、チェーンDCコードを属性にもつエンティティタイプは、受注と出荷指示
納入商品最終ロット
- 「チェーンDCごとに、前回納入した製造ロットより古い商品を納入することを禁じる」
- 「チェーンDCと商品の組み合わせに対して、最終で引き当てた製造ロット番号を記録する」
- ロット逆転禁止の取決めは納入先であるチェーンDCごとに記録していたが、新たに直納対象チェーン店舗を加えた設計変更後は、両者を束ねたスーパータイプである納入先に差し替える
受注
- 「新たな受注先である量販店の本部又は支部をチェーン本支部という」
- 受注では、受注先としてチェーンDCを記録していたが、新たにチェーン本支部を加えた設計変更後は、両者を束ねたスーパータイプである受注先に差し替える
出荷指示
- 「出荷指示は、納入先別に行う」
- 設計変更後の納入先は、チェーンDCから納入先に差し替わる
設計変更前 | 設計変更後 |
---|---|
納入商品最終ロット | 納入先 |
受注 | 受注先 |
出荷指示 | 納入先 |