ホームページ >データベース >SQL >nosqlデータベースの特徴は何ですか

nosqlデータベースの特徴は何ですか

青灯夜游
青灯夜游オリジナル
2022-11-28 19:43:4121078ブラウズ

nosql の特徴: 1. 柔軟な拡張性; nosql はリレーショナル データベースのリレーショナル特性を取り除き、データ間に関係がなく、簡単に拡張できます。 2. 柔軟なデータ モデル: NoSQL は、キー/値や列ファミリーなどの非リレーショナル モデルを使用し、さまざまな種類のデータを 1 つのデータ要素に格納できます。 3. NoSQL は、優れた水平拡張機能を利用して、クラウド コンピューティング インフラストラクチャを最大限に活用し、クラウド コンピューティング環境に適切に統合できます。 4. Nosql は、特に大量のデータを扱う場合に、非常に高い読み取りおよび書き込みパフォーマンスを発揮します。 5. 高可用性。

nosqlデータベースの特徴は何ですか

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

NoSQL の概要

NoSQL は、リレーショナル データベースとは異なるデータベース管理システムの設計手法です。リレーショナル データベースの用語。使用するデータ モデルは、従来のリレーショナル データベースのリレーショナル モデルではなく、キー/値、列ファミリー、ドキュメントなどの非リレーショナル モデルです。 NoSQL データベースには固定テーブル構造がなく、通常は結合操作がなく、 ACID 制約に厳密に準拠していません。したがって、リレーショナル データベースと比較して、NoSQL は柔軟な水平スケーラビリティを備えており、大規模なデータ ストレージをサポートできます。

ACID とは何ですか?

  • トランザクションのアトミック性 (原子性)##: は、トランザクションが完全に実行されたか、または実行されなかったことを意味します。これは、トランザクションが不可能であることを意味します。途中でだけ止まった。たとえば、ATM からお金を引き出す場合、この取引は 2 つのステップに分けることができます: 1 カードをスワイプするステップと 2お金を引き出します。カードをスワイプしてもお金が出てこない。これら 2 つの手順は同時に完了するか、まったく完了しない必要があります。
  • #トランザクションの一貫性(一貫性): は、トランザクションの実行によってデータベース内のデータの一貫性が変更されないことを意味します。たとえば、整合性制約 a b=10 とトランザクション変更 a の後に b もそれに応じて変更する必要があります。
  • #独立性
  • (孤立#): トランザクションの独立性は分離とも呼ばれます。これは、2 つ以上のトランザクションがインターリーブ方式で実行されないことを意味します。データの不整合が生じる可能性があるためです。 # 耐久性
  • #(耐久性 #): #トランザクションの耐久性とは、トランザクションが正常に実行された後、トランザクションによってデータベースに加えられた変更がデータベースに永続的に保存され、理由もなくロールバックされないことを意味します NoSQL データベースの特徴

#1

) 柔軟なスケーラビリティ従来のリレーショナルデータベースは、独自の設計メカニズムにより「水平拡張」が困難であり、データベース負荷の大規模な増加に直面した場合、 、「垂直拡張」を実現するには、多くの場合、ハードウェアをアップグレードする必要があります。 NoSQLデータベースはもともと「水平拡張」のニーズを満たすように設計されているため、本質的に優れた水平拡張機能を備えています。

#(2

)柔軟なデータ モデル

リレーショナル データベースには標準化された定義があり、さまざまな厳しい制約に準拠しています。このアプローチにより、ビジネス システムのデータ整合性要件は確保されますが、データ モデルが過度に厳格であるため、新たなさまざまなビジネス ニーズに対応できないことも意味します。対照的に、NoSQL データベースは、キー、/ 値、列ファミリーなどの非リレーショナル モデルを使用し、さまざまな型を許可します。 1 つのデータ要素に格納されるデータのデータ。

3)クラウド コンピューティングと緊密に統合

クラウド コンピューティングは優れた水平拡張機能を備えており、リソースの使用状況に応じて自由に拡張できます。さまざまなリソースを動的に追加または削除できます。NoSQL データベースは、独自の優れた水平拡張機能に依存できます。クラウド コンピューティング インフラストラクチャを完全かつ自由に利用し、クラウド コンピューティング環境に適切に統合し、NoSQL に基づいたクラウド データベース サービスを構築します。

