分散データベースは、データが異なる物理的な場所に保存されるデータベースです。 [1]同じ物理的な場所(データセンターなど)にある複数のコンピューターに保存される場合もあれば、相互接続されたコンピューターのネットワークに分散されている場合もあります。プロセッサが密結合されて単一のデータベース システムを構成する並列システムとは異なり、分散データベース システムは、物理コンポーネントを共有しない疎結合サイトで構成されます。
システム管理者は、データのコレクション(データベースなど)を複数の物理的な場所に分散させることができます。分散データベースは、インターネット、企業のイントラネットやエクストラネット、または他の組織のネットワーク上の組織化されたネットワークサーバーまたは分散された独立したコンピューター上に配置できます。分散データベースは複数のコンピューターにデータを保存するため、トランザクションを1台のマシンに限定せずに多数のマシンで処理できるようにすることで、エンドユーザーの作業現場でのパフォーマンスを向上させることができます。 [2]
分散データベースが最新の状態に保たれるようにするためには、レプリケーション[3]と複製という2つのプロセスが必要です。
- レプリケーションでは、分散データベースの変更を探す専用のソフトウェアを使用します。変更が特定されると、レプリケーション プロセスによってすべてのデータベースが同じになります。分散データベースのサイズと数によっては、レプリケーション プロセスが複雑で時間がかかる場合があります。また、このプロセスには多くの時間とコンピューター リソースが必要になる場合もあります。
- 一方、複製はそれほど複雑ではありません。1 つのデータベースをマスターとして識別し、そのデータベースを複製します。複製プロセスは通常、営業時間外の決まった時間に実行されます。これは、分散された各場所に同じデータが存在するようにするためです。複製プロセスでは、ユーザーはマスター データベースのみを変更できます。これにより、ローカル データが上書きされないことが保証されます。
レプリケーションと複製はどちらも、すべての分散場所でデータを最新の状態に保つことができます。[2]
分散データベースのレプリケーションと断片化以外にも、分散データベース設計テクノロジは数多くあります。たとえば、ローカル自律性、同期、非同期の分散データベース テクノロジなどです。これらのテクノロジの実装は、ビジネスのニーズ、データベースに保存されているデータの機密性/機密性、およびデータのセキュリティ、一貫性、整合性を確保するために企業が費やすことができる価格によって異なります。
分散データベースへのアクセスについて説明する際、Microsoft は分散クエリという用語を好んで使用し、プロトコル固有の方法で「1 つ以上の外部 OLE DB データ ソースからテーブルと行セットを参照する任意の SELECT、INSERT、UPDATE、または DELETE ステートメント」と定義しています。[4] Oracle は、分散クエリと分散トランザクションが分散 SQLの一部を形成する、より言語中心のビューを提供しています。[5]
建築
分散データベースには主に 3 つのアーキテクチャ タイプがあります。
- 共有メモリ: ほとんど使用されない[6]
- 共有ディスク
- シェアードナッシング
共有メモリと共有ディスク アーキテクチャでは、データはパーティション化されませんが、共有なしのアーキテクチャにする必要があります。
共有ディスクアーキテクチャは、オンプレミスよりもクラウドデータベースで一般的です。 [6]
歴史的に、共有クラウド ストレージの登場によって共有ディスクが可能になる以前は、シェアード ナッシングがクラウドに実装された最初のアーキテクチャでした。
実際には、データベースの異なるレイヤーは異なるアーキテクチャを持つことができます。現在では、コンピューティングレイヤーにはシェアードナッシングアーキテクチャを採用し、ストレージレイヤーにはシェアードディスクアーキテクチャを採用するのが一般的です。これは、例えばSnowflake [7]やAWS Auroraの場合です。[8]
シェアードナッシングデータベースのリスト
共有ディスクデータベースのリスト
参照
参考文献
- ^ 「定義: 分散データベース」www.its.bldrdoc.gov。
- ^ ab O'Brien, J. & Marakas, GM(2008) 経営情報システム (pp. 185-189)。ニューヨーク州ニューヨーク州: マグロウヒル アーウィン
- ^ Ozsu, MT; Valduriez, P. (1991). 「分散データベースシステム:現在どこにいるのか?」Computer . 24 (8): 68–78. doi :10.1109/2.84879. ISSN 1558-0814. S2CID 5898169.
- ^ 「TechNet 用語集」。Microsoft。2010 年 1 月 28 日。2013 年 7 月 16 日に取得。
分散クエリ[:] 1 つ以上の外部 OLE DB データ ソースからテーブルと行セットを参照する SELECT、INSERT、UPDATE、または DELETE ステートメント。
- ^ Ashdown, Lance; Kyte, Tom (2011 年 9 月)。「Oracle Database Concepts, 11g Release 2 (11.2)」。Oracle Corporation。2013 年 7 月 15 日にオリジナルからアーカイブ。2013 年7月 17 日に取得。
分散 SQL は、複数のデータベースに分散されたデータに同期的にアクセスして更新します。[...] 分散 SQL には、分散クエリと分散トランザクションが含まれます。
- ^ ab Garrod, Charlie (2023). 「講義#21: 分散データベース入門」(PDF)。カーネギーメロン大学 - コンピュータサイエンス学部。 2023年3月12日閲覧。
- ^ Kaushik, Arun (2020-02-14). 「Snowflake が強力な理由 — 共有ディスクと共有ナッシング アーキテクチャのハイブリッド」. Medium . 2024-03-12閲覧。
- ^ Brahmadesam, Murali; Ternstrom, Tobias (2019). 「Amazon Aurora ストレージの謎を解明: 仕組みのすべて」(PDF) 。2024年 3 月 12 日閲覧。
