オブジェクト指向データベースとは
オブジェクト指向データベース(OODB:object-oriented database)とは、オブジェクト指向に合致したデータベースである。OODBは、次のような要請に応えるデータベースである。純粋にOODBとして開発したものもあるが、従来のRDBを拡張してOODB機能を取り込んだORDB(object-relational database:オブジェクト関係データベース)が多い。
- RDB(2次元表)の無駄の排除
例えば自動車のデータベースを作成するとき、乗用車ならば乗員数や内装など、トラックならば積載重量や荷台構造など、それぞれ特有の属性が必要になる。これを一つのRDBにすると、定義不要な属性が多くなり、Null要素が膨大になる。
メーカー、価格、最高速度など共通属性をスーパークラスで定義し、乗用車やトラックに個別の属性をサブクラスで定義して、スーパークラスの定義をサブクラスで継承させれば、このような無駄がなくなる。しかも新たに二輪車を加えるのも容易である。
- オブジェクト指向アプローチへの対応
オブジェクト指向では、データとそのアクセス方法(メソッド)を一体にしてカプセル化する方法をとる。また、RDBは基本的に数値データを計算処理することを前提としていたが、文書データや画像データも統一的に扱うニーズが増大してきた。それには、RDBの考え方を全面的に改訂する必要がある。
OODBには、純粋のOODBと、RDBにオブジェクト指向の機能を加えたオブジェクト関係データベースに分類されるが、ここでは双方をOODBという。
また、多くの製品はデータベース管理システムだけでなく、データの処理言語処理機能も含んでいる。ここでは、それらを含めてOODBという。
主要年表
1985年? VBase(ONTOS、OODB)
1986年 GemStone(最初の商用OODB?)
1987年? Itasca(MCC)
1987年? O2(INRIA)
1989年 Postgres(Stonebraker、オープンソースのOODB)
1993年 IBM DB2 UDB(DB2がOODBに)
1994年 dBASE5.0 for Windows(Borland)
1994年 NEC Percio(OODB)
1995年 日立 OODB(OODB)
1995年 Informix Universal Server
1997年 Oracle 8(RODB)
1997年 Jasmine(富士通、OODB)
1999年 SQL99(RODB仕様を取り込む)
1999年 HiRDB 5(日立、OODB)
2000年 Microsoft SQL Server 2000(OODB)
2001年 IBM、Infomixを買収
2001年 db4o(組込分野でのOODB)
2003年 Perst(組込分野でのOODB)
2007年 Apex(Salesforce、統合パッケージにOODB採用)
2008年 ABAP(SAP、統合パッケージにOODB採用)
2010年 VMware、GemStone Systemsを買収
1980年代前半:OODBの研究試作の時代
1970年代前半にModule-2やSmalltalkなどのオブジェクト指向言語が出現していたが、OODBはかなり遅れ、1980年代になっても研究・試作の段階だった。
- 1985年? VBase
オントロジック (Ontologic) 社のアトウッド (Tom Atwood) により開発。オントロジックはオントス(ONTOS)社に改名したので、VBaseもONTOSと呼ばれることが多い。当初は、専用言語 COP (C Object Processor)で作られ、後にC++に変更された。
- 1986年 GemStone
1982年にServio Logic社として設立され、1995年にGemStone Systemsと改称した。GemStoneはSmalltalkで記述されたOODBである。1982年にプロトタイプができ、1996年に発売された。これが最初の商品化されたOODBだという人もいる。
- 1987年? Itasca
MCC(Microelectronics and Computer Technology Corporation)は純粋のOODBを開発、特別の言語にとらわれないで使えるのが特徴だった。Itascaの名称で製品化したが、成果はあがらなかった。その後、Ibex社が買い取ったが、販売せず、特定のアプリケーションに組み込むだけだった。
- 1987年? O2
INRIA(Institut National de Recherche en Informatique et Automatique)により開発され、フランソワ・バンシヨン (Francois Bencilhon)が創立したO2 Technologyが普及した。その後Infomixに買収され、Infomixは2001年にIBMに買収された。
これらは、発表当時は話題になったが、商業的には普及せず自然消滅してしまった。
1980年代末~1990年代前半:商用OODBの一斉開花
多くの商用OODBが出現。これらは逐次バージョンアップし現在でも使われている。
この頃になると「OODB」という言葉や概念が通常のIT部門にも広がる。しかし、適用分野は限定されていた。
- 1987年 GemStone
Servio Logic社のデーヴィド・メイヤー(David Maier)が開発。Smalltalkをベースにしたのが特徴だった。その後改訂を重ね、現在でも有名なOODBである。
Servio Logicは後にGemStone Systems に社名を変更、2010年にVMwareに買収される。
- 1988年 ObjectStore
VBaseの開発者アトウッドはオブジェクトデザイン (Object Design)社を創立、そこで、C++をベースにしたObjectStoreを開発した。その後、同社はプログレスソフトウェア社の一部門になる。
- 1989年 Postgres
RDBのIngresを開発したストーンブレーカー(Michael Stonebraker)が開発したオープンソースのORDBである。ストーンブレーカーはPostgresを商業化するために、Illustra Information Technologies 社を創業(1997年、Informixに買収される)し、製品名をIllustraとした。
Postgres は、PostgreSQLとなり、オープンソースのORDBとして、広く使われている。開発チームに日本人の石井達夫が参加していたこともあり、日本では「ポスグレ」として親しまれている。
パソコン対象のデータベース
1980年代末から、ダウンサイジングが進み、パソコン上での開発を前提としたデータベースが出現する。上記のデータベースもこの動きに対応するようになった。
- 1990年 Objectivity/DB
オブジェクティビティ(Objectivity)社の創立者の一人であるアンドリュー・ウェイド (Andrew E Wade) が開発したORDBである。
- 1992年 Visual Basic 2.0
MicrosoftのVisual Basicは、開発用プログラミング言語として広く用いられている。1992年のVisual Basic 2.0からオブジェクト指向への対応がなされたが不完全なものであった。完全なオブジェクト指向になるのはVisual Basic .NET 2002からである。
- 1993年 IBM DB2 UDB
汎用コンピュータのリレーショナルデータベースでは、IBMのDB2は業界標準的な地位にあるが、1993年にUNIX/Windows上で稼働するDB2をDB2 UDB(DB2 Universal Database)を発表した。この版でDB2はOODB(RODB)に対応した。
- 1994年 dBASE 5.0 for Windows
dBASEは1982年にアシュトンテイト(Ashton-Tate)社が開発した。これがパソコン用の最初のデータベース管理システムだとされている。1994年のdBASE5.0 for Windowsでオブジェクト指向に対応したが、Visual Basic 2.0に対抗できなかった。dBASEは1991年にボーランド(Borland)社に売却され、さらにdBASE Inc. に売却された。なお、ボーランドはインプライズ(Inprise) に社名変更。
標準化の動き
多数のOODBが出現し、それぞれが独自の機能拡張をするようになった。相互互換性を高めるための標準化が必要になる。
- 1991年 ODMG設立
サン・マイクロシステムズSun Microsystems社(2010年にOracleに吸収合併)のリック・カテル (Rick Cattel) は、OODBの有力ベンダーに働きかけ、標準化団体ODMG(Object Data Management Group)を設立。1993年に、最初の標準仕様ODMG 1.0を発表する。
ODMGは、ANSI(American National Standards Institute)のDatabase Committee X3H2とともに、1990年代を通じて、SQLの拡張標準化の分野で活動した。
- 1995年 OODBMS宣言
マルコム・アトキンソン (Malcolm Phillip Atkinson)らが Object Database System Manifesto(オブジェクトデータベースシステム宣言)を発表。OODB·システムを定義し、OODBもつべき主な機能と特徴を説明した。
1990年代後半:主力メーカーの対応
1995年頃からインターネットが急速に普及し、ビジネスでの活用が進むに伴い、サーバのデータベースの機能向上、処理の高速化が求められ、OODBへの期待が高まった。
3強の動き
当時のIBMを除くデータベースメーカーは、Oracle、Infomix、Sybaseが3強であり、それぞれ競争力強化を図るためにOODBの対応を行った。
- 1994年 Sybase、PowerSoftを買収
- 1995年 Infomix、Illustraを買収
PowerSoftはPowerBuilderのメーカー、PowerBuilderは、各種データベースの相違を吸収してシステム開発を行う統合開発環境。 Illustraは、オブジェクト関係データベースPostgresのメーカー
- 1997年 Oracle 8
このバージョンからOODB機能を取り込む。1997年のOracle 8iではデータベースエンジンにJava仮想マシンを組み込むなどWWW対応も進む。
日本メーカーの対応
日本では、3大コンピュータメーカーの対応が早かった。
- 1994年 NEC Percio
- 1995年 日立 OODB
- 1997年 富士通 Jasmine(Computer Associatesとの共同開発)
日本では、この時期でも汎用コンピュータが広く利用されていたし、ダウンサイジングへの移行でも、汎用コンピュータと同じメーカーのサーバを採用することが多かった。そのため、国内ではこれらのOODBのシェアが高かった。しかし、海外への進出はほとんどなかった。
標準化の動き
- 1999年 SQL99
SQLが機能拡張され、RODBを取り込む標準になった。多くのSQL実装がこれに対応した。しかし、全面的に準拠しているとはいえず、また解釈の違いもあり、相互互換性は高くなかった。
- 2001年 ODMG 3.0
ODMGは、これまでの標準化作業の集大成としてODMG 3.0仕様を発表。これが最終版になりODMGは解散し、2006年に、OMG(Object Management Group) に引き継がれる。
2000年代:OODBの新しい動向
2005年代前半:組み込みOODB
スマートフォンや情報家電などに組み込まれるシステム(組込みソフトウェア)に、オープンソースのOODBが使われるようになった。小規模なWebシステムでも利用できる。これらは、Java、C#、NETにネイティブ、軽量、操作が容易という特徴がある。
- 2001年 db4o
2000年にローゼンバーガー(Carl Rosenberger)が開発。2001年に公開。2004年にdb4objects社を設立、商用化される。db4o事業は2008年にヴァーサント(Versant)社に買い取られる。
- 2003年 Perst
McObject社が開発した軽量のOODB。主にスマートフォンなどの組み込みシステムに用いられるが小規模なWebサービスにも利用される。
2000年代後半:大手ソフトウェアベンダのOODB採用
クラウドコンピューティングが普及してきた。そのユーザが容易にシステムをカスタマイズしたり、提供者が他のサービスとの連携を容易にする環境を提供するために、OODBを採用することが多くなってきた。
そのような例は多数あるが、いくつかを列挙する。
- 2007年 Salesforce、Apex
Salesforce社は、業務アプリケーションをWebで提供する本格的なクラウドコンピューティング・サービス企業。SFA(営業支援)やCRM(顧客管理)のSalesforceで有名。Apecはそれらのシステムを開発、カスタマイズするためのオブジェクト指向のプログラミング言語。データバースはリレーショナルデータベースだが独自技術によりオブジェクト関係データベースとして用いている。
- 2008年 SAP、ABAPオブジェクト
SAP社はMicrosoft、Oracleに次ぐ世界で第3位のソフトウェア企業。ERPパッケージのR/3が有名。
ABAP(Advanced Business Application Programming)は、R/3などのデータ加工やアドオン開発に用いられる高級言語。ABAPオブジェクトとは、ABAPにOODBを採用した製品。
SAPは以前からOODBの活用に関してIBMと共同研究を進めていた。
- 2010年 VMware、GemStone Systemsを買収
VMwareは仮想化用ソフトの大手開発・販売会社。GemStone Systemsは有名なOODBGemStoneの会社。VMwareが提供するクラウド環境アプリケーションのミドルウェアにGemStoneの技術を活用することにより、アプリケーションの相互連携を向上させる戦略だという。
参考URL