SQLは、リレーショナル・データベースにアクセスするための数十年前からある方法であり、データベースを扱うほとんどの人は、SQLに精通しています。非構造化データ、ストレージの量、処理能力、分析の種類は長年にわたって変化してきましたが、新しいタイプのユースケースにより適したさまざまなデータベース・テクノロジーが利用可能になりました。これらのデータベースは一般的にNoSQLと呼ばれます。
SQLとNoSQLは、リレーショナル(SQL)か非リレーショナル(NoSQL)か、スキーマが事前定義済みか動的か、拡張方法、含まれるデータの種類、複数行のトランザクションまたは非構造化データに適しているかどうかなど、さまざまな点で異なります。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
SQL は「構造化照会言語」の略語で、1970年代からリレーショナル・データベース管理システム(RDBMS)でのデータ管理に広く使用されているプログラミング言語です。初期の頃はストレージが高価だったので、SQLデータベースはデータの重複を減らすことに重点を置いていました。
今日に至るまで、SQLは依然として広く使用されており、さまざまな方法でリンクされた行やテーブルにデータが保管されています。1つのテーブル・レコードが他の1つのテーブル・レコードまたは複数のテーブル・レコードにリンクされている場合や、複数のテーブル・レコードが別のテーブル内の複数のレコードに関連付けられている場合もあります。リレーショナル・データベースは、高速なデータのストレージとリカバリを実現し、大量のデータと複雑なSQLクエリーを処理できます。
NoSQLは非リレーショナル・データベースです。つまり、SQLデータベースとは異なる構造(行と列ではない)が可能で、データに最適な形式を使用できる柔軟性が高くなります。「NoSQL」という用語は2000年代初頭までありませんでした。NoSQLデータベースは一部のSQLコマンドをサポートすることがあるため、システムがSQLを使用しないというわけではありません。より正確には、「NoSQL」は「SQLだけではない(not only SQL)」と定義されることもあります。
基礎を築くために、Jamil Spain氏の次の動画をご覧ください。
SQLデータベースは、構造化データ、つまり変数とエンティティー間に関係があるデータを処理する際に役立ちます。
一般に、SQLデータベースは垂直方向に拡張できます。つまり、CPU、RAM、またはSSD機能を追加した大規模なサーバーに移行することで、サーバーの処理量を増やすことができます。垂直方向の拡張性が最も頻繁に使用されますが、SQLデータベースはシャーディングまたはパーティショニングのロジックを通じて水平方向に拡張することもできます。ただし、これは十分にサポートされていません。
SQLデータベースは、列または属性とレコードの行を含むテーブルを使用して、リレーショナルな表形式でデータを整理します。SQLは厳密に事前定義されたスキーマを使用するため、SQLデータベースを使い始める前にデータを整理して構造化する必要があります。
SQLを使用するRDBMSは、ACIDという頭字語で知られる4つのプロパティーを備えている必要があります。これらによりトランザクションが正常に処理され、SQLデータベースの信頼性が高まります。
SQLデータベースには長い歴史があるため、大規模なコミュニティーがあり、安定したコードベースの例がオンラインには多数存在します。SQLやリレーショナル・データのプログラミングをサポートできる専門家は数多くいます。
SQLとは異なり、NoSQLシステムではデータベース内でさまざまなデータ構造を操作できます。非構造化データに対して動的なスキーマを使用できるため、データの事前計画や事前整理の必要性が少なくなり、変更が容易になります。NoSQLデータベースを使用すると、新しい属性やフィールドを追加したり、データベース間でさまざまな構文を使用したりできます。
NoSQLデータベースは水平方向の拡張性に優れているため、処理量を増やすために必要に応じてサーバーやノードを追加できます。
NoSQLデータベースはリレーショナル・データベースではないため、行やテーブルにのみデータを保管するわけではありません。代わりに、一般的に次の4つのタイプの構造に分類されます。
SQLではACIDプロパティーが求められますが、NoSQLはCAP理論に従います(ただし、IBM® Db2、MongoDB、AWSのDynamoDB、ApacheのCouchDB など、一部のNoSQLデータベースもACIDルールを統合して従うことができます)。
CAP定理によると、分散データ・システムでは、一度に保証できるトレードオフは次の3つの特性(CAPという略語)のうち2つだけです。
NoSQLは急速に普及しましたが、ユーザー・コミュニティーが小規模であるため、サポートも少なくなっています。NoSQLユーザーは、プロプライエタリーな多くのSQL言語とは対照的に、オープンソース・システムからメリットを受けています。
SQLは、関連データを扱う場合に適しています。リレーショナル・データベースは効率的かつ柔軟で、あらゆるアプリケーションから簡単にアクセスできます。リレーショナル・データベースのメリットは、あるユーザーが特定のレコードを更新すると、データベースのすべてのインスタンスが自動的に更新され、その情報がリアルタイムで提供されることです。
SQLとリレーショナル・データベースを使用すると、大量の情報の処理が容易になり、必要に応じて拡張でき、データへの柔軟なアクセスが可能になります。例えば、複数のファイルを変更する代わりに、データを1回更新するだけで済みます。また、データの整合性を評価するのにも最適です。各情報が1箇所に保管されるため、以前のバージョンによって全体像が混乱するといった問題も発生しません。
Uber、Netflix、Airbnbなど、大手テクノロジー企業のほとんどがSQLを使用しています。Google、Facebook、Amazonなどの独自のデータベース・システムを構築している大手企業でも、データのクエリーと分析にSQLを活用しています。
SQLはデータの有効性を確保するために高く評価されていますが、ビッグデータの高速な可用性がより重要である場合にはNoSQLが適しています。要件の変化により企業が拡張を必要とする場合にも、適した選択です。NoSQLは使いやすく、柔軟性があり、高い性能を発揮します。
また、大量の(または常に変化する)データセットがある場合、またはリレーショナル・モデルに適合しない柔軟なデータ・モデルやニーズを扱う場合にもNoSQLは最適です。大量の非構造化データを扱う場合は、ドキュメント・データベース(CouchDB、MongoDB、Amazon DocumentDBなど)が適しています。強力な整合性が保証されないキー値ストアにすばやくアクセスするには、Redisが最適な選択かもしれません。大量のデータに対して複雑または柔軟な検索が必要な場合は、Elastic Searchが適しています。
拡張性は、NoSQLデータベースの大きなメリットです。SQLとは異なり、組み込みのシャーディングと高可用性の要件により、水平方向のスケーリングが可能になります。さらに、Facebookが開発したCassandraのようなNoSQLデータベースは、多くのサーバーに分散する大量のデータを処理し、単一障害点がなく、最大限の可用性を提供します。
リレーショナル・データベースに適さない大量のデータに依存しているためNoSQLシステムを使用している他の大企業としては、Amazon、Google、Netflixなどがあります。一般に、データセットが大規模であるほど、NoSQLが適している可能性が高くなります。
データベースを選択または提案することは、多くのデータベース専門家にとって重要な責務であり、「SQLとNoSQLの比較」は情報に基づいた意思決定に役立つ基準です。どちらのデータベースを検討する場合も、性能とアップタイムの目標を達成するために必要なクリティカル・データのニーズと許容可能なトレードオフを考慮することも重要です。
IBM® Cloudは、クラウドネイティブ・データベースを使用して、複数のSQLおよびNoSQLデータベースのクラウドホスト・バージョンをサポートしています。最適なオプションを選択するための詳細なガイダンスについては、「データベースの状況の概要」および「 IBM® Cloud上のデータベースを選択する方法」をご覧ください。
個々のデータベースについてさらに掘り下げたい場合は、ブログ記事「データベースの詳細」シリーズをご覧ください。
データ・サイロを排除し、複雑さを軽減し、データ品質を向上させることで、卓越した顧客体験と従業員体験を実現するデータ・ストラテジーを設計します。
watsonx.dataを使用すると、オープンでハイブリッド、かつ管理されたデータ・ストアを通じて、データがどこに保存されていても、すべてのデータを使用して分析とAIを拡張できます。
IBMコンサルティングと連携することで、企業データの価値を引き出し、ビジネス上の優位性をもたらす洞察を活用した組織を構築します。