国家コンピュータランク試験 3 級データベース技術 (13)

第 13 章_大規模データベースのアーキテクチャ

テスト分析

◆試験では通常、選択問題が出題されます。
◆共通試験の知識ポイントは、
1. 分散データベースのターゲットとデータ分散戦略をマスターする
2. 分散データベースの参照スキーマ構造と分散透明性レベルをマスターする
3. 並列データベースシステムの構造と並列アルゴリズムをマスターする
4. クラウドデータベースシステムに精通する構造とXMLデータベース

13.1 分散データベース

1. 分散データベースシステムの概要
1. 分散データベースシステム:物理的には分散し、論理的には集中化されたデータベースシステム。システム内のデータは物理的に異なる場所にあるコンピュータに分散されており、これらのサイトは通信ネットワークで接続されています。各サイトは独立して処理する機能を備えていますが、他のサイトと連携して動作することもできます。
2. 分散データベース: 分散データベース システムの各サイトにあるデータベースの論理セット。

2. 分散データベースの目標とデータ分散戦略
1. 分散データベースの目標
1987 年に、CJDate は分散データベースが達成すべき 12 の目標を提案しました。以下の図に示すように:
分散データベースターゲット
2. データ分散戦略
データ分散戦略
(1) データシャーディングの
説明: 特定の関係をシャーディングすることは、関係を複数のフラグメントに分割することです. これらのフラグメントには、関係を再構築するのに十分な情報が含まれています. 基本的な方法は 4 つあります:
01.水平フラグメンテーション: 関係内の行 (タプル) の観点から、関係は特定の条件に従って異なるフラグメントに分割されます。必要に応じて関係を再構築できるように、関係内の各行は少なくとも 1 つのフラグメントに属している必要があります。
02. 再シャーディング: 関係の列 (属性) の観点から、関係を特定の条件に従って異なるフラグメントに分割します。各フラグメントには、関係の主キー属性が含まれている必要があります。接続方法。
03. フラグメンテーションのエクスポート: 水平フラグメンテーションをエクスポートします。断片化は、この関係属性の条件ではなく、他の関係属性の条件に基づいて行われます。
04. ハイブリッド シャーディング: 上記 3 つの方法を組み合わせたものを指します。
(2) データ分散
説明: 分散データベースの特徴です。データ分散を解決するには、いくつかの方法があります。
01. 集中化​​: すべてのデータ断片が 1 つのサイトに配置されます。この戦略は制御が簡単ですが、データが集中しすぎます。負荷が大きすぎてボトルネックになりやすく、信頼性も低い。
02. セグメンテーション: すべてのグローバル データのコピーは 1 つだけです。それらはいくつかの部分に分割されており、各部分は特定のサイトに割り当てられます。この戦略はローカル データ制御には柔軟ですが、グローバル データに対するアクセス効率は低くなります。
03. 完全レプリケーション: グローバル データのコピーが複数あり、各サイトに完全なデータ コピーがあります。この戦略は信頼性が高く、応答が速いですが、データの冗長性が大きく、同期の維持が複雑になります。
04. ハイブリッド: グローバル データはいくつかのデータ サブセットに分割され、各サブセットは 1 つ以上の異なる場所に配置されます。ただし、すべてのデータがサイトごとに保存されるわけではありません。これは、分割レプリケーションと完全レプリケーションの間の分散方法です。この戦略はより柔軟であり、さまざまな状況に応じて長所を最大限に活用し、短所を回避して、より高い効率を達成できます。

3. 分散データベース システムのアーキテクチャ
1. 分散データベースの参照モードの構造図は次のとおりです。 分散
分散データベースの参照モード構造の模式図
データベース システムの具体的な内容:
01. グローバル外部モード: グローバル アプリケーションのユーザー ビューです。つまり、エンド ユーザーから見て論理的に分散されていないテーブル、ビューなどです。
02. グローバル コンセプト モード: すべてのデータの論理構造と特性を記述します。
03. フラグメンテーションモード: 各データフラグメントとそのフラグメントに対するグローバルな関係のイメージを記述し、分散データベースシステムにおけるグローバルデータを論理的に分割したビューです。
04. 割り当てモード: 各フラグメントのイメージを物理ストレージ サイトに記述します。
05. ローカル概念モード: サイト上のグローバルな関係に保存されている物理フラグメントの論理構造と特性を説明します。
06. ローカル内部モード: ローカル サイト内のローカル概念モードに関係するデータの物理ストレージについて説明します。

