コマンド道場

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

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

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

1

データモデル

グラフデータモデルの一つである,プロパティグラフに関する記述のうち,適切なものはどれか。

  1. グラフはノード,リレーションシップ,プロパティで示すことができる。
  2. ノードはプロパティをもつことができるが,リレーションシップはプロパティをもつことができない。
  3. プロパティは,主語,述語,目的語のトリプルと呼ばれるデータ構造で表す。
  4. リレーションシップは開始ノード,終了ノードともに複数のノードに接続することができる。
解答と解説を見る

正解:

結論: プロパティグラフは「ノード」「リレーションシップ」「プロパティ」の 3 つで表します。

なぜ: プロパティグラフでは、ノード(点)とリレーションシップ(点と点を結ぶ辺)のどちらもプロパティ(属性)をもてます。したがってイは誤りです。

ウが説明しているのは RDF です。主語・述語・目的語の 3 つ組(トリプル)でデータを表すのは RDF のモデルで、プロパティグラフとは別のものです。

エについて、リレーションシップは開始ノードと終了ノードを 1 つずつもつ辺です。複数のノードに同時につながることはできません。

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

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

2

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

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

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

正解:

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

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

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

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

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

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

3

データモデル

UML を用いて表した商品と倉庫のデータモデルに関する記述のうち,適切なものはどれか。ここで,商品の倉庫間の移動はないものとする。

11..*0..*1格納先11..*10..*入庫入庫年月日数量出庫出庫年月日数量商品商品コード在庫商品/在庫数量倉庫倉庫番号
  1. 1 種類の商品を二つの倉庫に初めて入庫すると,“在庫商品” データが 2 件追加される。
  2. 2 種類の商品を一つの倉庫に入庫すると,“入庫” データが 1 件追加される。
  3. 格納先となる倉庫が確定していない商品が存在する。
  4. 出庫の実績がない在庫商品は存在しない。
解答と解説を見る

正解:

結論: 在庫商品は「商品 × 倉庫」ごとに 1 件なので、2 つの倉庫に入れれば 2 件できます。

なぜ: 図で在庫商品は、商品(1 側)と倉庫(1 側)の両方につながる関連そのものを表すクラスです。商品 1 種類・倉庫 2 か所なら組合せは 2 つ、つまり在庫商品も 2 件になります。

他の選択肢を多重度から確かめます。

  • … 入庫は在庫商品 1 件に対して 1..*。商品が 2 種類なら在庫商品も 2 件になり、入庫データもそれぞれに付くので 1 件では足りません
  • … 商品から在庫商品への多重度が 1..* なので、商品には必ず 1 件以上の在庫商品があり、その在庫商品は必ず倉庫 1 つにつながります。倉庫が決まっていない商品は、この図では表せません
  • … 出庫側は 0..* です。0 を含むので、出庫実績がない在庫商品は存在できます

⚠️ 在庫数量の前の /導出属性の印です(入庫と出庫から計算できる、という意味)。

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

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

改変: クラス図はスキャン画像のため、クラス名・属性・多重度・関連名を保ったまま SVG で描き直しています(内容は原本のままです)。

4

論理設計

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

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

正解:

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

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

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

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

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

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

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

5

関係データベース理論

関数従属に関する記述のうち,適切なものはどれか。ここで,A,B,C はある関係の属性の集合とする。

  1. B が A に関数従属し,C が A に関数従属すれば,C は B に関数従属する。
  2. B が A の部分集合であり,C が A に関数従属すれば,C は B に関数従属する。
  3. B が A の部分集合であれば,A は B に関数従属する。
  4. B と C の和集合が A に関数従属すれば,B と C はそれぞれが A に関数従属する。
解答と解説を見る

正解:

結論: A → (B ∪ C) が成り立つなら、A → B と A → C もそれぞれ成り立ちます。

なぜ: A の値が決まれば B ∪ C の値の組が 1 つに定まる、ということは、その一部である B だけを見ても 1 つに定まるからです(分解則)。

