# CMU DB 4. Database Storage II
tags: CMU DB
授業
宿題の話をしているけど見た感じ次の授業までなさそう...?
ProjectとHomeworkというものがあり,前者はコードを書き,後者は筆記問題を解くというものっぽいです(なのでやるなら前者だけですかね)
前回の復習
前回の復習としてslotted pages
とlog-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の識別子と一緒に格納
- fixed-length offsets
- 長所
- I/Oを減らせる
- より効率的にクエリ処理,データ圧縮ができる
- 短所
- 小さなデータに対して相対的に遅いアクセス
結論
storage managerは完全にDBMSの他の部分から独立しているわけではない
目標する仕事量に応じて適切なstorage modelを選ぶのが重要である
- OLTP = row store
- OLAP = column store
感想
モデルが重要というのはCSの基本だと思った.