オブジェクト指向技術によってもたらされるもう一つの変化は プログラムとデータベースのゆるやかな融合である。
最近までプロシージャとデータは完全に分離されてきた。
プロシージャはプログラムの中に、データはデータベース中におかれていた
(図)。
しかし、
この分離は
関係するプロシージャとデータを一緒にパッケージ化する必要のある
モジュール化プログラミングに違反している。
この違反の影響はデータベースの構造を変更しようとするたびに現れる。
共有しているデータベースを利用するいくつものプログラムがあると、
データ構造のちょっとした変更でも
不都合や悪い時には全面的な障害までをも生むことだろう。
この問題を解消するためには
プログラムとデータの分離をやめ、
関連する全てのアプリケーションについて
プロシージャとデータをカプセル化する必要がある。
この融合を果たすものがオブジェクトデータベースである。
これはプログラミング言語自体を含んでいて、
データベース内で直接メソッドを実行することができる。
従って、データとプロシージャを一緒にした
アプリケーション全体をデータベースに格納できる(図)。
オブジェクトデータベースにプロシージャを格納することは 他にも多くの恩恵をもたらす。 単なるプログラムと違い、 データベースでは複数ユーザでの共用、アクセス制限、 同時アクセスによる衝突の回避、事故による損失の保護、 検索の容易性といった多くの重要なサービスを提供している。 オブジェクトデータベースに格納していることでプロシージャがこれらの機能を 自動的に利用できるようになる。 データとプロシージャをパッケージ化しているだけではなく、 オブジェクトデータベースはいわば「プロシージャベース」となる。
さらに、単なる「プロシージャベース」以上の機能として、 いつでもプロシージャをオブジェクトデータベース内で 実行できるというものがある。 オブジェクトデータベースで実行中のアプリケーションは サブルーチンを呼び出すように、 別のアプリケーションのプロシージャを直接呼び出せる。 混合・適合型プログラミングと組み合わせれば、 このやりかたは非常に柔軟な環境を生み出すこととなる。
最新のオブジェクトデータベースは
多くの異なる機種上で分散させることができる(図)。
このことにより、
プログラマはアプリケーションをローカルのコンピュータ上で
一見独立したアプリケーションのよう作成し実行できる。
しかし、このアプリケーションはデータベース内に直接構築されているので、
データベース内の他の全アプリケーションのリソースも利用できる。
オブジェクトデータベース内にプロシージャを埋め込むことの利点は 非常に大きいので、 アプリケーションプログラムは分散オブジェクトデータベースへと 着実に移行していくことだろう。 プログラムとデータの融合が進行していくと、 企業データベースの役割も変化するだろう。 受動的なデータの集積所から、 データだけでなく企業運営の方針と進め方を管理する 活動的なメディアに成長していくだろう。