アは成り立ちません。A → B と A → C が言えるのは「A が決まれば B も C も決まる」ということだけです。A が違っても B が同じ値になることはあり、そのとき C は違う値になりえます。つまり B から C は決まりません。

イも成り立ちません。B が A の一部にすぎない以上、B だけでは A ほど強く値を決められず、C を一意に定められるとは限りません。

ウは逆です。B が A の部分集合なら、成り立つのは B ⊆ A ならば A → B(反射則)で、A が B に関数従属するのではありません。

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

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

6

正規化

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

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

正解:

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

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

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

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

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

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

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

改変: 問題冊子の表は画像のため、同じ内容を HTML の表として組み直しています(値・列の並びは原本のままです)。

7

SQL

SQL の 3 値論理において,a,b に入る字句の組合せはどれか。

“真 AND 不定” は [ a ] であり,“偽 AND 不定” は [ b ] である。
  1. a = 偽,b = 偽
  2. a = 偽,b = 不定
  3. a = 不定,b = 偽
  4. a = 不定,b = 不定
解答と解説を見る

正解:

結論: 「真 AND 不定」は不定、「偽 AND 不定」は偽です。

なぜ: AND は「両方が真のときだけ真」です。片方が不定(unknown)のとき、もう片方が何かで結果が変わります。

  • もう片方がなら、不定の側が真なら全体は真、偽なら全体は偽 → 決まらないので不定
  • もう片方がなら、不定の側が真でも偽でも全体は偽 → 決まるので偽

これは「NULL が混ざれば必ず NULL になる」わけではない、という点が肝です。偽が 1 つあれば AND は確定します

⚠️ WHERE 偽の条件 AND NULL の条件 は 1 行も返しませんが、それは「不定」だからではなく「偽」に確定しているからです。WHERE 句は「真の行だけ」を通すので、不定でも偽でも通らない——結果が同じに見えるぶん、途中の値の違いが隠れます。

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

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

改変: 原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています。また選択肢は原本では a・b の 2 列の表ですが、1 行の組として書き下しています(内容は原本のままです)。

8

SQL

表定義に基づいて作成された “システム担当者” 表において,トランザクション A の複合文内の SQL 文全てを正常終了させるために a に入れる字句はどれか。ここで,実線の下線は主キーを表す。

〔表定義〕
CREATE TABLE システム担当者 (
    システム番号 INTEGER,
    担当者番号 INTEGER NOT NULL,
    CONSTRAINT PK_システム番号 PRIMARY KEY(システム番号),
    CONSTRAINT UK_担当者番号 UNIQUE(担当者番号)
        DEFERRABLE INITIALLY IMMEDIATE
)
システム担当者
システム番号担当者番号
1234111
6789222
〔トランザクション A の複合文内の SQL 文〕
SET CONSTRAINTS [ a ];
UPDATE システム担当者 SET 担当者番号 = 222 WHERE システム番号 = 1234;
UPDATE システム担当者 SET 担当者番号 = 111 WHERE システム番号 = 6789;
COMMIT;
  1. PK_システム番号 DEFERRED
  2. PK_システム番号 IMMEDIATE
  3. UK_担当者番号 DEFERRED
  4. UK_担当者番号 IMMEDIATE
解答と解説を見る

正解:

結論: SET CONSTRAINTS UK_担当者番号 DEFERRED です。

なぜ: 2 つの UPDATE は担当者番号 111 と 222 を入れ替えています。1 文目を実行した時点では 222 が 2 行に並ぶので、一意性制約に反した状態が途中で発生します。2 文目まで実行すれば解消しますが、既定の即時検査(IMMEDIATE)では 1 文目で落ちます。

そこで検査を コミット時まで遅らせる(DEFERRED) ことで、途中の状態を許して最後にだけ確認させます。

遅らせられるのは DEFERRABLE と宣言した制約だけです。この表定義で DEFERRABLE が付いているのは UK_担当者番号 だけなので、主キー側(ア・イ)は選べません。エは即時のままなので状況が変わりません。

