トランザクションの原子性を見分けるには
ITパスポート試験 令和4年度 問77 / データベース › トランザクション処理
過去問にチャレンジ
トランザクション処理のACID特性に関する記述として,適切なものはどれか。
- ア
索引を用意することによって,データの検索時の検索速度を高めることができる。
- イ
データの更新時に,一連の処理が全て実行されるか,全く実行されないように制御することによって,原子性を保証することができる。
- ウ
データベースの複製を複数のサーバに分散配置することによって,可用性を高めることができる。
- エ
テーブルを正規化することによって,データに矛盾や重複が生じるのを防ぐことができる。
会話形式の解説
講師ACID特性の問題では、それぞれの記述がトランザクションの性質を表しているかに注目します。今回は原子性が鍵です。
受験者どの記述もデータベースに関係するので、原子性だけをどう見分ければよいか迷います。
講師原子性とは、一連の処理を途中まで実行した状態で終わらせない性質です。すべて実行するか、まったく実行しないかで判断します。
受験者一連の更新をすべて実行するか、まったく実行しないようにする記述が当てはまりますね。
講師はい。それが正解です。途中で失敗した場合は、ロールバックという操作で更新を取り消します。
受験者索引を使って検索を速くする記述も、データベースの処理を改善していますが、原子性とは違うのですか。
講師索引は検索性能に関係します。一連の更新をすべて実行するかどうかを決めるものではありません。
受験者複数のサーバに複製を置く記述は、可用性を高めるためのものですね。
講師そのとおりです。複製を配置するレプリケーションは可用性に役立ちますが、ACID特性の説明ではありません。
受験者正規化も重複や矛盾を減らしますが、更新を途中で終わらせない仕組みとは別ですね。
講師はい。正規化はデータの設計手法です。選択肢の説明自体が正しくても、何を改善する技術かを区別すると原子性を見分けられます。
まとめ
ACID特性の原子性は、一連の処理をすべて実行するか、まったく実行しないかを保証する性質です。途中で失敗した場合は、ロールバックで更新を取り消します。索引は検索性能、レプリケーションは可用性、正規化はデータの設計に関係します。
解答・解説
正解はイです
この問題のテーマ
トランザクション処理のACID特性のうち、原子性を説明している選択肢を見分ける問題です。
解き方の考え方
ACIDは原子性・一貫性・独立性・永続性を指します。まず、各選択肢がトランザクションの性質を述べているかを確認します。原子性の判断の鍵は、一連の処理が「すべて実行」か「すべて取り消し」になることです。
選択肢ごとの解説
- ×ア 索引を用意することによって,データの検索時の検索速度を高めることができる。索引を使うと、データの検索速度を高められます。しかし、これは検索性能についての説明であり、トランザクションのACID特性には含まれません。
- ○イ データの更新時に,一連の処理が全て実行されるか,全く実行されないように制御することによって,原子性を保証することができる。一連の更新をすべて実行するか、まったく実行しないようにする制御は、原子性を保証します。途中で処理が失敗した場合には、ロールバックで更新を取り消します。
- ×ウ データベースの複製を複数のサーバに分散配置することによって,可用性を高めることができる。データベースの複製を複数のサーバに配置することは、レプリケーションです。可用性の向上には役立ちますが、ACID特性の説明ではありません。
- ×エ テーブルを正規化することによって,データに矛盾や重複が生じるのを防ぐことができる。テーブルの正規化は、データの重複や更新時の矛盾を減らすための設計手法です。トランザクションの原子性を保証するものではありません。
補足
選択肢の説明自体が正しくても、問われているACID特性の説明とは限りません。何を改善する技術なのかを区別すると解きやすくなります。
POINT
- ACIDの原子性は、一連の処理を途中まで実行した状態で終わらせない性質です。
- 処理に失敗したときは、ロールバックで更新を取り消します。
- 索引は検索性能、レプリケーションは可用性、正規化はデータの設計に関係します。
