今注目のデータベースは?
ここ最近よく耳にする「NoSQL」。どんなものかとちょっと、調べたところ Not only SQLの略とのこと。
ではでは、今までデータベースと言えば「RDBMS」だったのとは違うの??
まずは、気付いた違いをさっくりと。
RDBと言われていたものは、こんな特徴があります。
RDB
・データ構造が複雑 → データを表形式で管理
・リレーションがある → データ同士の関係性を定義することで、整合性が保たれる
・トランザクションがある → データの不整合を防ぐ
・拡張性/柔軟性が低い → 事前にデータ構造を定義してしまう
それに対して、NoSQLはこんな感じですね。
NoSQL
・データ構造が単純である → 難しく考えなくても使い始められる!
・リレーションがない → 関連性を持たなくても問題なし
・トランザクションがない(なくはないですが緩い感じ)→シンプルな設計&機能
・拡張性/柔軟性が高い → とにかくデータ定義が不要のため、自由!
・分散環境への対応 → アベイラビリティの向上
それでは、10gen社マーケティングマネージャー、アダムさんに聞いてみましょう。アダムさーん!
やあ、アダムだよ。
これは、RDBとNoSQLを比較する際によく使われるたとえなんだけど、まず車を想像してごらん。
座席は座席の箱に、
窓は窓の箱に、
鏡は鏡の箱に、
今まで、いろいろなパーツが別々の箱に入っていて必要なときに箱から抜き出し組み合わせていた。でも、そんなことをせずに最初から組み立てられてる一台の車を出せたらどうだろう?
これを、RDB&NoSQLの関係に置き換えると…
個々のデータをそれぞれ持ち、必要なときにJoinさせるのがRDB。
これに対して、最初からデータを一つのドキュメントとして持つことでJoinさせる必要もなくすぐに欲しい情報が得られるというのがNoSQLなんだね。
SQL文を使わずにどうやって、データのやり取りをするのかって? 一般的に、NoSQLと呼ばれるものには40種類以上のデータベースが存在していると言われているんだ。
その中でも今回は、ドキュメント指向データベースについてだけ教えてあげよう。 ドキュメント指向データベースでは、RDBで管理しているテーブル(表)のようなかたちで管理せず、ドキュメントでデータを管理するんだ。