⚠️ DEFERRABLE INITIALLY IMMEDIATE は「遅らせられるが、既定では即時」という意味です。だから明示的に SET CONSTRAINTS … DEFERRED を書く必要があります。

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

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

改変: 表定義と SQL 文は原文のまま等幅で、“システム担当者” 表は HTML の表として組み直しています(内容は原本のままです)。主キーの下線も再現しています。原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています。

9

SQL

“名簿 1” 表と “名簿 2” 表のそれぞれ対応する行が全て等しいかどうかを確認する SQL 文の a,b,c に入れる適切な字句はどれか。

名簿1
名前住所性別年齢
試験 太郎東京22
情報 花子大阪24
処理 一郎京都35
名簿2
名前住所性別年齢
試験 太郎東京22
情報 花子大阪24
処理 一郎京都35
〔SQL 文〕
SELECT CASE WHEN COUNT(*) = 0 THEN '等しい' ELSE '異なる' END AS 結果
    FROM ((SELECT * FROM 名簿1  [ a ]  SELECT * FROM 名簿2)
           [ b ]
          (SELECT * FROM 名簿1  [ c ]  SELECT * FROM 名簿2)
         ) COMPARE
  1. a = EXCEPT,b = UNION ALL,c = INTERSECT
  2. a = EXCEPT,b = UNION,c = INTERSECT
  3. a = UNION ALL,b = INTERSECT,c = UNION
  4. a = UNION,b = EXCEPT,c = INTERSECT
解答と解説を見る

正解:

結論: a = UNION,b = EXCEPT,c = INTERSECT です。

なぜ: 2 つの表が完全に一致するかは、対称差(どちらか片方にしかない行)が 0 件かで判定できます。

  • 名簿1 UNION 名簿2 … どちらかにある行の全体
  • 名簿1 INTERSECT 名簿2 … 両方にある行
  • 前者から後者を EXCEPT で引く … 片方にしかない行だけが残る

これが 0 件なら 2 つの表は一致します。COUNT(*) = 0 で「等しい」と判定しているのはそのためです。

⚠️ UNIONINTERSECT既定で重複を除きます。だから比べているのは「行の集合」で、同じ行が何件あるかまでは見ていません。b を UNION ALL にしているアが誤りなのはこのためで、重複を残したまま引くと、一致しているのに 0 件にならない場合が出ます。

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

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

改変: “名簿1” “名簿2” 表は HTML の表として組み直しています。原本では空欄が四角い枠で囲まれていますが、ここでは [ a ] のように角括弧で示しています。また選択肢は原本の 3 列の表を a・b・c の組として書き下しています(内容は原本のままです)。

10

関係データベース理論

関係演算において,商演算と同等な結果が得られる演算の組合せはどれか。

  1. 直積演算と差演算と選択演算
  2. 直積演算と射影演算と差演算
  3. 直積演算と射影演算と和演算
  4. 直積演算と選択演算と和演算
解答と解説を見る

正解:

結論: 直積・射影・差の 3 つで商演算を書き換えられます。

なぜ: 商演算 R ÷ S は「S のすべての行と組になっている R の行」を求める演算です。基本演算だけで表すと次の形になります。

1. 射影で R から候補(S の列を除いた部分)を取り出す2. その候補と S の直積を作る … 「揃っていればあるはず」の組合せの全体3. そこから実際の R をで引く … 残ったのは足りない組合せ4. それを射影して「揃っていない候補」の一覧にする5. 候補の全体からそれをで引く … 残るのが答え

和演算や選択演算は不要です。したがってア・ウ・エは誤りです。

⚠️ 商演算は SQL に専用の構文がありません。実務では NOT EXISTS を二重に使う書き方(いわゆる「全称」の表現)に置き換えます。

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

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

11

制約

図のような関係データベースの “注文” 表と “注文明細” 表がある。“注文” 表の行を削除すると,対応する “注文明細” 表の行が,自動的に削除されるようにしたい。参照制約定義の削除規則(ON DELETE)に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。

注文
注文番号
注文日
顧客番号
注文明細
注文番号
明細番号
商品番号
数量
  1. CASCADE
  2. INTERSECT
  3. RESTRICT
  4. UNIQUE
