web-dev-qa-db-ja.com

NoSQLとは正確には何ですか?

NoSQLとは正確には何ですか? {key:value}ペアでのみ機能するのはデータベースシステムですか?

私の知る限り、MemCacheはそのようなデータベースシステムの1つですが、私は正しいですか?

他に人気のあるNoSQLデータベースはありますか?

ありがとう、BodaCydo。

41
bodacydo

ウィキペディアから:

NoSQLは、リレーショナルデータベースとACID保証の長い歴史を破る、大まかに定義された非リレーショナルデータストアのクラスの総称です。この用語に該当するデータストアは、固定テーブルスキーマを必要としない場合があり、通常は結合操作を回避します。この用語は2009年の初めに最初に普及しました。

このようなアーキテクチャの動機は、Facebook、advertising.comなどのサイトをサポートするための高いスケーラビリティでした...

17
Justin Ethier

NoSQLソリューションがACIDルールに違反する傾向があるのは事実ですが、すべてがそのアプローチから作成されているわけではありませんが、私が見ている答えには同意しません。

最初にSQLソリューションとは何かを定義し、次にその前に「だけではない」を置くことができると思います。これにより、NoSQLソリューションとは何かをより正確に定義できます。

このアプローチを念頭に置いて:

SQLデータベースは、構造化照会言語を使用してアクセス可能なすべてのデータストアをグループ化する方法であり、それらと通信するための主要な(そしてほとんどの場合のみ)方法です。つまり、データベースがそれらに共通の構造をサポートしている必要があります。 「テーブル」、「列」、「行」、「関係」などのシステム。

ここで、最後の文の前に「Not Only」を置くと、「NoSQL」の意味の定義が得られます。 NoSQLは、テーブル/列/行の構造やSQLステートメントにさえ収まらない問題を解決するために作成されたすべてのストアをグループ化します。ほとんどの場合、これらのデータベースは関係をサポートせず、よく知られた構造を放棄しているだけです。問題はその概念から変わったからです。

テキストファイルがあり、この情報を保存/取得/整理するためのAPIを作成する場合は、NoSQLデータベースが手元にあります。

これらはすべて、従来のSQLシステムではパフォーマンスや柔軟性などを向上させることができない方法で情報を保存するためのソリューションがいくつかあることを意味します。すべてのNoSQLプロバイダーは異なる問題を解決しようとするため、解決できません。たとえば、2つの異なるソリューションを比較します。

  • djondb は、トランザクションや一貫性などをサポートするNoSQLエンタープライズソリューションとして使用するために作成されたドキュメントストアですが、対応するもののパフォーマンスを犠牲にします。
  • MongoDB は、優れたパフォーマンスを実現するドキュメントストア(djondbと同様)ですが、これを実現するためにいくつかのACIDプロパティを交換します。
  • CouchDB は、わずかに異なるクエリを解決する別のドキュメントストアであり、毎回完全なクエリを実行せずに情報を取得するためのビューを提供します。
  • .。

お気づきかもしれませんが、私はドキュメントストアについてのみ話しました。これは、3つの異なるドキュメントストアの実装が異なるアプローチを持っていることを示したかったためです。したがって、NoSQLストアの黄金律「適切なツールを適切に使用する」を覚えておく必要があります。ジョブ"。

私はdjondbの作成者であり、独自のNoSQL実装を開始する前から多くの調査を行ってきましたが、これは概念が情報ストレージの見方を変え続ける分野です。

20
Cross

NoSQLシステムをすばやく理解するには、私が書いた次のブログ投稿を参照してください: NoSQLシステムのビジュアルガイド 。基本的に、NoSQLシステムは、ネットワークパーティションへの耐性を優先して、一貫性または可用性のいずれかを犠牲にします。

7
Nathan Hurst
1
davek

私は十数年前に Raima Data Manager と呼ばれるものを使用しました。これはNoSQLとしての資格があります。それはそれ自体を「SetOrientedDatabase」と呼びます。それはテーブルに基づいておらず、クエリ「言語」はなく、サブセットを要求するためのCAPIだけです。

高速であり、C/C++およびSQLでの操作が簡単で、クエリインタープリターに渡す文字列を構築する必要がなく、データはとして返されます。配列としてではなく、列挙可能なオブジェクト。可変サイズのレコードは正常であり、スペースを無駄にしません。ソースコードを見たことがありませんが、インターフェイスには、内部的にコードがポインターを頻繁に使用するというヒントがいくつかありました。

私が使っていた製品がもう売られているかどうかはわかりませんが、会社はまだ存在しています。

1
John Knoeller

MongoDB 面白そうです、 SourceForgeは現在それを使用しています

チームメンバーと一緒にポッドキャストを聴きました。 NoSQLのアイデアは、SQLに取って代わるものではなく、従来のRDBMSではうまく解決されない問題の解決策を提供することです。他の場所で述べたように、信頼性と原子性(さまざまな程度のさまざまなソリューション)を犠牲にして、より高速で拡張性に優れています。金融システムには使用したくないでしょうが、ドキュメントベースのシステムはうまく機能します。

1
Donald Byrd

NoSQLとは何ですか?

NoSQLは、Not OnlySQLの頭字語です。 NoSQLデータベースの基本的な品質は、スキーマレスで、分散されており、コモディティハードウェア上で水平方向にスケーラブルです。 NoSQLデータベースは、さまざまなデータ型に関するさまざまな問題を解決するためのさまざまな機能を提供します。RDBMSでは、非構造化データを格納するためのデータ型は「blob」だけでした。

1動的スキーマNoSQLデータベースにより、スキーマを柔軟にすることができます。新しい列はいつでも追加できます。行には、これらの列の値がある場合とない場合があり、列のデータ型が厳密に適用されることはありません。この柔軟性は、開発者にとって、特に製品ライフサイクルの過程で頻繁に変更されることが予想される場合に便利です。

2さまざまなデータNoSQLデータベースは、あらゆるタイプのデータをサポートします。保存する構造化データ、半構造化データ、および非構造化データをサポートします。ログ、画像ファイル、ビデオ、グラフ、jpeg、JSON、XMLをサポートし、前処理なしでそのまま保存および操作できます。したがって、ETL(Extract – Transform – Load)の必要性が減少します。

3高可用性クラスターNoSQLデータベースは、コモディティハードウェアを使用した分散ストレージをサポートします。また、水平方向のスケーラビリティによる高可用性もサポートします。この機能により、NoSQLデータベースはクラウドインフラストラクチャサービスの弾力性のある性質のメリットを享受できます。

4オープンソースNoSQLデータベースはオープンソースソフトウェアです。ソフトウェアの使用は無料であり、それらのほとんどは商用製品で無料で使用できます。オープンソースのコードベースは、ビジネスニーズを解決するために変更できます。オープンソースソフトウェアライセンスにはわずかな違いがあります。ユーザーはライセンス契約に注意する必要があります。

5 NoSQL – SQLだけでなくNoSQLデータベースは、データの取得をSQLに依存しているだけではありません。これらは、DMLおよびCRUD操作を実行するための豊富なAPIインターフェースを提供します。これらのAPIは、開発者にとって使いやすく、さまざまなプログラミング言語でサポートされています。

NoSQLデータベースの包括的なリストは次のとおりです。 http://nosql-database.org/

RDMジョンで成功してくれてうれしいです!私はライマで働いているので、フィードバックを聞くのは素晴らしいことです。詳細については、次のリソースをご覧ください。

0
user1272893