NOSQL歴史的背景
NOSQLは従来のリレーショナル・データベースの分類に過ぎないと思っている人が多いかもしれませんが、実はそうではなく、NOSQLは従来のリレーショナル・データベースよりも後に始まったものなのです。NOSQLはE.F.コッドのリレーショナル理論とほぼ同時に登場しましたが、NOSQLの概念はまだ導入されていませんでした。1966 年、MUMPS に代表される最初の NOSQL データベースが登場しました。これはキーと値のペアのデータベースで、ACID 機能をサポートしています。もう 1 つの NOSQL の代表は Ken Thompson の dbm で、これもキー値データベースです。しかし、NOSQLのコンセプトは1988年にcarlo strozziによって初めて紹介されました。
NOSQLはどのように一歩一歩進化してきたのでしょうか?インターネットの世界では、需要が常に最大の原動力であると言わざるを得ません。インターネットのインフラストラクチャーが発達し、製造業のレベルが向上するにつれて、今ではほぼすべての手に1台の携帯電話があり、携帯電話上のアプリケーションは少なくとも2桁はあります。モノのインターネットが加わり、世界はすでに毎日少なくともペタバイトのデータを生成しています。このような大量のデータは、データとスキーマ情報の構造と相まって、固定されていない、これらは間違いなく、従来のリレーショナルデータベースに大きな課題をもたらしました。これらの課題には、ストレージ領域への大きな圧力、非構造化データの格納方法、データタイプの頻繁な変更への対処方法、大量データにおけるACID特性の維持コスト、クエリの効率性などが含まれます。このような課題の中でNOSQLが登場しました。NOSQLはデータの構造を重視せず、大量のデータに対して水平スケーリングなどを簡単に行うことができます。
NOSQL
まず第一に、リレーショナルデータベースは、一般的な用語としてのデータベースのカテゴリであることに注意する必要があります、NOSQLは、単一のタッチデータベースではなく、一般的な用語としてのデータベースのカテゴリです。具体的には、非リレーショナルデータベースの次のタイプが含まれます。
キー値のタイプは、また、データベースのキーと値のペアと呼ばれ、主なメンバーは、Redisのは、Cassandraの、Azureの、LevelDBのは、Riakです。NOSQLデータベースのこのタイプの特徴は、データがメモリに格納され、データを格納するスキーマレスな方法の使用、およびデータのjson形式の日常的な使用は、比較的高速に返すクエリに似ていることです。
カラムストアのタイプは、つまり、カラムストレージ、また、広いカラムストレージを追加します。主なメンバーは、HBase、BigTable、HyperTable、ScyllaDB、いわゆるカラム型ストレージは、行のストレージの面で、従来のリレーショナルデータベースです。カラム型ストレージの利点の一つは、カラム内のデータの内容に制限がないため、カラムの拡張やデータ内容の変更、特に非構造化データや半構造化データのサポートをサポートしています。
主にMongoDBとCouchDBを含むドキュメントデータベース。このタイプのデータベース内の各ドキュメントは、独自のデータとそれを取得するための一意のキーを持っています。ドキュメント指向でありながら、部分的に構造化されたデータを保存、検索、管理するのに適しています。
グラフデータベースは、グラフデータベースは、主にPolyglotとNeo4Jを含む。 データベースのこのタイプは、主に複雑なデータ型のストレージのために、グラフ間の関係のグラフのように複雑ですが、それは表現するために、従来のリレーショナルデータベースを使用することは困難です。
その他、時系列データベース、テキスト検索、Elasticsearch、そしてCassandraやScyllaDBのように複数のタイプをサポートするものもあります。
NOSQLRDBMSとの比較
リレーショナル・データベースの核心はリレーショナル・データ理論であり、その鍵はリレーショナル代数と強い一貫性にあることを知っておいてください。いわゆる強い一貫性とは、データベーストランザクションのACID機能のことで、データの信頼性と一貫性を保証するために使用されます。リレーショナル・データベースが銀行、政府、および電気通信業界でよく使用されるのはこのためです。対照的に、NOSQLはACID機能には従わず、CAP理論に従っており、3つのうち2つしか得られません。具体的には、両者には以下のような違いがあります。
次に、2つのシナリオの使用に焦点を当てます。RDBMSは、データ構造の安定性、明確なルール、SCHEMAは基本的にあまり変更されませんに適している、データのクエリの効率は、ビジネスのデータの一貫性に強い依存、特定の要件があります。一般的にフロントエンドのアプリケーション、銀行など。NOSQLの主なアプリケーションは、ビッグデータシステムは、データ形式の要件は高くなく、データ形式は、コンテンツは、多くの場合、非構造化および半構造化データの大容量を変更します。
NOSQL or NEWSQL
NOSQLを「NOT SQL」と呼ぶ人もいますが、これは標準SQL構文をサポートしていないという意味だと思います。大量保存の問題を解決するデータ・ストレージ・システムです。しかし、私はそれをNEWSQLと呼ぶのは間違っていないと思います。まず第一に、これは古い馴染みのあるリレーショナルデータベースと相対的なものであり、その後、あらゆる種類のNOSQLは標準SQL構文をサポートする方向になっています。もちろん、伝統的なデータベースも常にNOSQLの方向で、json型データのサポートなど、水平方向の拡張の一部をしようとしているように取り組んでいます。
もちろん、名前がNOSQLであろうとNEWSQLであろうと、それは単なる名前であり、実際のユーザーは気にしていません。つまり、あなたの価値は名前ではなく、あなたの能力にあるのです。