解答と解説を見る

正解:

結論: ON DELETE CASCADE です。

なぜ: CASCADE は「親の行が消えたら、それを参照している子の行も一緒に消す」という指定です。設問が求めているのはまさにこの動きです。

RESTRICT は逆で、参照している子の行がある間は親を削除させません(エラーにして守る)。既定はこちら側の考え方で、参照が壊れる操作を拒否します。

INTERSECT は集合演算、UNIQUE は一意性制約で、どちらも削除規則の語句ではありません。

⚠️ CASCADE は便利ですが、消したつもりのない行まで連鎖して消えます。既定では、参照している行があるうちは親を消せません。実際に打って確かめられます。

打って確かめる

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

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

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

12

障害回復

DBMS をシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。

トランザクションデータベースに対する Read 回数 と Write 回数
T1,T2Read 10, Write 20
T3,T4Read 100
T5,T6Read 20, Write 10
時間チェックポイント障害発生T1T2T3T4T5T6
トランザクションの実行状況(右向きが時間)● はコミット済み、印の無い線はコミットされていないトランザクションを表します。
  1. ロールフォワード=T2,T5/ロールバック=T6
  2. ロールフォワード=T2,T5/ロールバック=T3,T6
  3. ロールフォワード=T1,T2,T5/ロールバック=T6
  4. ロールフォワード=T1,T2,T5/ロールバック=T3,T6
解答と解説を見る

正解:

結論: ロールフォワード=T2,T5、ロールバック=T6 です。

なぜ: 判断の材料は 2 つあります。チェックポイントより後にコミットしたかと、そもそも書き込んでいるかです。

  • T1 … チェックポイント前にコミット済み。結果はもうディスクにあるので何もしない
  • T2 … チェックポイント後にコミット。書き込みがあるのでロールフォワード
  • T3 … 未コミットだが Read 100 だけ。1 回も書いていないので何もしない
  • T4 … T3 と同じく読むだけ。何もしない
  • T5 … チェックポイント後にコミット。ロールフォワード
  • T6 … 未コミットで書き込みあり。ロールバック

⚠️ この問題の勘どころは T3・T4 が Read 100 だけで、1 回も Write していないことです。更新していないのだから、取り消すもの(ロールバック)がありません。未コミットというだけで機械的にロールバックへ入れると、イ・エを選んでしまいます。

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

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

改変: 処理内容の表は HTML の表として、実行状況の図は各トランザクションの開始・終了とコミットの有無を保ったまま SVG として組み直しています。また選択肢は原本のロールフォワード/ロールバックの 2 列の表を 1 行に書き下しています(内容は原本のままです)。

13

性能設計

RDBMS のクラスタ化インデックスに関する記述のうち,適切なものはどれか。

  1. 外部キーのインデックスはクラスタ化インデックスである。
  2. クラスタ化インデックスは,一つのテーブルに複数作成できる。
  3. 一つのテーブルには,クラスタ化インデックスか非クラスタ化インデックスのいずれか一方だけが作成できる。
  4. レコードは,クラスタ化インデックスの対象列の値の順に並べられ,可能な限り物理的に連続してブロックに格納される。
解答と解説を見る

正解:

結論: クラスタ化インデックスは、行そのものをその列の順に並べて格納するしくみです。

なぜ: 通常のインデックスは「値 → 行の位置」の対応表を別に作るだけで、行の置き場所は変わりません。クラスタ化インデックスは行の並び順そのものを決めるので、範囲検索でディスクの読み取りがまとまり、速くなります。

並び順は 1 つしか決められないので、1 つの表に 1 つだけです。したがってイは誤りです。

アについて、外部キーに張るインデックスが自動でクラスタ化されるわけではありません。ウについて、クラスタ化インデックスと非クラスタ化インデックスは同じ表に併存できます(排他ではありません)。

⚠️ PostgreSQL の CLUSTERその時点で並べ替えるだけで、以後の更新では並びが維持されません。「クラスタ化インデックス」という常時維持される機能をもつ製品(SQL Server など)とは挙動が違います。

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

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

