データベース アーキテクチャ

提供: RAD Studio
移動先: 案内検索

データベース アプリケーションの設計:インデックス への移動


データベース アプリケーションの構成部品となっているのは、ユーザー インターフェイス要素、データベース情報を表すコンポーネント(データセット)、これらを相互に、またデータベース情報のソースに接続するコンポーネントです。これらの部品をどう組み立てるかが、データベース アプリケーションのアーキテクチャになります。

データベース アプリケーションでコンポーネントを組み立てるさまざまな方法がありますが、そのほとんどは、下図に示した一般的な方式に従っています。

DBDARCH1.jpg

ユーザー インターフェイス フォーム

ユーザー インターフェイスを、アプリケーションのそれ以外の部分から完全に切り離されたフォームにまとめるとよいでしょう。これには、いくつかの利点があります。ユーザー インターフェイスを、データベース情報そのものを表すコンポーネントから切り離すことにより、設計の柔軟性が向上します。データベース情報の管理方法を変更しても、ユーザー インターフェイスを書き直す必要はなく、ユーザー インターフェイスを変更しても、アプリケーションのうち、データベースを扱う部分を変更する必要はありません。そのうえ、この種の分離により、複数のアプリケーション間で共有できる共通のフォームを開発できるので、一貫したユーザー インターフェイスを提供できます。適切に設計されたフォームへのリンクをオブジェクト リポジトリに格納することにより、新規プロジェクトごとに開発をゼロから始めるのではなく、既存の土台に基づいて開発することが可能になります。フォームを共有することにより、アプリケーション インターフェイスの社内標準を開発することもできます。ユーザー インターフェイスの作成と使用の詳細については、「ユーザー インターフェイスの設計」を参照してください。

データ モジュール

ユーザー インターフェイスを専用のフォームに切り離した場合は、データ モジュールを使用して、データベース情報を表すコンポーネント(データセット)、およびこれらのデータセットとアプリケーションのそれ以外の部分を接続するコンポーネントを格納することができます。ユーザー インターフェイス フォームと同様に、データ モジュールをオブジェクト リポジトリに格納して、アプリケーション間で再利用および共有することができます。

データ ソース

データ モジュール内の一番の項目はデータ ソースです。データ ソースは、ユーザー インターフェイスと、データベースからの情報を表すデータセットの間のパイプの役目を果たします。フォーム上の複数のデータ対応コントロールで単一のデータ ソースを共有できます。この場合、各コントロールの表示が同期するので、ユーザーがレコードをスクロールすると、それに合わせて、現在のレコードのフィールド内の対応する値が各コントロールに表示されます。

データセット

データベース アプリケーションの中心となるのは、データセットです。このコンポーネントは、基になるデータベースのレコードのセットを表します。レコードとなるのは、単一のデータベース テーブルから得られるデータ、テーブル内のフィールドやレコードの一部、複数のテーブルから得られた情報を単一のビューに結合したもの、などです。データセットを使用することにより、データベースの物理テーブルが再編成されても、アプリケーション ロジックは直接影響を受けずに済みます。基になるデータベースを変更した場合、データセット コンポーネントに格納されているデータの指定方法を変更しなければならない可能性はありますが、アプリケーションのそれ以外の部分は変更しなくても引き続き機能します。データセットの一般的なプロパティやメソッドの詳細については、「データセットの理解」を参照してください。

データ接続

データセットの種類が異なると、基になるデータベース情報への接続に使用されるメカニズムも異なります。これらのメカニズムの違いが、今度は、構築できるデータベース アプリケーションのアーキテクチャの大きな違いとなって現れます。データに接続するための基本的なメカニズムには、次の 4 種類があります。

  • データベース サーバーへの直接接続: ほとんどのデータセットでは、TCustomConnection の下位クラス オブジェクトを使用して、データベース サーバーへの接続を表します。
  • ディスク上の専用ファイルの使用: クライアント データセットでは、ディスク上の専用ファイルを扱うことができます。クライアント データセット自体がファイルの読み書きの方法を知っているので、専用ファイルを扱う際に、別個の接続コンポーネントは必要ありません。
  • 別のデータセットへの接続: クライアント データセットでは、別のデータセットから提供されるデータを扱うことができます。TDataSetProvider コンポーネントが、クライアント データセットとそのソース データセットの間の仲介役となります。このデータセット プロバイダは、クライアント データセットと同じデータ モジュール内に存在することも、別のマシン上で動作するアプリケーション サーバーの一部になることもできます。プロバイダがアプリケーション サーバーの一部になる場合は、アプリケーション サーバーへの接続を表すために、TCustomConnection の特別な下位クラス オブジェクトも必要です。
  • RDS DataSpace オブジェクトからのデータの取得: ADO データセットでは、Data.Win.ADODB.TRDSConnection コンポーネントを使用して、ADO ベースのアプリケーション サーバーを使って作成された多層データベース アプリケーションのデータをマーシャリングすることができます。

時には、これらのメカニズムを単一のアプリケーションで組み合わせることもできます。

関連項目