ITパスポート過去問 令和4年度(2022年)問77
トランザクション処理のACID特性に関する記述として,適切なものはどれか。
選択肢
- ア:索引を用意することによって,データの検索時の検索速度を高めることができる。
- イ:データの更新時に,一連の処理が全て実行されるか,全く実行されないように制御することによって,原子性を保証することができる。
- ウ:データベースの複製を複数のサーバに分散配置することによって,可用性を高めることができる。
- エ:テーブルを正規化することによって,データに矛盾や重複が生じるのを防ぐことができる。
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
ACID特性は、トランザクション処理を正しく完了させるために必要な4つの性質(原子性、一貫性、独立性、耐久性)です。正解の「イ」は、更新処理の途中で失敗しても、処理結果が中途半端に残らないように「全て実行される」か「全く実行されない」状態に制御する原子性の説明です。
Point
この問題は、ACID特性のうち原子性(Atomicity)の定義を説明できるかを確認することがねらいです。索引(検索速度)、複製(可用性)、正規化(設計手法)など、データベースの別概念とACID特性を区別できることも求められます。
解くために必要な知識
この問題を解くには、トランザクションとACID特性(原子性・一貫性・独立性・永続性)の定義を押さえておく必要があります。
用語の整理
| 用語 | 意味 |
|---|---|
| トランザクション | データベースに対する複数の処理を、ひとまとまりとして扱う単位です。成功時は確定し、失敗時は取り消します。 |
| ACID特性 | トランザクションが満たすべき4つの性質(原子性、一貫性、独立性、永続性)です。 |
ACID特性
| 特性 | 意味 | よく使う表現 |
|---|---|---|
| 原子性(Atomicity) | トランザクション内の処理は、全て成功して確定するか、途中で失敗したら全て取り消される性質です。 | 全部実行されるか、全く実行されない |
| 一貫性(Consistency) | トランザクションの前後で、データが整合性制約(ルール)を満たし続ける性質です。 | 矛盾した状態を作らない |
| 独立性(Isolation) | 同時に実行される複数のトランザクションが互いに干渉しにくい性質です。 | 同時実行しても影響を抑える |
| 永続性(Durability) | 確定した結果が、障害が起きても失われにくい性質です。 | コミット後は保持される |
他の選択肢に出てくる用語
| 用語 | 意味 |
|---|---|
| 索引(インデックス) | 検索を速くするための補助データ構造です。ACID特性ではありません。 |
| 可用性 | システムを継続して利用できる度合いです。冗長化やバックアップなどで高めます。ACID特性ではありません。 |
| 正規化 | テーブルを分割・整理し、データの重複を減らし更新時の不整合を起こしにくくする設計手法です。ACID特性ではありません。 |
問題の解法手順
各選択肢の整理
ACID特性の説明になっているかを確認する
各選択肢が、トランザクションの性質(ACID)を説明しているか、それとも別のデータベース技術(索引、複製、正規化など)を説明しているかを見分けます。
| 選択肢 | 説明の対象 | 判断 |
|---|---|---|
| ア | 索引(インデックス) | ACIDではありません。 |
| イ | 原子性(Atomicity) | ACIDの説明です。 |
| ウ | 複製、分散配置による可用性 | ACIDではありません。 |
| エ | 正規化による矛盾や重複の抑制 | ACIDではありません。 |
選択肢ごとの解説
- ア:不正解
索引(インデックス)によって検索速度を高める説明であり、トランザクションの性質(ACID)ではありません。
- イ:正解
一連の更新処理が全て実行されるか、失敗時は全く実行されなかった状態にする制御は、ACID特性の原子性の説明です。したがって適切です。
- ウ:不正解
データベースを複数サーバに複製して分散配置するのは、停止しにくくするための構成であり、主に可用性の向上に関する説明です。ACID特性の説明ではありません。
- エ:不正解
正規化によってデータの重複を減らし、更新時の矛盾が起きにくくするのはデータベース設計の手法です。ACID特性の説明ではありません。
まとめ
ACID特性は、トランザクション処理を正しく完了させるために必要な4つの性質(原子性、一貫性、独立性、耐久性)です。正解の「イ」は、更新処理の途中で失敗しても、処理結果が中途半端に残らないように「全て実行される」か「全く実行されない」状態に制御する原子性の説明です。
テクノロジ系 > 技術要素 > データベース
索引(インデックス)によって検索速度を高める説明であり、トランザクションの性質(ACID)ではありません。
一連の更新処理が全て実行されるか、失敗時は全く実行されなかった状態にする制御は、ACID特性の原子性の説明です。したがって適切です。
データベースを複数サーバに複製して分散配置するのは、停止しにくくするための構成であり、主に可用性の向上に関する説明です。ACID特性の説明ではありません。
正規化によってデータの重複を減らし、更新時の矛盾が起きにくくするのはデータベース設計の手法です。ACID特性の説明ではありません。