多くのシステムでデータストレージと言えば、RDBMSが一般的。様々な言語でアプリケーションは開発されるけれど、ストレージはRDBMSでSQLを利用してアクセスする。そして、それらのアクセスを抽象化するべくフレームワーク(ActiveRecordや、JPA、etc...)がいろんな工夫をしている。
でもデータストレージとしての在り方については、RDBMSも選択肢の1つに過ぎない。もしかするとRDBMSに取って代わるものが現れるかもしれない。
と、InfoQのマーチンファウラー記事を見て思った。
Martin Fowler氏はデータストレージについての凍結した考えがほぐれてきたと考えている
RDBMSがSQLを利用しているのに比べて、HTTPというプロトコルを代替対象として挙げている。最近のRESTの流行や、HTMLの文書構造の見直し(まぁ、HTTPプロトコルなのでHTMLに縛る必要は無いけど)などHTTPプロトコルをストレージとして捉える見方も面白い。
他にもちょっとHTTPとは粒度が異なるが、HashMapもキーと値をペアとしたストレージとも言える。GoogleでもBigTableのような仕組みも考えられ、必要とする機能に特化(BigTableの場合は、検索コンテンツの収集=データのinsertとselect)することでRDBMS以外の選択肢も増えつつある。
ハードウェアという視点では、不揮発性があるフラッシュメモリがHDDと置き換わる(SSDとか)と、Javaのデータオブジェクト自体をRDBMSに保存することなくそのまま永続化してしまうということも現実的になってくるかもしれない。