コマンド道場

$ cat /exam/db/past/2023-autumn-am2

データベーススペシャリスト 令和5年度 秋期 午前Ⅱ

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

1

応用技術

CAP 定理に関する記述として,適切なものはどれか。

  1. システムの可用性は基本的に高く,サービスは利用可能であるが,整合性については厳密ではない。しかし,最終的には整合性が取れた状態となる。
  2. トランザクション処理は,データの整合性を保証するので,実行結果が矛盾した状態になることはない。
  3. 複数のトランザクションを並列に処理したときの実行結果と,直列で逐次処理したときの実行結果は一致する。
  4. 分散システムにおいて,整合性,可用性,分断耐性の三つを同時に満たすことはできない。
解答と解説を見る

正解:

結論: 整合性・可用性・分断耐性の 3 つは同時に満たせません。

なぜ: ネットワークが分断されて連絡が取れなくなったとき、選べる道は 2 つしかありません。

  • 返事をしない(可用性を捨てる)… 他のノードと揃っている確信が持てないので答えない
  • 古いかもしれない値を返す(整合性を捨てる)… とにかく答える

分断そのものは避けられない以上、残りの 2 つのどちらかを諦めるしかないというのが CAP 定理です。

アは結果整合性(BASE)の説明、イは ACID の一貫性、ウは直列化可能性の説明で、いずれも CAP 定理そのものではありません。

⚠️ 「3 つのうち 2 つを選ぶ」と要約されがちですが、正確には分断が起きたときに整合性か可用性かを選ぶという話です。分断が起きていない平常時は両方満たせます。

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

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

2

応用技術

大文字のアルファベットで始まる膨大な数のデータを,規則に従って複数のノードに割り当てる。このようにあらかじめ定めた規則に従って,複数のノードにデータを分散して割り当てる方法はどれか。

〔規則〕 ・データの先頭文字が A〜G の場合はノード 1 に格納する。 ・データの先頭文字が H〜N の場合はノード 2 に格納する。 ・データの先頭文字が O〜Z の場合はノード 3 に格納する。
  1. 2 相コミットプロトコル
  2. コンシステントハッシング
  3. シャーディング
  4. レプリケーション
解答と解説を見る

正解:

結論: シャーディングです。

なぜ: 1 つの大きなデータを、決めた規則で切り分けて複数のノードに分けて置くのがシャーディングです。設問の規則(先頭文字が A〜G ならノード 1、H〜N ならノード 2…)がまさにその切り分け方にあたります。1 台に収まらない量を扱えるようになり、読み書きも分散します。

  • … 2 相コミットは、複数ノードにまたがる更新を全部成功か全部失敗かにそろえる手順です
  • … コンシステントハッシングも分散の方法ですが、ハッシュ値で割り当てます。設問は「先頭文字の範囲」というあらかじめ定めた規則なので、こちらではありません
  • … レプリケーションは同じデータの複製を複数ノードに置くことで、分けて置くのとは逆です

⚠️ シャーディングは分けて置く、レプリケーションは同じものを複数置く。目的も違い(容量と性能 / 可用性)、実際のシステムでは両方を組み合わせます。

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

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

3

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

概念データモデルの説明として,最も適切なものはどれか。

  1. 階層モデル,ネットワークモデル,関係モデルがある。
  2. 業務プロセスを抽象化して表現したものである。
  3. 集中型 DBMS を導入するか,分散型 DBMS を導入するかによって内容が変わる。
  4. 対象世界の情報構造を抽象化して表現したものである。
解答と解説を見る

正解:

結論: 概念データモデルは、対象世界(現実の業務)の情報構造を抽象化して表したものです。

なぜ: 概念・論理・物理の 3 層のうち、概念データモデルは製品にも実装方式にも依存しません。したがってウのように DBMS の種類で内容が変わることはありません。

アの階層・ネットワーク・関係は、どうデータを格納・操作するかを決める論理データモデルの分類です。

イは業務プロセス(処理の流れ)の話で、データの構造ではありません。概念データモデルが表すのは「何があって、何とどう関係しているか」です。

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

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

4

性能設計

B+木インデックスが定義されている候補キーを利用して,1 件のデータを検索するとき,データ総件数 X に対する B+木インデックスを格納するノードへのアクセス回数のオーダーはどれか。

  1. √X
  2. log X
  3. X
  4. X!
解答と解説を見る

正解:

結論: log X です。

なぜ: B+木は、1 つのノードから何本も枝が出る木です。根から葉まで降りるのに読むノード数は木の高さと同じで、データが何倍になっても高さはわずかしか増えません