2. 配布の透明性
配布の透明性にはいくつかのレベルがあります:
01. 場所の透明性とは、データの断片の配置場所がユーザーに対して透明であることを意味します。
02. Fragmentation Transparency 最高レベルの透明度。グローバル コンセプト モードとフラグメント モードの間に位置します。シャーディングの透明性とは、データのシャーディングが完全に透過的であることを意味し
、ユーザーはそれについて考える必要がなく、プログラムを作成するときにすべての関係を操作するだけで済みます。
03. ローカル データ モデルの透明性は、分散モデルとローカル コンセプト モデルの間にあります。編集する場合、ユーザーは、グローバルなデータの断片化の状況、各フラグメントのレプリカ複製状況、およびフラグメントとそのレプリカの位置割り当てを理解する必要があります。
3. 分散データベース管理システム
分散データベース管理システムの構造は次のとおりです。
分散データベース管理システムの構造
4. 分散データベースの関連技術
1. 分散クエリ
集中データベース システムでは、クエリ コストは主に CPU コストと I/O コストで構成されます。分散データベース システムで測定します。データはさまざまなサイトに分散されており、クエリ処理ではサイト間でデータを転送するための通信の発生も考慮する必要があります。分散ダイレクト クエリの最適化では、主に次の戦略が考慮されます。
分散クエリ最適化戦略
2. 分散トランザクション管理
分散トランザクション管理には、主にリカバリ制御と同時実行制御が含まれます。分散データベース システムでグローバル トランザクションを完了するには、複数のサイトの参加が必要です。トランザクションの原子性を維持するために、トランザクションの実行に参加しているすべての会場がすべてコミットされるか、すべて取り消されます。
01. 回復制御
A. 分散データベース システムの回復制御の最も一般的な戦略は、サイトのトランザクション管理をコーディネーターと参加者に分割する 2 フェーズ コミット プロトコルに基づいています。
B. コーディネーターは、最初の段階でトランザクションをコミットできるかどうかをすべての参加者に尋ね、参加者が応答します。第 2 段階では、コーディネーターは参加者の回答に従ってトランザクションをコミットするかどうかを決定します。
C. コーディネーターと参加者はログ情報を安定したメモリに保持し、障害が発生した場合には、ログ情報を使用して動作を復元できます。
D. 欠点: 2 フェーズ プロトコルでは、コーディネーターが失敗したときにブロックが発生する可能性がありますが、3 フェーズ プロトコルの送信ではブロックの問題を回避できます。
02. 同時実行制御
ほとんどの分散システムにおける同時実行制御は、主にブロッキング プロトコルに基づいています。集中データベース システムのあらゆる種類のロック プロトコルは分散システムでも使用できますが、変更する必要があるのは、ロック マネージャーが複製されたデータを処理する方法です。

13.2 並列データベース

1. 並列データの概要
1. データベース システムの開発における重要な課題: データベース システムのスループット レートとトランザクションの応答時間を改善すること。データベース アプリケーションの開発では、データベースのパフォーマンスと可用性に対するより高い要件が求められます。 。
2. ソフトウェアとハ​​ードウェアの要件に応じて、並列データベースが導入され、マルチプロセッサによる並列処理が高速化され、複数のプロセッサで構築された安価な並列コンピュータは、従来の大規模コンピュータよりも優れたパフォーマンスを発揮します。
2. 並列データベースのシステム構成
1. 並列データベースにはさまざまなアーキテクチャがあり、主に以下の 4 種類に分類できます。
(1) 共有メモリ構造
(2) 共有ディスク構造
(3) 非共有構造
(4) 階層構造
2. 共有メモリ構造の
説明: 図に示すように、すべてのプロセッサはインターネットを介して共通のメイン メモリを共有します (P はプロセッサを意味し、M はメモリを意味し、D はディスクを意味します)。
共有メモリ構造