14

障害回復

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

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

正解:

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

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

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

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

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

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

15

同時実行制御

トランザクション T1,T2 を同時実行した際に,次の異状を防ぐことができるトランザクションの隔離性水準のうち,最も水準の低いものはどれか。〔異状〕 T1 が同じデータを複数回読み込んでいる途中で,T2 がそのデータを更新してコミットしたことによって,T1 が更新していないのにもかかわらず T1 が読み込むデータが変わってしまう。

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

正解:

結論: REPEATABLE READ です。

なぜ: 設問の異状は「同じ行を 2 回読んだら値が変わっていた」=反復不能読取り(non-repeatable read)です。

  • READ UNCOMMITTED … 未コミットの読取りすら防がない
  • READ COMMITTED … コミット済みしか読まないが、読むたびに最新を見るので値は変わりうる
  • REPEATABLE READ … ここで初めて防げる
  • SERIALIZABLE … 防げるが、より強い(=水準が高い)

設問は「防げるもののうち最も水準の低いもの」なので REPEATABLE READ になります。

⚠️ 水準の名前は規格の用語で、実際にどこまで防ぐかは製品差があります。PostgreSQL の READ UNCOMMITTED は内部的に READ COMMITTED として扱われます。

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

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

16

同時実行制御

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

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

正解:

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

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

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

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

⚠️ 直列化可能は ACID の「隔離性(Isolation)」を最も強くした状態にあたります。並列に速く動かすほど直列化可能から外れやすくなり、ここが同時実行制御の設計どころです。

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

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

17

同時実行制御

DBMS において,トランザクション間でデッドロックが発生していることを検出するために使用するものはどれか。

  1. 2 相ロック
  2. 時刻印アルゴリズム
  3. チェックポイント
  4. 待ちグラフ
解答と解説を見る

正解:

結論: 待ちグラフです。

なぜ: 「T1 が T2 の解放を待っている」という待ち関係を、トランザクションを点・待ちを矢印としたグラフで表します。このグラフに閉路(ぐるりと一周する経路)ができたら、互いに待ち合って永久に進めない=デッドロックです。DBMS は定期的に閉路を探し、見つけたらどれか 1 つを強制的に中断します。

2 相ロックはデッドロックの検出ではなく、直列化可能性を保証するためのロックの掛け方の規則です(むしろデッドロックは起こりえます)。時刻印アルゴリズムはデッドロックを起こさせない予防側のしくみ、チェックポイントは障害回復のためのもので、いずれも検出には使いません。

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

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

18

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

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

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

正解:

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

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

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

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

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

19

セキュリティ

暗号化処理時における暗号化装置の消費電力を測定するなどして,当該装置内部の秘密情報を推定する攻撃はどれか。

  1. キーロガー
  2. サイドチャネル攻撃
  3. スミッシング
  4. 中間者攻撃
解答と解説を見る

正解:

結論: サイドチャネル攻撃です。

なぜ: 暗号アルゴリズムそのものを破るのではなく、動作しているときに漏れ出す物理的な情報——消費電力、処理時間、電磁波、動作音など——から鍵を推定します。設問の「消費電力を測定する」がまさにこれにあたります。

キーロガーは打鍵を記録するソフト/機器、スミッシングは SMS を使ったフィッシング、中間者攻撃は通信経路に割り込んで盗聴・改ざんする攻撃で、いずれも装置の物理的な情報を測るものではありません。

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

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

20

セキュリティ

メッセージに RSA 方式のデジタル署名を付与して 2 者間で送受信する。そのときに使用するデジタル署名の検証鍵とその使用方法はどれか。

  1. 受信者の公開鍵であり,送信者がメッセージダイジェストからデジタル署名を作成する際に使用する。
  2. 受信者の秘密鍵であり,受信者がデジタル署名からメッセージダイジェストを取り出す際に使用する。
  3. 送信者の公開鍵であり,受信者がデジタル署名からメッセージダイジェストを取り出す際に使用する。
  4. 送信者の秘密鍵であり,送信者がメッセージダイジェストからデジタル署名を作成する際に使用する。
