定義

ODBMS入門 ― 定義

オブジェクト データベース管理システム(ODBMS、別名オブジェクト指向 データベース管理システム=OODBMS)は、データをオブジェクトとしてモデル化・作成できる データベース管理システム (DBMS)で、サブクラスとそのオブジェクトにより、オブジェクトのクラス、およびクラスのプロパティとメソッドの継承を、何らかの形でサポートしています。

大きな影響を与えた1995年の文書『オブジェクト指向 データベースシステム宣言』(英文)において、マルコム・アトキンソンらは、OODBMSを次のように定義しています。「オブジェクト指向データベースシステムは、2つの基準を満たす必要がある。DBMSであること。次にオブジェクト指向システムであること。すなわち可能な限り現在のオブジェクト指向プログラミング言語と密接に連携できるものである必要がある。最初の基準は、5つの機能に置き換えることができる。永続性、二次的なストレージ管理、並行性、復旧、アドホックなクエリ機能である。2番目は8つの機能に置き換えられる。複雑なオブジェクト、オブジェクトの同一性、カプセル化、型あるいはクラス、継承、実行時(late)バインディングを伴う無効化、拡張性と計算完全性である。」彼らのペーパーは、これらの機能を詳細に記述しています。

現在のところ、ODBMSの構成要件について幅広い合意はなく、またRDBMS(関係型DBMS)のSQLに相当するような標準クエリ言語は、ODBMSについては存在していません。標準的な Object Query Language (OQL) を策定しようという Object Data Management Group (ODMG)のような業界のイニシアティブは、2001年に断念されました。これとは別に、JSR 12の Java Data Objects (JDO)は、主流とはなりませんでしたが、データへのアクセスの標準化を試みました。ウィリアム・クックの最近の調査によると、Javaや .NET のようなプログラミング言語自体を使ってオブジェクトを問合せることで、別々のOOクエリ標準を作る傾向を示しています(ネイティブ・クエリについてはこちらを参照)。

ODBMSはもともとRDBMSを置換えると考えられていました。オブジェクト指向プログラミング言語に最もよく適合しているためです。しかし、切替えのコストが高く、またRDBMSの側でオブジェクト指向的機能を導入したORDBMSが開発されたこと、オブジェクト-リレーショナル・マッパー(ORMs)が登場したことなどにより、RDBMSはサーバ側の永続性のセンターとしての独占的地位の防衛に成功しました。

今日では、オブジェクト データベースは、リレーショナル・ データベースに置換わるのではなく補完的なものとして認知されています。その主な適用分野も、デバイスの中の組込みシステムの永続化ソリューション、特注システム、あるいはパッケージに組込まれたソフトウェア、リアルタイム制御システム、ウェブサイトなどに広がっています。オープンソース・コミュニティは、ODBMSへの新しい関心を呼び覚ましており、それが急速な導入の増加に結びついているのです。