Projection - Evaluating Relational Operation - Database Management Systems
Database Management Systemsの14章。
マインドマップから再構成したまとめ
Projection の手順
- 不要 attribute を削除
- 重複 tuple の削除
Projection based on Sorting
- Scan して attribute 削除
- tuple を Sort
- sort result を scan して重複を削除
- External sorting 大活躍
Projection based on Hashing
- 前提:データに対して十分大きな Buffer pages が存在する事
- データを入力バッファ 1 page に読み込み、全ての tuple に対して h() を適用し 1 〜 B - 1 のどれかのページに書き込む
- 1 〜 B - 1 を 1 page ずつ読み込み、その中の tuple に対して h2() を適用し重複かどうか調べて書き出す
Hash と Sorting どちらが良いの?
- 基本的には Sorting がよく使われる。うれしい副作用として結果が Sort 済みになるということも。
- Hash は以下の点で不利
- 分布が一様でないと困る
- メモリにフィットしないと困る
- そもそも重複が大量にあると困る
所感
- 次は Join 。Join は手強いぞ。がんばれ。