この並列アーキテクチャは、単一のプロセッサではなく複数のプロセッサが使用される点のみがスタンドアロン システムと異なります。トランザクションを並行して実行し、共有メモリを介してメッセージとデータを転送し、1 つ以上のディスクにアクセスします。
長所: シンプルで最も経済的なソリューション。
短所: プロセッサが多すぎると、メモリへのアクセスで競合が発生しやすくなります。したがって、プロセッサの数は 32 または 64 に制限される必要があり、並列機能の拡張がある程度制限されます。
3. 共有ディスク構造
説明: 図に示すように、すべてのプロセッサは独立したメイン メモリを持ち、インターネットを介してディスクを共有します (P はプロセッサを意味し、M はメモリを意味し、D はディスクを意味します)。
共有ディスク
利点: 共有メモリ構造に比べて、共有ディスク構造は各プロセッサが独立したメモリを持ち、メモリへのアクセスが競合することがなくなります。これにより、メモリ障害時のシステムクラッシュの問題がある程度克服され、システムの可用性が向上します。
短所: この構造では、インターネットを介してプロセッサ間の情報やデータの交換が実現されるため、一定の通信コストが発生します。
4. 共有構造なし
説明: 各プロセッサは独立したメイン メモリとディスクを持ち、リソースを共有しません。
共有構造がない
利点: この構造は、並列データベース システムをサポートするのに最適な並列構造であると考えられており、共有リソースを最小限に抑えることでリソース競合の可能性を低減します。非常に拡張性が高いです。銀行窓口や民間航空券の販売などの OLTP などのアプリケーションに適しています。
欠点: 通信コストと非ローカルのクール ディスク アクセスのコストが高くなります。
5. 階層構造の
説明: この構造は、共有メモリ、共有ディスク、シェアードナッシング構造の特徴を組み合わせたもので、全体的に見ると 2 つの層に分けることができ、最上層は複数のノードから構成されるシェアードナッシング構造となっています。 、最下層は共有メモリまたは共有ディスク構造です。以下の図に示すように、
階層
長所: この構造は非常に柔軟であり、ユーザーのさまざまなニーズに応じて異なる構造のシステムに構成できます
短所: 上記 3 つの構造の長所と短所が統合されています。
3. データのパーティショニングと並列コンピューティング
1. 合理的なデータ分割により、クエリ処理時間を最小限に抑え、並列処理のパフォーマンスを最大限に高めることができます。
データ分割方法
(1) 1次元データ分割
1 次元データ パーティション_1
1 次元データ パーティション_2
(2) 多次元データ分割
多次元データ分割方式:
A.MAGIC 多次元分割方式
B.CMD 多次元分割方式
C.RERD 多次元分割方式
分割方式:リレーション R の属性を主分割属性と補助分割プロパティに分割します。主部門属性は 1 つだけあり、A に設定されます。まず、範囲に従って分割し、各細分割属性 B に対して 3 つの属性を持つ補助リレーション RB を構築します。RB のタプルは
R のタプルに対応します。このうち、TID はレコードのタプル ID であり、ProdD は実際のストレージ ノードです。属性 Bi に従って RB を各ノードに分割します。
2. 並列アルゴリズム
(1) データベース システムでは、ソートと結合は高コストの操作ですが、以下にこれら 2 つの操作の並列アルゴリズムを紹介します。
並列アルゴリズムの概要

(2) 並列ソート
説明: 範囲分割の方法に従ってリレーションシップが各ディスクに割り当てられ、ソート属性がパーティション属性の場合、各パーティション内のデータを連結してソートされたリレーションシップを取得できます。関係が他の方法で分割されている場合、次の方法で並べ替えることができます。
並列並べ替え方法:
01。並べ替え属性に従って範囲を再分割し、各分割を個別に並べ替えて、最後に結果を直接結合します。
02. 並列外部ソートおよびマージ アルゴリズムを採用します。つまり、各プロセッサが最初にローカル データをソートし、次にシステムが各プロセッサ上でソートされたデータをマージして、最終的なソート関係を取得します。
(3) パラレル接続
説明: パラレル接続は、パーティション接続とフラグメンテーションレプリケーション接続に分かれます。具体的な内容は次のとおりです。
パーティション結合: 同値結合および自然結合の場合、2 つの入力関係を複数のプロセッサに分割し、各プロセッサ上でローカル結合を実行できます。
シャード複製された接続: シャード接続は通常の電子接続には適用されません。シャードレプリケートされた接続は、さまざまな接続属性で解決でき、タプルも一致します。
(4) その他の関係演算
01. 選択: 選択演算によりすべてのプロセッサで並列実行できます。
02. 重複の排除: 並べ替えプロセスの概要に埋め込み、並列アルゴリズムと組み合わせて、重複を排除する並列化を実現できます。
03. プロジェクション: 重複排除を行わないプロジェクションは、タプルがディスクから読み取られるときに並行して実行できます。重複行を排除したい場合は、前述の重複排除メソッドを使用して重複を排除し、同時にプロジェクションを実行できます。
04. 集計: 集計関数の並列計算は、「分割してから結合する」方法を採用できます。集計関数 SUM、MIN、MAX については、各ノードは最初に結果の一部を並列に計算し、次に各部分を計算します。同じ集計関数を一度使用した結果のそれだけです。

