
シャドウ テーブルは、コンピューター サイエンスにおいて、マシン、ネットワーク、プログラムが情報を処理する方法を改善するために使用されるオブジェクトです。 [1]より具体的には、シャドウ テーブルはプロセッサによって読み書きされるオブジェクトであり、プライマリ テーブル (シャドウ テーブルが「シャドウ」するテーブル) と同様の (同じ形式の) データが含まれています。シャドウ テーブルには通常、プライマリ テーブルの操作と保守に関連するデータが含まれていますが、プライマリ テーブルが存在するために必要なデータのサブセットには含まれていません。[2]シャドウ テーブルは、データ ストレージ システムのデータ型「トレイル」に関連しています。トレイルはシャドウ テーブルと非常に似ていますが、異なる同一形式の情報 (シャドウ テーブルなど) を格納するのではなく、テーブルに対して実行された変更と関数の履歴を格納します。[3]
歴史
シャドウ テーブルは、抽象的な概念として、現代のコンピューティングの始まりから使用されてきました。ただし、「シャドウ テーブル」という特定の用語が広く使用されるようになったのは、 1970 年代にリレーショナル データベース管理システム(RDBMS) が広く使用されるようになったときです。[4]
リレーショナル DBM が商業目的で最初に使用されたことから、「シャドウ テーブル」という用語が広く使われるようになりました。リレーショナル DBM は、関連するデータ フィールド (列) を使用してテーブル間の情報を関連付けます。[5] たとえば、transaction_user と transaction_amount という 2 つのテーブルには、どちらも列「キー」が含まれており、テーブル間のキーは一致するため、キーがわかっていれば、特定のトランザクションのユーザーと金額の両方を簡単に見つけることができます。このリレーショナル テクノロジにより、プライマリ テーブルとそのシャドウに格納されている情報を関連付けることができました。
アプリケーション
シャドウ テーブルは非常に抽象的な概念であるため、そのアプリケーションはコンピュータ サイエンスの領域にとどまります。シャドウ テーブルの使用法が「シャドウ テーブル」として明確に宣言されていない場合でも、概念は同じです。シャドウ テーブルは通常、既存のコンピュータ/ネットワーク システムのパフォーマンス、容量、および機能を向上させるために使用されます。ほとんどのアプリケーションでは、シャドウ テーブルは通常、プライマリ テーブルの構造のカーボン コピーですが、固有のデータを持ちます。
理論的応用
シャドウ テーブルはコンピューター サイエンスにおける特定の種類のオブジェクトであるため、その用途はシャドウ テーブルに格納されるデータとそのデータの使用方法によって大きく異なります。以下は、実際のすべてのアプリケーションに適用されるシャドウ テーブルの一般的な抽象的な用途の一覧です。
- ストレージ- 通常は削除または変更されるデータ エントリをシャドウ テーブルに保存します。
- カプセル化- データ セットを別のデータ セットから分離するために、シャドウ テーブル内にデータを配置します。
- モジュール性- データの変更と処理を容易にするために、シャドウ テーブル内にデータを配置します。
エンジニアリングアプリケーション
シャドウ テーブルが今日のコンピュータ/ネットワーク システムの現在の問題を解決するために使用される場合、通常、前述のシャドウ テーブルの理論的/抽象的なアプリケーションの 1 つ以上を組み合わせて使用されます。次のリストは、シャドウ テーブルの実際のアプリケーションのごく一部であり、シャドウ テーブルの一般的なアプリケーションの例を示すためにのみ示されています。
データベース管理システム
データベース管理システム(DBMS) は、データ テーブルのメンテナンス、セキュリティ、および操作を処理するソフトウェアです。よく知られ、広く使用されている DBMS の例としては、SQL Server、MySQL、Oracle、PostgreSQL などがあります。これらの DBMS はそれぞれ、データのテーブルが保持され、クエリ言語と呼ばれる特定の種類のプログラミング言語を使用して読み取りおよび書き込みができる仮想「環境」を作成します。クエリ言語は、大量で特定の量のデータの簡単な変更または取得に特化しています。最新の DBMS のほとんどは、SQL (特定の種類のクエリ言語) を特にサポートしています。SQL を使用すると、既存のテーブルと同じ構造を共有するテーブルを簡単に作成できます。SQL は、これらの新しいテーブルにデータを書き込むこともでき、シャドウ テーブルを作成します。シャドウ テーブルは、DBM によって実行される冗長な操作を防ぐことで効率を向上させるために、DBMS でよく使用されます。シャドウ テーブルは、元のデータに影響を与えないため、ほとんどの最新の DBMS で簡単に実装できます。したがって、望ましくない限り、データベースとそれにアクセスするアプリケーションの連携方法は影響を受けません。[6]
たとえば、シャドウ テーブルは、ほとんど変更されない大規模なデータ テーブルをサポートする効率的なバックアップ システムで使用できます。
- シャドウテーブルがなければ、そのテーブルのバージョンを毎日保存するだけのプログラムを作成できます。
このバックアップシステムでは、50日後には同じテーブルのコピーが50個作成されます。 - シャドウ テーブルを使用すると、そのテーブルの空の「シャドウ テーブル」を作成し、プライマリ テーブルから行が削除されるたびに行のコピーをシャドウ テーブルに挿入するプログラムを使用できます。
最悪のシナリオでは、シャドウ テーブル システムを 50 日間使用した後、プライマリ テーブルのすべての行が削除されたと仮定すると、プライマリ テーブルのコピーが 1 つだけ存在することになります。[5] [7]
インターフェース
インターフェースとは、「レイヤー」を使用してテクノロジ間および人とテクノロジ間の通信を簡素化するプロセスです。 レイヤー インターフェースの 1 つの例として、家庭用コンピュータのオペレーティング システムで使用されるボタンとメニューがあります。 これらのグラフィカル オブジェクトは、オペレーティング システムの基盤となる「ボタン」へのリンクとして存在します。 コマンド コンソールは、これらのグラフィカル オブジェクトの 1 つ下のレベルにあり、オペレーティング システムの基盤となる機能へのより密接なリンクを提供します。
シャドウ テーブルは、エンド ユーザーとデータベース間のレイヤーとしてよく使用されます。たとえば、ユーザーが自分の銀行口座にログインして、過去のすべての取引履歴を要求すると、データベースは通常、すべてのユーザーのすべての取引を 1 つの巨大なテーブルに保存し、そのテーブルの特定の列で各取引に関係する当事者を区別します。この時点で、サーバーには 2 つのオプションがあります。
- データベースはトランザクション テーブル全体を送信できます。
- データベースは、トランザクション履歴を要求したユーザーに関連するトランザクションのみを含むシャドウ テーブルを送信できます。
2 番目のオプションは、ユーザー側の帯域幅と処理能力を節約できるため、通常はより好ましいです。また、他のユーザーのトランザクション データを安全に保ちます。
オペレーティング システムの仮想化
オペレーティングシステムの仮想化とは、あるコンピュータの動作を別のコンピュータ内でシミュレートするプロセスです。この手法は、自分の PC で複数の種類のオペレーティングシステムを同時に実行したい場合に便利です。シャドウ ページ テーブルは、単一のメモリとプロセッサ セットで複数のオペレーティングシステムをシミュレートする際によく使用されます。ページテーブルは、オペレーティングシステムによって、仮想メモリ(プログラムとオペレーティングシステムが情報を格納するために使用する実際のメモリ) を物理メモリ(RAM (ランダム アクセス メモリ) 上にバイト単位で格納されるハードウェア固有のメモリ) 上の場所にマップするために使用されます。[8] シャドウ ページ テーブルは、コンピュータのメイン ページ テーブル内の疑似ページ テーブルであり、これにより、システムで複数の種類のオペレーティングシステムを同時に実行できます。[9]
参考文献
- ^ 「Shadow Databases」。Supporting Advancements。2011年10 月 26 日閲覧。
- ^ Ambler, Scott. 「シャドウ情報とスキャフォールディング」。リレーショナル データベースへのオブジェクトのマッピング: O/R マッピングの詳細。Agile Data。2011年10 月 28 日閲覧。
- ^ Wehlou, Martin. 「Shadows and Trails」. Wehlou . 2011年10月26日閲覧。
- ^ Brown, Pete. 「マウンテンマン」。現代の RDBMS IT 管理の簡潔な歴史。2011年10 月 30 日閲覧。
- ^ ab Codd, Edgar (1970 年 6 月). 「大規模共有データバンクのリレーショナルデータモデル」(PDF) . Communications of the ACM . 13 (6): 377–387. doi :10.1145/362384.362685 . 2011 年10 月 28 日閲覧。
- ^ スピーカー、デビン・スパックマン、マーク(2005年)。エンタープライズ統合ソリューション。ワシントン州レドモンド:マイクロソフト・プレス。p. 45。ISBN 978-0-7356-2060-5。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ ケント、ジャック、ヘクター・ガルシア・モリーナ。1988年、13ページ。
- ^ Denning, PJ「ページテーブル」。2011年10月30日閲覧。
- ^ 「仮想化: アーキテクチャ上の考慮事項およびその他の評価基準」(PDF) 。2011 年10 月 30 日閲覧。
外部リンク
- 仮想化: アーキテクチャ上の考慮事項とその他の評価基準
- データベースの歴史に関するマウンテンマン
- シャドウテーブルアプリケーションの詳細
