RDBではうまくいかなくなってきた理由:NoSQLベストプラクティス(2)(2/2 ページ)
本連載では、「NoSQLデータベースの今」を正しく理解し、ビジネス躍進の実現に向けて対策していくための「ベストプラクティス」を掲示していきます。今回は「RDBではうまくいかなくなってきた理由」の基礎と背景を解説します。
リレーショナルデータベースは現代的アプリケーション開発には合わない
現代のアプリケーションは、Java、JavaScript、Python、C#などのオブジェクト指向言語で開発されます。これらの言語では、データ構造をデータとコード(属性とメソッド)を含む「オブジェクト」として扱います。このようなデータの扱い方はRDBとは大きく異なるために、データベースとアプリケーションプログラミングの間でインピーダンスミスマッチが発生します。
これを回避する策に「ORM(Object-Relational Mapping:オブジェクト関係マッピング)」があります。しかし残念ながらこの手法では、オブジェクト内のデータの興味深い部分を保持できません。データを取り出してバラバラにしてしまう上、処理のオーバーヘッドが増える課題も残ります。
一方のNoSQLデータベースは、構造が柔軟なためにこのような問題が発生しません。データベース内のデータに合わせたモデリングができ、業務的な観点から論理的に表現することもできます。
従来のリレーショナルアーキテクチャでこれを行うならば、パフォーマンスが損なわれ、またコードのバグが増える可能性もあります。今日望まれるスピーディなアプリケーション開発サイクルでは、ユーザーはインタラクティブ(対話式)かつ対応性の高いやりとりを求めています。リレーショナルモデルはこれにもうまく適応できません。
だから開発者は、リレーショナルモデルのミスマッチの回避策を探す代わりに、より具体的でパフォーマンスが高速なNoSQLデータベースのような新しいモデルを受け入れ始めているのです。
現代のデータ問題に、従来の技術だけを使い続けて解決するのは無理がある
ここまでの説明で、RDBが抱えている課題、そして現代のデータ問題の解決に、従来のテクノロジーだけを使い続けるのは無理があるということを分かっていただけたでしょうか。こうした問題に対する新しいアプローチがNoSQLデータベースです。
次回は、NoSQLデータベースはどのような問題を具体的に解決しようとしたのか。そのアプローチやベストプラクティスを解説したいと思います。
筆者紹介
三浦デニース(Denise Miura)
マークロジック株式会社日本法人代表。ソフトウェア開発ならびにwebテクノロジーに関して25年以上の経験を持ち、さまざまなエンジニアリング、コンサルティング、管理職などの要職を歴任。前職はSilicon Graphics、E*TRADE Financial、Blue Martini Software(日本法人代表取締役)など。カーネギーメロン大学卒(コンピュータサイエンス専攻)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部) - KVS系NoSQLのまとめ(Hibari、Dynamo、Voldemort、Riak編)
エンジニアとして「知らない」とは言えない空気が漂うNoSQL界隈……。いろいろあるけども何がどう違うのか、主要プロダクトの特徴をコッソリ自習しよう。第1回はKVS系NoSQLの中から、マスタ型、P2P型に分類されるものを紹介していく。 - 「演算子のインジェクション」と「SSJI」
ここ数年、大量データ処理時の高速性やデータ構造の柔軟性などから、「NoSQL」が注目を集めています。それと同時に、NoSQLを使うアプリケーションに対する攻撃手法も研究されるようになりました。この記事では、NoSQLを使ったアプリケーションの脆弱性と対策について解説します。 - マークロジック、NoSQLデータベース「MarkLogic 9」正式版をリリース
マークロジックが、NoSQLデータベースプラットフォームの最新版「MarkLogic 9」をリリース。開発者向けの「無償エディション」も用意する。