「トランザクション」「スタック」の解説

2020年12月13日

トランザクションとは?

「トランザクション」とは、ソフトウェアの処理方式の一つで、互いに関連・依存する複数の処理をまとめ、一体不可分の処理単位として扱うことです。

「トランザクション」は、整合性や完全性を維持するため必要なひとまとまりの処理です。そのため、その一部の処理だけが実行されて終わるようなことは許されていません。

例として、口座間の送金処理において、送金元口座の残高を減らす処理だけが行われ、送金先口座の残高を増やさずに処理が終了することはあってはいけません。

DBMS(データベースマネジメントシステム)は、トランザクションが、必ず「全ての処理が成功して確定する」か「全く行われない」のどちらかの状態で終了するように制御します。このように、「トランザクション」が分割できない単位であることを示す特性のことを「トランザクションの原子性」と呼ばれます。

トランザクションに関する問題

◆確認問題

DBMSにおいて,一連の処理が全て成功したら処理結果を確定し,途中で失敗したら処理前の状態に戻す特性をもつものはどれか。
   ア. インデックス
   イ. トランザクション
   ウ. レプリケーション
   エ. ログ

出典:平成30年度 秋期 ITパスポート試験公開問題 問75

◆確認問題の解答(イ)、解説・・・各選択肢の解説は、次の通り。

  • ア(インデックス):「インデックス」とは、「索引」とも呼ばれ、データベースへのアクセス効率を向上させるために、検索対象となる1つ以上の列(属性)に対して設定される仕組みのことです。
  • イ(トランザクション):正解です。
  • ウ(レプリケーション):「レプリケーション」とは、DBMSが持つ機能の一つであり、データベースに加えた変更を他の別のネットワーク上にある複製データベースに自動的に反映させる仕組みのことです。
  • エ(ログ):DBMSにおける「ログ」とは、トランザクションで操作されるデータの操作前後の状態を記録したファイルのことです。ジャーナルファイルとも呼ばれます。

スタックとは?

「スタック」とは、コンピュータで用いられる基本的なデータ構造の1つで、データを後入れ先出し(LIFO: Last In First Out)の構造で保持することです。本や書類、箱などを積み上げて置くこと(stack)になぞらえて呼ばれます。

「スタック」とは、要素が入ってきた順に並べ、先頭が最も古く、末尾が最も新しい要素となります。要素を取り出すとき、末尾にある最も新しいものから順に取り出します。このように後に入れたものほど先に取り出される管理方式を「LIFO」(Last-In First-Out:後入れ先出し)又は「FILO」(First-In Last-Out:先入れ後出し)と呼ばれます。

なお、ほとんどのマイクロプロセッサには、メモリ領域に設けたスタックを操作するための機械語の命令や、レジスタ等を内蔵し、機械語のプログラムの実行制御などで非常によく用いられるデータ構造として知られています。

スタックに関する問題

◆確認問題

複数のデータが格納されているスタックからのデータの取出し方として,適切なものはどれか。
   ア. 格納された順序に関係なく指定された任意の場所のデータを取り出す。
   イ. 最後に格納されたデータを最初に取り出す。
   ウ. 最初に格納されたデータを最初に取り出す。
   エ. データがキーをもっており,キーの優先度のデータを取り出す。

出典:平成30年度 秋期 ITパスポート試験公開問題 問76

◆確認問題の解答(イ)、解説・・・各選択肢の解説は、次の通り。

  • ア:任意の場所のデータは取り出すことができません。
  • イ:正解です。「スタック」の説明になります。
  • ウ:「キュー」の説明になります。
  • エ:スタックに格納された値は、キーをもちません。