13.3 クラウドコンピューティングデータベースアーキテクチャ

1. クラウド コンピューティングの概要
1. 説明: クラウド コンピューティングは、分散コンピューティング、並列コンピューティング、グリッド コンピューティングの開発、またはこれらのコンピューター サイエンスの概念の商業的実現です。
2. 概念: クラウド コンピューティングは、すべてのコンピューティング リソースを集中し、ハードウェア仮想化技術を採用することで、クラウド コンピューティング ユーザーに強力なコンピューティング能力、ストレージ、帯域幅リソースを提供し、多数のリソース プールで構成されるコンピューティング タスクを分散するビジネス コンピューティング モデルです。コンピュータのさまざまなアプリケーション システムは、必要に応じてコンピューティング パワー、ストレージ スペース、および情報サービスを取得できます。従来の大規模サーバーと同等以上のコンピューティング能力を実現します。(1) Software as a Service (SaaS): インターネット上のアプリケーション
サービスは常に Software as a Service (Saas) と呼ばれており、ソフトウェア配布モデルです。
(2) Platform as a Service (Paas): グリッドを介したオペレーティング システムおよび関連サービスの提供を指します。ダウンロードやインストールをせずに。
(3) サービスとしてのインフラストラクチャ (laas): ストレージ、ハードウェア、サーバー、ネットワーク コンポーネントなど、運用をサポートするために使用される機器に対する外部サービスの提供を指します。
3. クラウド コンピューティング プロバイダーのデータ センター
クラウド コンピューティング プロバイダーのデータ センターのソフトウェアおよびハードウェア設定は、いわゆるクラウドであり、詳細は次のとおりです。 4. クラウド コンピューティングのブレークスルー ハードウェアの観点から、クラウド コンピューティングはブレークし
雲
ます
。 (1) クラウド コンピューティングは、
アプリケーション システムに一見無制限のコンピューティング リソースを提供でき、クラウド コンピューティングにより、エンド ユーザーがコンピューティング能力の計画や予算を準備する必要がなくなります (2))
SaaSサービス プロバイダーは、必要に応じてハードウェア リソースを段階的に追加できますが、事前の契約は必要ありません。
(3) クラウド コンピューティングは、ユーザーにリソースの短期使用を提供する柔軟性を備えています。ユーザーは、これらのリソースが不要になったときに簡単に解放できます。

2. クラウド コンピューティング アーキテクチャの紹介
1. クラウド環境では、コンピューティングの主な目的は依然としてデータです。「クラウド + データベース」の組み合わせによりクラウド データベースが生成されます。Google のクラウド データベース アーキテクチャは次の図に示されています。
Google のクラウド サービス フレームワーク

  1. BigTable データ モデル
    (1) 説明: BigTable は、Google のクラウド データベースであり、大量のデータを処理、保存、直接クエリするための分散構造化データ ストレージ システムです。
    (2) BigTable テーブルのインデックスは行キー (Row Key)、列キー (Column Key)、タイムスタンプ (Timestamp) です。
    (3) 各セル ( Cell ) は、行キーワード、列キーワード、タイムスタンプによって同じ場所に配置されます
    (4) BigTable では、行数を自由に増減できるだけでなく、特定の制約の下で行数を拡張することもできます列の数を増やし、各ユニットに時間タグを導入します。これにより、異なる時間バージョンの異なるデータを保存できます。
    (5) データモデルの特徴
    01. テーブルのロウキーは任意の文字列にすることができます。
    BigTable は、行キーの辞書編集順にデータを編成します。テーブル内の各行は動的に分割できます。各パーティションを「タブレット」と呼び、タブレットはデータ分散や負荷分散調整の最小単位となります。
    02. カラムファミリーはカラムキーワードの集合であり、アクセス制御の基本単位です。
    通常、同じ列ファミリーには、同じ型のデータが格納されます。同じテーブルにあります。列ファミリーが多すぎることはできません。列ファミリー層では、アクセス制御、ディスクおよびメモリ使用量の統計がそれぞれ実行されます
    03. データ項目に含まれるデータのさまざまなバージョンのタイムスタンプ。
    さまざまなバージョンのデータのインデックス付けは、タイムスタンプを通じて実現できます。BigTable は、対応するデータの正確な時間を表すようにタイムスタンプの値を設定できます。
    ミリ秒単位の精度にすることもでき、ユーザー プログラムは、データ項目内のデータのバージョン情報を表すタイムスタンプに値を割り当てることもできます。システムはデータをタイムスタンプ順に並べ替えます。つまり、最新の教師データが優先されます。
    (6) BigTableのアーキテクチャ
    Bigtable クラスタには多くのテーブルが格納され、各テーブルにはタブレットのコレクションが含まれ、各タブレットには特定の範囲内の行の関連データがすべて含まれます。初期状態では、テーブルにはタブレットが 1 つだけあります。テーブル内のデータが増加すると、データは自動的に複数のタブレットに分割されます。BigTable の構造図を次の図に示します。
    Bigtable の構造図

