(57)【要約】【課題】ＲＤＢの構造が決定済みの制約である場合にも利用可能でオブジェクトモデルの利点を生かすことが可能なマッピング装置、マッピング方法およびプログラムを提供する。【解決手段】マッピング装置は、要素格納部１と、ＲＤＢ格納部２と、マッピング部３４とを具備する。要素格納部１は、オブジェクトモデルの複数の第１要素を格納する。ＲＤＢ格納部２は、リレーショナルデータベースの複数の第２要素を格納する。マッピング部３４は、リレーショナルデータベースの構造が決定済みの制約である場合、複数の第１要素から選択された第３要素に対して、複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別し、条件付きの対応関係を含むマッピングを生成する。【選択図】図１
2009223644.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトモデルの複数の第１要素を格納する要素格納部と、
リレーショナルデータベースの複数の第２要素を格納するＲＤＢ格納部と、
前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第１要素から選択された第３要素に対して、前記複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別し、前記条件付きの前記対応関係を含むマッピングを生成するマッピング部と
を具備する
マッピング装置。
【請求項２】
請求項１に記載のマッピング装置において、
前記マッピング部は、前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第２要素の中に前記第３要素に対して対応関係が成り立つものが無いとき、前記第３要素に対応付けた新たな要素を前記複数の第２要素に追加する
マッピング装置。
【請求項３】
オブジェクトモデルの複数の第１要素を格納する要素格納部と、
リレーショナルデータベースの複数の第２要素を格納するＲＤＢ格納部と、
前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第１要素から選択された第３要素に対して、前記複数の第２要素の中に対応関係が成り立つものが無いとき、前記第３要素に対応付けた新たな要素を前記複数の第２要素に追加してマッピングを生成するマッピング部と
を具備する
マッピング装置。
【請求項４】
請求項１乃至３のいずれか一項に記載のマッピング装置において、
前記複数の第１要素の各々は、クラス、限定子、関連、及び汎化のいずれか一つ又はいずれか一つのインスタンスを含み、
前記複数の第２要素の各々は、テーブル、前記テーブルの行、及びテーブルの列のいずれか一つ又はいずれか一つの値を含む
マッピング装置。
【請求項５】
オブジェクトモデルの複数の第１要素及びリレーショナルデータベースの複数の第２要素を参照するステップと、
前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第１要素から選択された第３要素に対して、前記複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別するステップと、
前記条件付きの前記対応関係を含むマッピングを生成するステップと
を具備する
マッピング方法。
【請求項６】
請求項５に記載のマッピング方法において、
前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第２要素の中に前記第３要素に対して対応関係が成り立つものが無いとき、前記第３要素に対応付けた新たな要素を前記複数の第２要素に追加するステップを更に具備する
マッピング方法。
【請求項７】
オブジェクトモデルの複数の第１要素及びリレーショナルデータベースの複数の第２要素を参照するステップと、
前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第１要素から選択された第３要素に対して、前記複数の第２要素の中に対応関係が成り立つものが無いとき、前記第３要素に対応付けた新たな要素を前記複数の第２要素に追加してマッピングを生成するステップと
を具備する
マッピング方法。
【請求項８】
マッピング部が、オブジェクトモデルの複数の第１要素を格納する要素格納部と、リレーショナルデータベースの複数の第２要素を格納するＲＤＢ格納部とを参照するステップと、
前記マッピング部が、前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第１要素から選択された第３要素に対して、前記複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別するステップと、
前記マッピング部が、前記条件付きの前記対応関係を含むマッピングを生成するステップと
を具備するマッピング方法をコンピュータに実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記マッピング部が、前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第２要素の中に前記第３要素に対して対応関係が成り立つものが無いとき、前記第３要素に対応付けた新たな要素を前記複数の第２要素に追加するステップを更に具備するマッピング方法をコンピュータに実行させるためのプログラム。
【請求項１０】
マッピング部が、オブジェクトモデルの複数の第１要素を格納する要素格納部と、リレーショナルデータベースの複数の第２要素を格納するＲＤＢ格納部とを参照するステップと、
前記マッピング部が、前記リレーショナルデータベースの構造が決定済みの制約である場合、前記複数の第１要素から選択された第３要素に対して、前記複数の第２要素の中に対応関係が成り立つものが無いとき、前記第３要素に対応付けた新たな要素を前記複数の第２要素に追加してマッピングを生成するステップと
を具備するマッピング方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マッピング装置、マッピング方法およびプログラムに関し、特にオブジェクトモデルとリレーショナルデータベースとの間でのマッピング装置、マッピング方法およびプログラムに関する。
【背景技術】
【０００２】
アプリケーションソフトウェアを、オブジェクト指向技術で開発する場合でも、オブジェクト指向データベースのデータ層にＯＤＢＭＳ（オブジェクトデータベース管理システム）を利用せずに、ＲＤＢＭＳ（リレーショナルデータベース管理システム）を利用することが多い。この場合、オブジェクトモデルをリレーショナルデータベース（ＲＤＢ）で保管するために、オブジェクトモデルの各要素とＲＤＢの各要素との間でのマッピング（以下、「ＯＲマッピング」と記す）が必要となる。ただし、オブジェクトモデルの各要素は、クラス（属性を含む）、関連（クラス間の関連）、汎化（クラスとその上位概念のクラスとの関係）に例示される。ＲＤＢの各要素は、各テーブルの項目（属性）に例示される。
【０００３】
オブジェクトモデルとＲＤＢとの間のマッピング方法には、２通りの方法がある。第１のマッピング方法は、オブジェクトモデルを主とし、オブジェクトモデルからＲＤＢを決定する方法である。第２のマッピング方法は、ＲＤＢを主とし、ＲＤＢのテーブル構造にあわせてオブジェクトモデルを決定する方法である。
【０００４】
第１のマッピング方法として、例えば、特開２０００−１４８５５５号公報にオブジェクトモデルとリレーショナルモデルとの間でのマッピング方法が開示されている。このマッピング方法では、オブジェクトモデルの１クラスがＲＤＢの１テーブルにマッピングされる。オブジェクトモデルの１つの関連はＲＤＢの１テーブルにマッピングされるか、クラスに対応するテーブルに埋め込まれるかしてマッピングされる。また、オブジェクトモデルのクラスや関連のインスタンスは、ＲＤＢのテーブルのレコードにマッピングされる。このマッピング方法では、１クラスを複数のテーブルにマッピングする。
【０００５】
また、特開２００７−２４９３４５号公報にマッピング装置、マッピング方法およびプログラムが開示されている。このマッピング方法では、要求される処理時間やオブジェクトの使われ方などに応じて、１つ以上のオブジェクトモデルの要素（クラス（属性を含む）、関連、汎化、インスタンス、リンクなど）に対応する、カプセル化が行われる１つのまとまり（ＲＤＢラッパー）をつくる。そして、ＲＤＢラッパーをオブジェクトモデルの要素のデータを保持できる任意の数のＲＤＢの要素（テーブル、列、行など）と対応させる。
【０００６】
また、特開２０００−１５５７０６号公報にオブジェクト指向とリレーショナルデータベースのマッピング方法、装置及びその記録媒体が開示されている。このマッピング方法では、データの登録、参照、更新及び抹消を、既知の手順に従って行うリレーショナルデータベースのアクセス方法において、リレーショナル・データベースに登録されているアクセスしようとするテーブルに関する、当該リレーショナル・データベースに含まれる管理情報を読み出し、該管理情報に基づいて、該アクセステーブル、及びそのアクセステーブルにマッピングされるクラスの間での対応を把握するようにした。
【０００７】
また、第１及び第２の両方に対応するマッピング方法として、特表２００１−５１８６７０号公報にオブジェクト指向ソフトウェアを有するリレーショナルデータベースを使用するための目的モデルマッピングおよびランタイムエンジンが開示されている。これは、リレーショナルデータベースを有するオブジェクト指向ソフトウェア応用をインターフェースする方法である。オブジェクトモデルを選択する工程と、データベース中のスキーマと選択されたオブジェクトモデルとの間に少なくともいくつかの関係のマップを発生する工程と、オブジェクト指向ソフトウェア応用に関連した１つのオブジェクトに対応する少なくとも１つのインターフェースオブジェクトを生成するためにマップを使用する工程と、リレーショナルデータベースからデータをアクセスするために、オブジェクト指向応用を有する前記少なくとも１つのインターフェースオブジェクトを使用する工程とを備える。
【０００８】
【特許文献１】特開２０００−１４８５５５号公報
【特許文献２】特開２００７−２４９３４５号公報
【特許文献３】特開２０００−１５５７０６号公報
【特許文献４】特表２００１−５１８６７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
第１のマッピング方法は、ＲＤＢの構造が決定済みの制約である場合には利用できないという問題がある。ＲＤＢの構造が決定済みとなる場合としては、既存システムへの追加・改造のため既存システムのＲＤＢ構造を変更できない場合、既存システム自体は破棄されるがＲＤＢ構造は運用上の理由で継続利用される場合、外部システムとの連携のため外部システムが要求するＲＤＢの構造を守らなければいけない場合などが考えられる。これらの状況は、教科書をはなれたシステム開発の現場では頻繁に発生する。これらの場合に対処できないということは、事実上オブジェクトモデルの利用機会が限られるか、オブジェクトモデルの作成が単なるコスト増になってしまうことを意味している。そのため、ＲＤＢの構造が決定済みの制約である場合にも利用可能なマッピング方法が求められる。
【００１０】
第２のマッピング方法は、オブジェクトモデルをＲＤＢからリバースで決定することと同義であり、オブジェクトモデルが利点として持つ、変更容易性、理解容易性、規模低減といったメリットをまったく享受できないという問題があった。このようなマッピングが採用される場合としては、既存のＲＤＢ構造は変更できないがオブジェクト指向開発が契約条件となっている場合や、オブジェクト指向開発技術を持たない開発者しかアサインできなかった場合などが考えられる。しかし、現在のシステム開発においては、オブジェクト指向開発のメリットを生かした変更容易、理解容易、規模小のシステムが求められている。そのため、ＲＤＢの構造が決定済みの制約である場合にもオブジェクトモデルの利点が生かせるマッピング方法が望まれる。
【００１１】
本発明の目的は、ＲＤＢの構造が決定済みの制約である場合にも利用可能でオブジェクトモデルの利点が生かせるマッピング装置、マッピング方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明のマッピング装置は、要素格納部と、ＲＤＢ格納部と、マッピング部とを具備する。要素格納部は、オブジェクトモデルの複数の第１要素を格納する。ＲＤＢ格納部は、リレーショナルデータベースの複数の第２要素を格納する。マッピング部は、リレーショナルデータベースの構造が決定済みの制約である場合、複数の第１要素から選択された第３要素に対して、複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別し、条件付きの対応関係を含むマッピングを生成する。
【００１３】
本発明のマッピング方法は、（１）〜（３）ステップを具備する。（１）ステップは、オブジェクトモデルの複数の第１要素及びリレーショナルデータベースの複数の第２要素を参照するステップである。（２）ステップは、リレーショナルデータベースの構造が決定済みの制約である場合、複数の第１要素から選択された第３要素に対して、複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別するステップである。（３）ステップは、条件付きの対応関係を含むマッピングを生成するステップである。
【００１４】
本発明のプログラムは、（１）〜（３）ステップを具備するマッピング方法をコンピュータに実行させる。（１）ステップは、マッピング部が、オブジェクトモデルの複数の第１要素を格納する要素格納部と、リレーショナルデータベースの複数の第２要素を格納するＲＤＢ格納部とを参照するステップである。（２）ステップは、マッピング部が、リレーショナルデータベースの構造が決定済みの制約である場合、複数の第１要素から選択された第３要素に対して、複数の第２要素のうちの第４要素との間に対応関係が成り立つ場合の条件を識別するステップである。（３）ステップは、マッピング部が、条件付きの対応関係を含むマッピングを生成するステップである。
【発明の効果】
【００１５】
本発明により、ＲＤＢの構造が決定済みの制約である場合にも利用可能でオブジェクトモデルの利点が生かせるマッピング装置、マッピング方法およびプログラムを提供できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明のマッピング装置、マッピング方法及びプログラムの実施の形態に関して、添付図面を参照して説明する。
【００１７】
まず、本発明の実施の形態に係るマッピング装置について説明する。
図１は、本実施の形態に係るマッピング装置の構成を示すブロック図である。図１は、各マッピング装置１００−１、１００−２、・・・が双方向通信可能なネットワークで互いに接続されている場合を示している。以下の説明において、各マッピング装置を区別しない場合、マッピング装置１００と記す。マッピング装置１００は、要素格納部１と、リレーショナルデータベース（ＲＤＢ）格納部２と、処理部３とを備えている。マッピング装置１００はコンピュータのような情報処理装置に例示され、処理部３はそのコンピュータ本体、要素格納部１及びＲＤＢ格納部２はその記憶装置にそれぞれ例示される。本実施の形態に係るマッピング装置１００は、特開２００７−２４９３４５号公報のマッピング装置の構成（及び動作）を含め、以下のような構成（及び動作）を備えている。
【００１８】
要素格納部１は、オブジェクトモデルの要素（以下、「要素」とも記す）を格納している。図１の例では、要素格納部１は、オブジェクトモデルの要素１０ａ〜１０ｃを格納している。ただし、要素は、クラス（属性を含む）、限定子、クラス間の関連（以下、「関連」と記す）、又は、汎化（クラスとその上位概念のクラスとの関係）に例示される。なお、関連及び汎化もクラスの一種とすれば、要素は、クラスとなる。また、オブジェクトモデルは、各要素のインスタンスも含む。
【００１９】
ＲＤＢ格納部２は、ＲＤＢを格納している。ＲＤＢは、項目とその項目に対応するレコードからなるテーブルや、そのテーブルの行（の値）や、そのテーブルの列（の値）のような、ＲＤＢの要素を含んでいる。図１の例では、ＲＤＢ格納部２は、ＲＤＢの要素２０ａ〜２０ｃを格納している。その項目は、（オブジェクトモデルの）要素を格納できる。その項目に対応するレコードは、その項目に格納された要素のデータ（インスタンス）を格納できる。
【００２０】
処理部３は、要素格納部１に格納されている各要素を、ＲＤＢ格納部２に格納されるテーブルの項目にマッピングする。処理部３は、メモリ３１と、受付部３２と、選択部３３と、マッピング部３４と、行追加・削除処理部３５とを含む。例えば、処理部３がメモリやＣＰＵや入出力部を有するコンピュータ本体である場合、処理部３はソフトウェア（プログラム）を実行することによって、メモリ３１と、受付部３２と、選択部３３と、マッピング部３４と、行追加・削除処理部３５とを実現する。
【００２１】
メモリ３１は、処理部３の作業メモリとして使用され、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に例示される。
【００２２】
受付部３２は、所与のオブジェクトモデルの要素を受け付ける。所与のオブジェクトモデルの要素は、要素格納部１に格納される。また、受付部３２は、所与のＲＤＢの要素を受け付ける。所与のＲＤＢの要素は、ＲＤＢ格納部２に格納される。
【００２３】
マッピング部３４は、ＲＤＢの構造が決定済みの制約である場合（例示：ＲＤＢのテーブルが予め与えられ、変更できない場合）でのオブジェクトモデルと既存のＲＤＢ構造とのマッピングを実行する。そのとき、ＲＤＢの構造が決定済みの制約である場合に、マッピングにおいて生ずる問題（後述）を解決手段（後述）により解決する。
【００２４】
すなわち、マッピング部３４は、メモリ３１に対応関係が格納されたオブジェクトモデルの要素毎に（ＲＤＢの要素を生成するのではなく）、解決手段１〜解決手段１３、解決手段１５、解決手段１６のように所与のＲＤＢの要素との対応付けを行い、その対応関係をメモリ３１に格納する。また、マッピング部３４は、メモリ３１に対応関係が格納されたオブジェクトモデルの要素毎に（ＲＤＢの要素を生成するのではなく）、解決手段１４のようにクラス識別子に対応するＲＤＢ要素を作成し、作成したＲＤＢ要素をＲＤＢ格納部２に格納し、クラスの汎化に関する対応関係をメモリ３１に格納する。
【００２５】
ここで、ＲＤＢの構造が決定済みの制約である場合でのオブジェクトモデルと既存のＲＤＢ構造とのマッピングの問題点について説明する。ＲＤＢの構造が決定済みの制約である場合のオブジェクトモデルと既存のＲＤＢ構造とのマッピングには、以下（ア）〜（エ）に挙げるようなオブジェクトモデルの要素（例示：クラス（属性を含む）、関連、汎化、インスタンス、リンク）と既存のＲＤＢの要素（例示：テーブル、行、列、リレーション）との対応関係が１：１ではないという問題がある。
【００２６】
（ア）ひとつのオブジェクトモデルの要素に複数のＲＤＢの要素が対応している。
１．１つのクラスが複数のテーブルに対応している。
２．１つの属性が（複数の）テーブルの複数の列に対応している。
３．１つの関連が複数のテーブルまたは（複数の）テーブルの複数の列に対応している。
４．１つの限定子が（複数の）テーブルの複数の列に対応している。
５．１つのインスタンスまたはリンクが複数の行に対応している。
【００２７】
（イ）複数のオブジェクトモデルの要素がひとつのＲＤＢの要素に対応している。
１．複数のクラスが１つのテーブルに対応している。
２．汎化の関係にある複数のクラスが１つのテーブルに対応している。
３．複数の属性が１つのテーブルの列に対応している。
４．複数の関連が１つのテーブルまたは１つのテーブルの列に対応している。
５．複数の限定子が１つのテーブルの列に対応している。
６．複数のインスタンスまたはリンクが１つの行に対応している。
【００２８】
（ウ）複数のオブジェクトモデルの要素が複数のＲＤＢの要素に対応している。
１．複数のクラスが複数のテーブルに対応している。
２．複数の属性が（複数の）テーブルの複数の列に対応している。
３．複数の関連が複数のテーブルまたは（複数の）テーブルの複数の列に対応している。
４．複数の限定子が（複数の）テーブルの複数の列に対応している。
５．複数のインスタンスまたはリンクが複数の行に対応している。
【００２９】
（エ）オブジェクトモデルの要素に対応するＲＤＢの要素がない。
１．クラスに対応するＲＤＢの要素がない。
２．汎化（汎化を扱うためのインスタンスが属するクラスの識別情報）に対応するＲＤＢの要素がない。
３．属性に対応するＲＤＢの要素がない。
４．関連に対応するＲＤＢの要素がない。
５．限定子に対応するＲＤＢの要素がない。
６．インスタンスまたはリンクに対応するＲＤＢの要素がない（上記の（エ）−１、（エ）−４と同じケース）。
【００３０】
本発明では、変更容易性と実行性能を同時に満たすために、特開２００７−２４９３４５号公報で記載されている、１つ以上のオブジェクトモデルの要素（例示：クラス（属性を含む）、関連、汎化、インスタンス、リンク）（１ａ、１ｂ、１ｃ…）に対応するカプセル化が行われる１つのまとまり（処理部３）を作成する構成を元にしている。そして、上記のマッピングの問題を解決するために、処理部３が以下の解決手段１〜１６を実行可能なように、処理部３の機能を拡張している。それにより、ＲＤＢの構造が決定済みの制約である場合（例示：ＲＤＢのテーブルが予め与えられ、変更できない場合）においても、オブジェクトモデルと既存のＲＤＢ構造とのマッピングを実現している。
（１）解決手段１：問題（ア）−１の解決手段
（マッピング時）
マッピング部３４は、クラスとテーブルが対応する条件を識別し、条件付の対応関係を作成する（例示：クラスの属性の値によって対応するテーブルが異なる）。
（実行時）
マッピング部３４は、マッピング時に用意した条件に従ってＲＤＢのＣＲＵＤ（Ｃｒｅａｔｅ  Ｒｅａｄ  Ｕｐｄａｔｅ  Ｄｅｌｅｔｅ）の処理を行う。
（２）解決手段２：問題（ア）−２、問題（ア）−４の解決手段
（マッピング時）
マッピング部３４は、属性または限定子と各々のテーブルの列と対応する条件を識別し、条件付の対応関係を作成する（例示：インスタンスが属するクラスの種類毎に対応するテーブルの列が異なる）。
１つの属性または限定子（の値）と複数のテーブルの列（の値）との間に計算によって成り立つ対応関係がある場合には、それらを対応させると共に、属性または限定子（の値）からテーブルの列（の値）を求める計算式と、テーブルの列（の値）から属性または限定子（の値）を求める計算式を用意する。
（実行時）
マッピング部３４は、マッピング時に用意した条件と計算式に従ってＲＤＢのＣＲＵＤの処理を行う。
（３）解決手段３：問題（ア）−３の解決手段
（マッピング時）
マッピング部３４は、関連と各々のテーブルまたはテーブルの列と対応する条件を識別し、条件付の対応関係を作成する（例示：リンクが属する関連の種類毎に対応するテーブルの列が異なる）。
１つの関連（リンク）と複数のテーブルの列（の値）との間に計算によって成り立つ対応関係がある場合には、それらを対応させると共に、関連（リンク）からテーブルの列（の値）を求める計算式と、テーブルの列（の値）から関連（リンク）を求める計算式を用意する。
（実行時）
マッピング部３４は、マッピング時に用意した条件と計算式に従ってＲＤＢのＣＲＵＤの処理を行う。
（４）解決手段４：問題（ア）−５の解決手段
マッピング部３４は、問題（ア）−１、問題（ア）−３、あるいは非正規化されたテーブル構造の問題として解決する。
（５）解決手段５：問題（イ）−１、問題（イ）−２の解決手段
（マッピング時）
マッピング部３４は、各々のクラスとテーブルが対応する条件を識別し、条件付の対応関係を作成する（例示：テーブルの列の値によって対応するクラスが異なる）。それにより、複数のクラスを１つのテーブルに対応させる。
（実行時）
マッピング部３４は、マッピング時に用意した条件に従ってＲＤＢのＣＲＵＤの処理を行う。
複数のインスタンスが１つの行に対応する場合には、問題（イ）−６に対する解決手段で解決する。
（６）解決手段６：問題（イ）−３、問題（イ）−５の解決手段
（マッピング時）
マッピング部３４は、各々の属性または限定子とテーブルの列が対応する条件を識別し、条件付の対応関係を作成する（例示：テーブルの列の値によって対応する属性が異なる）。
複数の属性または限定子（の値）と１つのテーブルの列（の値）との間に計算によって成り立つ対応関係がある場合には、それらを対応させると共に、属性または限定子（の値）からテーブルの列（の値）を求める計算式と、テーブルの列（の値）から属性または限定子（の値）を求める計算式を用意する。
（実行時）
マッピング部３４は、マッピング時に用意した条件と計算式に従ってＲＤＢのＣＲＵＤの処理を行う。
（７）解決手段７：問題（イ）−４の解決手段
（マッピング時）
マッピング部３４は、各々の関連とテーブルまたはテーブルの列と対応する条件を識別し、条件付の対応関係を作成する（例示：テーブルの列の値によって対応する関連が異なる）。
複数の関連（リンク）とテーブルの列（の値）との間に計算によって成り立つ対応関係がある場合には、それらを対応させると共に、関連（リンク）からテーブルの列（の値）を求める計算式と、テーブルの列（の値）から関連（リンク）を求める計算式を用意する。
（実行時）
マッピング部３４は、マッピング時に用意した条件と計算式に従ってＲＤＢのＣＲＵＤの処理を行う。
複数のリンクが１つの行に対応する場合には、問題（イ）−６に対する解決手段で解決する。
（８）解決手段８：問題（イ）−６の解決手段
（マッピング時）
マッピング部３４は、問題（イ）−１、問題（イ）−２、問題（イ）−４に対する解決手段で解決する。
（実行時）
マッピング部３４は、行追加・削除処理部３５により、インスタンスの生成を次のいずれかの方法で実行する。
＜方法１＞
・行追加の実行タイミングを、行に対応する全てのインスタンスが生成されるまで遅延させる。
＜方法２＞
・未生成のインスタンスの部分に、インスタンスがないことを示すダミーのデータを入れ、行を一時的に追加する。
・インスタンスが生成される毎に、ダミーのデータの部分をインスタンスの属性値で更新する（主キーの値の変更を伴う場合には、行を削除して追加する）。
マッピング部３４は、行追加・削除処理部３５により、インスタンスの削除を次のいずれかの方法で実行する。
＜方法３＞
・行削除の実行タイミングを、行に対応する全てのインスタンスが削除されるまで遅延させる。
＜方法４＞
・削除するインスタンスの部分に、インスタンスがないことを示すダミーのデータを入れる。
・全てのインスタンスが削除されたとき、行を削除する。
（９）解決手段９：問題（ウ）−１の解決手段
（マッピング時）
マッピング部３４は、各々のクラスと各々のテーブルが対応する条件を識別し、条件付の対応関係を作成する（例示：クラスの属性の値とテーブルの列の値によって対応関係が異なる）。
複数のテーブルで非キーの列が重複している場合には、非正規化されたテーブル構造の問題であることに注意する（非正規化されたテーブル構造の問題に対する解決手段で解決する）。
（実行時）
マッピング部３４は、マッピング時に用意した条件に従ってＲＤＢのＣＲＵＤの処理を行う。
複数のインスタンスが１つの行に対応する場合には、問題（イ）−６に対する解決手段で解決する。
（１０）解決手段１０：問題（ウ）−２、問題（ウ）−４の解決手段
（マッピング時）
マッピング部３４は、属性または限定子とテーブルの列が対応する条件を識別し、条件付の対応関係を作成する（例示：インスタンスが属するクラスの種類毎とテーブルの列の値毎に対応関係が異なる）。
複数の属性または限定子（の値）と複数のテーブルの列（の値）との間に計算によって成り立つ対応関係がある場合には、それらを対応させると共に、属性または限定子（の値）からテーブルの列（の値）を求める計算式と、テーブルの列（の値）から属性または限定子（の値）を求める計算式を用意する。
（実行時）
マッピング部３４は、マッピング時に用意した条件と計算式に従ってＲＤＢのＣＲＵＤの処理を行う。
（１１）解決手段１１：問題（ウ）−３の解決手段
（マッピング時）
マッピング部３４は、各々の関連と各々のテーブルまたはテーブルの列と対応する条件を識別し、条件付の対応関係を作成する（例示：リンクが属する関連の種類とテーブルの列の値毎に対応関係が異なる）。
各々の関連（リンク）と複数のテーブルの列（の値）との間に計算によって成り立つ対応関係がある場合には、それらを対応させると共に、関連（リンク）からテーブルの列（の値）を求める計算式と、テーブルの列（の値）から関連（リンク）を求める計算式を用意する。
（実行時）
マッピング部３４は、マッピング時に用意した条件と計算式に従ってＲＤＢのＣＲＵＤの処理を行う。
複数のリンクが１つの行に対応する場合には、問題（イ）−６に対する解決手段で解決する。
（１２）解決手段１２：問題（ウ）−５の解決手段
（マッピング時）
マッピング部３４は、問題（ウ）−１、問題（イ）−３に対する解決手段で解決する。
（実行時）
マッピング部３４は、解決手段８に対する解決手段で解決する。
（１３）解決手段１３：問題（エ）−１の解決手段、問題（エ）−６の解決手段（解決手段１６でも可）
（マッピング時）
マッピング部３４は、従来のＯＲマッピングと同様に、クラスに対応するテーブルを作成（追加）する。
（実行時）
マッピング部３４は、従来のＯＲマッピングと同様に対処する。
（１４）解決手段１４：問題（エ）−２の解決手段
（マッピング時）
マッピング部３４は、所与のテーブルへの列の追加が許される場合は、クラスに対応するテーブルにクラス識別子の列を追加する。クラスによってオブジェクトを識別するための主キーが異なる場合には、オブジェクト識別子の列も追加する。
所与のテーブルへの列の追加が許されない場合は、クラスに対応するテーブルの主キーを外部キーとして持ち、クラス識別子の列を持つテーブルを追加する。クラスによってオブジェクトを識別するための主キーが異なる場合には、オブジェクト識別子の列も持たせる。
（実行時）
マッピング部３４は、インスタンスの生成・削除時に、クラス識別子を含む行を追加・削除する。
（１５）解決手段１５：問題（エ）−３、問題（エ）−５の解決手段
（マッピング時）
マッピング部３４は、所与のテーブルへの列の追加が許される場合は、クラスに対応するテーブルに属性または限定子に対応する列を追加する。
所与のテーブルへの列の追加が許されない場合は、クラスに対応する主キーを外部キーとして持ち、属性または限定子に対応する列を持つテーブルを追加する。
（実行時）
マッピング部３４は、インスタンスの生成・削除時に、属性または限定子を含む行を追加・削除する。
（１６）解決手段１６：問題（エ）−４の解決手段、問題（エ）−６の解決手段（解決手段１３でも可）
（マッピング時）
マッピング部３４は、従来のＯＲマッピングと同様に、関連に対応するテーブルを作成（追加）する。ただし、解決手段１４によってオブジェクトの識別子を付加した場合を除いて、オブジェクトを識別するための列は、クラスに対応するテーブルの主キーを利用する。
（実行時）
マッピング部３４は、従来のＯＲマッピングと同様に対処する。
【００３１】
行追加・削除処理部３５は、マッピング部３４の指示に基づいて、複数のインスタンスが１レコードに対応付けられている場合のインスタンスの生成時に、次のいずれかの方法で処理を行う。
＜方法１＞
・レコード追加の実行タイミングを、全てのインスタンスが生成されるまで遅延させる。
＜方法２＞
・未生成のインスタンスの部分に、インスタンスがないことを示すダミーのデータを入れ、レコードを一時的に追加する。
・インスタンスが生成される毎に、ダミーのデータの部分をインスタンスの属性値で更新する（主キーの値の変更を伴う場合には、レコードを削除して追加する）。
【００３２】
また、行追加・削除処理部３５は、マッピング部３４の指示に基づいて、複数のインスタンスが１レコードに対応付けられている場合のインスタンスの削除時に、次のいずれかの方法で処理を行う。
＜方法３＞
・レコード削除の実行タイミングを、全てのインスタンスが削除されるまで遅延させる。
＜方法４＞
・削除するインスタンスの部分に、インスタンスがないことを示すダミーのデータを入れる。
・全てのインスタンスが削除されたとき、レコードを削除する。
【００３３】
また、受付部３２、選択部３３及びマッピング部３４は、更に特開２００７−２４９３４５号公報で記載されている動作を実行可能である。すなわち、以下に示すとおりである。
【００３４】
受付部３２は、カプセル化の対象となる複数の要素を選択するための選択条件（例示：ユーザにて選択された具体的な要素名）を受け付ける。この選択条件にて選択される要素のまとまり（以下、「ＲＤＢラッパー」と記す）は、カプセル化の対象となり、それら要素のデータ（インスタンス）を保持できるＲＤＢのテーブルと対応させられる。更に、受付部３２は、選択条件に応じて選択された複数の要素のまとめ方を特定するための特定条件（例示：要素の処理に対して要求される処理速度）を受け付ける。
【００３５】
例えば、ユーザは、オブジェクトモデルの中で、高速な処理が要求され、かつ低い柔軟性となっても良い部分がある場合、その部分に対応する複数の要素（例示：複数のクラスと関連および汎化）の名称を表す選択条件を、受付部３２に入力する。一方、ユーザは、オブジェクトモデルの中で、高速な処理が求められない部分がある場合、その部分に対応する複数の要素（例示：クラス１つと幾つかの関連）の名称を表す選択条件を、受付部３２に入力する。この際、各クラスの使われ方およびオブジェクトモデルの要素の凝集度が考慮されて、選択条件が設定される。なお、選択条件は、要素の名称に限らず適宜変更可能である。
【００３６】
選択部３３は、要素格納部１に格納されている複数の要素から、受付部３２が受け付けた選択条件に合う複数の要素を選択する。選択部３３は、その複数の要素をＲＤＢラッパーとしてまとめ、そのＲＤＢラッパーを、メモリ３１に格納する。このため、ＲＤＢラッパーは、選択条件に基づいて選択された、要素格納部１内の複数の要素と対応する。
【００３７】
マッピング部３４は、ＲＤＢ格納部２に格納されているＲＤＢのテーブルの項目に、メモリ３１に格納された複数の要素を関連づけて１つのグループとしてマッピングする。例えば、マッピング部３４は、ＲＤＢ格納部２に格納されているＲＤＢの１つのテーブルの項目に、メモリ３１に格納された複数の要素をマッピングする。
【００３８】
具体的には、マッピング部３４は、メモリ３１に格納されたＲＤＢラッパーの要素ごとに、その要素をテーブルの項目とする複数のＲＤＢのテーブルをＲＤＢ格納部２に作成する。その後、マッピング部３４は、それら複数のテーブルを、受付部３２が受け付けた特定条件に基づいて非正規化して１つのテーブルにまとめる。例えば、特定条件が、メモリ３１に格納されたＲＤＢラッパーの要素に対応するアプリケーションソフトウェアの特定の部分に対する処理時間の要求を表している場合、マッピング部３４は、その要求を満足するように、それら複数のテーブルを非正規化して最終的なテーブルにする。マッピング部３４によるマッピングにより、ＲＤＢラッパーは、そのＲＤＢラッパーに対応する要素が項目にマッピングされたＲＤＢのテーブルと対応する。
【００３９】
なお、マッピング部３４は、メモリ３１に格納されたＲＤＢラッパーの複数の要素を、別々のＲＤＢのテーブルの項目にマッピングし、それらのテーブルを１つのグループ（ＲＤＢラッパーに対応するグループ）として関連づけてもよい。この場合、１つのグループとして関連づけられたＲＤＢの各テーブルは、メモリ３１に格納されたＲＤＢラッパーに対応する。
【００４０】
マッピング装置１００の選択部３３、マッピング部３４及び行追加・削除処理部３５の動作によって、選択条件に基づいて選択された要素格納部１内の複数の要素は、ＲＤＢラッパーを介して、ＲＤＢ格納部２内の複数のＲＤＢの要素（例示：テーブル）と対応付けられる（マッピングされる）。
【００４１】
次に、本発明の実施の形態に係るマッピング方法（マッピング装置の動作）について説明する。
図２は、本発明の実施の形態に係るオブジェクトモデル（の要素）の一例を示す概略図である。この所与のオブジェクトモデルは、要素として、「Ｐａｒｔｙ」のクラス（「Ｐａｒｔｙ」クラス４１）、「分野」のクラス（「分野」クラス４２）、「団体」のクラス（「団体」クラス４３）、「人」のクラス（「人」クラス４４）、「活動」のクラス（「活動」クラス４５）、「役職」のクラス（「役職」クラス４６）、「Ｐａｒｔｙ」と「団体」の関係（汎化）、「Ｐａｒｔｙ」と「人」の関係（汎化）、「分野」と「団体」の関連、「団体」と「人」の関連、「活動」の関連クラス、および、「活動」と「役職」の関連を備えている。
【００４２】
図２のオブジェクトモデルは、ここでは、以下のような特徴があると仮定する。「分野」は「団体」の分野として使用される。「分野」は必ず「団体」に対するメッセージで必要な動作のみで利用される。「分野名」を検索条件とした団体の検索は高速な処理が要求される。「役職」は必ず「活動」に対するメッセージで必要な動作でのみ利用される。「団体名」と「役職名」を検索条件とした「人」の検索は高速な処理が要求される。「人」は一般的に幅広く利用される（「団体」で活動する人以外も取り扱われる）。
【００４３】
図３は、本発明の実施の形態に係るＲＤＢのテーブルの一例を示す概略図である。この所与のＲＤＢのテーブルは、以下のデータを含んでいる。図３（ａ）は「団体マスタ」５１であり、項目として、主キーである「団体名」と、分野名とを含んでいる。図３（ｂ）は「団体活動テーブル」５２であり、項目として、主キーであり外部キーでもある氏名と、主キーであり外部キーでもある団体名と、活動期間と、役職名とを含んでいる。図３（ｃ）は「人マスタ」５３であり、項目として、主キーである氏名と、生年月日を含んでいる。
【００４４】
図４は、本発明の実施の形態に係るＲＤＢラッパーによるオブジェクトモデルの要素と、ＲＤＢラッパーと、ＲＤＢの要素のマッピングの一例を示す概略図である。
【００４５】
本発明の実施の形態に係るマッピング方法におけるオブジェクトモデル１１（図２と同じ）の要素とＲＤＢラッパー１２との対応付けは次のように行われる。ここでは、一例として、「Ｐａｒｔｙ」クラス４１に関して説明する。
【００４６】
オブジェクトモデル１１は、予め、ユーザ又は他の装置から受付部３２により受け付けられ、要素格納部１に格納されている。ＲＤＢのテーブル１３は、予め、ユーザ又は他の装置から受付部３２により受け付けられ、ＲＤＢ格納部２へ格納されている。
【００４７】
マッピング部３４は、オブジェクトモデル１１を参照して、ＲＤＢラッパーを作成するために、まず、一つクラス（要素）を選択し、そのクラス（要素）に関する要素を読み出す。
【００４８】
例えば、マッピング部３４は、オブジェクトモデル１１を参照して、「Ｐａｒｔｙ」クラス４１のＲＤＢラッパーである「Ｐａｒｔｙラッパー」６１を作成するために、「Ｐａｒｔｙ」のクラス（要素）と、「Ｐａｒｔｙ」と「団体」の間の関係（汎化）と、「Ｐａｒｔｙ」と「人」の間の関係（汎化）を読み出す。
【００４９】
次に、マッピング部３４は、読み出したデータに基づいて、ＲＤＢのテーブル１３を参照して、ＲＤＢラッパーに対応するＲＤＢのテーブルを特定する。そして、解決手段１〜１６を用いて、オブジェクトモデルとＲＤＢのテーブルとの関係を示すＲＤＢラッパーを生成する。
【００５０】
例えば、マッピング部３４は、読み出したデータに基づいて、ＲＤＢのテーブル１３を参照して、「Ｐａｒｔｙラッパー」６１に対応するクラス（「Ｐａｒｔｙ」クラス４１）に対応するテーブルとして「団体マスタ」５１及び「人マスタ」５３の２つのテーブルを特定する。マッピング部３４は、「Ｐａｒｔｙ」クラス４１に対応するテーブルは「団体マスタ」５１及び「人マスタ」５３の２つのテーブルがあるので、条件付の対応関係をメモリ３１に格納する。その条件付の対応関係は、条件：クラス＝“団体”のとき「団体マスタ」５１、条件：クラス＝“人”のとき「人マスタ」５３、である。マッピング部３４によるこのような処理は、解決手段１に対応する。
【００５１】
ただし、マッピング部３４は、「Ｐａｒｔｙ」クラス４１の「名称」の属性に対応する列は「団体マスタ．団体名」、「人マスタ．氏名」の２つの列があるので、条件付の対応関係をメモリ３１に格納する。その条件付の対応関係は、条件：クラス＝“団体”のとき「団体マスタ．団体名」、条件：クラス＝“人”のとき「人マスタ．氏名」）をメモリ３１に格納する。マッピング部３４によるこのような処理は、解決手段２に対応する。
【００５２】
ここで、マッピング部３４は、「Ｐａｒｔｙ」クラス４１の汎化（汎化を扱うためのインスタンスが属するクラスの識別情報）に対応するＲＤＢの要素がないので、クラスに対応するテーブルの主キーを外部キーとして持ち、クラス識別子の列を持つテーブルをＲＤＢのテーブル１３に追加する。追加されるテーブルは、「ＰａｒｔｙＩＤ（団体）テーブル」５５、及び、「ＰａｒｔｙＩＤ（人）テーブル」５６である。「ＰａｒｔｙＩＤ（団体）テーブル」５５では、「団体マスタ」５１の主キーである「団体名」が外部キーになっている。ＰａｒｔｙＩＤ（人）テーブル」５６では、「人マスタ」５３の主キーである「氏名」が外部キーになっている。マッピング部３４によるこのような処理は、解決手段１４に対応する。
【００５３】
このように「Ｐａｒｔｙ」ラッパー６１と「団体マスタ」５１、「人マスタ」５３、「ＰａｒｔｙＩＤ（団体）テーブル」５５及び「ＰａｒｔｙＩＤ（人）テーブル」５６との対応付けが行われる。これにより、図４における「Ｐａｒｔｙ」ラッパー６１を経由した「Ｐａｒｔｙ」クラス４１と、「団体マスタ」５１、「人マスタ」５３「ＰａｒｔｙＩＤ（団体）テーブル」５５及び「ＰａｒｔｙＩＤ（人）テーブル」５６との対応関係がメモリ３１に格納される。
【００５４】
同様にして、マッピング部３４により「人」ラッパー６４と「人マスタ」５３とが対応付けられ、「人」ラッパー６４を経由した「人」クラス４４と「人マスタ」５３との対応関係がメモリ３１に格納される。また、マッピング部３４により「活動」ラッパー６５と「団体活動テーブル」５２とが対応付けられ、「活動」ラッパー６５を経由した「活動」クラス４５及び「役職」クラス４６と「団体活動テーブル」５２との対応関係がメモリ３１に格納される。更に、マッピング部３４により「団体」ラッパー６２と「団体マスタ」５１とが対応付けられ、「団体」ラッパー６２を経由した「団体」クラス４３及び「分野」クラス４２と「団体マスタ」５１との対応関係がメモリ３１に格納される。
【００５５】
このようにマッピング部３４によりＲＤＢラッパー１２とＲＤＢのテーブル１３の対応付けが行われ、図４におけるＲＤＢラッパー１２を経由したオブジェクトモデル１１の要素と、ＲＤＢのテーブル１３との対応関係がメモリ３１に格納される。
【００５６】
上述のようにして生成されたＲＤＢラッパー１２（例示：「Ｐａｒｔｙ」ラッパー６１、「人」ラッパー６４、「活動」ラッパー６５、「団体」ラッパー６２）の動作は次のように行われる。
【００５７】
図５は、本実施の形態に係るＲＤＢラッパーの動作を示すフロー図である。ここでは、一例として、「Ｐａｒｔｙ」ラッパー６１に関して説明する。マッピング部３４には、Ｐａｒｔｙ検索メソッドに対して検索のプログラムが用意されている。
このプログラム（ＳＱＬ文）は、
「ＳＥＬＥＣＴ  ｛Ｐａｒｔｙインスタンスのテーブルの主キー｝
ＦＲＯＭ  ｛Ｐａｒｔｙインスタンスが属するクラスに対応するテーブル名｝
ＷＨＥＲＥ  ｛Ｐａｒｔｙインスタンスのテーブルの主キー｝
ＩＮ  （ＳＥＬＥＣＴ  ｛Ｐａｒｔｙインスタンスのクラス識別子のテーブルの外部キー｝
ＦＲＯＭ  ｛Ｐａｒｔｙインスタンスのクラス識別子のテーブル｝
ＷＨＥＲＥ  クラス識別子＝“Ｐａｒｔｙ種別”）  ＡＮＤ
｛「名称」の属性に対応する列｝＝“名称”」である。
マッピング部３４により、実行時にＳＱＬ文の中括弧“｛  ｝”内が埋められ、ＲＤＢラッパー１２のＰａｒｔｙラッパー６１によりＰａｒｔｙ検索の処理が実行される。
【００５８】
上記動作は、「Ｐａｒｔｙ」クラス４１を継承する「無目的集団」クラス４８が追加されても同様に実行できる。図６は、本発明の実施の形態に係るＲＤＢラッパーによるオブジェクトモデルの要素と、ＲＤＢラッパーと、ＲＤＢの要素のマッピングの他の一例を示す概略図である。本図では、図４に対して、オブジェクトモデル１１に「Ｐａｒｔｙ」クラス４１を継承する「無目的集団」クラス４８が追加されている。
【００５９】
オブジェクトモデル１１に「無目的集団」クラス４８が追加された場合、特開２００７−２４９３４５号公報で記載されている動作により、「無目的集団」ラッパー６８及び「無目的集団テーブル」５８を生成しても良い。あるいは、オブジェクトモデル１１に「無目的集団」クラス４８が追加され、且つ、ＲＤＢのテーブル１３に「無目的集団テーブル５８」が追加された場合、マッピング部３４は、上記の動作と同様の動作により、「無目的集団」ラッパー６８を生成することができる。
【００６０】
「Ｐａｒｔｙ」ラッパー６１に関しては、マッピング部３４は、更に、条件付の対応関係として、条件：クラス＝“無目的集団”のとき「無目的集団テーブル」５８、を更にメモリ３１に格納する。マッピング部３４によるこのような処理は、解決手段１に対応する。それにより、マッピング部３４により「Ｐａｒｔｙ」ラッパー６１と「無目的集団テーブル５８」とが更に対応付けられ、「Ｐａｒｔｙ」ラッパー６１を経由した「無目的集団」クラス４８と「無目的集団テーブル」５８との対応関係が更にメモリ３１に格納される。
【００６１】
以上の結果、マッピング部３４によって、図６に示すマッピングを行うだけで、Ｐａｒｔｙ検索メソッドに対する検索のプログラムを変更することなしに、「無目的集団」クラス４８のＰａｒｔｙ検索が実行可能である。このようにオブジェクトモデルが利点として持つ変更容易性、規模低減のメリットを享受できる。
【００６２】
一方、ＲＤＢを主とし、ＲＤＢのテーブル構造にあわせてオブジェクトモデルを決定するマッピング（例示：特表２００１−５１８６７０号公報）について考える。図７は、オブジェクトモデルに「無目的集団」クラスを追加した場合のリンクとＲＤＢテーブルとの関係を示す概念図である。図８は、図７の場合でのＲＤＢラッパーの動作を示すシーケンス図である。図８（ａ）は「人」検索、図８（ｂ）は「団体」検索、図８（ｃ）は「無目的集団」検索をそれぞれ示す。図７に示すようにオブジェクトモデルに「無目的集団」クラスを追加した場合、ＲＤＢテーブルに「無目的集団」テーブルを追加した上で、図８（ｃ）に示すようなシーケンス図及びそれに対応するプログラムを追加する必要があり、変更容易性、規模低減のメリットを享受できない。
【００６３】
図９は、シーケンスの処理の一例を示すシーケンス図である。図９のようなシーケンスの処理について、オブジェクトモデルに完全に一致させたカプセル化を行った場合には、シーケンス図上のメッセージに合わせて複数回のＳＱＬ文が必要となり、要求される高速な処理性能を実現できない。しかし、本発明では「ＳＥＬＥＣＴ  団体名  ＦＲＯＭ  団体マスタ  ＷＨＥＲＥ  分野名＝“分野名”」という１回のＳＱＬ文で実行可能なため要求される性能を実現できる。
【００６４】
本発明では、所与のオブジェクトモデルに対してそのインスタンスの永続化に用いるＲＤＢの構造が決定済みの制約である場合でも、オブジェクトモデルの変更容易性を維持したまま許容可能な性能で動作することが出来る。その理由は、所与のオブジェクトモデルの各要素と所与のＲＤＢの各要素を対応付ける構成と、レコード追加・削除処理部３５を含むその対応関係に従ってシステムを動作させるために必要な構成を持っているからである。
【００６５】
本発明により、ＲＤＢの構造が決定済みの制約である場合にも利用可能でオブジェクトモデルの利点を生かすことが可能なマッピング装置、マッピング方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００６６】
【図１】図１は本実施の形態に係るマッピング装置の構成を示すブロック図である。
【図２】図２は本発明の実施の形態に係るオブジェクトモデルの一例を示す概略図である。
【図３】図３は本発明の実施の形態に係るＲＤＢのテーブルの一例を示す概略図である。
【図４】図４は本発明の実施の形態に係るＲＤＢラッパーによるオブジェクトモデルの要素と、ＲＤＢラッパーと、ＲＤＢの要素のマッピングの一例を示す概略図である。
【図５】図５は本実施の形態に係るＲＤＢラッパーの動作を示すシーケンス図である。
【図６】図６は本発明の実施の形態に係るＲＤＢラッパーによるオブジェクトモデルの要素と、ＲＤＢラッパーと、ＲＤＢの要素のマッピングの他の一例を示す概略図である。
【図７】図７は、オブジェクトモデルに「無目的集団」クラスを追加した場合のリンクとＲＤＢテーブルとの関係を示す概念図である。
【図８】図８は図７の場合でのＲＤＢラッパーの動作を示すシーケンス図である。
【図９】図９はシーケンスの処理の一例を示すシーケンス図である。
【符号の説明】
【００６７】
１    要素格納部
２    リレーショナルデータベース（ＲＤＢ）格納部
３    処理部
１０、１０ａ〜１０ｃ    オブジェクトモデルの要素
１１    オブジェクトモデル
１２    処理部（ＲＤＢラッパー）
１３    ＲＤＢのテーブル
２０、２０ａ〜２０ｃ    ＲＤＢの要素
３１    メモリ
３２    受付部
３３    選択部
３４    マッピング部
３５    行追加・削除処理部
４１    Ｐａｒｔｙクラス
４２    分野クラス
４３    団体クラス
４４    人クラス
４５    活動クラス
４６    役職クラス
４８    無目的集団
５１    団体マスタ
５２    団体活動テーブル
５３    人マスタ
５５    ＰａｒｔｙＩＤ（団体）テーブル
５６    ＰａｒｔｙＩＤ（人）テーブル
５８    無目的集団テーブル
６１    Ｐａｒｔｙラッパー
６２    人ラッパー
６４    団体ラッパー
６５    活動ラッパー
６８    無目的集団ラッパー
１００、１００−１、１００−２    マッピング装置
【図１】
2009223644.tif 000003
【図２】
2009223644.tif 000004
【図３】
2009223644.tif 000005
【図４】
2009223644.tif 000006
【図５】
2009223644.tif 000007
【図６】
2009223644.tif 000008
【図７】
2009223644.tif 000009
【図８】
2009223644.tif 000010
【図９】
2009223644.tif 000011