(4) 大規模なデータ量、高いパフォーマンス

nosql データベースは、特に大規模なデータ量の下で、非常に高い読み取りおよび書き込みパフォーマンスを備えています。その主な理由は、その非リレーションシップと単純なデータベース構造によるものです。

通常、nosql はクエリ キャッシュを使用します。

nosql のキャッシュはレコードレベルで粒度の細かいキャッシュであるため、この点では nosql のパフォーマンスがはるかに高くなります。

(5) 高可用性

高可用性も nosql の明らかな機能です。Nosql はパフォーマンスに影響を与えることなく非常に便利に実装できます。高可用性アーキテクチャ、代表的な例は次のとおりです。 Cassandra および HBase モデル: 高可用性はモデルを通じても実現できます。

NoSQL の台頭の理由

1 リレーショナル データベースは次のことができます。 Web2.0 の要件を満たさなくなりました。 主に次の側面で現れます:

  • (1) 大量のデータの管理ニーズに対応できない

  • 上記の Web サイトについては、まもなく対応できるようになる予定です。 10SQL# を使用して、リレーショナル データベースのテーブルに 10# 10 億を超えるレコードを生成する##クエリは非常に非効率的です。

  • #(2)を満たすことはできません高いデータ同時実行性の要件

  • #(

    #3#) ##) は、高スケーラビリティと高可用性の要件を満たすことができません。

    2、
リレーショナル データベースの鍵

Web 2.0 時代には機能が「無味乾燥」になった リレーショナル データベースの主な機能には、完全なトランザクション メカニズムと効率的なクエリ メカニズムが含まれます。ただし、リレーショナル データベースが誇る 2 つの主要な機能は、

Web2.0

時代には、主に次の点で役に立たなくなりました。 ## (1) Web 2.0 Web サイト システムでは、通常、厳密なデータベース トランザクションは必要ありません。

多くの Web 2.0 Web サイトでは、データベース トランザクションはそれほど重要ではなくなりました。データベース トランザクションには通常、データベースの一貫性を確保するための複雑な実装メカニズムがあり、多くのシステム オーバーヘッドが必要になります。頻繁にリアルタイムの読み取りおよび書き込みリクエストが多数含まれる Web 2.0 Web サイトの場合、トランザクション実装のコストは耐え難いものになります。

(2)

Web 2.0 では、読み取りと書き込みの厳密なリアルタイム パフォーマンスは必要ありません

リレーショナル データベースの場合、データ レコードがデータベースに正常に挿入されると、すぐにクエリを実行できます。

Web 2.0 では、そのようなリアルタイムの読み取りと書き込みの要件はありません。

(3) Web 2.0 には、通常、多数の複雑な SQL クエリが含まれていません。

通常、複雑な SQL クエリは含まれません。複数のテーブル結合操作が含まれています。ただし、Web 2.0 Web サイトはそのような操作を最小限に抑えるか回避するように設計されており、通常は単一テーブルの主キー クエリのみを使用するため、リレーショナル データベースのクエリ最適化メカニズムは Web 2.0 で違いを生むのは困難です。

#NoSQL とリレーショナル データベースの比較

RDBMS: リレーショナル データベース

nosqlデータベースの特徴は何ですか

nosqlデータベースの特徴は何ですか

nosqlデータベースの特徴は何ですか

##NoSQL データベースとリレーショナル データベースの比較 概要: ##(

1) リレーショナル データベース利点

: 完全なリレーショナル代数理論に基づいて、トランザクション ACID の 4 つのプロパティをサポートする厳格な標準があります。インデックスメカニズムの助け 効率的な クエリを実現可能 #、成熟したテクノロジー、専門会社からの技術サポート欠点

: スケーラビリティが低く、大規模なデータ ストレージをサポートできない、データ モデルが厳格すぎる、

Web2.0 アプリケーションをサポートできない、トランザクション メカニズムがシステム全体のパフォーマンスに影響するなど

