tokuhirom's Blog

新春連載企画: O/R Mapper についてかんがえてみた その1

あけましておめでとうございます。正月早々、O/R Mapper についてかんがえてみたことについて、ちょっとだけかいてみます。

O/R Mapper は RDBMS の差異をうめるためのものではない

「O/R Mapper つかってるから RDBMS が MySQL から Pg になっても大丈夫!」というのはわりと幻想。まあえてして、ORM に由来しないところで、RDBMS に依存してしまったりしますし、たとえば ORM つかっていても Skinny は FOR UPDATE をサポートしているけれど、FOR UPDATE は、SQL 標準じゃない気がするので、サポートしてない RDBMS だとうごかなかったりしますね。

そもそも SQL 標準の範囲でやろうとおもうなら、SQL 標準にのっとった SQL を発行すればいいだけなので、ORM をつかう必要はありませんね。

で、また RDBMS を抽象化するというのは ORM の必須要件ではぜんぜんなく、たとえば Perl だと ORLite という adamk の ORM があるけど、あれは SQLite に特化していて、それ以外のものはまったく無視しております。