コマンド道場

$ cat /exam/db/past/2019-spring-am2

データベーススペシャリスト 平成31年度 春期 午前Ⅱ

全 25 問です。各問の「解答と解説を見る」を開くと正解が出ます。まず自分で解いてから開いてください。

問 1

応用技術

分散型データベースシステムにおいては,一貫性・可用性・分断耐性の三つの特性のうち,同時には最大二つまでしか満たすことができないとする理論はどれか。

  1. ア
    BASE 特性
  2. イ
    CAP 定理
  3. ウ
    アムダールの法則
  4. エ
    ベイズの定理
解答と解説を見る

正解: イ

結論: CAP 定理です。

なぜ: CAP は Consistency(一貫性)・Availability(可用性)・Partition tolerance(分断耐性)の頭文字です。ネットワークが分断されたとき、全員に同じ最新の値を見せる(C)か、どのノードも応答し続ける(A)かのどちらかを諦めなければならない、という主張です。

  • ア BASE 特性 … Basically Available・Soft state・Eventually consistent。CAP のうち可用性を優先し、一貫性は「いずれ揃えばよい」とする設計の方針で、三つのうち二つという理論ではありません
  • ウ アムダールの法則 … 処理の一部だけを並列化したとき、全体がどこまで速くなるかの上限を示す法則です
  • エ ベイズの定理 … 条件付き確率の関係を表す定理です(迷惑メールのベイジアンフィルタなどに使われます)

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問1(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 2

障害回復

次のチェックポイントの仕様に従ってトランザクション処理を行う DBMS において,チェックポイントの発生頻度は 1 時間当たり何回か。ここで,トランザクションは毎秒 20 件発生し,1 トランザクションごとに消費されるデータベースバッファ領域のデータ量及びログファイルに書き出すログ長はどちらも 10 k バイトとする。データベースバッファ領域の容量は 480 M バイトとし,一つのログファイルのサイズは 240 M バイトとする。1 M バイト=10³ k バイトとする。開始時点では,データベースバッファ領域,ログファイルともに初期化状態であるとする。DBMS は,ログファイルを二つもち,一方を使い切ったら他方に切り替え,使い切った一方をアーカイブして初期化する。ログファイルへの書込み処理は WAL プロトコルに従う。

〔チェックポイントの仕様〕 1. チェックポイントが発生する条件  A. データベースバッファ領域に空きがなくなったとき,又は  B. ログファイルが切り替わるとき 2. チェックポイント終了時のデータベースバッファの状態  データベースバッファ領域は,データベースファイルへの反映後,初期化される。
  1. ア
    1.5
  2. イ
    2
  3. ウ
    3
  4. エ
    6
解答と解説を見る

正解: ウ

結論: 20 分に 1 回=1 時間に 3 回です。

なぜ: 1 秒あたりの量を出してから、どちらの条件が先に来るかを比べます。

  • 1 秒に 20 件 × 10 k バイト = 200 k バイト/秒。バッファにもログにも同じ量が積もります
  • ログファイル(240 M バイト = 240,000 k バイト)は 240,000 ÷ 200 = 1,200 秒(20 分)で使い切り、切り替わります → 条件 B でチェックポイント
  • バッファ(480 M バイト)が満杯になるには 2,400 秒(40 分)かかります。ところが 20 分の時点でチェックポイントが起き、バッファはそこで初期化される(仕様 2)ので、バッファが満杯になる前に毎回リセットされます

したがって条件 A は一度も成立せず、条件 B だけが 20 分ごとに起きて、1 時間に 3 回です。

  • ア 1.5 … バッファが満杯になる 40 分ごとだけを数えた値です。ログの切り替えと、チェックポイントでのバッファの初期化を見落としています

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問2(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: 選択肢の数値はそのまま、仕様の箇条書きは原本の番号と記号のまま文章として示しています。

問 3

データモデル同じ設問が 令和3年度 秋期 午前Ⅱ 問2 にも出ています

部,課,係の階層関係から成る組織のデータモデルとして,モデル A ~ C の三つの案が提出された。これらに対する解釈として,適切なものはどれか。組織階層における組織の位置を組織レベルと呼ぶ。組織間の階層関係は,親子として記述している。親と子は循環しないものとする。ここで,モデルの表記には UML を用い,{階層} は組織の親と子の関連が循環しないことを指定する制約記述である。

1*親子1*親子部部コード課課コード係係コード
モデル A
0..1親*子組織組織コード組織レベル
モデル B({階層}:組織の親と子の関連が循環しないことを指定する制約)
1*親1子*組織組織コード組織レベル組織構造親組織コード子組織コード
モデル C
  1. ア
    新しい組織レベルを設ける場合,どのモデルも変更する必要はない。
  2. イ
    どのモデルも,一つの子組織が複数の親組織から管轄される状況を記述できない。
  3. ウ
    モデル B を関係データベース上に実装する場合,親は子の組織コードを外部キーとする。
  4. エ
    モデル C では,組織の親子関係が循環しないように制約を課す必要がある。
解答と解説を見る

正解: エ

結論: モデル C は親子を別の表(組織構造)に自由に書けるので、循環しないことはモデルの外で制約として課す必要があります。

なぜ: モデル C の組織構造は「親組織コード・子組織コード」の組を何行でも持てます。A の親が B、B の親が A、という組も書けてしまいます。モデル B には {階層} という制約が付いていますが、モデル C には付いていないので、別に制約を設けなければ循環を防げません。

  • ア … モデル A は部・課・係を別々のクラスにしているので、組織レベルを 1 つ増やすにはクラスを足す必要があります
  • イ … モデル C の組織構造は、同じ子組織に親を何行でも書けるので、複数の親から管轄される状況を記述できます
  • ウ … モデル B では子 1 つに対して親は 0..1 個です。実装では、子の側が親の組織コードを外部キーとして持ちます(親の側が子を持つと、子の数だけ列が要ってしまいます)

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問3(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: 3 つのクラス図はスキャン画像のため、クラス名・属性・多重度・役割名(親・子)・制約 {階層} を保ったまま SVG で描き直しています。スマホの幅に収めるため、モデル A・C は横並びを縦並びにし、モデル B の {階層} は図の見出しに書いています。(内容は原本のままです)

問 4

データモデル

プロパティグラフを表した図のデータモデルを適切に解釈したオブジェクト図はどれか。ここで,モデルの表記には UML を用いる。

〔データモデル(クラス図)〕 ・ノード(ノード名)どうしを結ぶ関連がある。多重度は両端とも 0..*。 ・この関連には、エッジ(エッジ名)が関連クラスとして破線でつながっている。 ・プロパティ(プロパティ名,プロパティ値)は、ノードに「所属する」(ノード側の多重度 0..1,プロパティ側 0..*)。 ・プロパティは、エッジにも「所属する」(エッジ側の多重度 0..1,プロパティ側 0..*)。 ・二つの「所属する」には、注記「制約:同時には成立しない」が破線でつながっている。
  1. ア
    ・E01:エッジ(エッジ名=中央線)と E02:エッジ(エッジ名=山手線)が実線のリンクで結ばれている。 ・そのリンクに、N01:ノード(ノード名=東京)が破線でつながっている。 ・P01:プロパティ(プロパティ名=時間(分),プロパティ値=6)が、N01 と実線のリンクで結ばれている。
  2. イ
    ・N01:ノード(ノード名=東京)と N02:ノード(ノード名=新宿)が実線のリンクで結ばれている。 ・そのリンクに、E01:エッジ(エッジ名=中央線)が破線でつながっている。 ・P01:プロパティ(プロパティ名=時間(分),プロパティ値=14)が、E01 と実線のリンクで結ばれている。
  3. ウ
    ・N01:ノード(ノード名=東京)と N02:ノード(ノード名=新宿)が実線のリンクで結ばれている。 ・そのリンクに、E01:エッジ(エッジ名=中央線)が破線でつながっている。 ・P01:プロパティ(プロパティ名=時間(分),プロパティ値=14)が、N01 と N02 の両方と実線のリンクで結ばれている。
  4. エ
    ・N01:ノード(ノード名=東京)と E01:エッジ(エッジ名=中央線)が実線のリンクで結ばれ、そのリンクに P01:プロパティ(プロパティ名=時間(分),プロパティ値=14)が破線でつながっている。 ・N01 と N02:ノード(ノード名=新宿)が実線のリンクで結ばれている。 ・N02 と E02:エッジ(エッジ名=山手線)が実線のリンクで結ばれ、そのリンクに P02:プロパティ(プロパティ名=時間(分),プロパティ値=12)が破線でつながっている。
解答と解説を見る

正解: イ

結論: ノード 2 つのリンクにエッジが付き、プロパティはそのエッジ 1 つにだけ所属するイです。

なぜ: このモデルの読み方は 3 点です。

1. エッジは「ノードとノードの関連」に付く関連クラスです。エッジのオブジェクトは、ノードどうしのリンクに付く形でしか現れません2. プロパティが所属する相手は、ノードなら 0..1 個、エッジでも 0..1 個です。1 つのプロパティが 2 つのノードに所属することはできません3. 制約「同時には成立しない」により、1 つのプロパティがノードとエッジの両方に所属することもできません

イは、東京と新宿のノードを結ぶリンクに中央線のエッジが付き、所要時間 14 分のプロパティがそのエッジだけに所属しています。3 点すべてを満たします。

  • ア … エッジどうしを結んだリンクにノードが付いています。モデルにあるのはノードどうしの関連で、エッジどうしの関連はありません
  • ウ … 1 つのプロパティが 2 つのノード(東京と新宿)に所属しています。ノード側の多重度 0..1 に反します
  • エ … ノードとエッジを結ぶリンクや、エッジの付かないノードどうしのリンクがあり、プロパティがそのリンクに付いています。モデルにノードとエッジの間の関連はありません

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: クラス図と 4 つのオブジェクト図はスキャン画像のため、スマホの幅で読めるよう、クラス・オブジェクト・多重度・線の種類(実線のリンク/破線の関連クラス・注記)を落とさずに文章で書き下しています。オブジェクト名・属性値は原本のままです。

問 5

論理設計

四つの表の関係を表す E-R 図として,適切なものはどれか。ここで,1 ― * は 1 対多の関連を表し,実線の下線は主キーを,破線の下線は外部キーを表す。

医師
医師番号
医師名
診療科コード
診療科
診療科コード
診療科名称
診察
診療科コード
患者番号
診察日時
患者
患者番号
患者名
  1. ア
    *1*11*医師診療科診察患者
  2. イ
    *11**1医師診療科診察患者
  3. ウ
    1**11*医師診療科診察患者
  4. エ
    1*1**1医師診療科診察患者
解答と解説を見る

正解: イ

結論: 外部キーを持つ側が「多」です。医師と診察が外部キーを持つので、イになります。

なぜ: 外部キーは「相手の主キーの値を 1 つ書き込む列」です。外部キーを持つ表の行は相手を 1 つだけ指し、相手の 1 行は何行からでも指されます。だから外部キーを持つ側が *(多)、指される側が 1 です。

  • 医師 ― 診療科 … 医師が診療科コードを外部キーに持つ → 医師 * ― 1 診療科
  • 診療科 ― 診察 … 診察が診療科コードを外部キーに持つ → 診療科 1 ― * 診察
  • 診察 ― 患者 … 診察が患者番号を外部キーに持つ → 診察 * ― 1 患者

この 3 つが揃うのはイだけです。ア・ウは診療科と診察の向きが逆(診療科が診察を指すことになる)、ウ・エは医師と診療科の向きが逆です。エは「1 人の医師が複数の診療科を持つ」形で、医師の表に診療科コードが 1 列しかないことと合いません。

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: 4 つの E-R 図はスキャン画像のため、スマホの幅に収まるよう、横一列の 4 つの箱を縦に並べて描き直しています。箱の順(医師・診療科・診察・患者)と、各関連の両端の多重度は原本のままです。

問 6

データモデル

“学生は,学期が異なれば同じ授業科目を何度でも履修できる” を適切に表現しているデータモデルはどれか。ここで,モデルの表記には UML を用いる。

  1. ア
    学期 1 ― * 学生 の関連と,学生 * ― * 授業科目 の関連(関連名“履修する”)がある。
  2. イ
    学生 * ― * 授業科目 の関連(関連名“履修する”)があり,この関連に学期が関連クラスとして破線でつながっている。
  3. ウ
    学生 1 ― * 授業科目 の関連(関連名“履修する”)と,学生 1 ― * 学期 の関連がある。
  4. エ
    学生・授業科目・学期の 3 つを結ぶ三項関連(ひし形,関連名“履修する”)があり,多重度は学生 *,授業科目 *,学期 * である。
解答と解説を見る

正解: エ

結論: 学生・授業科目・学期の 3 つ組で 1 回の履修を表す三項関連のエです。

なぜ: 「学期が異なれば同じ科目を何度でも」は、(学生, 授業科目, 学期)の組ごとに 1 件の履修があるという意味です。エの三項関連はまさにその組を 1 つのリンクにするので、同じ学生・同じ科目でも、学期が違えば別のリンクとして何件でも持てます。

  • イ … 関連クラスは、学生と授業科目の 1 組につき 1 つしか作れません(UML の関連は、同じ 2 者の間にリンクを 1 本しか持たないのが既定)。同じ学生と科目の組に学期を 2 つ付けることはできず、「何度でも」を表せません
  • ア … 学生と授業科目の関連は 1 組 1 本で、学期は「学生が属する学期」になっています。履修した学期を表していません
  • ウ … 授業科目の側の多重度が学生 1 なので、1 つの科目を 1 人しか履修できないモデルです

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問6(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: 4 つのクラス図はスキャン画像のため、スマホの幅で読めるよう、クラス・多重度・関連名・線の種類(破線の関連クラス、ひし形の三項関連)を落とさずに文章で書き下しています。

問 7

正規化同じ設問が 令和3年度 秋期 午前Ⅱ 問5 にも出ています

第 1 正規形から第 5 正規形までの正規化に関する記述のうち,適切なものはどれか。

  1. ア
    正規形にする分解は全て関数従属性が保存される。
  2. イ
    正規形にする分解は全て情報無損失の分解である。
  3. ウ
    第 3 正規形への分解では,情報無損失かつ関数従属性が保存される。
  4. エ
    第 4 正規形から第 5 正規形への分解は自明な多値従属性が保存される分解である。
解答と解説を見る

正解: ウ

結論: 第 3 正規形までなら、情報無損失で、しかも関数従属性を保存したまま分解できます。

なぜ: 第 3 正規形への分解には、どんな関係でも「元に戻せる(情報無損失)」かつ「元の関数従属を分解後の表だけで確かめられる(従属性保存)」分解が必ず存在することが知られています。

  • ア … ボイス・コッド正規形への分解では、関数従属性を保存できない場合があります
  • イ … 「正規形にする分解は全て」が言いすぎです。分け方を誤れば、結合しても元に戻らない(情報が失われる)分解もできてしまいます
  • エ … 第 5 正規形への分解は結合従属性を扱うもので、多値従属性の保存を言うものではありません

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問7(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 8

正規化

第 3 正規形において存在する可能性のある関数従属はどれか。

  1. ア
    候補キーから繰返し属性への関数従属
  2. イ
    候補キーの真部分集合から他の候補キーの真部分集合への関数従属
  3. ウ
    候補キーの真部分集合から非キー属性への関数従属
  4. エ
    非キー属性から他の非キー属性への関数従属
解答と解説を見る

正解: イ

結論: 候補キーの一部から、別の候補キーの一部への関数従属は、第 3 正規形でも残りえます。

なぜ: 第 3 正規形が禁じるのは「非キー属性(どの候補キーにも含まれない属性)が、候補キー全体以外のものに従属すること」です。従属される側がキー属性(候補キーに含まれる属性)なら、第 3 正規形の条件には引っかかりません。イの従属先は「他の候補キーの真部分集合」=キー属性なので、第 3 正規形でも存在しえます(これを取り除くのがボイス・コッド正規形です)。

ほかはそれぞれ、もっと手前の正規形で取り除かれます。

  • ア … 繰返し属性があれば、そもそも第 1 正規形ではありません
  • ウ … 候補キーの一部への従属=部分関数従属。第 2 正規形で取り除かれます
  • エ … 非キー属性から非キー属性への従属は推移的関数従属を生みます。第 3 正規形で取り除かれます

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 9

同時実行制御

トランザクションの隔離性水準のうち,次の (1),(2) に該当する SQL の指定はどれか。 (1) 対象の表のダーティリードは回避できる。 (2) 一つのトランザクション中で,対象の表のある行を 2 回以上参照する場合,1 回目の読込みの列値と 2 回目以降の読込みの列値が同じであることが保証されない。

  1. ア
    READ COMMITTED
  2. イ
    READ UNCOMMITTED
  3. ウ
    REPEATABLE READ
  4. エ
    SERIALIZABLE
解答と解説を見る

正解: ア

結論: READ COMMITTED です。

なぜ: (1) は「コミット前の値は読まない」、(2) は「同じ行を読み直すと値が変わりうる(反復不能読み取りが起きる)」です。SQL 標準の 4 つの水準のうち、この 2 つが同時に当てはまるのは READ COMMITTED だけです。READ COMMITTED は、文を実行するたびに、その時点でコミット済みの値を読みます。そのため、途中で別のトランザクションがコミットすると、2 回目の読み込みでは新しい値が見えます。

  • イ READ UNCOMMITTED … 標準ではダーティリードを許す水準なので、(1) を満たしません
  • ウ REPEATABLE READ・エ SERIALIZABLE … 一度読んだ行は読み直しても同じ値であることを保証するので、(2) に当てはまりません

PostgreSQL では READ UNCOMMITTED を指定しても READ COMMITTED として動きますが、標準の定義としては上のとおりです。

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問9(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 10

同時実行制御

t₁〜t₁₀ の時刻でスケジュールされたトランザクション T₁〜T₄ がある。時刻 t₁₀ で T₁ が commit を発行する直前の,トランザクションの待ちグラフを作成した。a に当てはまるトランザクションはどれか。ここで,select (X) は共有ロックを掛けて資源 X を参照することを表し,update (X) は専有ロックを掛けて資源 X を更新することを表す。これらのロックは,commit されるまでアンロックされないものとする。また,トランザクションの待ちグラフの矢印は,Tᵢ→Tⱼ としたとき,Tⱼ がロックしている資源のアンロックを,Tᵢ が待つことを表す。

〔トランザクションのスケジュール〕
時刻T₁T₂T₃T₄
t₁select (A)---
t₂-select (B)--
t₃--select (A)-
t₄---select (B)
t₅---update (B)
t₆select (C)---
t₇-select (C)--
t₈-update (C)--
t₉--update (A)-
t₁₀commit---
dacb
〔トランザクションの待ちグラフ〕
  1. ア
    T₁
  2. イ
    T₂
  3. ウ
    T₃
  4. エ
    T₄
解答と解説を見る

正解: イ

結論: a は T₂ です。

なぜ: 共有ロックどうしはぶつかりませんが、専有ロックは、他が共有ロックを持っている資源には掛けられず待たされます。待たされる時刻を順に拾います。

  • t₅ T₄ が update (B)。B には T₂ が t₂ で共有ロックを掛けている(T₄ 自身も t₄ で共有ロックを持つ)→ T₄ → T₂
  • t₈ T₂ が update (C)。C には T₁ が t₆ で共有ロックを掛けている → T₂ → T₁
  • t₉ T₃ が update (A)。A には T₁ が t₁ で共有ロックを掛けている → T₃ → T₁

待ちグラフは T₄ → T₂ → T₁ ← T₃ になります。図と見比べると、矢印を 2 本受ける d が T₁、d へ向かう a・c のうち、さらに b から矢印を受けている a が T₂(b が T₄、c が T₃)です。

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: スケジュールは HTML の表として、待ちグラフは丸と矢印の図として組み直しています。矢印の向きとノードの名前は原本のままです。

問 11

SQL

“社員取得資格” 表に対し,SQL 文を実行して結果を得た。SQL 文の a に入れる字句はどれか。

社員取得資格
社員コード資格
S001FE
S001AP
S001DB
S002FE
S002SM
S003FE
S004AP
S005NULL
〔結果〕
社員コード資格1資格2
S001FEAP
S002FENULL
S003FENULL
〔SQL 文〕
SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2
    FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2
        [ a ]
  1. ア
    ON C1.社員コード = C2.社員コード
        AND C1.資格 = 'FE' AND C2.資格 = 'AP'
    WHERE C1.資格 = 'FE'
  2. イ
    ON C1.社員コード = C2.社員コード
        AND C1.資格 = 'FE' AND C2.資格 = 'AP'
    WHERE C1.資格 IS NOT NULL
  3. ウ
    ON C1.社員コード = C2.社員コード
        AND C1.資格 = 'FE' AND C2.資格 = 'AP'
    WHERE C2.資格 = 'AP'
  4. エ
    ON C1.社員コード = C2.社員コード
    WHERE C1.資格 = 'FE' AND C2.資格 = 'AP'
解答と解説を見る

正解: ア

結論: 相手の条件(C2.資格 = 'AP')は ON に、残したい行の条件(C1.資格 = 'FE')は WHERE に書きます。

なぜ: 結果は「FE を持つ社員 3 人(S001・S002・S003)全員」と、その人が AP を持っていればその資格、持っていなければ NULL です。外部結合では、ON の条件は結合の前、WHERE の条件は結合の後に効きます。

  • ア … ON で「同じ社員の AP の行」だけを相手にし、相手が無ければ NULL で残す。最後に WHERE で C1 を FE の行に絞る → 結果と一致
  • イ … WHERE が IS NOT NULL なので、C1 の FE 以外の行(AP・DB・SM)も相手 NULL のまま残り、行が多すぎる
  • ウ … WHERE で C2.資格 = 'AP' に絞るので、相手が NULL の S002・S003 が消える
  • エ … AP の条件まで WHERE に書いたので、これも相手の無い S002・S003 が消える(内部結合と同じ結果になる)

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問11(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: “社員取得資格” 表と結果は HTML の表として組み直しています。SQL 文と選択肢は原文のまま等幅で示しています。原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています。(内容は原本のままです)

問 12

関係データベース理論

和両立である関係 R と S がある。R∩S と等しいものはどれか。ここで,-は差演算,∩は共通集合演算を表す。

  1. ア
    R-(R-S)
  2. イ
    R-(S-R)
  3. ウ
    (R-S)-(S-R)
  4. エ
    S-(R-S)
解答と解説を見る

正解: ア

結論: R-(R-S) です。

なぜ: R-S は「R にだけあって S に無いもの」です。R からそれを取り除けば、残るのは「R にあって S にもあるもの」= R∩S です。

ほかの選択肢を同じように読むと:

  • イ … S-R の要素は R に含まれないので、R から引いても何も減らず R のまま
  • ウ … R-S と S-R は共通部分が無いので、引いても何も減らず R-S のまま
  • エ … R-S の要素は S に含まれないので、S から引いても何も減らず S のまま

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問12(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 13

関係データベース理論

属性が n 個ある関係の異なる射影は幾つあるか。ここで,射影の個数には,元の関係と同じ結果となる射影,及び属性を全く含まない射影を含めるものとする。

  1. ア
    2n
  2. イ
    2ⁿ
  3. ウ
    log₂n
  4. エ
    n
解答と解説を見る

正解: イ

結論: 2ⁿ 個です。

なぜ: 射影は「どの属性を残すか」を選ぶ演算です。n 個の属性それぞれについて「残す・残さない」の 2 通りがあるので、選び方は 2 × 2 × … × 2(n 回)= 2ⁿ 通りです。

問題文が「全部残す(元と同じ)」と「1 つも残さない」も数えると断っているので、両端を引く必要はありません。例えば属性が A・B の 2 つなら、{A, B}・{A}・{B}・{ } の 4 = 2² 通りです。

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問13(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: 選択肢の添字と指数(log の 2、2 の n 乗)は、上付き・下付きの文字で 1 行に書いています(内容は原本のままです)。

問 14

SQL同じ設問が 令和3年度 秋期 午前Ⅱ 問10 にも出ています

ある電子商取引サイトでは,会員の属性を柔軟に変更できるように,“会員項目” 表で管理することにした。“会員項目” 表に対し,次の条件で SQL 文を実行して結果を得る場合,SQL 文の a に入れる字句はどれか。ここで,実線の下線は主キーを,NULL は値がないことを表す。

〔条件〕 (1) 同一 “会員番号” をもつ複数の行によって,1 人の会員の属性を表す。 (2) 新規に追加する行の行番号は,最後に追加された行の行番号に 1 を加えた値とする。 (3) 同一 “会員番号” で同一 “項目名” の行が複数ある場合,より大きい行番号の項目値を採用する。
会員項目
行番号会員番号項目名項目値
10111会員名情報太郎
20111最終購入年月日2019-02-05
30112会員名情報花子
40112最終購入年月日2019-01-30
50112最終購入年月日2019-02-01
60113会員名情報次郎
〔結果〕
会員番号会員名最終購入年月日
0111情報太郎2019-02-05
0112情報花子2019-02-01
0113情報次郎NULL
〔SQL 文〕
SELECT 会員番号,
    [ a ] (CASE WHEN 項目名='会員名' THEN 項目値 END) AS 会員名,
    [ a ] (CASE WHEN 項目名='最終購入年月日' THEN 項目値 END)
        AS 最終購入年月日
  FROM ( SELECT 会員番号, 項目名, 項目値 FROM 会員項目
           WHERE 行番号 IN ( SELECT [ a ] (行番号) FROM 会員項目
                               GROUP BY 会員番号, 項目名 )
       ) T
  GROUP BY 会員番号
  ORDER BY 会員番号
  1. ア
    COUNT
  2. イ
    DISTINCT
  3. ウ
    MAX
  4. エ
    MIN
解答と解説を見る

正解: ウ

結論: 3 か所の a はすべて MAX です。

なぜ: 3 か所それぞれで役割が違いますが、MAX ならどれも成り立ちます。

  • 副問い合わせの MAX(行番号) … 会員番号と項目名ごとにいちばん大きい行番号を選ぶ。条件 (3)「より大きい行番号の値を採用」そのものです。0112 の最終購入年月日は行番号 4 と 5 があり、5(2019-02-01)が残ります
  • 外側の MAX(CASE …) … 会員ごとにまとめると、CASE は該当する項目の行だけ値を返し、他の行は NULL になります。集約関数は NULL を無視するので、MAX で唯一の値が取り出せます。0113 は最終購入年月日の行が無いので NULL になります

ほかの選択肢では結果が合いません。

  • エ MIN … 副問い合わせで小さい行番号(古い値)が選ばれ、0112 の最終購入年月日が 2019-01-30 になってしまいます
  • ア COUNT … 件数(数)を返すので、副問い合わせは行番号ではなく件数を返し、外側も名前ではなく数になります
  • イ DISTINCT … 関数ではないので、この位置には書けず構文エラーになります

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: “会員項目” 表と結果は HTML の表として組み直しています。主キーの下線も再現しています。SQL 文は原文のまま等幅で示しています。原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています。(内容は原本のままです)

問 15

同時実行制御

分散データベースシステムにおいて,複数のデータベースサイトを更新する場合に用いられる 2 相コミットの処理手順のうち,適切なものはどれか。

  1. ア
    主サイトが各データベースサイトにコミット準備要求を発行した場合,各データベースサイトは,準備ができていない場合だけ応答を返す。
  2. イ
    主サイトは,各データベースサイトにコミットを発行し,コミットが失敗した場合には,再度コミットを発行する。
  3. ウ
    主サイトは,各データベースサイトのロックに成功した後,コミットを発行し,各データベースサイトをアンロックする。
  4. エ
    主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
解答と解説を見る

正解: エ

結論: 2 相コミットは、まず全サイトに「コミットできるか」を確かめ(第 1 相)、全員が「できる」と答えてからコミットを指示する(第 2 相)手順です。

なぜ: 全サイトが同じ結論(全部コミットか、全部ロールバックか)にそろうことが目的です。第 1 相で 1 つでも「できない」と答えたサイトがあれば、主サイトは全サイトにロールバックを指示します。

  • ア … 第 1 相では、各サイトは準備ができた場合も、できない場合も応答を返します。準備ができた場合に黙っていると、主サイトは「応答なし」と「準備完了」を区別できません
  • イ … いきなりコミットを発行しており、第 1 相(確認)がありません。一部のサイトだけがコミットしてしまうおそれがあります
  • ウ … ロックとアンロックの話で、コミットの可否をそろえる仕組みになっていません

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 16

性能設計

関係データベースにおいて,タプル数 n の表二つに対する結合操作を,入れ子ループ法によって実行する場合の計算量はどれか。

  1. ア
    O(n)
  2. イ
    O(log n)
  3. ウ
    O(n²)
  4. エ
    O(n log n)
解答と解説を見る

正解: ウ

結論: O(n²) です。

なぜ: 入れ子ループ法は、外側の表の 1 行ごとに、内側の表を最初から最後まで読む方式です。外側が n 行、内側も n 行なので、比べる回数は n × n = n² 回になります。

内側の表に索引があれば、1 行ごとの探索が速くなり O(n log n) 程度まで下がります(エ)。並べ替えてから突き合わせるマージ結合も、並べ替えの分で O(n log n) です。何の工夫も無い入れ子ループが、いちばん素直で、いちばん遅い方式です。

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問16(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

改変: 選択肢の 2 乗は上付きの文字で書いています(内容は原本のままです)。

問 17

性能設計

分散型データベースで結合演算を行うとき,通信負荷を最も小さくすることができる手法はどれか。ここで,データベースは異なるコンピュータ上に格納されて,かつ結合演算を行う表の行数が,双方で大きく異ならないものとする。

  1. ア
    入れ子ループ法
  2. イ
    インデックスジョイン法
  3. ウ
    セミジョイン法
  4. エ
    マージジョイン法
解答と解説を見る

正解: ウ

結論: セミジョイン法です。

なぜ: セミジョイン法は、表をまるごと送らず、結合に使う列の値だけを相手のサイトへ送ります。相手のサイトでその値と一致する行だけを選んで送り返すので、結合に関係しない行や列は通信に乗りません。表の行数が双方で大きく違わないとき、どちらかの表を丸ごと送る方式より通信量を小さくできます。

  • ア 入れ子ループ法・イ インデックスジョイン法・エ マージジョイン法 … どれも「1 台のコンピュータの中で 2 つの表をどう突き合わせるか」の方式です。分散環境で使うと、片方の表(の行)をそのまま相手に送る必要があり、通信量を減らす工夫にはなっていません

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 18

同時実行制御

DBMS の多版同時実行制御(MVCC)に関する記述として,適切なものはどれか。

  1. ア
    同時実行される二つのトランザクションのうち,先発のトランザクションがデータを更新し,コミットする前に,後発のトランザクションが同じデータを参照すると,更新前の値を返す。
  2. イ
    トランザクションがデータを更新する前に専有ロックを,参照する前に共有ロックを掛け,コミットかロールバック後に全てアンロックする。
  3. ウ
    トランザクションがデータを更新する前に専有ロックを,参照する前に共有ロックを掛け,専有ロックはコミットかロールバック後までアンロックしないが,共有ロックは不必要になったらアンロックする。
  4. エ
    トランザクションがデータを更新する前にロックを掛けず,コミット直前に他のトランザクションがそのデータを更新したかどうか確認し,更新していないときだけコミットする。
解答と解説を見る

正解: ア

結論: MVCC は、更新しても古い版を残しておき、読む側にはコミット済みの版を見せる方式です。

なぜ: 更新のたびに新しい版を作るので、まだコミットしていない更新があっても、他のトランザクションは更新前の版を読めます。読む側は書く側を待たず、書く側も読む側を待ちません。アはこの動きそのものです。

  • イ … 共有ロック・専有ロックをコミットまで持ち続ける厳格な 2 相ロックの説明です
  • ウ … 共有ロックだけ早めに外す、ロックによる方式の一種です。版は出てきません
  • エ … ロックを掛けずに進め、最後に衝突を確かめる楽観的同時実行制御の説明です

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問18(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 19

応用技術

ビッグデータの処理に使用される CEP(複合イベント処理)に関する記述として,適切なものはどれか。

  1. ア
    ストリームデータをメモリ上に展開し,あらかじめ設定した条件に合致した場合に対応するアクションを実行する。
  2. イ
    ビジネスの結果を表す数値データをファクトテーブル,そのデータの解析に必要なデータを次元テーブルに格納して処理する。
  3. ウ
    分散データベースにおいて,関係する全てのプロセスでコミットが可能かを判定する相と,各プロセスで実際のコミットを行う相の二つを経てコミット処理を実行する。
  4. エ
    並列分散環境にある多数のサーバによって,分散ファイルシステムに蓄積された大量データをバッチ処理する。
解答と解説を見る

正解: ア

結論: CEP は、流れてくるデータ(ストリーム)をその場で見張り、条件に合った瞬間に処理を起こす仕組みです。

なぜ: センサーの値や取引の記録のように絶え間なく届くデータを、いったんデータベースに貯めてから調べるのではなく、メモリ上で到着順に条件と照らし合わせます。「5 分以内に同じカードで 3 回失敗」のような複数の出来事の組合せを捉えて、すぐに通知などのアクションを起こせるのが特徴です。

  • イ … データウェアハウスのスタースキーマの説明です
  • ウ … 2 相コミットの説明です
  • エ … 分散ファイルシステム上のデータをバッチで処理する方式(MapReduce など)の説明で、即時に反応する CEP とは逆の考え方です

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問19(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 20

セキュリティ

インターネットで電子メールを送信するとき,メッセージの本文の暗号化に共通鍵暗号方式を用い,共通鍵の受渡しに公開鍵暗号方式を用いるものはどれか。

  1. ア
    AES
  2. イ
    IPsec
  3. ウ
    MIME
  4. エ
    S/MIME
解答と解説を見る

正解: エ

結論: S/MIME です。

なぜ: S/MIME はメールの本文を、その都度作った共通鍵で暗号化し、その共通鍵を受信者の公開鍵で暗号化して一緒に送ります。受信者は自分の秘密鍵で共通鍵を取り出し、本文を復号します。大きな本文は速い共通鍵暗号で、鍵の受け渡しだけを公開鍵暗号で行う組合せです。

  • ア AES … 共通鍵暗号のアルゴリズムそのものです。S/MIME の中で本文の暗号化に使われることはありますが、鍵の受け渡しの仕組みは含みません
  • イ IPsec … メールに限らず、IP の層で通信を暗号化する仕組みです
  • ウ MIME … 日本語や添付ファイルをメールで送るための形式の規格で、暗号化の機能はありません

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問20(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 21

セキュリティ同じ設問が 令和3年度 秋期 午前Ⅱ 問20 にも出ています

迷惑メールの検知手法であるベイジアンフィルタの説明はどれか。

  1. ア
    信頼できるメール送信元を許可リストに登録しておき,許可リストにないメール送信元からの電子メールは迷惑メールと判定する。
  2. イ
    電子メールが正規のメールサーバから送信されていることを検証し,迷惑メールであるかどうかを判定する。
  3. ウ
    電子メールの第三者中継を許可しているメールサーバを登録したデータベースの掲載情報を基に,迷惑メールであるかどうかを判定する。
  4. エ
    利用者が振り分けた迷惑メールと正規のメールから特徴を学習し,迷惑メールであるかどうかを統計的に判定する。
解答と解説を見る

正解: エ

結論: ベイジアンフィルタは、利用者が仕分けたメールから特徴を学び、確率で判定する方式です。

なぜ: 「迷惑メールに出やすい語」「正規のメールに出やすい語」を、利用者が振り分けた実例から数えておきます。新しいメールが届いたら、含まれる語からベイズの定理で迷惑メールである確率を計算し、高ければ迷惑メールと判定します。使うほど利用者の傾向に合っていくのが特徴です。

  • ア … 許可リスト(ホワイトリスト)方式
  • イ … 送信ドメイン認証(SPF や DKIM など)
  • ウ … 第三者中継を許すサーバの一覧(ブラックリスト)を使う方式

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問21(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 22

コンピュータ構成要素

キャッシュメモリの動作に関する記述のうち,適切なものはどれか。

  1. ア
    キャッシュミスが発生するとキャッシュ全体は一括消去され,主記憶から最新のデータが転送される。
  2. イ
    キャッシュメモリには,メモリアクセスの実効速度を上げる効果がない。
  3. ウ
    キャッシュメモリにヒットすると,主記憶から最新のデータが転送される。
  4. エ
    主記憶のアクセス時間とプロセッサの命令実行時間との差が大きいマシンでは,キャッシュメモリによって実効アクセス時間の短縮が期待できる。
解答と解説を見る

正解: エ

結論: 主記憶が遅いほど、速いキャッシュで肩代わりする効果が大きくなります。

なぜ: 実効アクセス時間は「ヒット率 × キャッシュのアクセス時間 +(1 − ヒット率)× 主記憶のアクセス時間」です。主記憶が遅く、プロセッサとの差が大きいマシンほど、ヒットしたときに節約できる時間が大きく、キャッシュの効き目がはっきり出ます。

  • ア … キャッシュミスのときに入れ替えるのは必要なデータを含むブロックだけです。キャッシュ全体を消すことはしません
  • イ … 実効速度を上げることこそがキャッシュの目的です
  • ウ … ヒットしたときはキャッシュから読みます。主記憶から転送するのはミスしたときです

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問22(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 23

システム構成要素

Web システムの負荷分散技術の一つである,ロードバランサ方式の特徴として,最も適切なものはどれか。

  1. ア
    Web ブラウザのキャッシュ機能によって負荷が均等に分散しない場合がある。
  2. イ
    接続されたサーバの死活状態をロードバランサは考慮せずに選択する。
  3. ウ
    複数のサーバそれぞれにグローバル IP アドレスの固定割当てが必要になる。
  4. エ
    ヘルスチェックに失敗しているサーバをロードバランサは選択しない。
解答と解説を見る

正解: エ

結論: ロードバランサは、各サーバに定期的に問い合わせて(ヘルスチェック)、応答しないサーバには要求を振り分けません。

なぜ: 利用者の要求はいったんロードバランサが受け、その時点で動いているサーバの中から送り先を選びます。故障したサーバを自動で外せることが、ロードバランサを置く大きな理由です。

ほかの選択肢は、名前解決で振り分ける DNS ラウンドロビンの特徴です。

  • ア … 名前解決の結果がブラウザや DNS にキャッシュされると、同じ利用者は同じサーバに行き続け、負荷が偏ります
  • イ … DNS ラウンドロビンは、止まっているサーバのアドレスも順番どおりに返してしまいます
  • ウ … 利用者が各サーバに直接つなぐので、サーバごとにグローバル IP アドレスが要ります。ロードバランサ方式では、外に見せるのはロードバランサのアドレスだけで済みます

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問23(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 24

開発技術

SOA において,異なるアプリケーションソフトウェアやコンポーネントの間でのデータのやり取りを行うために,データ形式の変換,データの振り分け,非同期連携などの機能を実現するものはどれか。

  1. ア
    BPEL
  2. イ
    BPMN
  3. ウ
    ESB
  4. エ
    SOAP
解答と解説を見る

正解: ウ

結論: ESB(Enterprise Service Bus)です。

なぜ: ESB は、サービス同士を直接つながず、間に置いた共通の通り道(バス)を経由させる仕組みです。バスがデータ形式の変換・宛先への振り分け(ルーティング)・メッセージをためておいて後で渡す非同期連携などを引き受けるので、各サービスは相手の形式や都合を知らなくて済みます。

  • ア BPEL … 複数のサービスを呼び出す順序(業務の流れ)を、実行できる形で書く言語です
  • イ BPMN … 業務の流れを図で表す表記法です
  • エ SOAP … サービス間でやり取りする XML のメッセージの形式と手順です。変換や振り分けを担う仕組みではありません

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問24(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

問 25

セキュリティ

コンテンツの不正な複製を防止する方式の一つである DTCP-IP の説明として,適切なものはどれか。

  1. ア
    BS デジタル放送や地上デジタル放送に採用され,コピーワンスの番組を録画するときに使われる方式
  2. イ
    DLNA とともに用いられ,接続する機器間で相互認証し,保護されたコンテンツの再生を可能にする方式
  3. ウ
    DVD に採用され,映像コンテンツを暗号化して,複製できないエリアにその暗号化鍵を記録する方式
  4. エ
    HDMI 端子が搭載されたディジタル AV 機器に採用され,HDMI 端子から表示機器にディジタル信号を送るときに受信する経路を暗号化する方式
解答と解説を見る

正解: イ

結論: DTCP-IP は、家庭内のネットワーク(IP)でつながった機器どうしが認証し合い、暗号化したまま映像を送る方式です。

なぜ: DTCP(Digital Transmission Content Protection)は、機器の間でコンテンツを送るときの保護の規格で、DTCP-IP はそれを IP のネットワークに適用したものです。送る側と受ける側が互いに正規の機器かを認証して鍵を交換し、その鍵で暗号化して送ります。家庭内ネットワークの機器をつなぐ DLNA のガイドラインで、著作権保護の方式として使われています。

  • ア … デジタル放送の番組の複製を制御する仕組みの説明で、機器間の伝送の保護である DTCP-IP ではありません
  • ウ … DVD のコンテンツ保護(CSS)の説明です
  • エ … HDMI で表示機器へ送る信号を保護する HDCP の説明です

解説は本サイトが独自に作成したものです。根拠にした一次情報は次のとおりです。

出典: 平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問25(IPA 独立行政法人 情報処理推進機構)/問題冊子・解答例

出典と改変について

設問と選択肢は IPA(独立行政法人 情報処理推進機構)が公開している問題冊子からの引用です。正解は同じく IPA が公開している解答例で確認しています。原本の図表はスキャン画像のため、内容を変えずに読みやすく組み直しました。何を組み直したかは各問に書いています。解説は本サイトが独自に作成したもので、IPA の見解ではありません。本サイトは IPA とは関係のない非公式のサイトです。

← 過去問の一覧へ戻る