この記事はYouTubeで配信中の「【令和6年】ITパスポート1番わかるオンライン講座」を記事にしたものです。動画でご覧になりたい方は、下記からご確認ください。
今回は、令和6年ITパスポート1番わかるオンライン講座
第62回「データベース③トランザクション処理」をお伝えします。
今回はデータベースの第3回目としてトランザクション処理について説明します。
一連のデータベース操作を安全かつ確実に行うための技術です。しっかり学習していきましょう。
トランザクション
まず、トランザクションについて説明します。トランザクションとは、決して分割してはならない一連の処理のことです。
例えば、『カードの引き落とし』と『注文の受付』は、必ずセットで処理する必要があります。
コミット
つぎに、コミットについて説明します。コミットとは、一連のトランザクションが完全に終了してから、データベースの更新を確定させることです。
トランザクションとコミットの具体例
具体的に見てみましょう。
今回は、ネットショップで商品を注文する事例です。
通常、ある商品を注文する際には、お客様のカードから金額が引き落とされ、同時にネットショップで注文受付が完了します。
これらはセットで行われなければなりません。
仮にシステムが停止したとします。
カードの引き落としができなかった場合、ネットショップの注文受付もキャンセルしないといけません。
システムが停止して注文受付ができなかったとしても、引き落としが行われなければ、システムが復旧してからやり直せばいいだけです。
しかし、トランザクションが異常終了し、カードから引き落としがされてしまったのに注文が受付けられなかった場合、お客様は非常に困ります。
これは大変なクレームにつながりかねません。
ですから、カードの引き落としとネットショップの注文受付は、正常に終了する場合はきちんと実行し、異常が発生したらどちらもキャンセルする必要があります。
このように、必ずセットで実行するか、どちらもストップするかを決定することがトランザクション処理です。
トランザクション処理が正常に終了したことが確認されたら、データベースに更新を確定させます。これがコミットです。
ACID特性
次に、ACID特性について説明します。ACID特性とは、データベースのトランザクション処理に必要な4つの特性を指します。これらの特性は次の通りです。
Atomicity(原子性): トランザクションは、すべての要素が実行されるか、すべての要素が実行されないかのいずれかでなければならない。
Consistency(一貫性): トランザクションの前後でデータの整合性が保たれ、一貫していること。
Isolation(独立性): 複数のトランザクションはそれぞれ独立しており、お互いに影響しないこと。
Durability(耐久性): トランザクション完了後に記録された結果が失われないこと。
これらのACID特性は、データベースのトランザクション処理において非常に重要で、定期的に出題されるのでしっかりと覚えておきましょう。。
排他制御
排他制御とは、複数の人が同時にデータを更新しようとする際に、データの不整合や矛盾を防ぐ機能のことです。
例えば、ショッピングサイトで同じ商品を複数の人が同時に購入しようとする場合、在庫の数が正確に管理されるようにするために排他制御が必要です。
ロック
ロックとは、排他制御の一環としてデータへのアクセス制限をかけることです。
例えば、同じデータを複数のユーザーが同時に更新しようとすると、データの不整合や矛盾が発生する可能性があります。ロックをかけることで、このような問題を防ぎます。
まとめ
今回は、トランザクション処理の基本的な概念であるコミット、トランザクション、ロック、そして排他制御について学びました。
これらの技術を理解することで、データベースの操作を安全かつ確実に行うことができます。ITパスポート試験でも重要なトピックですので、しっかりと理解しておきましょう。