RDBMSをブラックボックスにしない

複数トランザクションの同時実行編

 トランザクションが複数同時に実行される時,RDBMSはどのような仕組みで,それぞれのトランザクションの独立性を保つのかを説明します。これを理解することにより,さらに良いトランザクション処理のアプリケーションを開発することができるようになります。

目次

第1回 ほかのトランザクションからの影響 
第2回 1番ゆるい分離レベル(リードアンコミッティド) 
第3回 2番目にゆるい分離レベル(リードコミッティド) 
第4回 3番目にゆるい分離レベル(リピータブルリード) 
第5回 1番きつい分離レベル(シリアライザブル) 


更新処理とトランザクション編

 「RDBMSの更新処理とトランザクションの関係は難しい」――。こう思っている読者の方は少なくないでしょう。アプリケーションを開発するだけなら,更新処理とトランザクションの関係をきちんと理解していなくても,「見よう見まね」の開発で何とかなってしまうかもしれません。ただ,何か問題が起きたとき,それを解決することはできません。アプリケーション開発者にとって,いつかはマスターしなければならないテーマの一つといえるでしょう。

 そこで本連載では,「RDBMSは更新処理要求をどのように処理しているのか」「トランザクションとはどのようなものなのか」といったことを,具体的な例を挙げて分かりやすく説明します。

目次

第1回 更新処理とトランザクションは違う 
第2回 更新SQL文を実行すると何が行われるのか? 
第3回 「COMMIT」を実行すると何が行われるのか? 
第4回 「ROLLBACK」を実行すると何が行われるのか? 
第5回 ログ・データをディスクに書き込んで遅くないの? 


検索編

 SQL文がRDBMS(リレーショナル・データベース管理システム)でどのように処理されるのか,興味を持ったことはありますか?

 この連載では,RDBMSがSQL文を受け取ってから結果を返すまでに実行していることを説明します。主にアプリケーション開発者を対象とし,SQL文を見よう見まねで書いている方を想定しています。連載ではSQL文の書き方自体は詳しく説明しませんが,連載のなかに出てくるSQL文の意味は随時説明しますので安心してください。

目次

[第1回]DBの仕組みを知れば処理性能の問題点を見抜ける
[第2回]五つの構成要素を押さえておけば大丈夫
[第3回]メモリーに読み込まなければ始まらない
[第4回]ディスク・アクセスはデータ量より回数に注目
[第5回]SQL文はこうして処理される
[第6回]Bツリー・インデックスの構造
[第7回]インデックスのディスク・アクセス回数
[第8回]ディスク・アクセスは半分以下に
[第9回]効果のないインデックス---「性別」に付けても効果なし
[第10回]効果のないインデックス---レコード数が少ないと効果なし
[第11回]二つのテーブルを検索する
[第12回]ソートマージとハッシュ・ジョイン
[第13回]ネステッドループ・ジョインの処理手続き
[第14回]ネステッドループ・ジョインのディスク・アクセス回数を概算