July 2021
Intermediate to advanced
376 pages
6h 34m
Japanese
本書のここまでの例はすべて単体の独立したSQL文でした。臨時の報告書の作成やデータメンテナンススクリプトではあたりまえのことかもしれませんが、アプリケーションのロジックには、1つの論理的な作業単位としてまとめて実行しなければならない複数のSQL文が含まれていることがよくあります。そこで本章では、トランザクション(transaction)に着目します。トランザクションは複数のSQL文をグループ化するためのメカニズムであり、それらの文はすべて成功するかすべて失敗するかのどちらかになります。
データベース管理システム(DBMS)では、1人のユーザーがクエリを実行したりデータを変更したりできますが、最近では、数千人もの人々が同時にデータベースに変更を加えることがあります。業務時間中のデータウェアハウスのように、すべてのユーザーがクエリを実行するだけであるとしたら、データベースサーバーが対処しなければならない問題は数えるほどしかありません。しかし、一部のユーザーがデータの追加や変更を行うとしたら、データベースサーバーが対処しなければならない問題は一気に増えることになります。
たとえば、今週のレンタル状況をまとめたレポートを作成しているとしましょう。ところが、レポートを作成している最中に次の出来事が発生します。
レポートを作成している最中に複数のユーザーがデータベースのデータを変更した場合、レポートに表示する数字はいくつにすべきでしょうか。その答えはデータベースサーバーがロック(lock)をどのように処理するかによって少し変わってきます。 ...
Read now
Unlock full access