(57)【要約】【課題】オブジェクトのカプセル化が実現され、所定の処理を高速で行えるアプリケーションソフトウェアを生成することを可能にする、マッピング装置、マッピング方法およびプログラムを提供する。【解決手段】選択部３３は、オブジェクトモデルの複数の要素を選択条件に基づいて選択し、マッピング部３４は、その選択された複数の要素を、１つのグループとして、すなわちカプセル化して、ＲＤＢの項目にマッピングする。【選択図】図１
2007249345.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトモデルの複数の要素を格納する要素格納部と、
項目とその項目に対応するレコードとからなるテーブルにて表されるリレーショナルデータベースを格納するＲＤＢ格納部と、
カプセル化の対象となる複数の要素を格納するためのカプセル化対象要素格納部と、
カプセル化の対象となる複数の要素を選択するための選択条件を受け付ける受付部と、
前記要素格納部に格納されている複数の要素の中から、前記受付部にて受け付けられた選択条件に合う複数の要素を選択し、該選択された複数の要素を前記カプセル化対象要素格納部に格納する選択部と、
前記カプセル化対象要素格納部に格納された複数の要素を関連づけて１つのグループとして前記リレーショナルデータベースの項目にマッピングするマッピング部と、を含むマッピング装置。
【請求項２】
請求項１に記載のマッピング装置において、
前記マッピング部は、前記カプセル化対象要素格納部に格納された複数の要素を前記リレーショナルデータベースの１つのテーブルの項目にマッピングする、マッピング装置。
【請求項３】
請求項１または２に記載のマッピング装置において、
前記受付部は、前記カプセル化対象要素格納部に格納された複数の要素のまとめ方を特定するための特定条件を、さらに受け付け、
前記マッピング部は、前記カプセル化対象要素格納部に格納された複数の要素ごとに、該要素をテーブルの項目とする複数のテーブルを作成し、該複数のテーブルを前記特定条件に基づいて非正規化してまとめる、マッピング装置。
【請求項４】
オブジェクトモデルの複数の要素をリレーショナルデータベースの項目にマッピングするマッピング方法であって、
カプセル化の対象となる複数の要素を選択するための選択条件を受け付ける選択条件受付ステップと、
前記複数の要素の中から、前記選択条件に合う複数の要素を選択し、該選択された複数の要素を前記カプセル化対象要素とする選択ステップと、
前記カプセル化対象要素に含まれる複数の要素を関連づけて１つのグループとして前記リレーショナルデータベースの項目にマッピングするマッピングステップと、を含むマッピング方法。
【請求項５】
請求項４に記載のマッピング方法において、
前記マッピングステップでは、前記カプセル化対象要素に含まれる複数の要素を前記リレーショナルデータベースの１つのテーブルの項目にマッピングする、マッピング方法。
【請求項６】
請求項４または５に記載のマッピング方法において、
前記カプセル化対象要素に含まれる複数の要素のまとめ方を特定するための特定条件を受け付ける特定条件受付ステップを、さらに含み、
前記マッピングステップでは、前記カプセル化対象要素に含まれる複数の要素ごとに、該要素をテーブルの項目とする複数のテーブルを作成し、該複数のテーブルを前記特定条件に基づいて非正規化してまとめる、マッピング方法。
【請求項７】
オブジェクトモデルの複数の要素を格納する要素格納部と、項目とその項目に対応するレコードとからなるテーブルにて表されるリレーショナルデータベースを格納するＲＤＢ格納部と、に接続されたコンピュータに、マッピング処理を実行させるプログラムであって、
カプセル化の対象となる複数の要素を選択するための選択条件を受け付ける選択条件受付処理と、
前記要素格納部に格納されている複数の要素の中から、前記選択条件に合う複数の要素を選択し、該選択された複数の要素を前記カプセル化対象要素とする選択処理と、
前記カプセル化対象要素に含まれる複数の要素を関連づけて１つのグループとして前記リレーショナルデータベースの項目にマッピングするマッピング処理と、を含むマッピング処理を、前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マッピング装置、マッピング方法およびプログラムに関し、特には、オブジェクトモデルの要素（例えば、クラス）をリレーショナルデータベース（ＲＤＢ）にマッピングするマッピング装置、マッピング方法およびプログラムに関する。
【背景技術】
【０００２】
アプリケーションソフトウェアを、オブジェクト指向技術で開発する場合でも、オブジェクト指向データベースのデータ層にＯＤＢＭＳ（オブジェクトデータベース管理システム）を利用せずに、ＲＤＢＭＳ（リレーショナルデータベース管理システム）を利用することが多い。
【０００３】
この場合、オブジェクトモデルをＲＤＢで保管するために、オブジェクトモデルの各要素とＲＤＢの各要素との間でのマッピング（以下「ＯＲマッピング」と称する。）が必要となる。
【０００４】
なお、オブジェクトモデルの各要素は、例えば、クラス（属性を含む）、関連（クラス間の関連）、および、汎化（クラスとその上位概念のクラスとの関係）であり、ＲＤＢの各要素は、各テーブルの項目（属性）である。
【０００５】
従来のマッピング方法の例が、特許文献１（特開２０００−１４８５５５号公報）に記載されている。
【０００６】
従来の一般的な方法では、オブジェクトモデルとＲＤＢは直接的にマッピングされる。
【０００７】
例えば、オブジェクトモデルの１つのクラスは、ＲＤＢの１つのテーブルの項目にマッピングされ、オブジェクトモデルの１つの関連は、ＲＤＢの１つのテーブルの項目にマッピングされるか、その関連にて示されるクラスに対応するテーブルの項目に埋め込まれるかしてマッピングされる。
【０００８】
また、オブジェクトモデルのクラスのインスタンスは、そのクラスを項目としたＲＤＢのテーブルのレコードにマッピングされ、オブジェクトモデルの関連のインスタンスは、例えば、その関連を項目としたＲＤＢのテーブルのレコードにマッピングされる。
【０００９】
なお、特許文献１では、オブジェクトモデルの１つのクラスを、ＲＤＢの複数のテーブルの項目にマッピングするという構成になっている。
【特許文献１】特開２０００−１４８５５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１に記載されたような、オブジェクトモデルとＲＤＢとの直接的なマッピングでは、オブジェクト指向のデータと手続きを一体化して情報を隠蔽する特徴（＝カプセル化）と、アプリケーションソフトウェアに要求される処理時間（＝必要に応じて高速に処理する）の両方を満たすことは困難である。
【００１１】
その理由は、オブジェクトモデルの要素ごとにＲＤＢのテーブルが作成され、それらのオブジェクトモデルの要素やテーブルがグループ化されていないからである。このため、カプセル化を行う場合は、個々のオブジェクトモデルの要素ごとにカプセル化することになり、オブジェクトモデルの要素に対応するテーブルごとに逐次的に処理する必要があるため、処理時間を高速化することが困難になる。
【００１２】
結果として、カプセル化が行われないことによって、オブジェクトの協調動作の仕組みが壊され、アプリケーションソフトウェアの柔軟性が損なわれたり、オブジェクトモデルの個々の要素を独立させて処理することによって、要求される処理時間より長い処理時間がかかったりするという問題が発生する。
【００１３】
本発明の目的は、オブジェクトのカプセル化が実現され、所定の処理を高速で行えるアプリケーションソフトウェアを生成することを可能にする、マッピング装置、マッピング方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明のマッピング装置は、オブジェクトモデルの複数の要素を格納する要素格納部と、項目とその項目に対応するレコードとからなるテーブルにて表されるリレーショナルデータベースを格納するＲＤＢ格納部と、カプセル化の対象となる複数の要素を格納するためのカプセル化対象要素格納部と、カプセル化の対象となる複数の要素を選択するための選択条件を受け付ける受付部と、前記要素格納部に格納されている複数の要素の中から、前記受付部にて受け付けられた選択条件に合う複数の要素を選択し、該選択された複数の要素を前記カプセル化対象要素格納部に格納する選択部と、前記カプセル化対象要素格納部に格納された複数の要素を関連づけて１つのグループとして前記リレーショナルデータベースの項目にマッピングするマッピング部と、を含む。
【００１５】
また、本発明のマッピング方法は、オブジェクトモデルの複数の要素をリレーショナルデータベースの項目にマッピングするマッピング方法であって、カプセル化の対象となる複数の要素を選択するための選択条件を受け付ける選択条件受付ステップと、前記複数の要素の中から、前記選択条件に合う複数の要素を選択し、該選択された複数の要素を前記カプセル化対象要素とする選択ステップと、前記カプセル化対象要素に含まれる複数の要素を関連づけて１つのグループとして前記リレーショナルデータベースの項目にマッピングするマッピングステップと、を含む。
【００１６】
上記発明によれば、オブジェクトモデルの複数の要素が選択条件に基づいて選択され、その選択された複数の要素が、１つのグループとして、リレーショナルデータベースの項目にマッピングされる。
【００１７】
このため、そのグループをカプセル化の単位とすることが可能となり、オブジェクトモデルがリレーショナルデータベースで保管される場合にも、複数の要素およびそれらのインスタンスのカプセル化が可能になり、処理の高速化が可能になる。
【００１８】
よって、オブジェクトのカプセル化を実現し、所定の処理を高速で行えるアプリケーションソフトウェアを生成することが可能なように、オブジェクトモデルをリレーショナルデータベースに保管することが可能になる。
【００１９】
なお、前記マッピング部は、前記カプセル化対象要素格納部に格納された複数の要素を１つのテーブルの項目にマッピングすることが望ましい。
【００２０】
上記発明によれば、処理の高速化が可能になる。
【００２１】
また、前記受付部は、前記カプセル化対象要素格納部に格納された複数の要素のまとめ方を特定するための特定条件を、さらに受け付け、前記マッピング部は、前記カプセル化対象要素格納部に格納された複数の要素ごとに、該要素をテーブルの項目とする複数のテーブルを作成し、該複数のテーブルを前記特定条件に基づいて非正規化して１つのテーブルにまとめることが望ましい。
【００２２】
上記発明によれば、一度、複数のテーブルを作成してから、それらのテーブルを特定条件に基づいてまとめるため、処理の高速化、および、特定条件に応じたマッピングを行うことが可能となる。
【００２３】
また、本発明のプログラムは、オブジェクトモデルの複数の要素を格納する要素格納部と、項目とその項目に対応するレコードとからなるテーブルにて表されるリレーショナルデータベースを格納するＲＤＢ格納部と、に接続されたコンピュータに、マッピング処理を実行させるプログラムであって、カプセル化の対象となる複数の要素を選択するための選択条件を受け付ける選択条件受付処理と、前記要素格納部に格納されている複数の要素の中から、前記選択条件に合う複数の要素を選択し、該選択された複数の要素を前記カプセル化対象要素とする選択処理と、前記カプセル化対象要素に含まれる複数の要素を関連づけて１つのグループとして前記リレーショナルデータベースの項目にマッピングするマッピング処理と、を含むマッピング処理を、前記コンピュータに実行させる。
【００２４】
上記発明によれば、上記マッピング方法を、コンピュータに実行させることが可能になる。
【発明の効果】
【００２５】
本発明によれば、オブジェクトのカプセル化を実現し、所定の処理を高速で行えるアプリケーションソフトウェアを生成することが可能なように、オブジェクトモデルをリレーショナルデータベースに保管することが可能になる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施例を図面を参照して説明する。
【００２７】
図１は、本発明の一実施例のマッピング装置を示したブロック図である。
【００２８】
図１において、各マッピング装置１００は、要素格納部１と、リレーショナルデータベース（ＲＤＢ）格納部２と、処理部３とを含む。
【００２９】
要素格納部１は、オブジェクトモデルの複数の要素を格納する。図１では、要素格納部１は、オブジェクトモデルの要素（以下、単に「要素」と称する。）１ａ〜１ｃを格納している。
【００３０】
要素は、例えば、クラス（属性を含む。）、クラス間の関連（以下「関連」と称する。）、または、汎化（クラスとその上位概念のクラスとの関係）である。なお、関連および汎化もクラスの一種とすれば、要素は、クラスとなる。また、オブジェクトモデルは、各要素のインスタンスも含む。
【００３１】
ＲＤＢ格納部２は、項目とその項目に対応するレコードからなるテーブルにて表されるＲＤＢを格納する。なお、その項目は、要素を格納でき、その項目に対応するレコードは、その項目に格納された要素のデータ（インスタンス）を格納できる。
【００３２】
処理部３は、要素格納部１に格納されている各要素を、ＲＤＢ格納部２に格納されるテーブルの項目にマッピングする。
【００３３】
処理部３は、メモリ３１と、受付部３２と、選択部３３と、マッピング部３４とを含む。例えば、処理部３が、メモリを有するＣＰＵ等のコンピュータである場合、処理部３は、ソフトウェア（プログラム）を実行することによって、メモリ３１と、受付部３２と、選択部３３と、マッピング部３４とを実現する。
【００３４】
メモリ（カプセル化対象要素格納部）３１は、処理部３の作業メモリとして使用される。
【００３５】
受付部３２は、例えば、カプセル化の対象となる複数の要素を選択するための選択条件（例えば、利用者にて選択された具体的な要素名）を受け付ける。
【００３６】
例えば、利用者は、オブジェクトモデルの中で、高速な処理が要求され、かつ低い柔軟性となっても良い部分があると、その部分に対応する複数の要素（例えば、複数のクラスと関連および汎化）の名称を表す選択条件を、受付部３２に入力する。
【００３７】
また、利用者は、オブジェクトモデルの中で、高速な処理が求められない部分があると、その部分に対応する複数の要素（例えば、クラス１つと幾つかの関連）の名称を表す選択条件を、受付部３２に入力する。
【００３８】
この際、各クラスの使われ方およびオブジェクトモデルの要素の凝集度が考慮されて、選択条件が設定される。なお、選択条件は、要素の名称に限らず適宜変更可能である。
【００３９】
この選択条件にて選択される要素のまとまり（以下「ＲＤＢラッパー」と称する。）は、カプセル化の対象となり、それら要素のデータ（インスタンス）を保持できるＲＤＢのテーブルと対応させられる。
【００４０】
また、受付部３２は、選択条件に応じて選択された複数の要素のまとめ方を特定するための特定条件（例えば、要素の処理に対して要求される処理速度）を受け付ける。
【００４１】
選択部３３は、要素格納部１に格納されている複数の要素から、受付部３２が受け付けた選択条件に合う複数の要素を選択する。選択部３３は、その複数の要素をＲＤＢラッパーとしてまとめ、そのＲＤＢラッパーを、メモリ３１に格納する。このため、ＲＤＢラッパーは、選択条件に基づいて選択された、要素格納部１内の複数の要素と対応する。
【００４２】
マッピング部３４は、ＲＤＢ格納部２に格納されているＲＤＢのテーブルの項目に、メモリ３１に格納された複数の要素を関連づけて１つのグループとしてマッピングする。例えば、マッピング部３４は、ＲＤＢ格納部２に格納されているＲＤＢの１つのテーブルの項目に、メモリ３１に格納された複数の要素をマッピングする。
【００４３】
具体的には、マッピング部３４は、メモリ３１に格納されたＲＤＢラッパーの要素ごとに、その要素をテーブルの項目とする複数のＲＤＢのテーブルをＲＤＢ格納部２に作成する。その後、マッピング部３４は、それら複数のテーブルを、受付部３２が受け付けた特定条件に基づいて非正規化して１つのテーブルにまとめる。
【００４４】
例えば、特定条件が、メモリ３１に格納されたＲＤＢラッパーの要素に対応するアプリケーションソフトウェアの特定の部分に対する処理時間の要求を表している場合、マッピング部３４は、その要求を満足するように、それら複数のテーブルを非正規化して最終的なテーブルにする。
【００４５】
マッピング部３４によるマッピングにより、ＲＤＢラッパーは、そのＲＤＢラッパーに対応する要素が項目にマッピングされたＲＤＢのテーブルと対応する。
【００４６】
なお、マッピング部３４は、メモリ３１に格納されたＲＤＢラッパーの複数の要素を、別々のＲＤＢのテーブルの項目にマッピングし、それらのテーブルを１つのグループ（ＲＤＢラッパーに対応するグループ）として関連づけてもよい。この場合、１つのグループとして関連づけられたＲＤＢの各テーブルは、メモリ３１に格納されたＲＤＢラッパーに対応する。
【００４７】
選択部３３およびマッピング部３４の動作によって、選択条件に基づいて選択された要素格納部１内の複数の要素は、ＲＤＢラッパーを介して、ＲＤＢのテーブルと対応する。
【００４８】
次に、動作を説明する。
【００４９】
図２は、オブジェクトモデルの一例を示した説明図である。このオブジェクトモデルは、要素として、分野のクラス、団体のクラス、人のクラス、活動のクラス、役職のクラス、分野と団体の関連、団体と人の関連、活動の関連クラス、および、活動と役職の関連を有する。
【００５０】
図３は、図２に示したオブジェクトモデルに対するＲＤＢへのマッピングの一例を説明するための説明図である。なお、図３において、図１に示したものと同一のものには同一符号を付してある。図３では、複数の処理部３ａ〜３ｃがあり、それらは、例えば、統合処理部３０内に設けられてもよい。
【００５１】
以下、図３を参照して、図２に示したオブジェクトモデルに対するＲＤＢへのマッピングの一例を説明する。
【００５２】
なお、図２に示したオブジェクトモデルは以下のような特徴を有するものとする。
【００５３】
・「分野」は、必ず「団体」に対するメッセージで必要な動作でのみ利用される。
【００５４】
・「分野名」を検索条件とした「団体」の検索は、高速な処理が要求される。
【００５５】
・「役職」は、必ず「活動」に対するメッセージで必要な動作でのみ利用される。
【００５６】
・「団体名」と「役職名」を検索条件とした「人」の検索は、高速な処理が要求される。
【００５７】
・「人」は一般的に幅広く利用される(「団体」で活動する「人」以外も取り扱われる。)。
【００５８】
この場合、オブジェクトモデルの要素とＲＤＢラッパーの対応付けは、次のようになる。
【００５９】
「分野名」を検索条件とした団体の検索は高速な処理が要求され、「分野」は必ず「団体」に対するメッセージで必要な動作でのみ利用されるという特徴があるので、「団体」と「分野」のクラス（要素）および「分野」と「団体」の間の関連（要素）は、処理部３ａのメモリ３１ａに、「団体ラッパー」（ＲＤＢラッパー）として、まとめてマッピングされる。
【００６０】
「人」は、一般的に幅広く利用されるので、「人」のクラス（要素）は、単独で、処理部３ｃのメモリ３１ｃに、「人ラッパー」（ＲＤＢラッパー）としてマッピングされる。
【００６１】
「団体名」と「役職名」を検索条件とした「人」の検索は高速な処理が要求され、「役職」は必ず「活動」に対するメッセージで必要な動作でのみ利用されるので、「活動」の関連クラス（要素）と、「役職」のクラス（要素）と、「活動」と「役職」の間の関連（要素）とは、処理部３ｂのメモリ３１ｂに、「活動ラッパー」（ＲＤＢラッパー）として、まとめてマッピングされる。
【００６２】
また、ＲＤＢラッパーとＲＤＢのテーブルの対応付けは、次のようになる。
【００６３】
「団体ラッパー」に対応する「分野」クラス（要素）、「分野」-「団体」の関連（要素）、「団体」クラス（要素）について、従来のＯＲマッピングと同様に、それらの各要素に対応するテーブル２１ａ〜２１ｃが作成される。なお、テーブル２１ａ〜２１ｃは、１つのグループに属する。
【００６４】
これらのテーブル２１ａ〜２１ｃを「分野名」を検索条件とした団体の検索が高速に実行されるように非正規化して、「団体ラッパー」に対応する団体テーブル（ＲＤＢのテーブル）が作成される。
【００６５】
同様に、「活動ラッパー」に対応する「活動テーブル」（ＲＤＢのテーブル）と、「人ラッパー」に対応する「人テーブル」（ＲＤＢのテーブル）が作成される。
【００６６】
次に、処理部３の動作を中心にして、図２に示したオブジェクトモデルに対するＲＤＢへのマッピングの一例を説明する。
【００６７】
まず、オブジェクトモデルの要素とＲＤＢラッパーの対応付けを説明する。
【００６８】
利用者は、「分野名」を検索条件とした団体の検索は高速な処理が要求され、「分野」は必ず「団体」に対するメッセージで必要な動作でのみ利用されるという特徴があるので、「団体」と「分野」のクラス（要素）および「分野」と「団体」の間の関連（要素）を選択させる選択条件（例えば、これらの要素の名称を表した選択条件）を、処理部３ａの受付部３２に入力する。
【００６９】
受付部３２は、利用者から受け付けた選択条件を、選択部３３に提供する。
【００７０】
選択部３３は、その選択条件を受け付けると、オブジェクトモデルの複数の要素の中から、その選択条件に合う要素、具体的には、「団体」と「分野」のクラス（要素）および「分野」と「団体」の間の関連（要素）を選択し、それらの要素を「団体ラッパー」（ＲＤＢラッパー）としてまとめ、その「団体ラッパー」をメモリ３１ａに格納する。
【００７１】
また、利用者は、「人」は、一般的に幅広く利用されるので、「人」のクラス（要素）を選択させる選択条件（例えば、その要素の名称を表した選択条件）を、処理部３ｃの受付部３２に入力する。
【００７２】
受付部３２は、利用者から受け付けた選択条件を、選択部３３に提供する。
【００７３】
選択部３３は、その選択条件を受け付けると、オブジェクトモデルの複数の要素の中から、その選択条件に合う要素、具体的には、「人」のクラス（要素）を選択し、その要素を「人ラッパー」（ＲＤＢラッパー）とし、その「人ラッパー」をメモリ３１ｃに格納する。
【００７４】
また、利用者は、「団体名」と「役職名」を検索条件とした「人」の検索は高速な処理が要求され、「役職」は必ず「活動」に対するメッセージで必要な動作でのみ利用されるので、「活動」の関連クラス（要素）と、「役職」のクラス（要素）と、「活動」と「役職」の間の関連（要素）とを選択させる選択条件（例えば、これらの要素の名称を表した選択条件）を、処理部３ｂの受付部３２に入力する。
【００７５】
受付部３２は、利用者から受け付けた選択条件を、選択部３３に提供する。
【００７６】
選択部３３は、その選択条件を受け付けると、オブジェクトモデルの複数の要素の中から、その選択条件に合う要素、具体的には、「活動」の関連クラス（要素）と、「役職」のクラス（要素）と、「活動」と「役職」の間の関連（要素）を選択し、それらの要素を「活動ラッパー」（ＲＤＢラッパー）としてまとめ、その「活動ラッパー」をメモリ３１ｂに格納する。
【００７７】
続いて、ＲＤＢラッパーとＲＤＢのテーブルの対応付けを説明する。
【００７８】
利用者は、「分野名」を検索条件とした団体の検索は高速な処理が要求されるので、「分野名」を検索条件とした団体の検索が高速に実行されるという旨の特定条件を、処理部３ａの受付部３２に入力する。
【００７９】
受付部３２は、利用者から受け付けた特定条件を、マッピング部３４に提供する。
【００８０】
マッピング部３４は、その特定条件を受け付けると、「団体ラッパー」に対応する「分野」クラス（要素）、「分野」-「団体」の関連（要素）、「団体」クラス（要素）について、従来のＯＲマッピングと同様に、それらの各要素に対応するテーブル２１ａ〜２１ｃをＲＤＢ格納部２に作成する。なお、テーブル２１ａ〜２１ｃは、１つのグループに属する。
【００８１】
マッピング部３４は、テーブル２１ａ〜２１ｃを作成すると、これらのテーブル２１ａ〜２１ｃを、特定条件に基づいて、「分野名」を検索条件とした団体の検索が高速に実行されるように非正規化して、「団体ラッパー」に対応する団体テーブル（ＲＤＢのテーブル）２ａをＲＤＢ格納部２に作成する。
【００８２】
例えば、マッピング部３４は、団体テーブルの項目にマッピングする項目を、テーブル２１ａ〜２１ｃの項目から特定条件に基づいて選定し、その選定された項目を団体テーブルの項目にマッピングする。
【００８３】
同様に、処理部３ｂのマッピング部３４は、「活動ラッパー」に対応する「活動テーブル」（ＲＤＢのテーブル）２ｂを、処理部３ｃのマッピング部３４は「人ラッパー」に対応する「人テーブル」（ＲＤＢのテーブル）２ｃを、ＲＤＢ格納部２に作成する。
【００８４】
本実施例では、ＲＤＢラッパーに対応するＲＤＢのテーブルは１つのみだが、複数のテーブルと対応させてもよい。
【００８５】
図４は、図２に示したオブジェクトモデルが以下の異なる特徴を持っている場合のＲＤＢへのマッピングの他の例を説明するための説明図である。なお、図４において、図３に示したものと同一のものには同一符号を付してある。
【００８６】
ここでは、図２に示したオブジェクトモデルは以下のような特徴を有するものとする。
【００８７】
・「分野」は、必ず「団体」に対するメッセージで必要な動作でのみ利用される。
【００８８】
・「分野名」を検索条件とした団体の検索は、高速な処理が要求される。
【００８９】
・「役職」は、必ず「活動」に対するメッセージで必要な動作でのみ利用される。
【００９０】
・「団体」と「人」(と「活動」)の情報を利用した処理は、高速な処理が要求される。
【００９１】
・「人」は、「団体」で活動する人としてのみ利用される。
【００９２】
・「団体」は、「人」(と「活動」)との協調動作以外でも利用される。
【００９３】
この場合、オブジェクトモデルの要素とＲＤＢラッパーの対応付けは、次のようになる。
【００９４】
団体ラッパーについては、図３の例と同様である。
【００９５】
「人」、「役職」のクラス（要素）、「活動」の関連クラス（要素）、「活動」と「役職」の間の関連（要素）は、以下の特徴のため、それらは、処理部３ｄのメモリ３１ｄに、「人ラッパー」（ＲＤＢラッパー）として、まとめてマッピングされる。
【００９６】
・「役職」は、必ず「活動」に対するメッセージで必要な動作でのみ利用される。
【００９７】
・「団体」と「人」(と「活動」)の情報を利用した処理は高速な処理が要求される。
【００９８】
・「人」は「団体」で活動する人としてのみ利用される。
【００９９】
・「団体」は「人」(と「活動」)との協調動作以外でも利用される。
【０１００】
次に、処理部３の動作を中心にして、上記オブジェクトモデルに対するＲＤＢへのマッピングの一例を説明する。
【０１０１】
まず、オブジェクトモデルの要素とＲＤＢラッパーの対応付けを説明する。
【０１０２】
団体ラッパーについては、図３の例と同様である。
【０１０３】
利用者は、「役職」は、必ず「活動」に対するメッセージで必要な動作でのみ利用され、「団体」と「人」(と「活動」)の情報を利用した処理は高速な処理が要求され、「人」は「団体」で活動する人としてのみ利用され、「団体」は「人」(と「活動」)との協調動作以外でも利用されるという特徴があるので、「人」、「役職」のクラス（要素）、「活動」の関連クラス（要素）、「活動」と「役職」の間の関連（要素）を選択させる選択条件を、処理部３ｄの受付部３２に入力する。
【０１０４】
受付部３２は、利用者から受け付けた選択条件を、選択部３３に提供する。
【０１０５】
選択部３３は、その選択条件を受け付けると、オブジェクトモデルの複数の要素の中から、その選択条件に合う要素、具体的には、「人」、「役職」のクラス（要素）、「活動」の関連クラス（要素）、「活動」と「役職」の間の関連（要素）を選択し、それらの要素を「人ラッパー」（ＲＤＢラッパー）としてまとめ、その「人ラッパー」をメモリ３１ｄに格納する。
【０１０６】
ＲＤＢラッパーとＲＤＢのテーブルの対応付けについては、図３の例と同様に、オブジェクトモデルの要素とＲＤＢラッパーの対応付けに従ってマッピングされ、各特徴（例えば、特定条件）を考慮して非正規化され最終的なテーブルが作成される。
【０１０７】
なお、オブジェクトモデルの要素と処理部との間の動作は、従来のオブジェクト指向のシステムの動作と同様であり、処理部がＲＤＢのテーブルを利用して処理を行う動作は、ＲＤＢＭＳを利用する動作と同様である。
【０１０８】
本実施例によれば、以下の効果を奏する。
【０１０９】
カプセル化を考慮した状態で、必要に応じて処理が高速化できるように、オブジェクトモデルの要素をＲＤＢの項目にマッピングすることが可能となる。
【０１１０】
その理由は、要求される処理時間や、オブジェクトの使われ方などに応じて、オブジェクトモデルの要素のあつまり（カプセル化の単位)をつくり、そのカプセル化を守りつつ非正規化して最終的なテーブル高速に処理しているからである。
【０１１１】
具体的には、本実施例では、選択部３３は、オブジェクトモデルの複数の要素を選択条件に基づいて選択し、マッピング部３４は、その選択された複数の要素を関連づけて１つのグループとして、ＲＤＢの項目にマッピングする。
【０１１２】
このため、そのグループをカプセル化の単位とすることが可能となり、オブジェクトモデルがＲＤＢで保管される場合にも、複数の要素およびそれらのインスタンスのカプセル化が可能になり、処理の高速化が可能になる。
【０１１３】
よって、オブジェクトのカプセル化を実現し、所定の処理を高速で行えるアプリケーションソフトウェアを生成することが可能なように、オブジェクトモデルをＲＤＢに保管することができる。
【０１１４】
また、本実施例では、マッピング部３４は、メモリ３１に格納された複数の要素を１つのテーブルの項目にマッピングする。この場合、処理の高速化が可能になる。
【０１１５】
また、本実施例では、マッピング部３４は、メモリ３１に格納された複数の要素ごとに、その要素をテーブルの項目とする複数のテーブルを作成し、それら複数のテーブルを特定条件に基づいて非正規化して１つのテーブルにまとめる。この場合、一度、複数のテーブルが作成されてから、それらのテーブルが特定条件に基づいてまとめられるため、処理の高速化、および、特定条件に応じたマッピングを行うことが可能となる。
【０１１６】
また、本実施例は、ＲＤＢを利用したシステムのオブジェクト指向開発による開発に利用できる。
【０１１７】
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【０１１８】
【図１】本発明の一実施例のマッピング装置を示したブロック図である。
【図２】オブジェクトモデルの一例を示した説明図である。
【図３】オブジェクトモデルに対するＲＤＢへのマッピングの一例を説明するための説明図である。
【図４】オブジェクトモデルに対するＲＤＢへのマッピングの他の例を説明するための説明図である。
【符号の説明】
【０１１９】
１          要素格納部
１ａ〜１ｃ  要素
２          ＲＤＢ格納部
２ａ〜２ｄ  テーブル
３          処理部
３０        統合処理部
３１        メモリ
３２        受付部
３３        選択部
３４        マッピング部
【図１】
2007249345.tif 000003
【図２】
2007249345.tif 000004
【図３】
2007249345.tif 000005
【図４】
2007249345.tif 000006