SQL を使わない新しい概念「NoSQL」と MongoDB

通常の RDBMS では SQL 文による問い合わせをデータベースに対して行い、得られた結果を利用していろいろとやるのだが、NoSQL はその名の通り、SQL 文によらない形でデータベースに問い合わせをして結果セットを取得するという、データベースの新しい形として近年注目されている。

NoSQL というのはそういったテクノロジーの総称で、それを実現している一つのデータベースが MongoDB である。MongoDB は RDBMS ではないが、SQL 文を使わずにデータの抽出・更新ができるので NoSQL の一つの形として作られたものである。

MongoDB では従来の RDBMS で言うところの table は collection として扱われ、その中身は JSON 形式のデータの集まりである。例えば

> db.address.save({ "name" : "foo" , "address" : "foo@bar.com" })

のようにデータを JSON 形式で collection に追加していく。

> db.address.find()

で全てのデータを見ることができる。また SQL 文の WHERE 句のような条件を指定した抽出も可能である。

SQL 文を必要としない分だけ、多言語との連携においてもソースが大幅に簡略化されるので、プログラマにとっても負担が少ない。また MongoDB 自体が軽いので、RDBMS ほどの機能を必要としない分においては、かなり有力なテクノロジであると思う。次回は、PHP のブログラムを用いて実際に MongoDB にアクセスするサンプルプログラムを紹介する。