行指向データベースは行単位でページ(Oracle Database でいうデータブロック)にデータを格納しているのに対して、列指向データベースは列ごとにページに格納している。クエリ実行時に結果セットを返す際に列別にバラバラのページに格納されているデータをどうやってタプル(レコード)に復元している*1のかと思ったがやはり行IDのようなものを持っているようだ。 行ID は C-Store では pid、MonetDB では BAT(Binary Association Tables) の oid と呼ばれている。 The Design and Implementation of Modern Column-Oriented Database Systems NSM(N-ary Storage Model): 行方向でブロック(ページ)にデータを格納する方式 DSM(Decomposition
![列指向データベースのページのデータ構造 - ablog](https://cdn-ak-scissors.b.st-hatena.com/image/square/36e872d0bb3f948adb52603df53f7f4a8c184c6e/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fy%2Fyohei-a%2F20170420%2F20170420230742.png)