発病活動 – Understanding SQL and RDB

もうちょっとデータベースというか RDB なり SQL なりのクエリの実行というものをきちんと理解したい気がする。DuckDB をいじっていた時に感じた物足りなさ、覚束なさや ZetaSQL を読んでわからない感じは、そういうリテラシの不足に起因している気がするので。

データベースといっても B-Tree みたいなストレージの話やトランザクションなど話題は色々あるけれど、ここでの関心はクエリの評価。結局自分にとっての SQL は Dremel や BQ のような OLAP で、そこで SQL という宣言的なクエリがデータを読むコードになって評価される魔法を理解したい欲求がある。

というわけで問題を理解するにあたり必要なことを考える。

  • 教科書を読む。長くてかったるいのでできれば論文を読んで済ませたいが、どうかね。大学のコース資料をいくつかあたって、必要な reading list を作るところからスタートだろうか。
  • しょぼい toy query processor を書く。オンメモリのデータか、ごく単純なフォーマットのファイル (mmap で使えるようなやつ) を相手にいくつかの素朴な代数的クエリが書ければよい。といってもそれなりに難しそうだけど。

しかしデータベースとか何で書けばいいのかね。C++ とか Java とかが堅いのはわかるが、そんなもの課外活動で書きたくない。一方でさすがに Python とか JS とかいう類の題材でもない。モダンプログラマなら Go なり Rust なりで書くんだろうけど。いい機会だから Rust 軽く勉強しようかなあ。全然本題が進まなそうだけど・・・まあ本題が進まなくても Rust を触れるならそれはでいい気はする。query processor 書きは題材ということで。

つまり、昼休みは RDB の教科書なり論文なりを読み、朝は Rust のチュートリアルをやる。これだな。可視化の教科書は読みかけだけど中断。SQL/RDB に詳しくなる方が楽しそうなので。課外活動は中断挫折を気にせずやってきます。

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s