解答と解説を見る

正解:

結論: 送信者の公開鍵を、受信者が検証に使います。

なぜ: デジタル署名の流れは次のとおりです。

1. 送信者がメッセージのハッシュ値(ダイジェスト)を求める2. それを送信者の秘密鍵で変換する → これが署名3. 受信者は送信者の公開鍵で署名を戻し、ダイジェストを取り出す4. 自分で計算したダイジェストと一致すれば、本人が送ったもので改ざんもないと分かる

設問が聞いているのは「検証鍵」なので、3 の側、すなわち送信者の公開鍵です。

⚠️ エは正しい説明ですが、それは署名鍵(作る側)であって検証鍵ではありません。「作る=秘密鍵、検証=公開鍵」と、どちらを聞かれているかで答えが変わります。ア・イは受信者の鍵を使うとしている点が誤りです(受信者の鍵を使うのは暗号化のほうです)。

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

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

21

セキュリティ

秘密鍵が漏えいした場合であっても,過去に通信した暗号文を復号することができないという暗号技術の性質はどれか。

  1. 一方向性
  2. 前方秘匿性
  3. 第二原像計算困難性
  4. 等価安全性
解答と解説を見る

正解:

結論: 前方秘匿性(forward secrecy)です。

なぜ: 通信のたびに使い捨ての鍵を作り、終わったら捨てる方式にすると、長期の秘密鍵が後から漏れても、過去の通信を復号するための鍵はもう存在しません。だから遡って解読されません。TLS 1.3 が鍵交換を一時鍵に限定しているのは、この性質を必ず満たすためです。

アの一方向性とウの第二原像計算困難性はハッシュ関数に求められる性質で、鍵の漏えいの話ではありません。エの等価安全性は、方式の違う暗号どうしの強度を突き合わせるための考え方です。

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

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

22

コンピュータ構成要素

容量が a M バイトでアクセス時間が x ナノ秒の命令キャッシュと,容量が b M バイトでアクセス時間が y ナノ秒の主記憶をもつシステムにおいて,CPU からみた,主記憶と命令キャッシュとを合わせた平均アクセス時間を表す式はどれか。ここで,読み込みたい命令コードが命令キャッシュに存在しない確率を r とし,キャッシュ管理に関するオーバーヘッドは無視できるものとする。

  1. {(1−r)・a ÷ (a+b)}・x + {r・b ÷ (a+b)}・y
  2. (1−r)・x + r・y
  3. {r・a ÷ (a+b)}・x + {(1−r)・b ÷ (a+b)}・y
  4. r・x + (1−r)・y
解答と解説を見る

正解:

結論: (1−r)・x + r・y です。

なぜ: r は「キャッシュに存在しない確率」=ミス率です。したがって

  • 確率 (1−r) でキャッシュに当たり、x ナノ秒で済む
  • 確率 r で外れて主記憶を読みに行き、y ナノ秒かかる

平均は、それぞれの時間をその確率で重み付けして足したもの——つまり (1−r)・x + r・y です。

⚠️ 引っかけが 2 つあります。1 つは r がヒット率ではなくミス率であること(エは r と 1−r が逆)。もう 1 つは、容量 a・b は平均アクセス時間には効かないことです(ア・ウは容量の比で重み付けしていますが、当たるかどうかを決めるのは確率 r であって容量比ではありません)。

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

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

改変: 選択肢ア・ウは分数の式なので、同じ内容を 1 行の式として組み直しています(値・構造は原本のままです)。

23

システム構成要素

4 台の磁気ディスクで構成された RAID6 のディスクアレイシステムがあり,パリティの計算方法は次のとおりである。磁気ディスク 2 と磁気ディスク 3 が故障したとき,データブロック A1,A2 を復元するのに必要なデータブロックの組合せとして,適切なものはどれか。ここで,パリティの計算方法では “データブロック X” の内容を “X” で示し,⊕ は排他的論理和を示す。

