NoSQLは革命的というよりも進化的です。基本的に、「外部データベースストレージ」という既存のアイデアと「リレーショナルテーブルではなく、使い慣れたデータ構造を使用する」とを組み合わせます。
階層型データベースなど、リレーショナル型よりも多くの種類のデータベースがあります。今日の標準では古風ですが、データのデータ構造(COBOLレコードなど)と非常によく一致しています。重要なのは、データベース内のデータは、レコードを使用したプログラミング言語でのレコードのレイアウト方法に密接にモデル化されているということです。
リレーショナルデータベースの発明に早送りします。最終的にデータベースは関心事を分離し、適切に正規化すると、ほとんどのタイプのデータとデータ間の関係を視覚化する素晴らしい方法になります。他の種類のデータベースと比較して理解するのは本当に簡単です。ただし、プログラムでオブジェクトとクラスをミラーリングする方法でデータを保存することは、まったく失敗します。したがって、オブジェクトリレーショナルマッピングの発明。言い換えれば、データベースの設計は実際にはそれを使用するプログラムの設計の障害であるため、HibernateなどのORMライブラリが必要です。。清潔で一貫性がありますが、私の心の奥には、そこに何かが正しくないという疑わしい疑念が常にあります。
これにより、さらに2種類のデータベース、オブジェクトデータベースとNoSQLが発生しました。
どちらも、階層型データベースの驚くべき恐怖に私たちをさらすことなく、リレーショナルデータベースによってもたらされる問題を解決しようとします。データはいまだにテーブルに似ているリポジトリに配置されていますが、実際にはリレーショナルテーブルというよりもデータ構造のプログラミングに似ています。オブジェクトデータベースはほとんど明確に定義されたルールに従いますが、私の理解では、NoSQLはかなりarbitrary意的です。たとえば、テーブルはハッシュテーブルまたは配列として視覚化できます。Oracle SQL DeveloperやSQL Server Management Studioに類似した任意のツールを使用して簡単にクエリを定義する方法はありません。
アイデアは、希望するクエリを表現するのではなく、SQLデータベースエンジンに適したSQLクエリをつなぎ合わせるのではなく、コードで簡単に検索できるデータ構造を定義できるということです。たとえば、リレーショナルデータベースではあいまい一致または部分一致はより難しく、パフォーマンスが低下しますが、NoSQLデータベースはそのような検索に最適化された構造を持ち、短時間で完了することがあります。
NoSQLを照会するための言語があります。ただし、リレーショナルデータベース用のSQLのような普遍的な言語はありません。
後期編集:
私はNoSQLデータベースに十分精通していますが、この質問は、このトピックに関する質の高い本を購入し、最終的にはそのトピックの専門家になるという目標で読み始めるきっかけとなりました。残りのコメントは、NoSQL Distilled:Pramod SadalageとMartin Fowlerによるポリグロット永続性の新興世界の簡単なガイドに基づいています。
著者は、リレーショナルデータベースは、AmazonやGoogleなどのサイトに必要なデータを提供できるクラスターに十分に拡張できないと述べています。主に静的データを使用します(したがって、ACIDトランザクションはそれほど重要ではありません)。
さらに、NoSQLデータベースがスキーマを使用せずに動作するため(10ページ)、NoSQLデータベースがデータの構造をより簡単に変更できると仮定しています。SQLデータベースでもスキーマを変更できるため、この点で正式なスキーマの有無が重要かどうかはわかりません。とにかく、有名な2人の著者が主張しているので、調べる価値があります。
これらの主要な点はどちらも、NoSQLは革命的ではなく進化的であるという私の主要な点を強化するためだけに役立つと考えています。それらはまだデータを保存し、規模と変更可能性を徐々に改善します。彼らはまた、NoSQLがリレーショナルデータベースをデータストレージの王として奪うことを求めていないことを強調しています。データベースは十分にサポートしていません。