枝が n 本なら、1 段降りるごとに候補が n 分の 1 に絞られます。X 件を 1 件まで絞るのに必要な段数が、そのまま log X です。

だからこそ、件数が 100 万件でも 1 億件でも、数回のアクセスで目的の行にたどり着けます。ウの X は全件を順に見る場合(インデックスを使わない全表走査)で、B+木を使う意味がありません。

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

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

5

論理設計

従業員番号と氏名と使用できるプログラム言語を管理するために,“従業員” 表及び “プログラム言語” 表を設計する。“プログラム言語を 2 種類以上使用できる従業員がいる。プログラム言語を全く使用できない従業員もいる。” という状況を管理する “プログラム言語” 表の設計として,適切なものはどれか。ここで,実線の下線は主キーを表す。

〔従業員表〕 従業員(従業員番号,氏名)
  1. プログラム言語(氏名,プログラム言語)
  2. プログラム言語(従業員番号,プログラム言語
  3. プログラム言語(従業員番号,プログラム言語)
  4. プログラム言語(従業員番号プログラム言語
解答と解説を見る

正解:

結論: 主キーは {従業員番号,プログラム言語} の 2 列です。

なぜ: 「2 種類以上使用できる従業員がいる」ので、同じ従業員番号の行が何行も並びます。したがって従業員番号だけでは行を区別できません(ウが誤り)。同じく、あるプログラム言語を複数の従業員が使えるので、プログラム言語だけでも区別できません(イが誤り)。

2 列を組にして初めて 1 行が定まります。これが多対多の関連を表す表の基本形です。

アは氏名を主キーにしていますが、氏名は同姓同名がありえるので識別子になりません。

⚠️ 「プログラム言語を全く使用できない従業員もいる」——この人はこの表に 1 行も現れません。従業員表とは別の表に分けているからこそ、0 件を自然に表せます。

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

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

6

正規化

関係モデルにおいて,情報無損失分解ができ,かつ,関数従属性保存が成り立つ変換が必ず存在するものはどれか。ここで,情報無損失分解とは自然結合によって元の関係が復元できる分解をいう。

  1. 第 2 正規形から第 3 正規形への変換
  2. 第 3 正規形からボイス・コッド正規形への変換
  3. 非正規形から第 1 正規形への変換
  4. ボイス・コッド正規形から第 4 正規形への変換
解答と解説を見る

正解:

結論: 第 2 正規形 → 第 3 正規形だけが、両方を必ず満たせます。

なぜ: 正規化の分解には 2 つの望ましい性質があります。

  • 情報無損失分解 … 分解した表を自然結合すると元に戻せる
  • 関数従属性保存 … 元の表にあった関数従属が、分解後の各表の中だけで検査できる

第 3 正規形までは、この 2 つを同時に満たす分解が必ず存在することが知られています。

⚠️ イのボイス・コッド正規形(BCNF)は違います。情報無損失分解はできますが、関数従属性保存は犠牲になることがあります。だから「必ず存在する」とは言えません。第 3 正規形で止める設計がよく採られるのは、この差が理由です。

ウの第 1 正規形化は繰り返し項目をなくす操作で、そもそも分解の話ではありません。エの第 4 正規形は多値従属を除く段階で、こちらも関数従属性保存は保証されません。

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

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

7

正規化

便名に対して,客室乗務員名の集合及び搭乗者名の集合が決まる関係 “フライト” がある。関係 “フライト” に関する説明のうち,適切なものはどれか。ここで,便名,客室乗務員名,搭乗者名の組が主キーになっているものとする。

フライト
便名客室乗務員名搭乗者名
BD501東京建一大阪一郎
BD501東京建一京都花子
BD501横浜涼子大阪一郎
BD501横浜涼子京都花子
BD702東京建一大阪一郎
BD702東京建一神戸順子
BD702千葉建二大阪一郎
BD702千葉建二神戸順子
  1. 関係 “フライト” は,更新時異状が発生することはない。
  2. 関係 “フライト” は,自明でない関数従属が存在する。
  3. 関係 “フライト” は,情報無損失分解が可能である。
  4. 関係 “フライト” は,ボイス・コッド正規形の条件は満たしていない。
解答と解説を見る

正解:

結論: {便名, 客室乗務員名} と {便名, 搭乗者名} の 2 つに、元に戻せる形で分解できます。

なぜ: この表では、客室乗務員と搭乗者は互いに無関係です。便名が決まると乗務員の集合と搭乗者の集合がそれぞれ決まり、表にはそのすべての組合せが並びます(BD501 は乗務員 2 人 × 搭乗者 2 人で 4 行)。これが多値従属です。

多値従属があるときは、便名を軸に 2 つへ分解しても、自然結合で元どおりに戻せます。これが情報無損失分解です。

他の選択肢を順に見ます。

  • … 乗務員を 1 人追加するだけで、搭乗者の数だけ行を足す必要があります。更新時異状は起こります
  • … 全属性の組が主キー(すべてがキー)なので、自明でない関数従属は 1 つも存在しません
  • … 非自明な関数従属が無い以上、ボイス・コッド正規形の条件は満たしています。満たしていないのは第 4 正規形のほうです

⚠️ 「BCNF なのに問題がある」——これが第 4 正規形が必要になる理由です。関数従属だけを見ていると、この重複は見つけられません。

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

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

改変: “フライト” 表はスキャン画像のため、HTML の表として組み直しています(値・列の並びは原本のままです)。

8

正規化

次の表を,第 3 正規形まで正規化を行った場合,少なくとも幾つの表に分割されるか。ここで,顧客の 1 回の注文に対して 1 枚の受注伝票が作られ,顧客は 1 回の注文で一つ以上の商品を注文できるものとする。

受注番号顧客コード顧客名受注日商品コード商品名単価受注数受注金額
1055A7053鈴木電気2023-07-01T035テレビA85,00010850,000
1055A7053鈴木電気2023-07-01K083無線スピーカーA23,0005115,000
1055A7053鈴木電気2023-07-01S172Blu-ray プレイヤーB78,0003234,000
2030B7060中村商会2023-07-03T050テレビB90,0003270,000
2030B7060中村商会2023-07-03S172Blu-ray プレイヤーB78,00010780,000
3025C9025佐藤電気2023-07-03T035テレビA85,0003255,000
3025C9025佐藤電気2023-07-03K085無線スピーカーB25,000250,000
3025C9025佐藤電気2023-07-03S171Blu-ray プレイヤーA50,0008400,000
3090B7060中村商会2023-07-04T050テレビB90,000190,000
3090B7060中村商会2023-07-04T035テレビA85,0002170,000
  1. 2
  2. 3
  3. 4
  4. 5
解答と解説を見る

正解:

結論: 4 つに分割されます。

なぜ: この表の主キーは {受注番号, 商品コード} です。ここから段階的に切り出します。

  • 商品(商品コード → 商品名, 単価)… 主キーの一部だけで決まる(部分関数従属)
  • 受注(受注番号 → 顧客コード, 受注日)… 同じく主キーの一部だけで決まる
  • 顧客(顧客コード → 顧客名)… 主キーではない属性から決まる(推移的関数従属)
  • 受注明細(受注番号, 商品コード → 受注数)… 主キー全体で決まるもの

第 2 正規形で部分関数従属(商品・受注)を切り出し、第 3 正規形で推移的関数従属から顧客を切り出すので、合わせて 4 つになります。

⚠️ 受注金額は「単価 × 受注数」で計算できる導出可能な属性です。持たないのが普通ですが、持つとしても受注明細に入るので表の数は 4 のままです。

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

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

改変: 表はスキャン画像のため、HTML の表として組み直しています(値・列の並びは原本のままです)。

9

SQL

“成績” 表から,クラスごとに得点の高い順に個人を順位付けした結果を求める SQL 文の,a に入れる字句はどれか。

成績
氏名クラス得点
情報太郎A80
情報次郎A63
情報花子B70
情報桜子B92
情報三郎A78
〔結果〕
氏名クラス得点順位
情報太郎A801
情報三郎A782
情報次郎A633
情報桜子B921
情報花子B702
〔SQL 文〕
SELECT 氏名, クラス, 得点,
    [ a ]() OVER (PARTITION BY クラス ORDER BY 得点 DESC) 順位
FROM 成績
  1. CUME_DIST
  2. MAX
  3. PERCENT_RANK
  4. RANK
解答と解説を見る

正解:

結論: RANK です。

なぜ: OVER (PARTITION BY クラス ORDER BY 得点 DESC) は「クラスごとに区切り、得点の高い順に並べる」という指定です。その並びの中で何番目かを返すのが RANK です。

結果を見ると、クラス A で 1・2・3、クラス B で 1・2 と、クラスごとに 1 から振り直されていますPARTITION BY がこれをしています。

  • CUME_DIST … 累積分布。0 より大きく 1 以下の割合を返します
  • MAX … 最大値そのもの。順位にはなりません
  • PERCENT_RANK … 順位を 0〜1 の割合にしたもの。整数の順位ではありません

⚠️ 同点があるときの振る舞いが RANKDENSE_RANK で違います。RANK は 1, 2, 2, 4 と番号が飛びDENSE_RANK は 1, 2, 2, 3 と詰まります。

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

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

改変: “成績” 表と結果はスキャン画像のため、HTML の表として組み直しています。原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています(内容は原本のままです)。

10

SQL

表 A と表 B から,どちらか一方にだけ含まれる ID を得る SQL 文の a に入れる字句はどれか。

A
ID
100
200
300
400
B
ID
200
400
600
800
〔SQL 文〕
SELECT COALESCE(A.ID, B.ID)
    FROM A [ a ] B ON A.ID = B.ID
    WHERE A.ID IS NULL OR B.ID IS NULL
  1. FULL OUTER JOIN
  2. INNER JOIN
  3. LEFT OUTER JOIN
  4. RIGHT OUTER JOIN
解答と解説を見る

正解:

結論: FULL OUTER JOIN です。

なぜ: 「どちらか一方にだけ」を求めるには、両方の表の行をすべて残したうえで、相手が見つからなかった行を拾う必要があります。それができるのは完全外部結合だけです。

完全外部結合すると、相手がいない行は反対側が NULL になります。WHERE A.ID IS NULL OR B.ID IS NULL がその行だけを取り出し、COALESCE(A.ID, B.ID) が NULL でないほうの ID を返します。

実際にこの 2 つの表なら、A にしかない 100・300 と、B にしかない 600・800 が得られます。

  • INNER JOIN … 両方にあるものだけ。求めたいものと正反対です
  • LEFT OUTER JOIN … A にしかない行は拾えますが、B にしかない行が落ちます
  • RIGHT OUTER JOIN … 逆に、A にしかない行が落ちます

⚠️ FULL OUTER JOINどの製品にもあるわけではありません。本サイトで実際に動かして測ったところ、MySQL と MariaDB は構文エラーになりました(PostgreSQL・SQLite・SQL Server は通ります)。無い製品では、左外部結合と右外部結合を UNION でつないで代用します。

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

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

改変: 表 A・表 B はスキャン画像のため、HTML の表として組み直しています。原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています(内容は原本のままです)。

11

関係データベース理論

関係 R と関係 S において,R÷S の関係演算結果として,適切なものはどれか。ここで,÷ は商演算を表す。

R
商品
Aa
Ab
Ba
Bb
Bc
Cc
Dc
Dd
Ed
Ee
S
商品
a
b
c
  1. A
    A
    B
    B
    B
    C
    D
  2. A
    B
    C
    D
  3. B
  4. E
解答と解説を見る

正解:

結論: 店 B だけです。

なぜ: 商演算 R÷S は「S のすべての行と組になっているR の行」を求めます。ここでは「a・b・c の 3 商品をすべて扱っている店」という意味になります。

店ごとに扱っている商品を並べて確かめます。

  • A … a, b(c が無い)
  • B … a, b, c ← 3 つそろっている
  • C … c だけ
  • D … c, d(a と b が無い)
  • E … d, e(1 つもそろっていない)

そろっているのは B だけなので、結果は 1 行です。

⚠️ 「1 つでも扱っている店」ではなく「すべて扱っている店」です。アやイのように複数の店が並ぶのは、条件を「どれか 1 つでも」と読み違えた場合です。

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

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

改変: 関係 R・S と 4 つの結果はスキャン画像のため、HTML の表として組み直しています(値・行の並びは原本のままです)。

12

同時実行制御

2 相ロック方式を用いたトランザクションの同時実行制御に関する記述のうち,適切なものはどれか。

  1. 全てのトランザクションが直列に制御され,デッドロックが発生することはない。
  2. トランザクションのコミット順序は,トランザクション開始の時刻順となるように制御される。
  3. トランザクションは,自身が獲得したロックを全て解除した後にだけ,コミット操作を実行できる。
  4. トランザクションは,必要な全てのロックを獲得した後にだけ,ロックを解除できる。
解答と解説を見る

正解:

結論: ロックを掛け終わってから、外し始める。 これが 2 相の意味です。

なぜ: トランザクションを、ロックを増やすだけの前半減らすだけの後半の 2 つの相に分けます。いったん外し始めたら、もう新しくは掛けません。この規則だけで直列化可能性が保証されます

他は成り立ちません。

  • … 2 相ロックでもデッドロックは起こります(互いに相手のロックを待つ形になりうる)。防ぐのではなく、検出して片方を中断する方式が使われます
  • … コミットの順番は開始時刻とは関係ありません
  • … 順序が逆です。コミットするまでロックを持ち続けるのが普通の運用(厳密 2 相ロック)で、先に外すと他のトランザクションが未コミットの値を読めてしまいます

⚠️ 「2 相」という同じ言葉が 2 相コミットにも出てきますが、別のものです。2 相ロックは同時実行制御、2 相コミットは分散トランザクションの合意手順です。

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

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

13

性能設計

“部品” 表のメーカーコード列に対し,B+木インデックスを作成した。これによって,“部品” 表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカーのデータ件数は十分に多く,“部品” 表に存在するメーカーコード列の値の種類は十分な数があり,かつ,均一に分散しているものとする。また,“部品” 表のごく少数の行には,メーカーコード列に NULL が設定されている。実線の下線は主キーを,破線の下線は外部キーを表す。

部品
部品コード
部品名
メーカーコード
メーカー
メーカーコード
メーカー名
住所
  1. メーカーコードの値が 1001 以外の部品を検索する。
  2. メーカーコードの値が 1001 でも 4001 でもない部品を検索する。
  3. メーカーコードの値が 4001 以上,4003 以下の部品を検索する。
  4. メーカーコードの値が NULL 以外の部品を検索する。
解答と解説を見る

正解:

結論: 範囲を指定した検索が、B+木のいちばん得意な形です。

なぜ: B+木は葉がキーの順に並び、横につながっています。「4001 以上」の位置まで木を降りたら、あとは葉を横に順にたどるだけで 4003 まで拾えます。全体の件数がいくら多くても、読むのは該当する範囲だけで済みます。

他は絞り込めません。

  • ア・イ … 「〜以外」は該当しない値以外のすべてが対象です。値の種類が十分あって均一に分散しているので、ほぼ全件が該当します。インデックスを経由するとかえって遅くなり、全表走査が選ばれます
  • … NULL なのはごく少数の行だけなので、「NULL 以外」もやはりほぼ全件です

⚠️ インデックスが効くのは「少数に絞り込めるとき」です。結果が全体の大部分になる条件では、索引をたどる手間のぶん不利になります。

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

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

改変: 関係スキーマの図は、属性名と主キー(実線)・外部キー(破線)の下線を保ったまま HTML で組み直しています(内容は原本のままです)。

14

障害回復

データベースの REDO のべき等(idempotent)の説明として,適切なものはどれか。

  1. REDO による障害回復の時間を短縮するために,あるルールに従って整合性の取れたデータを記録媒体に適宜反映すること
  2. REDO を繰返し実行しても,正常終了するときには 1 回実行したときと同じデータの状態になること
  3. 事前に取得していたバックアップデータを記録媒体に復旧し,そのデータに対して REDO を実行すること
  4. トランザクションをコミットする前に REDO に必要な情報を書き出し,データの更新はその後で行うこと
解答と解説を見る

正解:

結論: 何回やっても結果が変わらない、という性質がべき等です。

なぜ: 障害回復そのものが途中で落ちることがあります。そのとき最初からやり直せなければ回復できません。REDO がべき等なら、どこまで進んでいたか分からなくても頭から流し直せるので、安全にやり直せます。

そのために DBMS は、ページに「どこまで反映済みか」の印(ログ順序番号)を持たせ、既に反映済みの更新は読み飛ばします。

アはチェックポイント、ウはバックアップからの復旧(媒体障害の回復手順)、エは WAL(ログ先書き)の説明で、いずれもべき等の説明ではありません。

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

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

15

障害回復

a 〜 c それぞれの障害に対して,DBMS はロールフォワード又はロールバックを行い回復を図る。適切な回復手法の組合せはどれか。

a デッドロックによるトランザクション障害 b ハードウェアの誤動作によるシステム障害 c データベースの記録媒体が使用不可能となる媒体障害
  1. a = ロールバック/b = ロールフォワード又はロールバック/c = ロールバック
  2. a = ロールバック/b = ロールフォワード又はロールバック/c = ロールフォワード
  3. a = ロールフォワード/b = ロールバック/c = ロールフォワード又はロールバック
  4. a = ロールフォワード又はロールバック/b = ロールフォワード/c = ロールバック
解答と解説を見る

正解:

結論: a はロールバック、b は両方、c はロールフォワードです。

なぜ: 障害の種類ごとに、失われたものが違います。

  • a トランザクション障害(デッドロック)… 巻き込まれた 1 つを取り消せば済みます。ロールバックだけ
  • b システム障害(ハードウェアの誤動作)… メモリの内容は消えますが、ディスクは無事です。コミット済みで書き出せていない分はロールフォワード、未コミットの分はロールバック。つまり両方要ります
  • c 媒体障害(記録媒体が使用不可能)… ディスクそのものが読めません。バックアップを戻し、そこからログで進めるしかないので、ロールフォワードです

⚠️ c でロールバックが要らないのは、戻したバックアップの時点には未コミットのものが無いからです。取り消すべきものが最初から存在しません。

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

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

改変: 選択肢は原本では a・b・c の 3 列の表ですが、1 行の組として書き下しています(内容は原本のままです)。

16

同時実行制御

トランザクションの隔離性水準を高めたとき,不整合なデータを読み込むトランザクション数と,単位時間に処理できるトランザクション数の傾向として,適切な組合せはどれか。

  1. 不整合なデータを読み込むトランザクション数 = 増える/単位時間に処理できるトランザクション数 = 増える
  2. 不整合なデータを読み込むトランザクション数 = 増える/単位時間に処理できるトランザクション数 = 減る
  3. 不整合なデータを読み込むトランザクション数 = 減る/単位時間に処理できるトランザクション数 = 増える
  4. 不整合なデータを読み込むトランザクション数 = 減る/単位時間に処理できるトランザクション数 = 減る
解答と解説を見る

正解:

結論: どちらも減ります。

なぜ: 隔離性水準を高めるとは、他のトランザクションの影響をより強く遮断することです。遮断が強くなるので、おかしなデータを読む機会は減ります。

一方、遮断はロックや版の管理で実現するので、待たされる時間が増えます。その結果、単位時間に流せる本数(スループット)は落ちます。

つまり正しさと速さのトレードオフです。どちらも良くなる組合せ(ウ)は存在しません。

⚠️ 「とりあえず一番厳しくしておけば安心」とはいきません。業務が許す範囲でいちばん低い水準を選ぶ、というのが設計の考え方です。

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

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

改変: 選択肢は原本では 2 列の表ですが、1 行の組として書き下しています(内容は原本のままです)。

17

同時実行制御

二つのトランザクション T1 と T2 を並列に実行した結果が,T1 の完了後に T2 を実行した結果,又は T2 の完了後に T1 を実行した結果と等しい場合,このトランザクションスケジュールの性質を何と呼ぶか。

  1. 一貫性
  2. 原子性
  3. 耐久性
  4. 直列化可能性
解答と解説を見る

正解:

結論: 直列化可能性(serializability)です。

なぜ: 同時に動かしたのに、どれか 1 つの順番で 1 件ずつ実行したのと同じ結果になる。これが直列化可能性の定義そのものです。設問の「T1 → T2 の結果、又は T2 → T1 の結果と等しい」がまさにそれです。

残りは ACID の性質で、スケジュールの性質ではありません。

  • 一貫性… 実行の前後で整合性の制約が保たれる
  • 原子性… 全部反映されるか、全く反映されないかのどちらか
  • 耐久性… コミットしたら障害が起きても失われない

⚠️ 直列化可能性は ACID の「隔離性(Isolation)」を最も強くした状態にあたります。

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

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

18

応用技術同じ設問が 令和7年度 秋期 午前Ⅱ18 にも出ています

ブロックチェーンのデータ構造の特徴として,適切なものはどれか。

  1. 検索のための中間ノードと,実データへのポインタを格納する葉ノードをインデックスとしてもつ。
  2. 時刻印が付与された複数のバージョンから成るデータをスナップショットとしてもつ。
  3. 実データから作成したビットマップをインデックスとしてもつ。
  4. 直前のトランザクションデータの正当性を検証するためのハッシュ値をもつ。
解答と解説を見る

正解:

結論: 各ブロックが直前のブロックのハッシュ値をもち、鎖のようにつながっているのが特徴です。

なぜ: 過去のデータを 1 文字でも書き換えると、そのブロックのハッシュ値が変わります。すると次のブロックが記録している「直前のハッシュ値」と合わなくなり、そこから先が全部食い違います。改ざんすると必ず露見する——この性質がハッシュの連鎖から生まれています。

アは B 木インデックス、ウはビットマップインデックスで、いずれも RDBMS の索引の話です。イは多版同時実行制御(MVCC)のスナップショットの説明です。

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

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

19

セキュリティ

DRDoS(Distributed Reflection Denial of Service)攻撃に該当するものはどれか。

  1. 攻撃対象の Web サーバ 1 台に対して,多数の PC から一斉にリクエストを送ってサーバのリソースを枯渇させる攻撃と,大量の DNS クエリの送信によってネットワークの帯域を消費する攻撃を同時に行う。
  2. 攻撃対象の Web サイトのログインパスワードを解読するために,ブルートフォースによるログイン試行を,多数のスマートフォン,IoT 機器などから成るボットネットを踏み台にして一斉に行う。
  3. 攻撃対象のサーバに大量のレスポンスが同時に送り付けられるようにするために,多数のオープンリゾルバに対して,送信元 IP アドレスを攻撃対象のサーバの IP アドレスに偽装した名前解決のリクエストを一斉に送信する。
  4. 攻撃対象の組織内の多数の端末をマルウェアに感染させ,当該マルウェアを遠隔操作することによってデータの改ざんやファイルの消去を一斉に行う。
解答と解説を見る

正解:

結論: 送信元を偽って第三者に問い合わせ、その返事を標的に浴びせる攻撃です。

なぜ: DRDoS の R は Reflection(反射)です。攻撃者は標的に直接送りません。誰でも使える DNS サーバ(オープンリゾルバ)に、送信元 IP アドレスを標的のものに偽装した問い合わせを大量に送ります。返事はすべて標的に届き、標的の回線を埋め尽くします。

この方式には攻撃者にとって 2 つの利点があります。攻撃元が隠れることと、問い合わせより応答のほうが大きいので少ない通信量で大きな攻撃になる(増幅)ことです。

アは単なる DDoS の組合せ、イはボットネットを使ったパスワード攻撃、エはマルウェアによる破壊で、いずれも反射を使っていません。

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

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

20

セキュリティ

インシデントハンドリングの順序のうち,JPCERT コーディネーションセンター “インシデントハンドリングマニュアル(2021 年 11 月 30 日)” に照らして,適切なものはどれか。

  1. インシデントレスポンス(対応) → 検知/連絡受付 → トリアージ
  2. インシデントレスポンス(対応) → トリアージ → 検知/連絡受付
  3. 検知/連絡受付 → インシデントレスポンス(対応) → トリアージ
  4. 検知/連絡受付 → トリアージ → インシデントレスポンス(対応)
解答と解説を見る

正解:

結論: 検知/連絡受付 → トリアージ → インシデントレスポンスの順です。

なぜ: まず気づく/報告を受ける(検知・連絡受付)。次にそれが本当にインシデントか、どれくらい急ぐかを選り分ける(トリアージ)。そのうえで実際に対応する(インシデントレスポンス)。

トリアージが真ん中にあるのが要点です。報告のすべてが本物の事故とは限らず、限られた人手をどこに向けるかを先に決めないと、重大なものが後回しになります。医療の現場で使われる言葉がそのまま使われているのはこのためです。

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

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

21

セキュリティ

情報セキュリティにおけるエクスプロイトコードに該当するものはどれか。

  1. 同じセキュリティ機能をもつ製品に乗り換える場合に,CSV 形式など他の製品に取り込むことができる形式でファイルを出力するプログラム
  2. コンピュータに接続されたハードディスクなどの外部記憶装置,その中に保存されている暗号化されたファイルなどを閲覧,管理するソフトウェア
  3. セキュリティ製品を設計する際の早い段階から実際に動作する試作品を作成し,それに対する利用者の反応を見ながら徐々に完成に近づける開発手法
  4. ソフトウェアやハードウェアの脆弱性を検査又は攻撃するために作成されたプログラム
解答と解説を見る

正解:

結論: 脆弱性を突くために作られたプログラムがエクスプロイトコードです。

なぜ: exploit は「つけこむ」という意味です。見つかった脆弱性が実際に悪用できるものかを確かめるために作られ、攻撃にもそのまま使えます。

⚠️ 攻撃専用のものとは限りません。 脆弱性の報告に添えて「本当に危ないこと」を示すために作られたり、修正が効いているかの検査に使われたりします。だから設問も「検査又は攻撃するために」と両方を挙げています。

ア・イ・ウはそれぞれ、データ移行ツール・ディスク管理ソフト・プロトタイピングの説明で、脆弱性とは関係ありません。

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

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

22

システム構成要素

データからパリティを生成し,データとパリティを 4 台以上のハードディスクに分散して書き込むことによって,2 台までのハードディスクが故障してもデータを復旧できる RAID レベルはどれか。

  1. RAID0
  2. RAID1
  3. RAID5
  4. RAID6
解答と解説を見る

正解:

結論: RAID6 です。

なぜ: 決め手は「2 台まで壊れても復旧できる」です。そのためにはパリティが 2 種類要ります。RAID6 は 2 種類のパリティを分散して書くので、2 台までの同時故障に耐えられます。最低 4 台という条件もここから来ます。

  • RAID0 … ストライピングのみ。冗長性が無く、1 台でも壊れたら終わりです
  • RAID1 … ミラーリング。同じものを 2 台に書くので 1 台の故障には耐えますが、パリティは使いません
  • RAID5 … パリティは 1 種類なので、耐えられるのは 1 台までです

⚠️ RAID はバックアップの代わりにはなりません。誤って消したデータは、すべてのディスクから同時に消えます。

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

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

23

システム構成要素

キャパシティプランニングの目的の一つに関する記述のうち,最も適切なものはどれか。

  1. 応答時間に最も影響があるボトルネックだけに着目して,適切な変更を行うことによって,そのボトルネックの影響を低減又は排除することである。
  2. システムの現在の応答時間を調査して,長期的に監視することによって,将来を含めて応答時間を維持することである。
  3. ソフトウェアとハードウェアをチューニングして,現状の処理能力を最大限に引き出して,スループットを向上させることである。
  4. パフォーマンスの問題はリソースの過剰使用によって発生するので,特定のリソースの有効利用を向上させることである。
解答と解説を見る

正解:

結論: 将来にわたって性能を保てるように、長期的に見張って備えることです。

なぜ: キャパシティプランニングは「足りなくなる前に手を打つ」ための活動です。いまの応答時間を測り続け、利用が増えたときにどこが先に限界に来るかを見通して、増設や設計変更の時期を決めます。

他はいま起きている問題への対処であって、将来への備えではありません。

  • … ボトルネックの解消。目の前の問題を直す活動です
  • … チューニング。現状の性能を引き出す活動です
  • … リソースの有効利用。これも現状の改善です

⚠️ 「速くする」ではなく「遅くならないようにし続ける」——時間軸が違うのが要点です。

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

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

24

開発技術

データ中心アプローチの特徴はどれか。

  1. クラス概念,多態,継承の特徴を生かして抽象化し,実体の関連を表現する。
  2. 対象システムの要求を,システムがもっている機能間のデータの流れに着目して捉える。
  3. 対象世界の実体を並列に動作するプロセスとみなし,プロセスはデータを通信し合うものとしてモデル化する。
  4. 対象とする世界をシステムが扱うデータに着目して捉え,扱うデータを実体関連モデルで整理する。
解答と解説を見る

正解:

結論: データに着目し、実体関連モデル(E-R モデル)で整理するのがデータ中心アプローチです。

なぜ: 機能は業務の変化に合わせてよく変わりますが、扱うデータの構造は比較的変わりません。そこで先にデータの構造を固め、機能はその上に載せる、という順番をとります。これがデータ中心アプローチ(DOA)です。

  • … オブジェクト指向アプローチ
  • … プロセス中心アプローチ(データフローに着目する)
  • … 並行プロセスとしてのモデル化

⚠️ 「データに着目」という点はアとも紛らわしいのですが、アはクラス・多態・継承というオブジェクト指向の道具立てを挙げています。実体関連モデルと書いてあるエが、データ中心アプローチです。

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

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

25

開発技術

ステージング環境の説明として,適切なものはどれか。

  1. 開発者がプログラムを変更するたびに,サーバにプログラムを直接デプロイして動作を確認し,デバッグするための環境
  2. システムのベータ版を広く一般の利用者に公開してテストを実施してもらうことによって,問題点やバグを報告してもらう環境
  3. 保護するネットワークと外部ネットワークとの間に境界ネットワーク(DMZ)を設置して,セキュリティを高めたネットワーク環境
  4. 本運用システムとほぼ同じ構成のシステムを用意して,システムリリース前の最終テストを行う環境
解答と解説を見る

正解:

結論: 本番とほぼ同じ構成を用意して、リリース前の最終確認をする環境です。

なぜ: 開発環境と本番は、たいてい構成が違います(データ量・設定・つながる先など)。そのため開発環境では出なかった不具合が本番で出ます。本番に限りなく近い環境を 1 つ挟んで最後に確かめる——それがステージング環境です。

アは開発環境、イはベータテスト、ウは DMZ を使ったネットワーク構成の説明で、いずれもリリース前の最終確認の場ではありません。

⚠️ 「ほぼ同じ」であることが値打ちです。本番と違うところがあるほど、確認できたことの意味が薄れます

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

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

出典と改変について

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

← 過去問の一覧へ戻る