ホームページ >よくある問題 >リレーショナル データベース システム トランザクションの ACID プロパティは何ですか?

リレーショナル データベース システム トランザクションの ACID プロパティは何ですか?

青灯夜游
青灯夜游オリジナル
2021-01-28 16:38:506602ブラウズ

リレーショナル データベース システム トランザクションの ACID 特性: 1. 原子性: トランザクション内のすべての操作は完了するか、まったく行われません。 2. 一貫性: データベースは常に一貫した状態にある必要があります。 3. 独立性: 同時トランザクションは互いに影響しません。 4. 永続性: トランザクションがコミットされると、その変更はデータベースに永続的に保存されます。

リレーショナル データベース システム トランザクションの ACID プロパティは何ですか?

このチュートリアルの動作環境: Windows 7 システム、mysql バージョン 5.8、Dell G3 コンピューター。

(推奨チュートリアル: mysql ビデオ チュートリアル )

トランザクションはリレーショナル データベースの中核です。過去数十年でリレーショナル データベースが繁栄した理由は、トランザクションがサポートされているためです。トランザクションにとっては切り離せないものです。しかし、ことわざにあるように、成功は失敗と同じくらい悪いです。データ量の爆発的な増加、特に近年のビッグデータの開発のブームに伴い、リレーショナル データベース トランザクションがインターネット アプリケーションのパフォーマンスのボトルネックになっています。NoSQL はリレーションシップを放棄しました。データベース トランザクションの属性により、特定の種類の特殊なアプリケーションのパフォーマンスはリレーショナル データベースの何倍にもなります。

まず、トランザクションとは何かについて説明します。トランザクションとは、英語でトランザクションと呼ばれ、現実世界のトランザクションとよく似ており、次の 4 つの特徴があります。 #1. A (アトミック性) アトミック性

アトミック性は簡単に理解できます。つまり、トランザクション内のすべての操作が完了するか、何も行われないかのどちらかです。トランザクションの成功の条件は、すべてが完了することです。トランザクション内の操作は成功します。1 つの操作が失敗する限り、トランザクション全体が失敗するため、ロールバックする必要があります。

たとえば、銀行振込で口座Aから口座Bに100元を送金する場合、1)口座Aから100元を引き出す、2)口座Bに100元を入金するという2つのステップに分かれます。これら 2 つのステップは同時に完了するか、同時に完了しないかのどちらかで、最初のステップのみが完了し、2 番目のステップが失敗した場合、理由もなく金額が 100 元減額されます。

2. C (一貫性) 一貫性

一貫性も理解しやすいもので、データベースとトランザクションの動作が常に一貫した状態にある必要があることを意味します。データベースの元の整合性制約は変更されません。

たとえば、既存の整合性制約 a b=10 の場合、トランザクションが a を変更する場合、トランザクション終了後も a b=10 が満たされるように b を変更する必要があります。そうでない場合、トランザクションは失敗します。

3. I (Isolation) 独立性

いわゆる独立性とは、並行トランザクションが互いに影響を与えないことを意味します。現在別のトランザクションによって変更されていますが、他のトランザクションがコミットされていない限り、アクセスするデータはコミットされていないトランザクションの影響を受けません。

たとえば、口座 A から口座 B に 100 元を送金する取引があります。取引がまだ完了していない場合、この時点で B が自分の口座を確認しても、新しく追加された 100 元は表示されません。 .元。

4. D (耐久性) 耐久性

耐久性とは、トランザクションがコミットされると、変更が永続的にデータベースに保存されることを意味します。ダウンタイムがあっても紛失することはありません。

もう一度上記の例を見てみましょう。転送が成功し、この時点でデータベースがダウンしている場合でも、再起動後、成功した転送の結果を確認できます。

プログラミング関連の知識について詳しくは、

プログラミング教育

をご覧ください。 !

以上がリレーショナル データベース システム トランザクションの ACID プロパティは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。