読み方 : げんしせい

原子性 【atomicity】 不可分性 / アトミック性

概要

原子性(atomicity)とは、ある物事が、それ以上細かい単位や要素に分割されない、またはできない性質のこと。

トランザクションの原子性

データベースシステムのトランザクション処理などで、一連のものとして定義された処理がすべて完了するか、一つも実行されないかのいずれか状態になることを原子性という。

例えば、入出金処理で「出金処理が完了したところでシステム障害が生じたので入金はされなかった」といった事態が発生しては困るため、一連の処理を一体的に管理して原子性を保証する仕組みが必要となる。

そのために用いられるのがトランザクション処理で、一つのトランザクションを構成する複数の処理の進捗や変更内容を逐一記録しておき、途中で異常が発生したら完了済みの処理結果も破棄して実行前の状態に戻す処理を行う。

並行処理のアトミック性

コンピュータ上のプログラムの動作で、密接に関連する複数の処理が外部から一つの操作に見え、途中の状態を観測したり介入できない性質を、操作のアトミック性、不可分性などという。

マルチタスクやマルチスレッドマルチプロセッサなど複数のプログラムの流れが並行して実行されている状況や、実行中のプログラムに対する割り込み処理などで重要となる。

例えば、ある共有メモリ領域にある二つのデータを書き換えるプログラムが動作しているとき、一つ目を書き換えたところでその領域を読み込むプログラムに実行が切り替わってしまうと、処理途上の矛盾した内容のデータを読み込んでしまい処理に支障をきたす。

このような場合に、何らかの排他制御を行って書き換え中の外部からの読み取りを禁じることで、データの書き換えを一体的に処理することができる。

(2020.4.16更新)

他の用語辞典による「原子性」の解説 (外部サイト)

資格試験などの「原子性」の出題履歴

▼ 基本情報技術者試験
令7修7 問22】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
令6公 問7】 DBMSに実装すべき原子性(atomicity)を説明したものはどれか。
令5公 問7】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
令4修1 問28】 DBMSに実装すべき原子性(atomicity)を説明したものはどれか。
令3修6 問26】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
令2修1 問26】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
平30修7 問28】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
平30修6 問29】 DBMSが,データベースの更新に対して保証すべき原子性(atomicity)の単位はどれか。
平28春 問28】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
平26春 問29】 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
平24秋 問30】 DBMSが,データベースの更新に対して保証すべき原子性(atomicity)の単位はどれか。