1.2 オブジェクトの利点

オブジェクト型モデルは、一般に、C++およびJavaで使用されているクラス・メカニズムに似ています。

クラスの場合と同様、オブジェクトを再利用できるため、データベース・アプリケーションを短期間で効率的に開発できます。データベースのオブジェクト型をネイティブ・サポートしているため、アプリケーション開発者は自身のアプリケーションで使用するデータ構造に直接アクセスできます。

純粋なリレーショナル・アプローチにより得られるオブジェクトの利点には、次のようなものもあります。

オブジェクトによる操作とデータのカプセル化

データベース表には、データのみが存在します。データに対して実行する可能性のある操作を実行する機能を、オブジェクトに組み込むことができます。

したがって、発注書などのオブジェクトに、購入品目すべてのコストを計算するメソッドを組み込むことができます。または、顧客オブジェクトに、顧客の購買履歴および支払パターンを戻すメソッドを持たせることもできます。アプリケーションは、メソッドをコールするのみで、情報を取り出せます。

オブジェクトによる効果

オブジェクト型を使用することで、次のような効果があります。

  • オブジェクト型およびオブジェクト・メソッドは、データと一緒にデータベースに格納されるため、どのアプリケーションでも利用できるようになります。開発者は、アプリケーションごとに同様の構造およびメソッドを再作成する必要がありません。また、複数の開発者が一貫した標準を使用することになります。

  • 一連の関連オブジェクトを1つの単位としてフェッチし、処理できます。サーバーからオブジェクトをフェッチする要求を1回出すのみで、関連付けられた他のオブジェクトが取り出せます。SQLオブジェクト型の列を参照すると、オブジェクト全体が取り出せます。

オブジェクトによる部分対全体の関連の表現

オブジェクト型を使用すると、部分対全体の関連を表現できます。

たとえば、在庫品目のリレーショナル表では、ピストンとエンジンに同じステータスが与えられてしまうことがあります。オブジェクトを使用すれば、主キーと外部キーの関連を使用した複数の表で構成される複雑なスキーマを使用して、ピストンをエンジンのパーツとして表現する必要がありません。オブジェクトは他のオブジェクトを属性として持ち、属性オブジェクトは個別のオブジェクト属性も持てます。オブジェクト型を結合することにより、この方法でパーツリスト全体の階層を作成できます。