2 NoSQLデータベース利点

: はい、超大規模なデータベースをサポートします。 -スケールのデータ ストレージ、柔軟なデータ モデルは

Web2.0 アプリケーションを十分にサポートし、強力な水平拡張機能などを備えています。 #欠点: 数学的理論的基盤の欠如、複雑なクエリのパフォーマンスが低い、強力なトランザクション一貫性をほとんど実現できない、データ整合性の達成が難しい、テクノロジーがまだ成熟していない、専門チームが不足している技術サポート、困難なメンテナンスなど

(3) リレーショナル データベースと NoSQL

データベースにはそれぞれ長所と短所があります

リレーショナル データベース アプリケーション シナリオ : 通信、銀行、その他の分野の主要なビジネス システムは、強力なトランザクションの一貫性を確保する必要があります

#NoSQL

データベース アプリケーション シナリオ #: インターネット企業および従来型企業の非重要なビジネス (データ分析など)

ハイブリッド アーキテクチャの採用 ##

  • ケース: Amazon は、e コマース アプリケーションをサポートするためにさまざまなタイプのデータベースを使用しています
  • 「買い物かご」などの一時データの場合は、Key-value を使用します。ストレージの効率が向上します。
  • 現在の製品と注文情報は、リレーショナル データベースへの保存に適しています。

NoSQL

NoSQLデータベースには多数のデータベースがありますが、要約すると、典型的な NoSQL# #データベースには通常、キー値データベース列ファミリー データベースドキュメント データベース、および グラフ データベース# が含まれます。

# 1. キー/値データベース

Key -value データベース (Key-Value データベース) には、テーブル内の特定のキーと特定の値を指すポインターが含まれます。キーを使用して、値を検索する、つまり、特定の値を保存および取得することができます。値は透過的でデータベースからは見えません。値のインデックス付けやクエリはできず、キーを介してのみクエリできます。 Value は、整数、文字、配列、オブジェクトなど、あらゆる種類のデータを格納するために使用できます。

アプリケーション シナリオ:

ユーザーがログインすると、セッション指向アプリケーション (Web アプリケーションなど) が開始されます。ユーザーがログオフするかセッションがタイムアウトになるまでアクティブなままになります。この間、アプリケーションはすべてのセッション関連データをメイン メモリまたはデータベースに保存します。セッション データには、ユーザー プロファイル情報、メッセージ、パーソナライゼーション データとテーマ、提案、ターゲットを絞ったプロモーションと割引が含まれる場合があります。各ユーザー セッションには一意の識別子があります。セッション データは主キー以外のキーでクエリできないため、高速なキーと値のストアがセッション データに適しています。一般に、キー/値データベースは、リレーショナル データベースよりもページあたりのオーバーヘッドが少ない可能性があります。

nosqlデータベースの特徴は何ですか

##2. 列ファミリー データベース


nosqlデータベースの特徴は何ですか##3. ドキュメント データベース

##4. グラフ データベース nosqlデータベースの特徴は何ですか


5. さまざまな種類のデータベースの比較分析 nosqlデータベースの特徴は何ですか

  • MySQL: は以前に作成され、LAMP のトレンドに合わせて成熟しました。大きな改善はありませんが、新興インターネットで最も使用されているデータベース
  • MongoDB: は、より柔軟なデータを提供する新しいものです。モデル、非同期送信、地理的位置インデックス、その他のさまざまな機能
  • HBase: は象の兵士を「いじめる」ものです。 Hadoop の生態環境に依存しており、優れた拡張性を備えています。ただし、ゾウの兵士と同じように、ユーザーはゾウ (Hadoop), を育てて動かす必要があります。
  • Redis: は Key-Value ストレージの代表であり、最も単純な機能を持ちます。ランダムなデータ ストレージを提供します。棒のように余分な構造はありません。しかし、だからこそ、その拡張性は特に優れています。ちょうど悟空の手にある黄金の棍棒のように、大きいものは空を突き刺すことができ、小さいものは針のように縮むことができます

NoSQL の 3 つの基礎

