Object Data Management Group

**Object Data Management Group** (オブジェクトデータマネージメントグループ、**ODMG**) は、1991年夏にオブジェクトデータベース (オブジェクトデータベース管理システム、ODBMS) の開発企業の人々が会した朝食で、サン・マイクロシステムズのリック・キャッテルが提案し主導して設立された、標準化団体である。

## 目的
ODMGの第一の目的は、ソフトウェア開発者に、オブジェクトデータベース製品およびオブジェクトリレーショナルマッピング製品を使う、移植性のあるアプリケーションソフトウェアを記述するために必要な仕様の集まりを提供することであった。

この目的のために、データスキーマ、プログラミング言語バインディング、データベースのデータの操作と照会を行う言語 (データベース言語、問い合わせ言語(QL)) に移植性をもたせる必要があった。

## 歴史
ODMGのもともとの団体名称は **Object Database Management Group** であった。
後にODMGは、その任務をオブジェクトデータベースの製品とオブジェクトリレーショナルマッピングの製品の双方の仕様群を作ることに拡大したことを反映して、団体の名称を **Object Data Management Group** に変更した。

1993年から2001年の期間に、ODMGは、ODMG仕様の策定を行った。
ODMGの仕様は、改訂を重ね5つの版が公開された。
ODMGの最新バージョンはバージョン3.0である。
ODMGは、2001年に ODMG 3.0 を公開した後に、解散した。

## ODMG 3.0 仕様の構成

ODMG 3.0 は次の内容から構成される。
# 概要
# オブジェクトモデル: OMG (Object Management Group) オブジェクトモデルに基づく
#: OMGコアオブジェクトモデルはオブジェクトリクエストブローカ (ORB, Object Request Broker) 、オブジェクトデータベースシステムおよびオブジェクト指向プログラミング言語などに共通する特性群を定義するために設計された。ODMGは、OMGコアオブジェクトモデルにいくつかの構成要素を追加することにより、プロファイルを設計した。
# オブジェクト仕様言語
#* オブジェクト定義言語 (ODL; Object Definition Language)
#*: OMDGオブジェクトモデルに適合するオブジェクトの型を定義するための言語。
#* オブジェクト交換フォーマット (OIF; Object Interchange Format)
#*: データベースの現在の状態を、一つまたは複数のファイルへのダンプおよびそれらのファイルからのロードを行うためのフォーマットである。
# オブジェクト問い合わせ言語 (OQL; Object Query Language)
#: ODMG OQL は、データベースに対する問い合わせと更新を行うための宣言型の問い合わせ言語 (データベース言語) である。OQLは、宣言型言語であり、手続き型言語ではない。OQLは、関係データベース (リレーショナルデータベース) の問い合わせ言語 (データベース言語) SQL をもとにしている。OQLは、オブジェクト指向に基づいた強力な活用を支援する。
# C++バインディング
#: オブジェクト指向プログラミング言語C++の ODMG ODL および　C++オブジェクト操作言語 (OML, Object Manipulation Language) の言語バインディングを定義する。C++ ODL は、ODMGオブジェクトモデルで定義されている概念を実装するクラスと関数の集まりを提供するライブラリとして、表現される。C++ OML の構文と意味論は、標準クラスライブラリの文脈における標準C++の構文と意味論である。C++バインディングはまた、OQLを呼び出すための機構も提供する。
# Smalltalkバインディング
#: ODMG ODL とオブジェクト指向プログラミング言語Smalltalkとの対応づけを定義する。OMGインタフェース定義言語 (OMG IDL) のための OMG Smalltalkバインディングに基づいている。Smalltalkバインディングはまた、OQLを呼び出すための機構も提供する。
# Javaバインディング
#: OMG ODL とオブジェクト指向プログラミング言語Javaとの対応づけを定義する。Javaバインディングはまた、OQLを呼び出すための機構も提供する。
# 補遺
#* OMGオブジェクトモデルとの比較

## 現状

ODMG 3.0 の仕様は、2000年に書籍という形で公開された。
2001年までに、オブジェクトデータベース (オブジェクトデータベース管理システム、ODBMS) 製品の開発企業とオブジェクトリレーショナルマッピング製品の開発企業は、ODMG Java言語バインディングに対応する作業をすることを主張した。
Java言語バインディングは、ODMG仕様の他の構成要素と適合するようにODMG仕様に含められた。
2001年に、ODMG Java言語バインディングは、Javaの仕様の標準化プロジェクトである Java Community Process (JCP) に、Java Data Objects (JDO) 仕様の基礎として位置づけられた。
ODMGに参加している企業は、自分たちの経営資源を Java Data Objects (JDO) 仕様の策定に集中することを決めた。
その結果2001年に、ODMGは、解散した。

2004年に、Object Management Group (OMG) は、ODMG仕様の著作権をもつ Morgan Kaufmann Publishers によって、OMG仕様として ODMG 3.0 の仕様を改定する権利を取得した。
2006年2月に、OMGは、Object Database Technology Working Group (ODBT WG, オブジェクトデータベース技術作業グループ) という作業グループを立ち上げたことを、公表した。
OMGは、オブジェクトデータベースの第4世代標準についての作業を進めることを計画している。

## ODMG に準拠したデータベース管理システム (DBMS)

* Orient ODBMS - http://www.OrienTechnologies.com
* Objectivity/DB - C++、JavaおよびSmalltalkに対応している

## 脚注



## 参考文献

* R. G. G. Cattell, Douglas K. Barry, Mark Berler, Jeff Eastman, David Jordan, Craig Russell, Olaf Schadow, Torsten Stanienda, and Fernando Velez, *The Object Data Standard: ODMG 3.0*, Morgan Kaufmann Pub, 2000 ISBN 1-55860-647-5
* Douglas K. Barry and Joshua Duhl, *Object Storage Fact Books: [[オブジェクトデータベース|Object DBMSs]] and [[オブジェクトリレーショナルマッピング|Object-Relational Mapping]]*, Barry & Associates, Inc., 2001. オブジェクトデータベース製品とオブジェクトリレーショナルマッピング製品の双方のODMGへの準拠について報告したページ (2001年)

## 文献案内

* リック・キャッテル、河込和宏 (訳) 、野口喜洋 (訳) 、山田広佳 (訳) 、田中立二 (訳) 、原潔 (訳) 『オブジェクト・データベース標準 ODMG-93 Release1.1』 共立出版、1995年 ISBN 4-320-02745-0

## 外部リンク

* ODMG ウェブサイト: http://www.odmg.org/