Neunomizuの日記

俺だけが俺だけじゃない

# CMU DB 4. Database Storage II

tags: CMU DB

授業

宿題の話をしているけど見た感じ次の授業までなさそう...?

ProjectとHomeworkというものがあり,前者はコードを書き,後者は筆記問題を解くというものっぽいです(なのでやるなら前者だけですかね)

前回の復習

前回の復習としてslotted pageslog-structured filie organizationについて話しています

前者はtupleのポインタをメモリの先頭から後方に置き, 後者はlog recordを残して遡ってファイルを再作成するというものです

前者を使う

Data Representation

  • tuple...バイト列
  • DBMSはtupleを解釈することが仕事

データの表現が色々ある

誤差があるのでそれを回避するために工夫する

DBMSは値がページのサイズよりも大きいとき,overflow storage pagesというのを使える.

外部ファイルの中に非常に大きな値を補完することも可能.DBMSは外部ファイルの中身を操作することは出来ない.

System Catalogs

ほぼ全てのDBMSはデータベースカタログをそれ自身に持っている.

  • OLTP(On-line Transaction Processing)
    • 簡潔で少量のデータ
  • OLAP(On-line Analytical Processing)
    • 複雑で大量のデータ

Storage Models

  • n-aray storage model(NSM)
    • 行で操作する
    • OLTP向け
    • 長所
      • 小さなデータに対して相対的に早いアクセス
      • tuple全体へのクエリには良い
    • 短所
      • テーブルの大部分にアクセスして,その一部の特性しか読まない時は効率的でない
  • decomposition storage model(DSM)
    • 列で操作する
    • OLAP向け
    • 以下の2つの選択肢がある
      • fixed-length offsets
        • それぞれのtupleは同じ長さ
      • embedded tuple ids
        • 列内にtupleの識別子と一緒に格納
    • 長所
      • I/Oを減らせる
      • より効率的にクエリ処理,データ圧縮ができる
    • 短所
      • 小さなデータに対して相対的に遅いアクセス

結論

storage managerは完全にDBMSの他の部分から独立しているわけではない

目標する仕事量に応じて適切なstorage modelを選ぶのが重要である

  • OLTP = row store
  • OLAP = column store

感想

モデルが重要というのはCSの基本だと思った.