『NoSQLプログラミング実践活用技法』を読んだ。
"NoSQL"だと「SQLではない」って言っているだけで、実際のところ何なのかよく分からない。そこで全体象を粗く掴みたいと思って、この本を読んでみた。読み進めてみたら、想像以上に手広く扱っていて、手に余るほど。CAPやBASISなどの理論から、データモデルから物理レイヤの概要から、実際にDBMSを動かしてみてそこにアプリケーションからアクセスするところまでカバーしている。
一言で言うと、"NoSQL"は実際のところ"NoREL (非関係モデル)"だ。関係モデルじゃないモデルでデータを扱うのが、NoSQLと言っていいと思う。そのモデルとして、この本では次の4つを紹介して、最初の3つについて詳しく説明している。最後のグラフデータベースは最近になって現れたNoSQLではなくて、ずっと前から存在している。
面白いと思ったのは"NoSQL"が必要としているのが、SQLだという話。沢山のNoSQL製品が出ているけれど、問い合わせ言語が統一されていない。データモデルが異なる製品間ではやむを得ないと思うけれど、データモデルが同じ製品間でもバラバラだ。この事実を指摘されると、RDBMSは制約こそ厳しいけれど、標準的な問い合わせ言語がある便利さが際立つ。
名前はよく聞くけれどよく分かっていなかったNoSQLについて、ある程度の理解が得られて読んだ甲斐があった。ドキュメントデータベースのMongoDBだけじゃなくて、他のデータベースも動かすともっとよく分かるんだろうけれど、それだと読み終えられそうになかったので割愛。
"NoSQL"だと「SQLではない」って言っているだけで、実際のところ何なのかよく分からない。そこで全体象を粗く掴みたいと思って、この本を読んでみた。読み進めてみたら、想像以上に手広く扱っていて、手に余るほど。CAPやBASISなどの理論から、データモデルから物理レイヤの概要から、実際にDBMSを動かしてみてそこにアプリケーションからアクセスするところまでカバーしている。
一言で言うと、"NoSQL"は実際のところ"NoREL (非関係モデル)"だ。関係モデルじゃないモデルでデータを扱うのが、NoSQLと言っていいと思う。そのモデルとして、この本では次の4つを紹介して、最初の3つについて詳しく説明している。最後のグラフデータベースは最近になって現れたNoSQLではなくて、ずっと前から存在している。
- 列指向データベース
- キー/バリュー型データストア
- ドキュメントデータベース
- グラフデータベース
面白いと思ったのは"NoSQL"が必要としているのが、SQLだという話。沢山のNoSQL製品が出ているけれど、問い合わせ言語が統一されていない。データモデルが異なる製品間ではやむを得ないと思うけれど、データモデルが同じ製品間でもバラバラだ。この事実を指摘されると、RDBMSは制約こそ厳しいけれど、標準的な問い合わせ言語がある便利さが際立つ。
名前はよく聞くけれどよく分かっていなかったNoSQLについて、ある程度の理解が得られて読んだ甲斐があった。ドキュメントデータベースのMongoDBだけじゃなくて、他のデータベースも動かすともっとよく分かるんだろうけれど、それだと読み終えられそうになかったので割愛。