ディスクアレイシステム(各ディスクのデータブロック)
磁気ディスク1磁気ディスク2磁気ディスク3磁気ディスク4
APA1A2AV
B1BPB2BV
CPC1C2CV
D1DPD2DV
〔パリティの計算方法〕
AV = D1 ⊕ A2,   BV = A1 ⊕ B2,   CV = B1 ⊕ C2,   DV = C1 ⊕ D2
AP = A1 ⊕ A2,   BP = B1 ⊕ B2,   CP = C1 ⊕ C2,   DP = D1 ⊕ D2
  1. B1,AP,AV
  2. B1,AP,BV
  3. D1,AP,AV
  4. D1,AP,BV
解答と解説を見る

正解:

結論: D1,AP,AV の 3 つです。

なぜ: 磁気ディスク 2 と 3 が壊れたので、残っているのはディスク 1(AP,B1,CP,D1)とディスク 4(AV,BV,CV,DV)だけです。この中だけで A1 と A2 を組み立てます。

1. AV = D1 ⊕ A2 を A2 について解くと A2 = AV ⊕ D1(AV と D1 はどちらも生き残っている)2. AP = A1 ⊕ A2 を A1 について解くと A1 = AP ⊕ A2(AP も生き残っている)

使ったのは D1,AV,AP の 3 つです。

⚠️ 排他的論理和は同じものを 2 回 ⊕ すると元に戻るので、X ⊕ Y から片方を消して残りを取り出せます。RAID6 が2 台まで同時に壊れても復元できるのは、この式を 2 種類(AP 系と AV 系)持っているからです。

ア・イの B1 や BV は A 行の復元には使えません。

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

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

改変: ディスクアレイの図は同じ内容を HTML の表として組み直しています。また原本のブロック名は添字つき(A の右下に小さく P など)ですが、本文・表・選択肢とも「AP」「A1」のように 1 行で書いています(対応関係は原本のままです)。

24

開発技術

オブジェクト指向における抽象クラスで,できないことはどれか。

  1. インスタンスを生成すること
  2. サブクラスをもつこと
  3. スーパークラスをもつこと
  4. 属性をもつこと
解答と解説を見る

正解:

結論: 抽象クラスはインスタンスを生成できません

なぜ: 抽象クラスは中身が決まっていない操作(抽象操作)を含むことができ、それだけでは動くものになりません。サブクラスに実装させるための土台として置くものなので、直接オブジェクトを作ることはできません。

逆に、それ以外は普通にできます。

  • サブクラスをもつ… むしろ持たせるために存在します
  • スーパークラスをもつ… 抽象クラスが別のクラスを継承しても構いません
  • 属性をもつ… 共通の属性をまとめて置けるのが利点の一つです

⚠️ 「抽象クラス=空っぽ」ではありません。実装済みの操作も属性も持てて、未実装の部分だけをサブクラスに委ねるのが抽象クラスです。

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

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

25

開発技術

エクストリームプログラミング(XP)のプラクティスとして,適切なものはどれか。

  1. 1 週間の労働時間は,チームで相談して自由に決める。
  2. ソースコードの再利用は,作成者だけが行う。
  3. 単体テストを終えたプログラムは,すぐに結合して,結合テストを行う。
  4. プログラミングは 1 人で行う。
解答と解説を見る

正解:

結論: できたらすぐ結合してテストする——継続的インテグレーションです。

なぜ: 結合を後回しにすると、最後にまとめて大量の食い違いが出ます。XP は逆に、小さく作ってすぐ合流させ、壊れたらその場で直すことで、問題を小さいうちに見つけます。

他の 3 つは、いずれも XP のプラクティスとです。

  • ア … XP は「週 40 時間(持続可能なペース)」を原則にします。チームで自由に決めるものではありません
  • イ … コードはチーム全員のもの(コードの共同所有)で、誰でも直せます
  • エ … ペアプログラミング、つまり 2 人 1 組で書きます

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

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

出典と改変について

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

← 過去問の一覧へ戻る