
オブジェクトデータベースまたはオブジェクト指向データベースは、オブジェクト指向プログラミングで使用されるオブジェクトの形式で情報を表すデータベース管理システム です。オブジェクトデータベースは、テーブル指向のリレーショナルデータベースとは異なります。3番目のタイプであるオブジェクトリレーショナルデータベースは、両方のアプローチを組み合わせたものです。オブジェクトデータベースは、1980年代初頭から検討されてきました。[2]
概要
オブジェクト指向データベース管理システム (OODBMS) は、ODBMS (オブジェクト データベース管理システム) とも呼ばれ、データベース機能とオブジェクト指向プログラミング言語機能を組み合わせたものです。OODBMS を使用すると、オブジェクト指向プログラマーは製品を開発し、それをオブジェクトとして保存し、既存のオブジェクトを複製または変更して OODBMS 内で新しいオブジェクトを作成できます。データベースはプログラミング言語と統合されているため、プログラマーは 1 つの環境内で一貫性を維持できます。つまり、OODBMS とプログラミング言語の両方が同じ表現モデルを使用します。対照的に、リレーショナル DBMS プロジェクトでは、データベース モデルとアプリケーションが明確に区別されています。
イントラネットやエクストラネットの導入によりウェブベースの技術の利用が増加するにつれ、企業は複雑なデータを表示するためにOODBMSに強い関心を持つようになりました。データをオブジェクトとして保存するように特別に設計されたDBMSを使用すると、マルチメディアプレゼンテーションに取り組んでいる企業やコンピュータ支援設計(CAD)を活用している組織にメリットがもたらされます。[3]
一部のオブジェクト指向データベースは、Delphi、Ruby、Python、JavaScript、Perl、Java、C#、Visual Basic .NET、C++、Objective-C、Smalltalkなどのオブジェクト指向プログラミング言語で適切に動作するように設計されており、 JADEなどの他のデータベースには独自のプログラミング言語があります。OODBMS は、オブジェクト指向プログラミング言語とまったく同じモデルを使用します。
歴史
オブジェクト データベース管理システムは、1970 年代前半から中頃にかけて、グラフ構造のオブジェクトに対するデータベース管理の本質的なサポートに関する研究から生まれました。「オブジェクト指向データベース システム」という用語は、1985 年頃に初めて登場しました。 [4]注目すべき研究プロジェクトには、Encore-Ob/Server (ブラウン大学)、EXODUS (ウィスコンシン大学マディソン校)、IRIS (ヒューレット パッカード)、ODE (ベル研究所)、ORION (マイクロエレクトロニクスおよびコンピュータ テクノロジー コーポレーションまたは MCC)、Vodak (GMD-IPSI)、Zeitgeist (テキサス インスツルメンツ) などがあります。ORION プロジェクトは、他のどの取り組みよりも多くの論文を発表しました。MCC の Won Kim は、それらの論文のベストを MIT プレスから出版した本にまとめました。[5]
初期の商用製品には、Gemstone(Servio Logic、GemStone Systemsに社名変更)、Gbase(Graphael)、およびVbase(Ontologic)などがありました。1980年代後半から1990年代半ばにかけて、追加の商用製品が市場に投入されました。これらには、ITASCA(Itasca Systems)、Jasmine(富士通、Computer Associatesが販売)、Matisse(Matisse Software)、Objectivity/DB(Objectivity, Inc.)、ObjectStore(Progress Software、eXcelon(元Object Design, Incorporated )から買収)、ONTOS(Ontos, Inc.、Ontologicから社名変更)、O 2 [6](O 2 Technology、いくつかの企業と合併し、Informixに買収され、InformixはさらにIBMに買収されました)、POET(現在はPoet Softwareを買収したVersantのFastObjects)、Versant Object Database(Versant Corporation)、VOSS(Logic Arts)、およびJADE(Jade Software Corporation)がありました。これらの製品の一部は現在も市場に出回っており、InterSystems Cachéなどの新しいオープンソース製品や商用製品も加わっています。
オブジェクト データベース管理システムは、オブジェクト プログラミング言語に永続性の概念を追加しました。初期の商用製品は、GemStone ( Smalltalk )、Gbase ( LISP )、Vbase ( COP )、VOSS ( Virtual Object Storage System for Smalltalk ) など、さまざまな言語と統合されていました。1990 年代の大半は、C++ が商用オブジェクト データベース管理市場を独占していました。ベンダーは1990 年代後半にJavaを追加し、最近ではC# を追加しました。
2004 年以降、オブジェクト データベースは第 2 次成長期を迎えました。この時期には、Versantのdb4o (db4objects)、Obsidian Dynamics の DTS/S1、Perst (McObject) など、Smalltalk、Java、C# などのOOP言語で完全に記述されているため、手頃な価格で簡単に使用できるオープン ソース オブジェクト データベースが登場し、オープン ソースと商用ライセンスの両方で利用できるようになりました。
タイムライン
- 1966
- 1979
- 1980
- TORNADO – CAD/CAM用オブジェクトデータベース[7]
- 1982
- Gemstone は、集合論モデル データベース マシンを構築するために (Servio Logic として) 設立されました。
- 1985年 – 用語オブジェクトデータベースが初めて導入されました
- 1986
- Servio Logic (Gemstone Systems) が Gemstone 1.0 をリリース
- 1988
- オブジェクトデザイン株式会社を設立し、 ObjectStoreの開発を開始
- Versant Corporation設立(Object Sciences Corp として)
- Objectivity, Inc.設立
- 1990年代初頭
- 1990年代半ば
- インターシステムズキャッシュ
- Versant オブジェクト データベース
- オダバ
- ゾッド
- 詩人
- ジェイド
- マティス
- イラストラインフォミックス
- 2000年代
- lambda-DB: ODMG ベースのオブジェクト指向 DBMS (Leonidas Fegaras、Chandrasekhar Srinivasan、Arvind Rajendran、David Maier 著)
- Carl Rosenberger が始めたdb4oプロジェクト
- オブジェクトDB
- 2001 IBMがInformixを買収
- 2003 odbpp公開リリース
- 2004 db4o が db4objects, Inc. として商業的に開始されました。
- 2008 db4o がVersant Corporationに買収される
- 2010 VMwareがGemStoneを買収[8]
- 2011 db4o の開発は停止しました。
- 2012 Wakanda オープンソースおよび商用ライセンスによる最初の製品版
- 2012 Actian がVersant Corporation を買収
- 2013年GemTalk SystemsがVMwareからGemstone製品を買収[9]
- 2014年、Actian(Versantを買収)はdb4oの商用提供を正式に中止した[10]
- 2014レルム[11]
- 2017 オブジェクトボックス[12]
オブジェクトデータベースの採用
永続プログラミングに基づくオブジェクトデータベースは、工学や空間データベース、電気通信、高エネルギー物理学[13]や分子生物学[14]などの科学分野などの応用分野でニッチな地位を獲得しました。
オブジェクト データベースの別のグループは、デバイス、パッケージ ソフトウェア、およびリアルタイムシステムでの組み込み使用に重点を置いています。
技術的特徴
ほとんどのオブジェクト データベースは、宣言型プログラミングアプローチを使用してオブジェクトを検索できる、何らかのクエリ言語も提供しています。製品間の最大の違いは、オブジェクト クエリ言語の領域、およびクエリとナビゲーション インターフェイスの統合にあります。ODMGは、オブジェクト クエリ言語(OQL) を使用して標準化を試みました。
ポインターをたどることで、検索なしでオブジェクトを直接取得できるため、データへのアクセスが高速になります。
製品間で異なるもう 1 つの領域は、データベースのスキーマの定義方法です。ただし、一般的な特徴としては、プログラミング言語とデータベース スキーマは同じ型定義を使用します。
データに関連付けられたクラス メソッドがデータの正しい解釈を担当するため、マルチメディア アプリケーションが容易になります。
多くのオブジェクト データベース (Gemstone や VOSS など) は、バージョン管理をサポートしています。オブジェクトは、そのすべてのバージョンのセットとして表示できます。また、オブジェクト バージョンは、それ自体がオブジェクトとして扱うこともできます。一部のオブジェクト データベースは、アクティブ データベースの基礎となるトリガーと制約の体系的なサポートも提供します。
このようなデータベースの効率は、1 つの項目について大量のデータを必要とする分野でも大幅に向上します。たとえば、銀行機関はユーザーの口座情報を取得し、取引、口座情報エントリなどの広範な情報を効率的に提供できます。
標準
Object Data Management Group は、 オブジェクト データベースおよびオブジェクト リレーショナル マッピングのベンダー、学術コミュニティのメンバー、および関係者のコンソーシアムでした。その目標は、データベース管理システムにオブジェクトを格納するポータブル アプリケーションを可能にする一連の仕様を作成することでした。仕様のいくつかのバージョンが公開されました。最後のリリースは ODMG 3.0 です。2001 年までに、主要なオブジェクト データベースおよびオブジェクト リレーショナル マッピングのベンダーのほとんどが、ODMG Java 言語バインディングに準拠していると主張しました。仕様の他のコンポーネントへの準拠はまちまちでした。2001 年に、ODMG Java 言語バインディングは、Java Data Objects仕様の基礎としてJava Community Processに提出されました。その後、ODMG のメンバー企業は、Java Data Objects 仕様に注力することを決定しました。その結果、ODMG は 2001 年に解散しました。
多くのオブジェクト データベースのアイデアもSQL:1999に吸収され、オブジェクト リレーショナル データベース製品にさまざまな程度で実装されています。
2005 年に Cook、Rai、および Rosenberger は、追加のオブジェクト指向クエリ API を導入するためのすべての標準化作業を中止し、代わりに Java や .NET などの OO プログラミング言語自体を使用してクエリを表現することを提案しました。その結果、ネイティブ クエリが登場しました。同様に、Microsoft は2005 年 9 月にLanguage Integrated Query (LINQ) と LINQ の実装である DLINQ を発表し、プログラミング言語 C# および VB.NET 9 で密接な言語統合データベース クエリ機能を提供しました。
2006 年 2 月、オブジェクト管理グループ(OMG) は、ODMG 3.0 仕様に基づいて新しい仕様を開発する権利を付与され、オブジェクト データベース テクノロジ ワーキング グループ (ODBT WG) が結成されたことを発表しました。ODBT WG は、オブジェクト データベース テクノロジ (レプリケーションなど)、データ管理 (空間インデックスなど)、およびデータ形式 (XML など) の進歩を取り入れた一連の標準を作成し、オブジェクト データベースが採用されているドメイン (リアルタイム システムなど) をサポートする新機能をこれらの標準に組み込むことを計画していました。ODBT WG の作業は、2008 年後半の経済混乱を受けて、この取り組みに関与していた ODB ベンダーがリソースを他の分野に集中させることを決定したため、2009 年 3 月に中断されました。
2007 年 1 月、World Wide Web Consortium はXQuery言語に最終勧告ステータスを与えました。XQuery はデータ モデルとしてXML を使用します。オブジェクト データベース用に開発されたアイデアの一部は XQuery に取り入れられていますが、XQuery は本質的にオブジェクト指向ではありません。XML が普及したため、リレーショナル データベースでは保持しきれないほど複雑または可変のデータを格納する手段として、XQuery エンジンはオブジェクト データベースと競合しています。XQuery では、オブジェクト指向システムによって提供されているカプセル化機能を提供するモジュールも作成できます。
XQuery v1およびXPath v2以降は強力で、オープンソースおよび自由 (FOSS) ソフトウェア[15] [16] [17]と商用システムの両方で使用できます。これらは習得と使用が簡単で、非常に強力で高速です。これらはリレーショナルではなく、XQuery は SQL に基づいていません (ただし、XQuery を設計した人の 1 人は SQL の共同発明者でもあります)。ただし、プログラミングの意味では、これらはオブジェクト指向でもありません。XQuery は、カプセル化による非表示、暗黙的なディスパッチ、クラスとメソッドを使用しません。XQuery データベースは、通常、XML と JSON を交換形式として使用しますが、他の形式も使用されます。
2000 年代初頭から、JSON はコミュニティに採用され、開発者がデータ形式を制御するアプリケーションで人気を博してきました。JSON用の XQuery のクエリ類似物であるJSONiq (XQuery のコア式と操作を共有) は、データ指向情報に対する JSON 形式と XML 形式の機能的同等性を実証しました。このコンテキストでは、OODBMS メンテナーの主な戦略は、JSON をデータベースに後付けすること (内部データ型として使用) でした。
2016年1月にPostgreSQL 9.5がリリースされ[18] 、すべての基本的なリレーショナルおよび非リレーショナル操作のための完全な関数と操作のセットを備えた効率的なJSON内部データ型(JSONB)を提供する最初のFOSS OODBMSとなりました。
RDBMSとの比較
オブジェクトデータベースは、リレーショナルな行や列にマッピングすることなく、複雑なデータとデータ間の関係を直接保存するため、非常に複雑なデータを扱うアプリケーションに適しています。[19]オブジェクトは多対多の関係を持ち、ポインタを使用してアクセスされます。ポインタはオブジェクトにリンクされ、関係を確立します。OODBMSのもう1つの利点は、システム全体に影響を与えることなく、小さな手順の違いでプログラムできることです。[20]
参照
- オブジェクトデータベース管理システムの比較
- コンポーネント指向データベース
- EDAデータベース
- エンタープライズ オブジェクト フレームワーク
- ノーSQL
- オブジェクトデータ管理グループ
- オブジェクトリレーショナルデータベース
- 持続性(コンピュータサイエンス)
- リレーショナルモデル
- リレーショナル データベース管理システム(RDbMS)
参考文献
- ^ データ統合用語集、Wayback Machineで 2009 年 3 月 20 日にアーカイブ、米国運輸省、2001 年 8 月。
- ^ ODBMS.ORG :: オブジェクト データベース (ODBMS) | オブジェクト指向データベース (OODBMS) | 無料リソース ポータル。ODBMS (2013-08-31)。2013-09-18 に取得。2014 年 3 月 6 日にWayback Machineにアーカイブされました。
- ^ JA オブライエンおよびマラカス GM (2009)。経営情報システム (第 9 版)。ニューヨーク州ニューヨーク州: マグロウヒル/アーウィン
- ^ 1985 年にこの用語が使用されている参考文献の例を 3 つ挙げます。T. Atwood、「An Object-Oriented DBMS for Design Support Applications」、Proceedings of the IEEE COMPINT 85、pp. 299-307、1985 年 9 月。N. Derrett、W. Kent、および P. Lyngbaek、「Some Aspects of Operations in an Object-Oriented Database」、Database Engineering、vol. 8、no. 4、IEEE Computer Society、1985 年 12 月。D. Maier、A. Otis、および A. Purdy、「Object-Oriented Database Development at Servio Logic」、Database Engineering、vol. 18、no.4、1985 年 12 月。
- ^ キム・ウォン『オブジェクト指向データベース入門』MIT出版、1990 年。ISBN 0-262-11124-1
- ^ Bancilhon, Francois; Delobel, Claude; Kanellakis, Paris.オブジェクト指向データベースシステムの構築: O 2の物語。Morgan Kaufmann Publishers、1992 年。ISBN 1-55860-169-4。
- ^ Ulfsby; et al. (1981年7月). 「TORNADO: CAD/CAMシステム用DBMS」. Computer-Aided Design . 13 (4): 193–197. doi :10.1016/0010-4485(81)90140-8.
- ^ 「SpringSource、Gemstone Systems Data Management Technology を買収」。WMware。2010 年 5 月 6 日。2014 年 8 月 8 日時点のオリジナルよりアーカイブ。2014年8 月 5 日閲覧。
- ^ GemTalk Systems (2013 年 5 月 2 日)。「GemTalk Systems が VMware から GemStone/S 製品を買収」。PRWeb。2014 年 8 月 10 日時点のオリジナルよりアーカイブ。2014年8 月 5 日閲覧。
- ^ 「Versant コミュニティ ウェブサイトの再構築」。
- ^ 「Realm が Node.js 用のオブジェクト データベースをリリース」。InfoQ。2017年 2 月 2 日時点のオリジナルよりアーカイブ。
- ^ DB-Engines. 「DB-Engines におけるオブジェクト データベースのランキング」。DB -Engines 。2021 年 5 月 21 日閲覧。
- ^ 「スタンフォード線形加速器 (SLAC)」.
- ^ Herde, Patrick; Sibbald, Peter R. (1992). 「オブジェクト指向データベースとプログラミングを使用した分子生物学データ コレクションの統合」。オブジェクト指向プログラミング システム、言語、およびアプリケーションに関する議事録の補遺 (補遺) - OOPSLA '92 。pp . 177–178。doi :10.1145/ 157709.157747。ISBN 0897916107. S2CID 45269462。
- ^ 「BaseX XQuery プロセッサ」。basex.org。2023年12月16日時点のオリジナルよりアーカイブ。
- ^ 「eXist-db の XQuery」。exist-db.org。2023 年 12 月 2 日時点のオリジナルよりアーカイブ。
- ^ 「Saxon - XQuery の使用」www.saxonica.com。2020 年 9 月 23 日時点のオリジナルよりアーカイブ。
- ^ 「PostgreSQL: ドキュメント: 10: 9.15. JSON 関数と演算子」。www.postgresql.org。2016年 5 月 18 日時点のオリジナルよりアーカイブ。
- ^ ラディング、アラン (1995)。「ODBMS とはいったい何なのか?」Computerworld 29 (45): 121–122, 129 。
- ^ Burleson, Donald. (1994). OODBMS が MIS の地位を獲得しているが、RDBMS は依然として優位に立っている。ソフトウェア マガジン、14(11)、63
外部リンク
- オブジェクト DBMS リソース ポータル
- オブジェクト指向 DBMS のランキング - 人気順、DB-Enginesから毎月更新
