NoSQLのプロフィール
"だけでなく、SQL」を意味するのNoSQL(のNoSQL =だけではなくSQL)、。
現代では、ネットワーク上のコンピューティング・システムは、膨大な量のデータを持っています。
これらのデータは、に対処するためのリレーショナルデータベース管理システム(RDMBSs)の大部分です。 データモデリングおよびアプリケーション・プログラミングが容易になります1970 EFCoddの提案リレーショナルモデル紙「大規模な共有データバンクのデータのリレーショナル・モデル」、。
実績のあるリレーショナル・モデルを適用することによって、はるかに期待される利益を超えて、クライアント - サーバプログラミングのために非常に適しており、今日では、ネットワークに保存された構造化データとビジネスアプリケーション支配的な技術です。
NoSQLデータベースは、それが2009年高にますますの発展の傾向が示唆された早期に、新たな革命運動です。 非リレーショナル・データ・ストレージの利用を促進NoSQLの支持者は、リレーショナルデータベースの圧倒的な使用に関して、この概念は間違いなく新しい思考を注入します。
ルールのACIDに従うリレーショナルデータベース
英語のトランザクションは、トランザクションであり、取引の現実の世界は非常に似ている、それは次の4つの特徴があります。
1は、簡単な原子を理解するために<BR> A(原子性)原子は 、トランザクション内のすべての操作はどちらかのすべてが行われない、またはそれを行う、トランザクションは限りがあり、すべての操作で成功するための条件は成功しているトランザクションであります操作は失敗し、トランザクション全体がロールバックする必要があり、失敗します。
銀行振り込みなどは、AからBへの口座振替は100元を占め、2つのステップに分かれています:1)Aは100元を占めます; 2)100元の預金口座をBに。 これらの2つのステップは、お金は何とか100元以下であろう、一緒に一緒に又はいない完了完了し、最初のステップを完了した場合、第二段階は失敗しています。
2、C(一貫性)の一貫性 <BR>一貫性は、トランザクションを実行し、一貫性のある状態にデータベースにあったこと、理解することは比較的容易であり、元のデータベースの整合性制約を変更しません。
このような+ B = 10のような既存の整合性制約、トランザクションが変更された場合は、我々はそうでない場合は、トランザクションが失敗し、トランザクションの後端がまだ+ B = 10を満足するように、Bを変更する必要があります。
3、I(分離データ) -いわゆる独立性は、別のトランザクションがアクセスするトランザクションデータは、できれば他のコミットされていないトランザクションとして、それを修正している場合は独立性は、互いに並行トランザクションには影響しないことを意味しますアクセスされたデータは、コミットされていないトランザクションによって影響されません。
たとえば、既存の取引口座はAからBに転送され、そこでは、このトランザクションの場合には完了していない、100元を占めています。Bは、自分のアカウントをチェックする場合は、新たに追加された100元を見ることはできません。
4、D(耐久性)トランザクションのコミット後に持続性の持続性が<BR>指し、それは編集永久にダウンタイムが発生しても、それが失われることはありません、データベースに保存されます。
分散システム
分散システム(分散システム)のソフトウェア・コンポーネントの複数のコンピュータ及びコンピュータネットワークによって構成される通信接続(ローカルネットワークまたは広域ネットワーク)。
分散システムは、ネットワーク・ソフトウェア・システムの上に構築されています。 これは、ためのソフトウェアの特性を正確に凝集し、透明度の高い分散システムです。
したがって、ネットワークおよび分散システムより高いレベルのソフトウェア(特にオペレーティングシステム)ではなく、ハードウェアの違い。
パソコン、ワークステーション、LANおよびWANなど:分散システムは、次のような異なるプラットフォームに適用することができます。
分散コンピューティングの利点
信頼性(フォールトトレランス):
分散コンピューティングシステムの重要な利点は、信頼性があります。 クラッシュは、サーバは、サーバの残りの部分には影響を与えません。
スケーラビリティ:
必要に応じて分散コンピューティングシステムでは複数のマシンを追加することができます。
リソースの共有:
データを共有することは、このような銀行、予約システムなどのアプリケーションに不可欠です。
柔軟性:
システムは非常に柔軟であるため、インストールの実装や新サービスをデバッグすることは容易です。
高速化:
分散コンピューティングシステムは、他のシステムよりも速い処理速度製造、コンピュータの複数のコンピューティングパワーを有することができます。
オープンシステム:
それがサービスにローカルまたはリモートアクセスすることができるオープンシステムですので。
高いパフォーマンス:
集中型のコンピュータ・ネットワーク・クラスタは、高性能(より良い価格)を提供するために比較されます。
分散コンピューティングの欠点
トラブルシューティング::
トラブルシューティングおよび問題を診断。
ソフトウェア:
以下のソフトウェアサポートは、分散コンピューティング・システムの主な欠点です。
ネットワーク:
ように伝送の問題、高負荷、情報が失われていると:を含むネットワークインフラストラクチャの問題。
セキュリティ:
システムの開発の特徴は、分散コンピューティングシステムは、セキュリティリスクとデータの問題の共有に対して脆弱であることができます。
NoSQLとは何ですか?
NoSQLのは、非リレーショナルデータベースを参照します。 NoSQLは時にはだけでなく、SQLの略語と呼ばれ、それは、集合的に、従来のデータベース管理システムのリレーショナル・データベースとは異なります。
大規模なデータを格納するためのNoSQL。 (このようなGoogleやFacebookの自分のユーザーのために収集した一日あたりのデータの兆ビットとして)。 データ記憶装置のこれらのタイプは固定パターンを必要とせず、余分な操作が横方向に拡張することができません。
なぜNoSQLの?
今日は、サードパーティのプラットフォームになることができます:あなたは簡単に(などのGoogleやFacebookなど)にアクセスし、データをフェッチすることができます。 ユーザの個人情報、ソーシャルネットワーキング、場所、ユーザー生成データとユーザーがログイン指数関数的に増加しています。 我々はこれらのユーザ・データ・マイニング、これらの用途には適していませんSQLデータベース、およびNoSQLのデータベースの開発に必要な場合も、これらの大規模なデータを扱うことも可能です。
例
社会化ネットワーク:
別々のレコード:ユーザーID、FIRST_NAME、姓、年齢、性別、...
タスク:の...与えられたユーザの友人の友人の友人のすべての友達を見つけましょう。
ウィキペディアのページ:
構造化データと非構造化データの組み合わせ
タスク:1950年前の夏のオリンピックの陸上競技に関するすべてのページを取得します。
NoSQLの対RDBMS
RDBMS
- データの高度に組織構造
- 構造化照会言語(SQL)(SQL)
- データとの関係は、別のテーブルに格納されます。
- データ操作言語、データ定義言語
- 厳密な一貫性
- 基本サービス
NoSQLの
- SQLだけではない表します
- いいえ、宣言型クエリ言語はありません
- いいえ、事前に定義されたパターンはありません
- キー - 値のペア、列ストレージ、文書ストレージ、グラフィックス、データベース
- 最終的な一貫性はなく、ACIDプロパティ
- 予測できないと非構造化データ
- CAP定理
- 高パフォーマンス、高可用性とスケーラビリティ
NoSQLの簡単な歴史
NoSQLの用語は1998年に初めて登場し、軽量カルロ・ストロッツィの開発、オープンソースであり、SQLリレーショナルデータベース機能を提供していません。
2009年には、Last.fmのヨハンOskarssonのは、Rackspace社からエリック・エヴァンスが再びのNoSQLの概念を提案している[2]、オープンソースの分散データベースに関する議論を開始し、その後のNoSQLは、主に分布し、非リレーショナル、提供しないことをいいますACIDデータベース設計パターン。
2009年にアトランタでは「いいえ:SQL(東)」セミナーはスローガンに「real_worldから楽しみ、利益を選択する場所= falseをリレーショナル; "、マイルストーンです。 したがって、NoSQLの最も一般的な説明は、「非関連型を、「むしろ単なる野党RDBMSよりも、キー値を格納し、文書データベースの利点を強調していることです。
CAP定理(CAP定理)
コンピュータサイエンスでは、CAP定理(CAP定理)は、分散コンピューティングシステムのために、同時に以下の3点を満たすことができないことを指摘ブリュワー定理(ビール定理)として知られています。
- 一貫性(整合性)(すべてのノードが同時に同じデータを持っています)
- 可用性(アベイラビリティ)(すべての要求に関係なく、成功または失敗の応答を持っていることを確認してください )
- 分割耐性(分割耐性)(情報のいずれかのシステム損失または障害は、システムの継続的な動作には影響しません)
CAPコア理論がある:分散システムは、同時に、一貫性、可用性、フォールトトレランスを満たす、そして2つだけ良いしばらく会うことができ、これらの3つの要件を分割することはできません。
このように、CAへのCAPのNoSQLデータベースの原則に従ってCPのAP原理三つのカテゴリーの原則を満たし、満たすために、原則を満たしています。
- CA - 通常それほど強力でクラスタ大会の整合性、システムの可用性、拡張性、の一点。
- CP - 一貫性を満たすため、システム性能のパーティションは、一般的に、特に高くない耐えます。
- APは - 可用性、システムのパーティション公差を満たす、通常の適合性要件が低くてもよいです。
NoSQLの利点/欠点
利点:
- - 高スケーラビリティ
- - 分散コンピューティング
- - 低コスト
- - 建築柔軟性、半構造化データ
- - いいえ、複雑な関係はありません
短所:
- - 何の標準化はありません
- - 限定検索機能(今のところ)
- - 最終的な合意は、直感的なプログラムではありません
BASE
BASE:基本的に利用可能な、ソフトの状態、最終的には一貫性。 エリック・ブリュワーによって定義されています。
CAPコア理論がある:分散システムは、同時に、一貫性、可用性、フォールトトレランスを満たす、そして2つだけ良いしばらく会うことができ、これらの3つの要件を分割することはできません。
BASEは、NoSQLのデータベースは、通常、可用性と原則の要件の一貫性を保つために弱いです。
- 基本的にavailbleで - 基本的な利用可能
- ソフト状態 - ソフトステート/柔軟なトランザクション。 「ソフト状態」が「未接続」、および「ハード状態」として理解することができるである「接続指向」で
- 結果整合性 - 結果整合結果整合性はACIDの究極の目標です。
BASE対ACID
ACID | BASE |
---|---|
アトミック(tomicity) | 基本的には、(B asically利用できる)を使用することができます |
一貫性(Cの onsistency) | ソフトステート/柔軟なサービス(S OFT状態) |
アイソレーション(私はゾル化) | 結果整合性(E ventual一貫性) |
永続(Dの可能なネット) |
NoSQLデータベースの分類
タイプ | いくつかの代表 | 特徴 |
カラムストア | HBaseの カサンドラ Hypertable | 名前が示すように、データの列に格納されます。 最大の特徴は、クエリの列または列のIOのために非常に大きな利点を持つように、データ圧縮を行うことは容易に構造化、半構造化データを保存するのは簡単です。 |
ドキュメントストレージ | MongoDBの CouchDBの | 文書保管はほぼ同様JSON形式を格納するために使用され、コンテンツは、文書タイプに格納されています。 これはまた、リレーショナルデータベースの機能の一部を実現するために、いくつかのフィールドにインデックスを構築する機会を有します。 |
キーと値のストレージ | 東京キャビネット/暴君 Berkeley DBの MemcacheDB Redisの | あなたはすぐにキーでその値を確認することができます。 一般的には、関係なく、ストレージフォーマット値の継承します。 (Redisのは、追加機能が含まれています) |
マップメモリ | Neo4jの FlockDB | ベストストアグラフィックス関係。 低それを解決するために、従来のリレーショナル・データベースのパフォーマンスの使用、およびデザインは、使用が不便です。 |
オブジェクトストレージ | db4oの 山の斜面 | オブジェクト指向言語の構文を介してデータ・オブジェクトを介してアクセスされるデータベースの動作と同様です。 |
XMLデータベース | Berkeley DBのXML BaseX | 効率的なXMLデータストレージなどのXQuery、XPathのような内部のXMLクエリ構文をサポートしています。 |
誰が使用します
NoSQLを使用し、すでに多くの企業があります。- グーグル
- フェイスブック
- モジラ
- アドベ
- フォースクエア
- LinkedInの
- ディグ
- マグロウヒルエデュケーション
- バーモント・パブリック・ラジオ