MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

データベースにおけるトランザクションの定義とは?基本概念と処理の流れを解説

トランザクションとは

トランザクションとは、データベース内で実行される一連のコマンド(命令)の集まりのことです。トランザクションを構成する各コマンドは「アトミック(不可分)」であるとされ、それ以上サブコマンドに分割することはできません。トランザクション内のコマンドは、データベースの構造を変更する場合もあれば、変更しない場合もあります。

重要なのは、トランザクションによって必要とされる変更は、すべて一括して反映されなければならないという点です。この規則が守られない場合、システム障害や停電などの予期しない事態が発生した際に、データが失われてしまう可能性があります。

トランザクションの具体例

トランザクションのわかりやすい例として、口座間の送金処理を考えてみましょう。

ハリーが自分の口座からサリーの口座へ100ルピーを送金するケースです。この処理はトランザクションとして実行されます。まず、ハリーの口座情報が読み取られ、残高から100が差し引かれます。その新しいデータはハリーの口座に保存されます。次に、サリーの口座情報が読み取られ、残高に100が加算されます。そして、この新しいデータがサリーの口座に保存されます。

しかし、実際にデータベースへトランザクションを実装するのは容易ではありません。上記の例で、ハリーの口座からお金が引き落とされた直後にシステムがクラッシュした場合を想像してください。この場合、そのお金はサリーの口座に追加されることはありません。つまり、情報が失われ、サリーの口座は永遠に更新されないままとなってしまうのです。こうした問題を防ぐため、トランザクションには適切な管理機構が必要となります。

トランザクションの処理プロセス

トランザクションは、一連の読み取り(read)操作と書き込み(write)操作によって構成されます。読み取り操作は任意のオブジェクトの現在の値を取得するために、書き込み操作は何らかの計算によって得られた更新後の値を書き戻すために使用されます。

読み取り操作(Read Operation)

データベース上のオブジェクトを読み取るには、まずそのオブジェクトをディスクからメインメモリに読み込みます。その後、メモリ上の値を必要な変数へコピーします。

データベースにおけるトランザクションの定義とは?基本概念と処理の流れを解説

書き込み操作(Write Operation)

データベース上のオブジェクトに書き込むには、メモリ上の値を保存したうえで、その値をディスクへ書き戻します。

データベースにおけるトランザクションの定義とは?基本概念と処理の流れを解説

  1. 分散データベース管理システム(DDBMS)の主要な構成要素を解説

    分散データベースとは分散データベースのデータは、複数の場所に分散して格納されています。つまり、データは同一拠点内の異なるシステムに保存されることもあれば、地理的に離れた複数のシステムに保存されることもあります。しかしながら、ユーザーから見れば、データベースはあたかも一つの統合された存在であるかのように振る舞います。データが複数の場所に保存されているという事実は、ユーザーに対して透過的(トランスペアレント)になっているのです。分散データベースの構成要素分散データベースは、主に以下の要素で構成されています。ユーザー(Users)グローバルスキーマ(Global Schema)データベースモジュール

  2. データベースにおけるN項関係(N-ary Relationship)とは?種類と具体例を徹底解説

    リレーションシップ(関係)とはリレーションシップ(関係)は、エンティティ関係図(ER図)を構成する重要な要素のひとつで、2つの異なるエンティティ間のつながりを表します。N項関係(N-ary Relationship)における「N」は、その関係に関与するエンティティの数を示しています。数自体は任意ですが、実務で特によく使われるのは、エンティティの数がそれぞれ1つ、2つ、3つである単項(unary)、2項(binary)、3項(ternary)の関係です。以下、それぞれの関係について詳しく見ていきましょう。単項関係(Unary Relationship)同じ種類のエンティティ同士に関係が成り立つ場