基本情報技術者 学習ページ|科目A・データベース

DBMSの役割と回復

データベース方式では、データの持ち方とDBMSが提供する機能を区別して理解します。同時実行時のロックと、障害時のロールバック・ロールフォワードを重点的に整理します。

データベースの種類

関係データベースは、行と列からなる表の形でデータを扱い、表どうしの関係を利用して検索や更新を行います。階層型データベースは親子関係を木構造で表し、網型データベースは一つのデータが複数の親と関係できる網状の構造を扱います。

NoSQLにはキーバリュー型、ドキュメント指向、列指向、グラフ型などがあり、用途に応じて柔軟な構造や分散処理を重視します。データモデルの違いは、データ同士の関係をどの構造で表すかにあると整理します。

関係・階層・網型・NoSQLはデータの構造や関係の表し方が異なる。

DBMSの三つの機能

DBMSは、データベースを定義し、利用し、安全に保つための機能をまとめて提供します。データベース定義機能は表や項目、制約などの構造を定め、データベース操作機能は検索・追加・更新・削除などを行います。

データベース制御機能は、同時実行制御、障害回復、アクセス制御などを通じてデータの整合性や安全性を保ちます。定義・操作・制御のどの役割かを処理内容から判断することが基本です。

DBMSは定義・操作・制御を分担してデータを管理する。

ロックで競合を防ぐ

複数のトランザクションが同じデータへ同時にアクセスすると、更新の上書きなどで整合性が崩れることがあります。これを防ぐため、排他制御では処理対象をロックして、競合するアクセスを調整します。

一般に共有ロックは読み取り時に使い、複数のトランザクションが同じ対象へ共有ロックを持てます。専有ロックは更新を伴う処理で使い、他の共有ロックや専有ロックと両立しません。共有同士は共存できるが、専有を含む組合せは競合すると覚えます。

共有同士は共存でき、専有ロックは他のロックと競合する。

ログで障害に備える

障害回復では、更新前後の情報などを記録したログを利用します。障害の時点で完了していなかったトランザクションについて、その更新を更新前の情報を使って取り消す処理がロールバックです。

一方、データベースをバックアップから復元した後、バックアップ取得後に完了していた更新をログから再適用する処理がロールフォワードです。未完了処理を取り消すのがロールバック、完了済み処理を再現するのがロールフォワードです。

未完了はロールバック、バックアップ後の完了更新はロールフォワード。

回復の流れを判断する

システム障害が起きたときは、どの更新が完了済みで、どの更新が未完了だったかをログから判定します。未完了の更新がデータベースに残っていれば取り消し、バックアップから戻したことで失われた完了済み更新があれば再適用します。

このため、一つの障害復旧でロールバックとロールフォワードの両方が必要になる場合もあります。二つの用語は障害の種類だけで機械的に決めるのではなく、トランザクションが完了済みか未完了かで判断することが大切です。

回復処理は更新が完了済みか未完了かで選ぶ。

本番の形で解いてみる

科目Aの形: 四肢択一(このページのために作った問題)

トランザクションT1が、ある行に共有ロックを掛けて読み取っている。トランザクションT2がその行に対して行う操作のうち、T1のロック解除を待たずに実行できるものはどれか。

  1. 読み取りのために共有ロックを掛ける
  2. 値を更新するために専有ロックを掛ける
  3. 行を削除するために専有ロックを掛ける
  4. その行を含む表全体を読み取るために、表に専有ロックを掛ける
答えと解説を見る

正解: 読み取りのために共有ロックを掛ける

共有ロック同士は両立するので、T2も読み取りのための共有ロックをすぐに掛けられます。更新や削除には専有ロックが必要で、T1の共有ロックと競合するため、T1がロックを解除するまで待たされます。

まちがえやすい点: 共有ロックは読み取りどうしを両立させるためのもので、更新や削除とは両立しない。

科目Aの形: 四肢択一(このページのために作った問題)

毎日0時にバックアップを取得しているデータベースで、15時に媒体障害が発生した。0時以降に正常終了したトランザクションの更新を復旧後のデータベースへ反映するために用いる処理はどれか。

  1. ロールバック
  2. ロールフォワード
  3. 2相コミットメント
  4. チェックポイント設定
答えと解説を見る

正解: ロールフォワード

まず0時のバックアップを復元し、その後に正常終了していた更新をログから再適用します。この再適用がロールフォワードです。

まちがえやすい点: ロールバックは未完了トランザクションの更新を取り消す処理。

科目Aの形: 四肢択一(このページのために作った問題)

DBMSの機能のうち、表の列名やデータ型、主キーなどを指定してデータ構造を作成するものはどれか。

  1. データベース定義機能
  2. データベース操作機能
  3. 同時実行制御機能
  4. 障害回復機能
答えと解説を見る

正解: データベース定義機能

表の構造、列、データ型、制約などを定めるのはデータベース定義機能です。検索や更新は操作機能、ロックや回復は制御機能に含まれます。

まちがえやすい点: 構造を決める処理と、既存データを検索・更新する処理を区別する。

基本情報の学習ページ

ほかの学習ページの一覧と、2択の用語カード(750語)は、基本情報技術者のページにあります。

基本情報技術者のページへ →

このページの内容は、IPA「基本情報技術者試験 シラバス Ver.9.2」(2026年1月公表)と試験要綱Ver.5.6の範囲にもとづきます(2026年10月確認)。IPAは2027年度春ごろから新しい試験制度に移る予定です。