技術共有

MySQLトランザクションの使用法

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

特徴

トランザクション ACID の基本属性:

データベース トランザクションの ACID 特性は、トランザクション操作の実行時にデータベースの信頼性と正確性を保証する 4 つの基本属性を指します。 ACIDは原子性(原子性)、一貫性(一貫性)、分離(分離)、持続性 (耐久性)の頭字語。以下に各機能の詳細な説明を示します。

原子性:

原子性とは、トランザクションが完全に実行されるか、まったく実行されないことを意味します。トランザクションの実行中にエラーや障害が発生すると、実行された操作の一部がロールバック (元に戻され) し、トランザクション全体が何も起こらなかったかのように動作します。
たとえば、銀行振込では、両方の振込手順 (ある口座からの引き落としと別の口座への入金) が成功するか、どちらも実行されないかのどちらかです。お金だけが引き落とされて入金が行われないという状況はあり得ません。
一貫性:

一貫性により、トランザクションの実行前後でデータベースが常に一貫した状態にあることが保証されます。データベースは、トランザクションの開始時と終了時にすべてのビジネス ルールと制約を満たす必要があります。
たとえば、銀行振込では、取引の前後で口座合計金額が同じである必要があります。ある金額が 1 つのアカウントから引き落とされる場合、対応する金額がもう 1 つのアカウントに追加され、システム全体で合計金額の一貫性が保たれます。
分離:

分離により、複数の同時トランザクションの実行が相互に干渉しないことが保証されます。各トランザクションは、他のトランザクションの操作とは独立して実行する必要があります。トランザクション間の分離レベルは、さまざまなロック機構や複数バージョンの同時実行制御を通じて実現できます。
たとえば、2 つの同時銀行振込トランザクションでは、一方のトランザクションが実行されている間、もう一方のトランザクションにはコミットされていない中間状態が表示されるべきではありません。
耐久性:

耐久性により、トランザクションがコミットされると、その結果はデー​​タベースに永続的に保存され、たとえシステムに障害が発生した場合でも (停電やクラッシュなど)、送信されたトランザクションの結果は失われないことが保証されます。
たとえば、銀行振込では、一度送金トランザクションが正常に送信されると、その後システムに障害が発生した場合でも、送金結果は失われず、口座残高の更新は維持されます。
これらの機能により、トランザクション処理におけるデータベースの信頼性と一貫性が確保され、データの整合性と正確性が確保されます。

JDBC はトランザクションを使用します

データベースを複数回操作する設計をしている場合、以下のSQLが間違っています。実際には 2 つのステートメントは同時に成功するか失敗する必要がありますが、現在のプログラムは私の要件を満たしていません。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

トランザクションを通じて一貫性が保証される
ここに画像の説明を挿入します