「NoSQL」という用語は、非リレーショナルタイプのデータベースを指し、これらのデータベースは、リレーショナル・テーブルとは異なる形式でデータを保存します。ただし、NoSQLデータベースは、慣用的な言語API、宣言型構造化クエリ言語、例によるクエリ言語を使用してクエリを実行できます。そのため、NoSQLデータベースは「Not only SQL」データベースとも呼ばれます。
NoSQLデータベースは、リアルタイムWebアプリケーションとビッグデータで広く使用されています。その主な利点が、高いスケーラビリティと可用性であるためです。
NoSQLデータベースは、多くの開発者に選ばれています。もともと、変化する要件にすばやく適応することでアジャイル開発パラダイムに適しているためです。NoSQLデータベースを使用すると、より直感的で理解しやすい方法で、またはアプリケーションによるデータの使い方に近い方法で、データを保存できます。NoSQLスタイルのAPIを使用して保存または取得するときに必要な変換が減ります。さらに、NoSQLデータベースではクラウドを最大限に活用してダウンタイムをゼロにすることができます。
SQLデータベースはリレーショナルですが、NoSQLデータベースは非リレーショナルです。リレーショナル・データベース管理システム(RDBMS)は構造化クエリ言語(SQL)の基盤であり、ユーザーは高度に構造化されたテーブルのデータにアクセスして操作できるようになります。これは、MS SQL Server、IBM DB2、Oracle、MySQLなどのデータベースシステムの基本モデルです。ただし、NoSQLデータベースでは、データアクセス構文がデータベースごとに異なる場合があります。
NoSQLデータベースを理解するには、RDBMSと非リレーショナルタイプのデータベースの違いを知ることが重要です。
RDBMSのデータは、テーブルと呼ばれるデータベース・オブジェクトに保存されます。テーブルは関連するデータエントリの集合であり、列と行で構成されます。これらのデータベースでは、スキーマを事前に定義する必要があります。つまり、アプリケーションがデータベースにデータを書き込めるように、すべての列とそれに関連するデータ型が事前にわかる必要があります。また、キーを使用して複数のテーブルをリンクする情報が保存されます。そのために、複数のテーブル間の関係が作成されます。最も単純な例では、キーを使用して特定の行を取得し、検査または変更できるようにします。
逆に、NoSQLデータベースでは、スキーマを事前に定義しなくてもデータを保存できます。つまり、データを移動して順に処理すると、それに応じてすばやくデータモデルが定義されます。これの点は、グラフベース、列指向、ドキュメント指向、キー/値ストアのいずれであっても、特定のビジネス要件に適しています。
ごく最近まで、リレーショナル・データベースが最も広く使用されていたモデルでした。このタイプのデータベースはまだ多くの企業の至るところで使用されています。ただし、今日アクセスされているデータの多様性、速度、量に対応するために、リレーショナル・データベースを補完するまったく異なるデータベースが必要になる場合があります。このような状況から、非リレーショナル・データベースとも呼ばれるNoSQLデータベースが採用されることが多くなりました。非リレーショナル・データベースは、水平方向に迅速にスケールアウトでき、大量のトラフィックを処理できるため、適応性も高くなります。
迅速なイノベーションを必要とする企業や組織では、いずれの規模でも、敏捷性を維持し事業を継続できることが何より重要です。NoSQLデータベースは柔軟なスキーマを提供するだけでなく、大量のデータと短いレイテンシまたは応答時間を必要とするアプリケーション(オンラインゲームやeコマースWebアプリケーションなど)の構築に最適なさまざまなデータモデルもサポートします。
NoSQLデータベースは通常、非正規化データに依存しています。また、使用するテーブル(またはコンテナ)が少なく、データ関係が参照を使用してモデル化されるのではなく、埋め込みレコード(またはドキュメント)としてモデル化されるタイプのアプリケーションをサポートします。財務、会計、エンタープライズ・リソース・プランニングにおける多くの従来のバックオフィス・ビジネス・アプリケーションは、データの異常や重複を防ぐために、高度に正規化されたデータに依存しています。これらは通常、NoSQLデータベースに適していないタイプのアプリケーションです。
NoSQLデータベースのもう1つの特徴は、クエリの複雑さです。NoSQLデータベースは、1つのテーブルに対するクエリには驚くほど適しています。しかし、クエリの複雑さが増すにつれて、リレーショナル・データベースの方が適しています。NoSQLデータベースでは通常、WHERE句での複雑な結合、サブクエリ、クエリのネストは行われません。
ただし、リレーショナル・データベースと非リレーショナル・データベースのどちらかを選択する必要がない場合もあります。多くの場合、組織は、リレーショナル・データモデルと非リレーショナル・データモデルを組み合わせて使用できるコンバージド・モデルを提供するデータベースを選択しています。このハイブリッド・アプローチにより、パフォーマンスを低下させることなく読み取りと書き込みの一貫性を確保しながら、さまざまなタイプのデータを処理する際の柔軟性が向上します。
NoSQLデータベースと他のタイプのデータベースの主な違いの1つは、NoSQLデータベースは通常、非構造化ストレージを使用することです。過去20年以内に開発されたNoSQLデータベースは、高速で単純なクエリ、膨大なデータ、頻繁に変更されるアプリケーションのために設計されました。さらに、これらのデータベースにより、開発者はプログラミングをはるかに簡単に行うことができます。
もう一つの重要な差別化要因は、NoSQLデータベースが水平方向にスケールアウトするために、シャーディングと呼ばれるプロセスに依存していることです。つまり、複数のサーバーでデータを処理するために、マシンを追加できるということです。他のSQLデータベースに見られる垂直スケーリングでは、既存のマシンに処理能力とメモリを追加する必要があります。この場合、必要なストレージが増えるにつれて、持続不可能になることが考えられます。
NoSQLデータベースを使用した水平スケーリングの特性は、データが増大している場合でも、より効率的な方法で非常に大量のデータを処理できることを意味します。垂直スケーリングは、家に新しい床を追加するようなものですが、水平スケーリングは、元の家のすぐ隣に別の家を建てるようなものです。
過去20年間に見られた前例のない速度と規模のデジタル・インタラクションとデータ消費により、企業は、データの保存方法とデータへのアクセス方法に対して、より最新で流動的なアプローチを採用する必要がありました。世界中のユーザーがコンテンツと機能の中断のないストリームを要求している状況で、データベースがすばやく適応する必要があったのも当然です。この点を念頭に置いて、開発者がNoSQL/非リレーショナル・データベースを選択する主な理由の一部を次に示します。
NoSQLデータベースには主に4つのタイプがあります。
Oracle NoSQL Database Cloud Serviceを使用すると、開発者はドキュメント、列、およびキー/値データベースモデルを使用してアプリケーションを簡単に構築でき、高可用性のためのデータ・レプリケーションで予測可能な1桁台のミリ秒の応答時間を実現します。このサービスは、ACIDトランザクション、サーバーレス・スケーリング、包括的なセキュリティ、低廉な従量課金制を提供します。
Oracle NoSQL Database Cloud ServiceはOracle Cloud Free Tierの一部になりました。このサービスには、さまざまなクラウドサービスと、期限切れにならない一連のAlways Freeサービスを試すことのできる、無料の期間限定プロモーション・トライアルが含まれています。
ご購入をお考えですか?
営業担当者に問い合わせる営業担当者とチャットアカウント/サブスクリプション、プロモーションの問題
チャットを開始テクニカルサポート、またはその他のサポートリクエスト
サポート・オプションを表示