平成28年度 秋期28テクノロジ系

基本情報 平成28年度 秋期 問28:テクノロジ系に関する問題

トランザクションが, データベースに対する更新処理を完全に行うか, 全く処理 しなかったかのように取り消すか, のどちらかの結果になることを保証する特性は どれか。

  • a一貫性 (consistency) イ 原子性 (atomicity)
  • b関係する相互のテーブルの格納場所を近くに配置することによって, 検索, 更 新を高速に行う。 ウ 障害によって破壊されたレコードを, テーブル間の相互の関係から可能な限り 復旧させる。正答
  • c耐久性 (durability) エ 独立性 (Gsolation) 問29 関係データベースにおいて, 外部キーを定義する目的として, 適切かものはどれ か。 ア 関係する相互のテーブルにおいて, レコード間の参照一貫性が維持される制約 をもたせる。
  • dレコードの削除, 追加の繰返しによる, レコード格納エリアのフラグメンテー ションを防止する。
正答:B関係する相互のテーブルの格納場所を近くに配置することによって, 検索, 更 新を高速に行う。 ウ 障害によって破壊されたレコードを, テーブル間の相互の関係から可能な限り 復旧させる。

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

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

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

答えは 原子性(atomicity) です(選択肢が文字化けしているが論理的に原子性が正解)。

トランザクションのACID特性のひとつ「原子性」とは「やるなら全部・やめるなら全部なかったことに」というオール・オア・ナッシングの性質。

たとえば銀行振込で「Aから10万引いたけどBに足す前にエラー」なら、Aの引き落としも自動でキャンセル(ロールバック)されます。

👉 覚え方:原子性=全部やる or 全部なし

ほかのACID:一貫性(整合性キープ)/独立性(並列でも正しい結果)/耐久性(停電でも消えない)。

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

なぜこれが正解か

正解は原子性(atomicity)。トランザクションのACID特性の一つで「処理が完全に実行されるか、まったく実行されないかのいずれか」を保証する性質。途中でエラーや障害があればロールバックして開始前の状態に戻し、中途半端な部分実行を許さない。問題文「完全に更新するか、全く処理しなかったかのように取り消す」と完全一致。

各選択肢の解説(ACID特性整理)

  • A(Atomicity)原子性:全実行 or 全取消(本問正解)
  • C(Consistency)一貫性:トランザクション前後でDB整合性維持(制約・ルール遵守)
  • I(Isolation)独立性/隔離性:並行実行時も各トランザクションが独立に見える
  • D(Durability)耐久性:コミット後はシステム障害でもデータが失われない

覚え方・ひっかけ注意

ACID4特性を何を守るかで識別:

  • 原子性=処理の一体性
  • 一貫性=データ整合性
  • 独立性=並行制御
  • 耐久性=永続性

試験では4特性の英語名・定義・場面(COMMIT/ROLLBACK・制約・ロック・WALログ)を組み合わせて出題。「全部 or なし」は原子性が鉄則。

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

理論的背景

ACID特性はJim Gray&Andreas Reuterが1983年に体系化、関係データベース理論の根幹。

  • 原子性実装:WAL(Write-Ahead Logging)、トランザクションログのUNDO/REDO
  • 一貫性実装:制約(PK/FK/CHECK/NOT NULL/UNIQUE)、トリガ
  • 独立性実装:ロック機構(行/表ロック、共有/排他)、MVCC(Multi-Version Concurrency Control)
  • 耐久性実装:ログの強制書き出し(fsync)、レプリケーション、バックアップ

独立性のレベル(Isolation Levels)(SQL標準):

  • READ UNCOMMITTED:ダーティリード可
  • READ COMMITTED:ダーティリード防止、ノンリピータブルリード可
  • REPEATABLE READ:同一トランザクション内で同値読取保証、ファントムリード可
  • SERIALIZABLE:完全直列化

実務での使われ方

DB別の独立性デフォルト:

  • PostgreSQL:READ COMMITTED(MVCCベース)
  • MySQL InnoDB:REPEATABLE READ
  • Oracle:READ COMMITTED
  • SQL Server:READ COMMITTED

分散トランザクションでは2PC(Two-Phase Commit)で複数DB間の原子性を実現するが、性能・可用性とのトレードオフあり。

BASE特性(NoSQL):

  • Basically Available(基本的に利用可能)
  • Soft state(状態は柔軟)
  • Eventually consistent(結果整合性)

ACIDの厳格性を緩めて可用性・スケーラビリティを優先する設計思想。CAP定理(一貫性・可用性・分断耐性のうち2つしか同時達成不可能)の文脈で選択される。

試験での位置づけ

データベース分野の超頻出テーマ。基本情報・応用情報では4特性識別、データベーススペシャリストでは独立性レベル・ロック粒度・MVCC・2PC・3PC・Sagaパターン・分散DB理論(CAP/PACELC)まで踏み込む。

選択肢の発展補足

ロック関連:

  • 2相ロック(2PL):成長相→縮退相、Serializability保証
  • デッドロック:循環待ちで停止、検出→ロールバック解除
  • 楽観的並行制御(OCC):競合少前提でコミット時検証
  • 悲観的並行制御:事前ロック

分散トランザクション:

  • 2PC:Coordinator/Participant、Prepare/Commit
  • 3PC:CanCommit/PreCommit/DoCommit、ブロッキング軽減
  • Sagaパターン:補償トランザクションで分散原子性を擬似的実現(マイクロサービス時代の標準)
  • TCC(Try-Confirm-Cancel):類似パターン
  • Outbox Pattern:DBとメッセージング間の整合性

現代のクラウドネイティブDB(CockroachDB・Spanner・YugabyteDB)はACID+水平スケールを実現するNewSQLとして注目。試験対策は4特性の正確な定義+独立性レベル+分散整合性パターンの理解で上位資格全般に対応可能。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 秋期28/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

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

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

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

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。