next up previous
Next: エンタープライズモデルの到来 Up: ソフトウェアの未来 Previous: 混合・適合型ソフトウェア

プログラムとデータベースの融合

オブジェクト指向技術によってもたらされるもう一つの変化は プログラムとデータベースのゆるやかな融合である。



  
図: プログラムとデータベース
\begin{figure}
\begin{center}
\epsfile{file=OODB92.ps,height=6cm}
\end{center}
\end{figure}



  
図: オブジェクトデータベース内のプロシージャ
\begin{figure}
\begin{center}
\epsfile{file=OODB93.ps,height=6cm}
\end{center}
\end{figure}

最近までプロシージャとデータは完全に分離されてきた。 プロシージャはプログラムの中に、データはデータベース中におかれていた (図[*])。 しかし、 この分離は 関係するプロシージャとデータを一緒にパッケージ化する必要のある モジュール化プログラミングに違反している。 この違反の影響はデータベースの構造を変更しようとするたびに現れる。 共有しているデータベースを利用するいくつものプログラムがあると、 データ構造のちょっとした変更でも 不都合や悪い時には全面的な障害までをも生むことだろう。

この問題を解消するためには プログラムとデータの分離をやめ、 関連する全てのアプリケーションについて プロシージャとデータをカプセル化する必要がある。 この融合を果たすものがオブジェクトデータベースである。 これはプログラミング言語自体を含んでいて、 データベース内で直接メソッドを実行することができる。 従って、データとプロシージャを一緒にした アプリケーション全体をデータベースに格納できる(図[*])。

オブジェクトデータベースにプロシージャを格納することは 他にも多くの恩恵をもたらす。 単なるプログラムと違い、 データベースでは複数ユーザでの共用、アクセス制限、 同時アクセスによる衝突の回避、事故による損失の保護、 検索の容易性といった多くの重要なサービスを提供している。 オブジェクトデータベースに格納していることでプロシージャがこれらの機能を 自動的に利用できるようになる。 データとプロシージャをパッケージ化しているだけではなく、 オブジェクトデータベースはいわば「プロシージャベース」となる。



  
図: オブジェクトデータベース内の分散データベース
\begin{figure}
\begin{center}
\epsfile{file=OODB94.ps,height=6cm}
\end{center}
\end{figure}

さらに、単なる「プロシージャベース」以上の機能として、 いつでもプロシージャをオブジェクトデータベース内で 実行できるというものがある。 オブジェクトデータベースで実行中のアプリケーションは サブルーチンを呼び出すように、 別のアプリケーションのプロシージャを直接呼び出せる。 混合・適合型プログラミングと組み合わせれば、 このやりかたは非常に柔軟な環境を生み出すこととなる。

最新のオブジェクトデータベースは 多くの異なる機種上で分散させることができる(図[*])。 このことにより、 プログラマはアプリケーションをローカルのコンピュータ上で 一見独立したアプリケーションのよう作成し実行できる。 しかし、このアプリケーションはデータベース内に直接構築されているので、 データベース内の他の全アプリケーションのリソースも利用できる。

オブジェクトデータベース内にプロシージャを埋め込むことの利点は 非常に大きいので、 アプリケーションプログラムは分散オブジェクトデータベースへと 着実に移行していくことだろう。 プログラムとデータの融合が進行していくと、 企業データベースの役割も変化するだろう。 受動的なデータの集積所から、 データだけでなく企業運営の方針と進め方を管理する 活動的なメディアに成長していくだろう。



Masao Takaku 平成11年3月11日