いわゆる CAP は次のことを指します:

  • C一貫性) : #一貫性とは、どの読み取り操作でも、以前に完了した書き込み操作の結果を常に読み取ることができることを意味します。つまり、分散環境では、複数のポイントのデータが一貫しているということです 、つまり、すべてのノードが同時に同じデータを持ちます
  • A:( #可用性#):#可用性とは、データを迅速に取得し、一定時間内に操作結果を返すことを指します。 、成功または失敗に関係なく、各リクエストに応答が返されるようにします;
  • ##P
  • ##ネットワークパーティションの許容値):パーティション許容値とは、次の場合を指します。ネットワーク分割が発生しても (つまり、システム内の一部のノードが他のノードと通信できなくなります)、分離されたシステムも正常に実行できます。 つまり、システム内の情報の損失や障害は発生しません。システムに影響を与えます。操作は継続されます。 CAP
理論によれば、分散システムが一貫性、可用性、分割耐性の 3 つの要件を同時に満たすことは不可能です。同時に 2 つを満足させることは、「ケーキを食べながらケーキを食べることはできない」ということわざのとおりです。

nosqlデータベースの特徴は何ですか

CAP

の問題に対処する場合、明白な選択肢がいくつかあります。

  • CA: つまり、一貫性 (C) と可用性 (##) を重視します。 #A)、パーティション許容度 (P) を放棄します。最も簡単な方法は、すべてのトランザクション関連のコンテンツを同じ上位マシンに配置することです。明らかに、このアプローチはシステムのスケーラビリティに重大な影響を与えます。従来のリレーショナル データベース (MySQLSQL ServerPostgreSQL)、これらすべて設計原則が採用されているため、スケーラビリティは相対的に劣ります

  • CP: つまり、次のことに重点が置かれています。一貫性性別 (##C) と分割耐性 (#P)、可用性の放棄 (#A#) # )、ネットワーク分割が発生すると、影響を受けるサービスはデータの整合性が保たれるまで待機する必要があるため、待機期間中は外部サービスを提供できません

  • AP
  • : つまり、可用性 (A) と分割耐性 (P) を重視します。 )、一貫性 (C) を放棄し、システムが一貫性のないデータを返すことを可能にします

#BASE

ACID については前に説明しましたが、ここで BASE (

B#) について簡単に説明しましょう。 ## として #A利用可能 #、Soft-state、E結果整合性) ##ACID

A
BASE

##原子性 (

トミシティ)##基本的に利用可能です(B

基本的に

A##利用可能)#一貫性 #(#C

一貫性)
##ソフトステート

/柔軟なトランザクション(S #よくある状態)

孤立(I孤立)

結果整合性(E結果整合性)

永続性(D耐久性)


BASE の基本的な意味は、「基本的に利用可能 ( B基本的に Availble)、ソフト状態 (S )頻繁な状態) と結果整合性 (E結果整合性) :

基本的に利用可能

基本的に利用可能とは、分散システムの一部に問題が発生して利用できなくなった場合でも、他の部分は引き続き使用できることを意味します 通常の使用つまり、パーティション障害の発生を許可します

ソフト状態

soft-state )」は、「ハードステート (hard-state)」に対応する定式化です。データベースに保存されているデータが「ハード状態」にある場合、データの一貫性、つまりデータが常に正しいことが保証されます。 「ソフト状態」とは、一定のラグを伴い、状態が一定期間同期されなくなる可能性があることを意味します。 ## 整合性には強整合性と弱い整合性があり、両者の主な違いは、同時性の高いデータアクセス操作において、後続の操作で最新のデータを取得できるかどうかです。強整合性の場合、更新操作の実行後、後続の他の読み取り操作で更新後の最新データが読み取られることが保証できますが、逆に、後続のアクセスで更新後の最新データが読み取られることが保証できない場合は、弱い整合性です。最終整合性は、弱い整合性の特殊なケースにすぎません。これにより、後続のアクセス操作で更新されたデータの読み取りが一時的に失敗しますが、一定期間が経過すると、最終的には更新されたデータを読み取る必要があります。 プログラミング関連の知識について詳しくは、

プログラミング教育

をご覧ください。 !

以上がnosqlデータベースの特徴は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。