3. クラウドデータベースと従来型データベースの比較

3. クラウドデータベースと従来型データベースの比較
1. クラウドデータベースと既存のRDBMSには大きな違いがあり、いずれもリレーショナルデータモデルですが、通常のクラウドデータベースは一連の2次元テーブルであり、その操作方法も異なります。クラス SQL またはアクセス オブジェクトの簡易バージョンに基づいています。
2. クラウド データベースを使用すると、ホスティング サーバーを購入したり、データベースを自分でインストールして保守したりする必要がなくなり、サーバーの場所やその他の情報を気にすることなく、必要な情報にアクセスするだけで済みます。ただし、クラウド データベースには次のような欠点もあります。
● データ セキュリティの問題
● インターネットへの依存
● クラウド管理の問題

13.4 XMLデータベース

1. XML 言語の概要
XML (Extensible Markup Language): 一般に、電子ファイルをマークして構造化するために使用され、データをマークしてデータ型を定義するために使用でき、ユーザーが独自のマークアップ言語を定義できるソースです。その構文は HTML に似ています。ラベルはデータを説明するために使用されます。その特徴は次のとおりです。
01.XML は標準一般化マークアップ言語 (SGML) のサブセットであり、Web 送信に非常に適しています。
02. XML は、アプリケーションやサプライヤーに依存せずに構造化データを記述および交換するための統一された方法を提供します。
03.XML データベースは、XML 形式のドキュメントの保存やクエリなどの操作をサポートするデータベース管理システムです。
04
II. XML データの概要
1.XML データベースは、XML 形式のドキュメントの保存とクエリ操作をサポートするデータ管理システムであり、XML ドキュメントとそのコンポーネントのコレクションであり、このドキュメントのコレクションを管理および制御します。システム自体とそれが表す情報によって維持されます。2. XML データベースは、構造化データと半構造化データのリポジトリであるだけでなく、永続的な XML データには、独立性、統合、アクセス権、ビュー、完全性、冗長性、一貫性、データ回復などの
データの多くの特性が含まれています。 XMLデータベースの種類


3 種類の XML データベース

4. 従来のデータベースと比較して、XML データベースには次の利点があります。
01. XML データベースは、半構造化データに効果的にアクセスして管理できます。
02. タグとパスに対する操作を提供します。
03. データ自体に階層性がある場合。XML データ形式は数値の階層特性を明確に表現でき、XML データベースは階層データを操作するのに便利です。

3. SQL Server 2008 と XML
1. SQL Server の XML ステートメント
1. リレーショナル データベースでは、SELECT ステートメントによって返されるクエリ結果は標準の行セット (フィールドとレコードで構成されるデータ テーブル形式のデータ セット) です。クエリ結果を XML 形式で返したい場合は、SELECT ステートメントに FOR XML 句を追加して、返された結果を XML 形式に変更できます。さらに、SQL Server 2008 は、XML データ ストリームを処理するための OPENXML 関数も提供します。
2. SQL Server の XML ステートメント構文形式
ここに画像の説明を挿入

3. SQL Server の XML ステートメントの例
ここに画像の説明を挿入

4. SQL Server の XML データ型
ここに画像の説明を挿入

5.XMLインデックスタイプ
ここに画像の説明を挿入

6. XML の操作
04
テスト ポイント 4: XML データベース
4. XML の操作
SQL Server 2008 は、XML データ型をクエリするための XQuery 言語の使用をサポートしています。一般的に使用されるメソッドは主に次のとおりです。 01. XML
インスタンス内の XML ノードのクエリに使用される Query メソッド。
02. XMLインスタンス内のノードや要素の値を取得するためのValueメソッドを記述するために使用されます。
03 クエリが空の結果を返すかどうかを判断するために使用される Exist メソッド。
04 XMLインスタンスへのノードの挿入、変更、削除のModifyメソッド

おすすめ

転載: blog.csdn.net/weixin_47288291/article/details/123586166