目次:
定義-NoSQLの意味?
NoSQLは、リレーショナルDBMSのすべてのルールに従わないデータベース管理システム(DBMS)のクラスであり、従来のSQLを使用してデータを照会することはできません。 このタイプのデータベースは一般に置換ではなく、むしろRDBMSとSQLへの補完的な追加であるため、この用語は「SQLなし」と解釈されると多少誤解を招きやすく、「SQLだけではない」と解釈されます。
NoSQLベースのシステムは通常、非常に大規模なデータベースで使用されます。これは、SQLの制限とデータベースのリレーショナルモデルに起因するパフォーマンスの問題を特に起こしやすい傾向があります。 多くの人は、NoSQLをWeb要件に合わせて拡張できる最新の最適なデータベースだと考えています。 NoSQLの注目すべき実装には、FacebookのCassandraデータベース、GoogleのBigTable、AmazonのSimpleDBおよびDynamoがあります。
TechopediaはNoSQLを説明します
NoSQLデータベースは、リレーショナルデータベースのトランザクションを管理する厳密なルールに必ずしも従っていません。 これらの違反したルールは、頭字語ACID(原子性、一貫性、整合性、耐久性)で知られています。 たとえば、NoSQLデータベースは固定スキーマ構造とSQL結合を使用しません。
従来のRDBMSでは、基本的な操作は読み取りと書き込みです。 読み取りは、データを複数のマシンに複製して、読み取り要求の負荷を分散することによりスケーリングできます。 ただし、データの一貫性を維持する必要があるため、これは書き込みに影響します。 書き込みのみは、データを分割することでスケーリングできます。 分散結合は通常低速で実装が難しいため、これは読み取りに影響します。 また、ACIDプロパティを維持するには、データベースでデータをロックする必要があります。 これは、あるユーザーがデータアイテムを開いたときに、他のユーザーが同じアイテムを変更できないことを意味します。 この制限は、パフォーマンスに重大な影響を及ぼします。
これらの制限は、これまで大きな問題ではありませんでした。 しかし、ソーシャルネットワーキングとビッグデータの出現により、出現した多数の大規模なデータベースは、毎分数千の読み取りと書き込みを行う世界中の数千または数億のクライアントにサービスを提供することを余儀なくされました。 従来のRDBMSは、中央サーバーのリソースを「スケールアップ」または増加させることしかできないため、単にこのニーズを満たしていません。 一方、NoSQL実装では、データベースの負荷をより多くのサーバーに「スケールアウト」または分散できます。
NoSQLデータベースは、特定のクラスの問題に焦点を当てています-格納データ(ドキュメントストア)の柔軟性の向上から、リレーションシップ(グラフデータベース)やデータの集約(列データベース)などのユースケースのターゲティング、またはデータベースのアイデアの単純化まで値を保存するもの(キー/値ストア)。
NoSQLデータベースには、RDBMSと比較して、迅速なスケーラビリティ、はるかに優れたパフォーマンス、およびシンプルな構造という利点があります。 ただし、それらは比較的新しい未実証のテクノロジーであるという問題もあり、RDBMSの豊富なレポート機能と分析機能を提供できません。