編集部からのお知らせ
新着・電子インボイスの記事まとめ
記事まとめDL:オンライン確認「eKYC」

時代はポストRDBへ--NoSQL徹底研究:2015年はNoSQL元年、今なぜ必要なのか - (page 3)

原沢滋 (DataStax)

2015-03-02 15:30

NoSQLでの開発

 NoSQLの開発手法はRDBのそれとは根本から違います。今までのようにRDBの考え方で開発をすると痛い目にあいます。特に開発手法、データモデリングについては、考え方がメインフレームから正規化モデルの際に大きく変わったように考え方を大きくリセットする必要があります。

 RDBですと、正規化して論理モデル、物理モデルを設計してから、アプリケーションを開発していましたが、NoSQLの場合はその必要がありません。一般的にはそのまま非正規化でデータを取り扱うことが可能なので、何も考えずにデータを入れればよいと考えられがちですが、もちろんデータは簡単に入りますが、その取り扱いにはやはり、最初にデータモデルをしっかりと考えておくことは重要です。開発の際には、そのアプリケーションでどのようにデータを扱うのかをしっかりと考えて、アプリケーションの開発と同時にデータベースも設計することが必要です。

 一概に括ってしまうと誤解を招きかねますが、開発手法からいくと、ウォータフォール型開発でしっかりと設計をしながら実施していくRDBMS、アプリケーションの開発とデータベースの開発が同時に進行し、データモデルがどんどん追加されていくアジャイル型開発がNoSQLデータマネジメントシステムと言えると思います。

 今の時代、数カ月後には新しいサービスが必要になっている時代です。今までの固定観念ではなく新たな変化にも柔軟に対応できるデータベース、それがNoSQLなのです。

表2:NoSQLとRDBMSの違い(筆者作成)
NoSQLRDB
スキーマ定義スキーマレス定義する
言語製品ごとに違うSQL
データモデル製品ごとに違うリレーショナル
可用性基本はレプリケーション基本はフェイルオーバー
拡張性スケールアウトスケールアップ
リニアスケール簡単難しい
一貫性-トランザクションBASEACID
大量データ処理のコスト安価高価
整合性結果整合性常に保持
アプリケーション開発手法アプリケーションとデータベースを同時設計リレーショナルデータモデルを設計し、その上でアプリケーションを設計
開発アジャイル型ウォーターフォール型

NoSQLはどこで使う?

 それではどんなアプリケーションがNoSQLには向いているでしょうか?

 まずは、一番フィットするのは、IoTや“機械間通信(Machine To Machine:M2M)”のデータです。これらのシステムの場合、各ネットワークにつながっているデバイスから出てくるデータはリレーショナルなデータ、正規化されたものではありません。

 例えばセンサデータ、ゲームのログ、ウェブのログといったものは、一つのレコードとしてデータは出てくるものであっても、そのデータ間でのリレーションを考えてデバイスがデータを作成するものではありません。特にさまざまな違うデバイスからデータが集める場合、メーカーや販売時期の違うデータから、リレーショナルなデータが出てくることはないでしょう。

 従来のやり方だとデータクレジングを駆使して無理やりRDBに押し込んでいくことになってしまいます。それでも新たなモノが出てくる度にそれに対応しなくてはいけない、という状況になってしまいます。こういった場合スキーマレスなNoSQLが最も適しているでしょう。

 もう一つが、コンテンツが中心、データが中心となるアプリケーションです。オンラインゲームの開発を想像してみてください。日々ユーザーがオンラインゲームを楽しんでいる裏で、開発者は日々新しい機能をオンラインゲームに常に追加することを考えています。それは例えば新たな機能やサービス、ステージの追加であったりします。これらの新機能が「既存のデータモデルに合致しないために提供できません」または「長期間の開発と開発費が高騰します」というのは今の時代は許されません。こういった場合もNoSQLを検討すべきです。

 データベースありきで作っていたようなアプリケーションではなく、アプリケーションファーストで作っていくときに、データはさまざまなフォーマット、違うカラム数、違う長さを持ちます。そういったデータを取り扱えるのがNoSQLでの大きな特徴です。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]