Yabu.log

ITなどの雑記

「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」を読んだ

結構古い本です。中古で書いましたが、多分新品はあまり出回っていないと思います。

この本を読んだ動機

  • CC本(Bernstein本)やweikum本をいきなり読むのはきついので、RDBMS(自体の)入門書が読みたい
    • SQLの本は割と何冊か読んだが、DBMS自体について書かれた本はあまり読んでいない。
  • DBのコンポーネントを特定製品に依存しない形式で理解したい
  • 特定の製品に依存していないMVCCの日本語解説を読みたい

などを理由にこの本を読みました。

Concurrency Control and Recovery in Database Systems

Concurrency Control and Recovery in Database Systems

ノート

RDBMSは以下のコンポーネントから構成される

  • SQLを解釈実行するパーツ
  • データベースの構造を司るパーツ
    • カタログ管理
    • インデックス管理
    • バッファ管理
    • ストレージ管理
  • 複数のアプリケーションからの要求や可溶性を司るパーツ

雑感

  • プランには論理プランと物理プランの2種類がある

論理プラン

データベースの処理手順を「関係代数」の言葉で(厳密にはこれだけではないが)書き下したのが「論理プラン」である(p36)

物理プラン

論理プランをコンピュータ上の実行手順に書き換えたものを物理プランという(p36)

  • 論理プランではSQLで書かれた内容を関係代数の操作に書き直す(和、差、共通、選択、射影、直積、結合)
  • 物理プランでは結合アルゴリズム(nested loop/sort merge/hash join)を選んだりスキャン方式(index/table scan)を選ぶ

  • WAL(Write a head log)のメリットがわかりやすく書かれている。

  • ロールバック・ロールフォワードの説明がわかりやすい

    • ロールバックは操作の取り消し(UNDO),ロールフォワードは操作のやり直し(REDO)
    • それぞれの操作にはそれ専用のログを使うUNDOログ,REDOログ
  • Create tableで宣言したテーブル情報は一般に「カタログ情報」というらしい。これは知らなかった。

  • 本書ではMVCCはMVTO (Multi Version Timestamp Ordering)のプロトコルを例に説明されている

微妙な点

  • 記述が若干古い
    • HDDが100GBの時代。
    • もちろんSSDやOn memory DBなんてない
    • JOIN構文がまだ存在していない
      • FROM句にテーブルをカンマ区切りで列挙してWhere句に結合条件を書くスタイル

と、こんな感じです。RDBMSの内部に切り込んでかつ特定製品に依存しないような類書はあまり無いように思います。データベーススペシャリストの獲得を目指す方が副読本として読むのがいいのではないでしょうか。

RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み (DB Magazine Selection)

RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み (DB Magazine Selection)