令和4年度77テクノロジ系

ITパスポート 令和4年度 問77:データベース・トランザクションに関する問題

トランザクション処理のACID特性に関する記述として、適切なものはどれか。

  • a索引を用意することによって、データの検索時の検索速度を高めることができる。
  • bデータの更新時に、一連の処理が全て実行されるか、全く実行されないように制御することによって、原子性を保証することができる。正答
  • cデータベースの複製を複数のサーバに分散配置することによって、可用性を高めることができる。
  • dテーブルを正規化することによって、データに矛盾や重複が生じるのを防ぐことができる。
正答:Bデータの更新時に、一連の処理が全て実行されるか、全く実行されないように制御することによって、原子性を保証することができる。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは b です。

ACID特性は、データベースの“処理を安全に行うための4つの約束”です。そのうちbが説明しているのは「原子性」。

原子性とは「ぜんぶ成功するか、ぜんぶ無かったことにするか、どっちか」というルール。たとえば銀行の振込で『引き落としだけ成功して入金は失敗』のような“中途半端”を絶対に許さない仕組みです。

👉 覚え方:「原子性=オール・オア・ナッシング(全部か、ゼロか)」。

ほかの選択肢:a 索引は検索を速くする話/c 複製で止まりにくくする話/d 正規化で重複を防ぐ話で、どれもACIDそのものの説明ではありません。

標準試験対策の基準レベル

なぜこれが正解か

正解は b。トランザクションのACID特性のうち、bは「一連の処理が全て実行されるか、全く実行されないか」を保証する原子性(Atomicity) の説明として正しい。途中で失敗したら全てを取り消す(ロールバック)ことで、中途半端な更新を防ぐ。

各選択肢の解説

  • a 索引(インデックス):検索速度を上げる仕組みで、ACIDとは別概念。
  • c 複製の分散配置:可用性を高める仕組み(レプリケーション)で、ACIDとは別。
  • d 正規化:データの重複や矛盾を防ぐ設計手法で、ACIDとは別。

覚え方・ひっかけ注意

ACID=Atomicity(原子性)/ Consistency(一貫性)/ Isolation(独立性)/ Durability(永続性)。bの『全部実行か全く実行しないか』は原子性の決め台詞。索引・複製・正規化はDB一般用語のひっかけ。

上級誤答論破・背景理論まで深掘り

理論的背景

ACID特性(Atomicity原子性・Consistency一貫性・Isolation独立性・Durability永続性)はトランザクション処理の信頼性を保証する4つの性質であり、Edgar F. Coddのリレーショナルモデルを基盤として1970〜80年代に確立された概念である。本問の正解bは「原子性(Atomicity)」に対応し「一連の処理が全て実行されるか、全く実行されないように制御することによって保証される」という定義と完全に一致する。

ACID各要素の詳細を整理する。①原子性(Atomicity):トランザクションが分割不可能な一つの処理単位として扱われる性質。銀行振込の例では「口座Aから引き落とし+口座Bへの入金」の2操作が一体で完了するか、途中でエラーが発生した場合は両方ロールバック(取り消し)される。実装技術としてWAL(Write-Ahead Logging:先行ログ書き込み)・UNDO/REDOログが使われる。②一貫性(Consistency):トランザクションの前後でデータベースが定義した整合性制約(主キー制約・外部キー制約・チェック制約等)を満たす正常な状態に保たれる性質。③独立性(Isolation):複数の並行トランザクションが互いに干渉しないことを保証する性質。ロック機構(共有ロック・排他ロック)やMVCC(Multiversion Concurrency Control)によって実現される。④永続性(Durability):コミット完了したトランザクションの結果はシステム障害後も保持される性質。WALとチェックポイントによる障害回復が技術的基盤。

実務での使われ方

PostgreSQL・MySQL(InnoDB)・SQL Server・Oracle DatabaseはACID特性を完全にサポートするRDBMSであり、金融・医療・基幹業務系の「データ整合性が業務要件として必須」なシステムに使われる。一方NoSQL(MongoDB・Cassandra・DynamoDB等)はACIDの厳密な保証を犠牲にした代わりに「結果整合性(Eventual Consistency)」と高スケーラビリティ・高可用性を提供するCAP定理のトレードオフ設計を採用している。

分散トランザクションの文脈では「2フェーズコミット(2PC:Two-Phase Commit)」プロトコルが複数のデータベースノード間でACIDを保証するために使われる。①コーディネータがすべての参加ノードに「Prepare(準備完了か?)」を問い合わせる。②全ノードがYesと回答した場合のみコーディネータが「Commit」指示を送る(どれか一つでもNoなら全ノードにAbortを送る)。マイクロサービスアーキテクチャでは2PCの性能・可用性コストが問題となるため、Saga パターン(ローカルトランザクションを連鎖させて最終整合性を実現し、失敗時は補償トランザクションで状態を戻す)が代替手法として普及している。

試験での位置づけ

ITパスポートのデータベース・トランザクション分野でACID特性は頻出テーマである。本問のひっかけポイントは「選択肢a(インデックスによる検索速度向上)」「選択肢c(分散配置による可用性向上)」「選択肢d(正規化による矛盾防止)」がいずれもACID特性とは別のデータベース技術(インデックス・レプリケーション・正規化)に関する記述であり、「原子性の定義」に対応するのが選択肢bだけであることを見抜く必要がある。ACIDのAを「All or Nothing(全か無か)」という覚え方と結びつけることで正答率が上がる。

基本情報技術者(FE)ではACID特性の詳細内容・トランザクション管理の実装技術(コミット・ロールバック・セーブポイント・ロック機構・デッドロック検出・解消)・分離レベル(READ UNCOMMITTED・READ COMMITTED・REPEATABLE READ・SERIALIZABLE)と並行性問題(ダーティリード・ノンリピータブルリード・ファントムリード)の関係が問われる。データベーススペシャリスト試験(DB)ではWAL・チェックポイント・障害回復(REDO・UNDO処理)・分散データベースの整合性モデル(ACID vs BASE:Basically Available, Soft state, Eventual consistency)まで詳細に問われる。

選択肢の発展補足

選択肢aの「インデックスによる検索速度向上」はB-Tree・B+Tree・ハッシュインデックス等のデータ構造を使って検索クエリの計算量をO(n)からO(log n)に削減する技術であり、ACID特性とは独立した「性能最適化」の話題である。インデックスは書き込み性能(INSERT/UPDATE/DELETE)とのトレードオフがあり、最適なインデックス設計が実務でのDBパフォーマンスチューニングの核心となる。

選択肢dの「正規化によるデータの矛盾・重複防止」はデータベース設計の第1〜第3正規形(さらにBCNF・第4・第5正規形)による冗長性排除の技術であり、これは「設計レベルでの整合性確保」である。ACID特性は「トランザクション処理レベルでの整合性保証」であり、両者は異なる抽象化レベルで整合性を保証する相補的な技術として理解することが重要である。適切に正規化されたスキーマに対してACID準拠のトランザクションを適用することで、データ品質の二重の保護が実現される。

出典・引用について

出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和4年度77/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

55
security
56
database
57
database
58
technology_element
59
network

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビならITパスポートの過去問を解きながら学べます。