(57)【要約】【課題】  エンティティオブジェクトの同一性が保障でき、また、エンティティオブジェクトを集合的に取り扱うことができ、さらに、処理性能が向上するデータベースシステムおよびデータベースシステムにおけるオブジェクト管理方法を提供する。【解決手段】  エンティティ１１１，１１２，１２１，１２２がデータベースサーバ１００上に格納されていることを前提にして、エンティティ１１１，１１２，１２１，１２２に対するエンティティオブジェクト１３１，１３２，１４１のライフサイクル管理をデータベースサーバ１００にゆだねることで、そのエンティティとしての原子性を確保するとともに、エンティティオブジェクトの利便性と処理性能の向上を可能にするものである。【選択図】  図１
2005100104.tif 000002
【特許請求の範囲】
【請求項１】
エンティティと、前記エンティティに対応して生成されるエンティティオブジェクトと、を含むデータベースサーバを有し、
前記データベースサーバは、前記エンティティオブジェクトのライフサイクル管理を行う機能を持つことを特徴とするデータベースシステム。
【請求項２】
請求項１記載のデータベースシステムにおいて、
前記エンティティが複数の場合、前記エンティティオブジェクトは同じ属性を持つ一連のエンティティ群に対応していることを特徴とするデータベースシステム。
【請求項３】
エンティティが格納されているデータベースサーバにおいて、前記エンティティに対応してエンティティオブジェクトを生成し、前記エンティティオブジェクトのライフサイクル管理を行うことを特徴とするデータベースシステムにおけるオブジェクト管理方法。
【請求項４】
請求項３記載のデータベースシステムにおけるオブジェクト管理方法において、
前記エンティティが複数の場合、前記エンティティオブジェクトは同じ属性を持つ一連のエンティティ群に対応して生成され、
前記ライフサイクル管理は、前記エンティティオブジェクトを介して前記エンティティ群に対して同時に処理を行うことを特徴とするデータベースシステムにおけるオブジェクト管理方法。
【請求項５】
請求項４記載のデータベースシステムにおけるオブジェクト管理方法において、
前記エンティティ群に対して同時に行う処理は、前記エンティティ群に含まれる前記エンティティに対応する他の前記エンティティオブジェクトにも反映され同期が取られることを特徴とするデータベースシステムにおけるオブジェクト管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステムおよびデータベースシステムにおけるオブジェクト管理方法に関し、特にオブジェクトのライフサイクル管理技術に適用して有効な技術に関するものである。
【背景技術】
【０００２】
本発明者が検討した技術として、例えば、データベースシステムにおけるオブジェクト管理については、ＣＯＲＢＡ（登録商標；Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）ライフサイクルサービス（ＣＯＲＢＡによるオブジェクトライフサイクル管理の仕様）、エンタープライズＪａｖａ（登録商標）ビーンズ（Ｊａｖａ（登録商標）によるサーバ上のオブジェクトを扱うための体系）などが挙げられる。
【０００３】
現在公開されている上記のようなエンティティオブジェクトサービスは、エンティティが格納（保存）されている場所に関係なく、そのエンティティとは独立にエンティティオブジェクトを生成し、各処理において利用するものである。業務処理システムにおいては、これらのエンティティは、データベースに格納された各テーブルの、各レコードに対応付けられることが一般的である。このような状況では、データベース上のエンティティとそれに基づいて作成されたエンティティオブジェクトとの間で、同期を常にとっておく必要がある。通常、この同期処理は、データベースコネクションを通じて行うために、性能が極端に悪いことが問題となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、前記のようなエンティティオブジェクトサービスの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００５】
例えば、上記の方法では、エンティティオブジェクトへの参照・更新処理が、通常のデータベースコネクションを介したＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）などの問合せ言語による処理に変換されるため、その処理がオーバヘッドとなっている。
【０００６】
また、エンティティオブジェクトを集合的に取り扱うことができないため、エンティティ（レコード）を集合的に扱う通常のデータベース処理を利用することができず、極端にパフォーマンスを低下させてしまう。例えば、同じ属性を持つエンティティオブジェクト（例えば、管理職である従業員）を、そのエンティティオブジェクト群を使って、一度に更新する（例えば、その従業員の職務手当てを変更する）ようなことができない。
【０００７】
また、エンティティオブジェクトと、その集まりとしてのエンティティオブジェクト群を別個かつ同時に生成した場合において、エンティティオブジェクト間の同期について考慮されていないため、一方のエンティティオブジェクトでの変更がデータベースに反映されても、他方のエンティティオブジェクトに反映されることが保障できない。
【０００８】
そこで、本発明の目的は、エンティティオブジェクトの同一性が保障でき、また、エンティティオブジェクトを集合的に取り扱うことができ、さらに、処理性能が向上するデータベースシステムおよびデータベースシステムにおけるオブジェクト管理方法を提供するものである。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
すなわち、本発明によるデータベースシステムおよびデータベースシステムにおけるオブジェクト管理方法は、エンティティがデータベースサーバ上に格納されていることを前提にして、エンティティに対するエンティティオブジェクトのライフサイクル管理をデータベースサーバにゆだねることで、そのエンティティとしての原子性を確保するとともに、エンティティオブジェクトの利便性と処理性能の向上を可能にするものである。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１３】
（１）データベースサーバ上で管理されるデータテーブル内に保存されるエンティティを、データベースサーバ上のエンティティオブジェクトを介して、クライアントプログラムから利用可能とすることで、エンティティとエンティティオブジェクトの同一性を保証することができる。
【００１４】
（２）複数のクライアントから利用されるエンティティオブジェクトを、トランザクションのレベルで分離することが可能となり、クライアントの利用モデルと、エンティティオブジェクトの生成モデルが同一となり、利用方法に無理のない環境が提供できる。
【００１５】
（３）エンティティオブジェクトへの参照・更新は、直接データベースサーバ上のエンティティを扱うことができ、変換が行われない分、高速な操作が行える。
【００１６】
（４）エンティティの集合に対応するオブジェクトも、データベース上では同じエンティティを扱うものとして管理できるので、エンティティオブジェクトの同一性（原子性）が保障でき、集合を対象にした処理も簡単に扱うことができ、処理性能の向上が図れる。
【００１７】
（５）データベースサーバ上に格納されたエンティティオブジェクトを、クライアントプログラムから自由に取り出して処理に利用することができる。
【００１８】
（６）データベースサーバ上のエンティティオブジェクトは、トランザクション上での独立性が保障されているため、クライアントはトランザクション間でのオブジェクト管理から開放され、純粋にエンティティオブジェクトを業務ロジックオブジェクトの中で利用することができる。
【００１９】
（７）エンティティオブジェクトのライフサイクルは、データベースサーバ上のエンティティと完全に同期しているため、同期やライフサイクル管理からも開放されることになる。結果として、各クライアントは、エンティティオブジェクトの生成と動作から、完全に独立なものとして実現することができ、業務アプリケーションシステムの拡張性が飛躍的に改善する。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２１】
図１は本発明の一実施の形態のデータベースシステムの構成を示す概略図である。
【００２２】
まず、図１により、本実施の形態のデータベースシステムの構成の一例を説明する。本実施の形態のデータベースシステムは、例えば、データベースサーバ１００とクライアントプログラム２００，３００などから構成されている。データベースサーバ１００はデータテーブル１１０，１２０、トランザクション１３０，１４０などから構成されている。データテーブル１１０はエンティティ１１１，１１２などから構成されている。データテーブル１２０はエンティティ１２１，１２２などから構成されている。トランザクション１３０はエンティティオブジェクト１３１，１３２などから構成されている。トランザクション１４０はエンティティオブジェクト１４１などから構成されている。クライアントプログラム２００，３００は、コネクション２１０，３１０、業務処理ロジック２２０，３２０などから構成されている。コネクション２１０は代理オブジェクト２１１，２１２などから構成されている。コネクション３１０は代理オブジェクト３１１などから構成されている。
【００２３】
また、エンティティオブジェクト１３１，１３２は、エンティティ１１１，１１２に対応して生成される。エンティティ１２１とエンティティ１２２は、同じ属性を持つ一連のエンティティ群であり、エンティティオブジェクト１４１は、エンティティ１２１，１２２に対応して生成される。
【００２４】
データベースサーバ１００は、エンティティオブジェクト１３１，１３２，１４１のライフサイクル管理を行う。
【００２５】
次に、図１により、本実施の形態のデータベースシステムにおけるオブジェクト管理方法の一例を説明する。
【００２６】
データベースサーバ１００が稼動している時、その上にデータテーブル１１０，１２０が作成され、各データテーブルには、エンティティ１１１，１１２，１２１，１２２が格納されている。
【００２７】
クライアントプログラム２００は、データベースサーバ１００との接続を行い、トランザクション１３０を作成し、その上にエンティティオブジェクト１３１，１３２を生成する。エンティティオブジェクト１３１，１３２は、データベースサーバ１００によりライフサイクル管理がなされ、自動的にエンティティ１１１，１１２との関係が維持されている。
【００２８】
また、各エンティティオブジェクトは、トランザクションに対応して作成されている。仮に、同じエンティティに対するエンティティオブジェクトが、別のトランザクション上に作成されていても、それぞれ独立に制御される。つまり、一方のエンティティオブジェクトに加えられた処理操作は、そのトランザクションのコミット動作が終わるまで、他方のトランザクション上のエンティティオブジェクトからは、基本的に反映されていないものとして扱われる。これは、通常のデータベースの動作と同じものである。
【００２９】
一方、クライアントプログラム２００の上には、トランザクション１３０への接続を示すコネクション２１０が作成され、トランザクション１３０上のエンティティオブジェクト１３１，１３２に対応する代理オブジェクト２１１，２１２が作成される。
【００３０】
クライアントプログラム２００は、業務処理ロジック２２０にて行う処理に応じて、代理オブジェクト２１１，２１２を通して、データベースサーバ１００上のエンティティ１１１，１１２、つまりデータテーブル１１０内の各レコードを操作することができる。また、コネクション２１０に対して、コミットもしくはロールバックを行うことで、対応するトランザクション１３０の反映、破棄の操作をすることが可能である。つまり、クライアントプログラム２００は、データベースサーバ１００から取り出されたエンティティオブジェクト１３１，１３２を使って、トランザクション１３０に基づいたデータベース処理を行うことが可能となる。
【００３１】
これにより、データベースサーバと分離されたエンティティオブジェクトが、データベースへのアクセス手段ＳＱＬを使ってデータ操作を行う従来の方法に比べて、データベースサーバ１００上で直接、エンティティ１１１，１１２に操作（処理）を行うことにより、高速なデータ操作を行うことが可能となる。
【００３２】
次に、別のクライアントプログラム３００は、データベースサーバ１００上のエンティティオブジェクト１４１を別のトランザクション１４０のもとで作成し、そのコネクション３１０とともに代理オブジェクト３１１を作成している。エンティティオブジェクト１４１は、複数のエンティティ１２１，１２２に対応しており、同じ属性を持った一連のエンティティ１２１，１２２に対する集合エンティティ（エンティティ群）を示している。
【００３３】
クライアントプログラム３００は、業務処理ロジック３２０によって、代理オブジェクト３１１を使って、対応するエンティティ群に対して、同時に操作を加えることが可能である。これにより、複数のエンティティに対して、同時に処理を行うことができ、処理の高速化が可能となる。
【００３４】
また、データテーブル１２０に含まれるエンティティ１２２は、別のトランザクション１３０上にある別のエンティティオブジェクト１３２にも対応しており、エンティティオブジェクト１４１を通して行った操作は、トランザクション１４０のコミット動作によって、エンティティオブジェクト１３２にも反映され、同期が取られることとなる。
【００３５】
この同期は、もし仮に、同一のトランザクション上に、各エンティティオブジェクトが作成されている場合には、操作が行われた時点で同期することができる。つまり、エンティティ・エンティティオブジェクト間、エンティティオブジェクト・エンティティオブジェクト間の同期管理がデータベースサーバ１００上で行われ、アプリケーションシステムの構築が柔軟かつ拡張性の高いものとなる。
【００３６】
さらに、単一エンティティに対するエンティティオブジェクトと、集合エンティティに対するエンティティオブジェクトとを同一視して扱えることから、業務アプリケーション上でのオブジェクトの構成モデルが柔軟になり、より拡張性の高いオブジェクト構造を持ったシステム開発が可能となる。
【００３７】
したがって、本実施の形態のデータベースシステムおよびデータベースシステムにおけるオブジェクト管理方法によれば、データベースサーバ上で管理されるデータテーブル内に保存されるエンティティを、データベースサーバ上のエンティティオブジェクトを介して、クライアントプログラムから利用可能とすることで、エンティティとエンティティオブジェクトの同一性を保証することができる。また、複数のクライアントから利用されるエンティティオブジェクトを、トランザクションのレベルで分離することも可能になり、クライアントの利用モデルと、エンティティオブジェクトの生成モデルも同一になり、利用方法に無理のない環境が提供できる。また、エンティティオブジェクトへの参照・更新は、直接データベース上のエンティティを扱うことができ、変換が行われない分、高速な操作が行える。また、エンティティの集合であるオブジェクトも、データベース上では同じエンティティを扱うものとして管理できるので、エンティティオブジェクトの同一性（原子性）が保障でき、集合を対象にした処理も簡単に扱うことができ、処理性能の向上が図れる。
【００３８】
また、本実施の形態を適用した製品は、データベースサーバ上に格納されたエンティティオブジェクトを、クライアントプログラムから自由に取り出して処理に利用することができる。データベースサーバ上のエンティティオブジェクトは、トランザクション上での独立性が保障されているため、クライアントはトランザクション間でのオブジェクト管理から開放され、純粋にエンティティオブジェクトを業務ロジックオブジェクトの中で利用することができる。また、エンティティオブジェクトのライフサイクルは、データベース上のエンティティと完全に同期しているため、同期やライフサイクル管理からも開放されることになる。結果として、各クライアントは、エンティティオブジェクトの生成と動作から、完全に独立なものとして実現することができ、業務アプリケーションシステムの拡張性が飛躍的に改善する。
【００３９】
以上のように、データベースサーバ自体がエンティティオブジェクトを直接扱うことができるようにすることで、本発明の効果を発揮させることができる。また、エンティティを業務システムから直接扱えるオブジェクトとして利用できることから、従来技術の問題を効率的に克服できる。
【００４０】
本実施の形態の変形例または応用例としては、取り出されたエンティティオブジェクトを、実際、どのハードウェア、どのソフトウェアプロセス上で実行するか、また、クライアントプログラムも、実際、どのハードウェア、どのソフトウェアプロセスの上で実行するかによって、様々な形態が考えられる。また、ハードウェア、ソフトウェアプロセスも、単独の場合から複数になる場合がある。
【００４１】
例えば、データテーブルの管理と、取り出されたエンティティオブジェクトが同一ハードウェア上の単一もしくは複数のソフトウェアプロセスによって実現されるデータベースマネージャシステムがある。
【００４２】
また、データテーブルの管理と、取り出されたエンティティオブジェクトが別のハードウェア上の単一もしくは複数のソフトウェアプロセスによって実現されるデータベースマネージャシステムがある。
【００４３】
また、エンティティオブジェクトに対する代理オブジェクトを排し、業務処理ロジック（オブジェクト）から直接エンティティオブジェクトを操作可能にし、同一ハードウェア上の単一もしくは複数のソフトウェアプロセスによって実現されるデータベースマネージャシステムがある。
【００４４】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００４５】
例えば、前記実施の形態においては、データベースサーバについて説明したが、これに限定されるものではなく、アプリケーションサーバ（ＷＥＢサーバ、ＥＪＢサーバ、メッセージバスシステムなど）、データベースを使った業務処理システム（生産管理システム、電子コマースシステム、電子決済システム、ＥＲＰシステム、ＭＲＰシステム、ＳＣＭシステムなど）などについても適用可能である。アプリケーションサーバについては、必要とされた処理オブジェクトにおいて、データベース上のエンティティが扱いやすくなることから、データベースとの連動が行いやすくなり、拡張性のあるシステムを構築することが可能になる。また、データベースを使った業務処理システムについては、本発明によりシステム構築上、運用上での拡張性を飛躍的に向上することができる。
【産業上の利用可能性】
【００４６】
本発明は、データベースサーバ、アプリケーションサーバ（ＷＥＢサーバ、ＥＪＢサーバ、メッセージバスシステムなど）、データベースを使った業務処理システム（生産管理システム、電子コマースシステム、電子決済システム、ＥＲＰシステム、ＭＲＰシステム、ＳＣＭシステムなど）などに適用することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施の形態であるデータベースシステムの構成を示す概略図である。
【符号の説明】
【００４８】
１００  データベースサーバ
１１０，１２０  データテーブル
１１１，１１２，１２１，１２２  エンティティ
１３０，１４０  トランザクション
１３１，１３２，１４１  エンティティオブジェクト
２００，３００  クライアントプログラム
２１０，３１０  コネクション
２１１，２１２，３１１  代理オブジェクト
２２０，３２０  業務処理ロジック
【図１】
2005100104.tif 000003