(57)【特許請求の範囲】
【請求項１】
複数の事業者の少なくとも１つに所属する担当者に使用される情報端末と接続され、前記情報端末から送信されるデータベースの検索要求に応じて前記データベースを検索し前記情報端末に検索結果を送信する情報処理装置であって、
前記データベースは、
前記複数の事業者で共通する共通項目に分類されるデータを記憶する基本テーブルと、前記複数の事業者毎に異なる個別項目に分類されるデータを記憶する拡張テーブルと、を含み、
前記情報処理装置は、
前記拡張テーブルが記憶する個別項目の属性名を記憶する個別項目名対応テーブルと、
前記情報端末から前記データベースの検索要求を受信する受信部と、
前記受信部から送信される前記検索要求に基づいて前記共通項目のデータを検索する第１の検索式を生成し、前記基本テーブルから前記第１の検索式を満たすデータを検索する基本領域検索部と、
前記受信部から送信される前記検索要求に、前記個別項目名対応テーブルが記憶する個別項目の属性名が含まれる場合に、前記個別項目のデータを検索する第２の検索式を生成し、前記拡張テーブルから前記第２の検索式を満たすデータを検索するテナント固有拡張領域検索部と、
前記基本領域検索部が検索した前記共通項目のデータと前記テナント固有拡張領域検索部が検索した前記個別項目のデータとを結合して前記検索結果として前記情報端末に送信するテーブル検索結果マージ部と、
を備え、
前記情報処理装置は、複数の前記テナント固有拡張領域検索部を備え、
前記複数のテナント固有拡張領域検索部のそれぞれは、前記複数の事業者のいずれかに対応し、
前記受信部は、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を前記検索要求に基づいて特定し、特定した事業者に対応するテナント固有拡張領域検索部に前記検索要求を送信する、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記情報処理装置は、前記情報端末を使用する担当者を識別するユーザＩＤと前記複数の事業者を識別する情報とを対応付けて記憶するユーザＩＤ対応テーブルを備え、
前記受信部は、ユーザＩＤを含む検索要求を前記情報端末から受信し、
前記受信部は、前記検索要求に含まれるユーザＩＤに対応付けられて前記ユーザＩＤ対応テーブルに記憶されている事業者を識別する情報で、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を特定する、情報処理装置。
【請求項３】
請求項１または請求項２に記載の情報処理装置であって、
前記データベースを含んで構成される情報処理装置。
【請求項４】
複数の事業者の少なくとも１つに所属する担当者に使用される情報端末と接続され、前記情報端末から送信される、データベースの検索要求に応じて前記データベースを検索し前記情報端末に検索結果を送信する情報処理装置の制御方法であって、
前記データベースは、複数の事業者で共通する共通項目に分類されるデータを記憶する基本テーブルと前記複数の事業者毎に異なる個別項目に分類されるデータを記憶する拡張テーブルとを含み、
前記情報処理装置は、前記拡張テーブルが記憶する個別項目の属性名を記憶する個別項目名対応テーブルと、前記複数の事業者のいずれかに対応した複数のテナント固有拡張領域検索部と、を備え、
前記制御方法は、
前記情報処理装置が、前記情報端末から前記データベースの検索要求を受信し、
前記情報処理装置が、前記検索要求に基づいて前記共通項目のデータを検索する第１の検索式を生成し、前記基本テーブルから前記第１の検索式を満たすデータを検索し、
前記テナント固有拡張領域検索部が、前記検索要求に、前記個別項目名対応テーブルが記憶する個別項目の属性名が含まれる場合に、前記個別項目のデータを検索する第２の検索式を生成し、前記拡張テーブルから前記第２の検索式を満たすデータを検索し、
前記情報処理装置が、前記検索した前記共通項目のデータと前記検索した前記個別項目のデータとを結合して前記検索結果として前記情報端末に送信し、
前記検索要求を受信する際、前記情報処理装置が、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を前記検索要求に基づいて特定し、特定した事業者に対応するテナント固有拡張領域検索部に前記検索要求を送信する
情報処理装置の制御方法。
【請求項５】
複数の事業者の少なくとも１つに所属する担当者に使用される情報端末と接続され、前記情報端末から送信される、データベースの検索要求に応じて前記データベースを検索し前記情報端末に検索結果を送信する情報処理装置に所定の処理を実行させるプログラムであって、
前記データベースは、複数の事業者で共通する共通項目に分類されるデータを記憶する基本テーブルと前記複数の事業者毎に異なる個別項目に分類されるデータを記憶する拡張テーブルとを含み、
前記情報処理装置は、前記拡張テーブルが記憶する個別項目の属性名を記憶する個別項目名対応テーブルと、複数のテナント固有拡張領域検索部と、を備え、
前記複数のテナント固有拡張領域検索部のそれぞれは、前記複数の事業者のいずれかに対応し、
前記プログラムは、情報処理装置に、
前記情報端末から前記データベースの検索要求を受信する処理と、
前記検索要求に基づいて前記共通項目のデータを検索する第１の検索式を生成し、前記基本テーブルから前記第１の検索式を満たすデータを検索する処理と、
前記検索要求に、前記個別項目名対応テーブルが記憶する個別項目の属性名が含まれる場合に、前記テナント固有拡張領域検索部が、前記個別項目のデータを検索する第２の検索式を生成し、前記拡張テーブルから前記第２の検索式を満たすデータを検索する処理と、
前記検索した前記共通項目のデータと前記検索した前記個別項目のデータとを結合して前記検索結果として前記情報端末に送信する処理と、を実行させ、
前記検索要求を受信する処理において、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を前記検索要求に基づいて特定し、特定した事業者に対応するテナント固有拡張領域検索部に前記検索要求を送信するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理装置の制御方法および情報処理装置の制御用プログラムに関する。
【背景技術】
【０００２】
マルチテナントデータ管理システムの一例が、非特許文献１に記載されている。非特許文献１の図８−１に示すように、このマルチテナントデータ管理システムを構成する情報処理装置は、標準テーブルと、拡張テーブルと、から構成されている。標準テーブルはデータを保存するデータ列と各レコードを識別するＩＤを保存するＩＤ列とから構成される。拡張テーブルは標準テーブルの各レコードを識別するＩＤを保存するＩＤ列と拡張用のデータを保存する拡張列とから構成されている。標準テーブル中の各レコードは、それぞれのＩＤ列に保存されているＩＤと同じＩＤをＩＤ列に持つ拡張テーブル中のレコードと対応付けられている。
【０００３】
【非特許文献１】岩井 哲郎著「SaaS開発指針」ＮＳＡ−Vol.7 No.07009 2007年3月19日ｐｐ．１1http://www.nsa.or.jp/make_jimu/committee/9/data/07001.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述したような構成においては、データベース管理者は、クエリを作成する際にはテーブルの構造および各カラムがどのテーブルにあるのかを知らなければならない。このため、クエリの保守作業に多大なコストがかかっていた。
【０００５】
また、このような構造のデータベースを１つのクエリで検索する場合には、検索する各テーブル名およびテーブル間のリレーションを明記する必要があった。
【０００６】
また、複数のテーブルを仮想的に１つのテーブルに見せるＶｉｅｗという技術も存在するが、この技術を用いてもテーブル構造を変化させると、Ｖｉｅｗ自体を更新する必要があり、データベースの管理者の管理のコストが大きい。
【０００７】
また、データベースを利用するユーザが独自にテーブルを拡張しようとすると、テーブルを使用している既存のユーザに対する検索のためのクエリを修正する必要があり、クエリの保守が困難である。
【０００８】
本発明は上記課題を鑑みてなされたものであって、その目的の一つは、データベースを検索するユーザが検索に用いるクエリの保守や更新に要する作業負担を軽減できるとともにテーブルの拡張性を向上した情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明による情報処理装置の好ましい一態様は、複数の事業者の少なくとも１つに所属する担当者に使用される情報端末と接続され、前記情報端末から送信されるデータベースの検索要求に応じて前記データベースを検索し前記情報端末に検索結果を送信する情報処理装置であって、前記データベースは、前記複数の事業者で共通する共通項目に分類されるデータを記憶する基本テーブルと、前記複数の事業者毎に異なる個別項目に分類されるデータを記憶する拡張テーブルと、を含み、前記情報処理装置は、前記情報端末から前記データベースの検索要求を受信し、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を前記検索要求に基づいて特定する受信部と、前記受信部から送信される前記検索要求に基づいて前記共通項目のデータを検索する第１の検索式を生成し、前記共通項目のデータを検索する基本領域検索部と、前記受信部により前記事業者を指定して送信される前記検索要求に基づいて前記指定された事業者の個別項目のデータを検索する第２の検索式を生成し、前記個別項目のデータを検索するテナント固有拡張領域検索部と、前記基本領域検索部が検索した前記共通項目のデータと前記テナント固有拡張領域検索部が検索した前記個別項目のデータとを結合して前記検索結果として前記情報端末に送信するテーブル検索結果マージ部と、を備える。
【００１０】
また、本発明による情報処理装置の制御方法の好ましい一態様は、複数の事業者の少なくとも１つに所属する担当者に使用される情報端末と接続され、前記複数の事業者で共通する共通項目に分類されるデータを記憶する基本テーブルと前記複数の事業者毎に異なる個別項目に分類されるデータを記憶する拡張テーブルとを含むデータベースを備え、前記情報端末から送信される前記データベースの検索要求に応じて前記データベースを検索し前記情報端末に検索結果を送信する情報処理装置の制御方法であって、前記情報処理装置が、前記情報端末から前記データベースの検索要求を受信し、前記情報処理装置が、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を前記検索要求に基づいて特定し、前記情報処理装置が、前記検索要求に基づいて前記共通項目のデータを検索する第１の検索式を生成し、前記共通項目のデータを検索し、前記情報処理装置が、前記事業者を指定して送信される前記検索要求に基づいて前記指定された事業者の個別項目のデータを検索する第２の検索式を生成し、前記個別項目のデータを検索し、前記情報処理装置が、前記検索した前記共通項目のデータと前記検索した前記個別項目のデータとを結合して前記検索結果として前記情報端末に送信する。
【００１１】
また、本発明による情報処理装置の制御プログラムの好ましい一態様は、複数の事業者の少なくとも１つに所属する担当者に使用される情報端末と接続され、前記複数の事業者で共通する共通項目に分類されるデータを記憶する基本テーブルと前記複数の事業者毎に異なる個別項目に分類されるデータを記憶する拡張テーブルとを含むデータベースを備え、前記情報端末から送信される前記データベースの検索要求に応じて前記データベースを検索し前記情報端末に検索結果を送信する情報処理装置に、前記情報端末から前記データベースの検索要求を受信し、前記検索要求を送信してきた情報端末を使用する担当者が所属する事業者を前記検索要求に基づいて特定する処理と、前記検索要求に基づいて前記共通項目のデータを検索する第１の検索式を生成し、前記共通項目のデータを検索する処理と、前記事業者を指定して送信される前記検索要求に基づいて前記指定された事業者の個別項目のデータを検索する第２の検索式を生成し、前記個別項目のデータを検索する処理と、前記検索した前記共通項目のデータと前記検索した前記個別項目のデータとを結合して前記検索結果として前記情報端末に送信する処理と、を実行させる。
【発明の効果】
【００１２】
本発明によれば、データベースを検索する利用者が検索に用いるクエリの保守や更新に要する作業負担を軽減することができるとともにテーブルの拡張性を向上することにある。
【発明を実施するための最良の形態】
【００１３】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。まず第１の実施の形態について説明する。
【００１４】
図１は本発明の第１の実施の形態における情報処理装置の構成例を示すブロック図である。
【００１５】
この情報処理装置は、このデータベースを管理するデータベース管理業者によって管理される。このデータベース管理業者は、このデータベースを利用してサービスを提供する事業者または団体である複数のテナント（特許請求の範囲に記載の事業者に相当する）にデータベースを提供する。各テナントに所属する担当者は情報端末を用いてこのデータベースを独自に拡張して各テナントの顧客であるユーザに関する情報を管理し、または当該情報について検索を行う。
【００１６】
図１を参照すると、本発明の第１の実施の形態における情報処理装置は、情報端末１１０とそれぞれネットワーク１０を介して接続され、記憶部１２０と通信可能に接続されたコンピュータ１００である。なお、コンピュータ１００と記憶部１２０とがネットワーク１０を介して接続されていてもよい。またコンピュータ１００は、記憶部１２０を含んで構成されていてもよい。また、図１を参照すると情報端末１１０が２台接続されているが、これに限られることは無く、１台以上の情報端末１１０とネットワーク１０を介し通信可能に接続されていればよい。
【００１７】
次にコンピュータ１００、情報端末１１０および記憶部１２０について詳細に説明する。
【００１８】
＝＝＝記憶部１２０＝＝＝
まず、記憶部１２０について説明する。記憶部１２０は、図１に示すように、少なくとも基本テーブル１２１及び拡張テーブル１２２を記憶しているデータベースである。
【００１９】
＜基本テーブル１２１＞
基本テーブル１２１は、図２に示すようにテーブルの各カラムに値を対応付け、レコード毎に記憶している。各カラムには当該カラムを識別する共通項目名がそれぞれ付されている。図２の例を参照すると、「テナントＩＤ」、「ユーザＩＤ」、「メールアドレス」、「レコードＩＤ」がそれぞれ共通項目名である。さらに基本テーブル１２１には、各レコードを識別するレコードＩＤがレコード毎に付されている。図２に示すように各レコードＩＤを格納するカラムを基本テーブル１２１に新たに備えていてもよいし、基本テーブル１２１とは別にインデックスとして記憶部１２０に備えていてもよい。図２の例を参照すると、共通項目名が「メールアドレス」のカラムには文字列「ａ＠ｂ．ｃ」、「ｘ＠ｙ．ｚ」、「ｌ＠ｍ．ｎ」、「ｕ＠ｖ．ｗ」、「ｄ＠ｅ．ｆ」、「ｊ＠ｋ．ｌ」、「ｇ＠ｈ．ｉ」、「ｏ＠ｐ．ｑ」がそれぞれ記憶されている。
【００２０】
＜拡張テーブル１２２＞
拡張テーブル１２２は、図３に示すように前述の基本テーブル１２１の各レコードに付されているレコードＩＤと、個別項目名と値との組と、を対応付けて記憶している。個別項目名は値の属性を示している。拡張テーブル１２２の各レコードは、当該レコードに含まれるレコードＩＤが示す基本テーブル１２１のレコードにおける付加的情報という意味を持つ。
【００２１】
図３の例を参照すると、レコードＩＤが２１、個別項目名が「小人人数」、値が「２人」のレコードは、レコードＩＤが２１の基本テーブル１２１のレコードに「小人人数」が「２人」である情報を付加していることを示している。つまり、基本テーブル１２１のレコードＩＤ２１のレコードと拡張テーブル１２２のレコードＩＤが２１、個別項目名が「小人人数」、値が「２人」のレコードとで仮想的に図４に示すようなレコードを構成しているものとする。
【００２２】
基本テーブル１２１に記憶されている各レコードについて、同一のテナントに属するユーザの情報に関するレコード、すなわちテナントを識別するテナントＩＤが共通であるレコードにそれぞれ対応付けられている各レコードＩＤには、拡張テーブル１２２において共通した個別項目名が対応付けられている。例えば、図２の例を参照すると、テナントＩＤが‘１’であるレコードはレコードＩＤとして‘１１’、‘１２’、‘１３’および‘１４’を持つレコードがある。そして、拡張テーブル１２２においてレコードＩＤ‘１１’、‘１２’、‘１３’および‘１４’に対応付けられている個別項目名は「職業」および「ＤＭ可否」という共通の個別項目名である。
【００２３】
＝＝＝情報端末１１０＝＝＝
次に、情報端末１１０について説明する。情報端末１１０は図１に示すように、少なくとも検索式指定部１１１および検索結果表示部１１２を備える。検索式指定部１１１は検索結果表示部１１２と接続されている。
【００２４】
＜検索式指定部１１１＞
担当者が記憶部１２０を検索する条件である検索式を指定すると、検索式指定部１１１は、その指定された検索式をコンピュータ１００へ送信する。担当者は、例えば、検索したい条件を示す情報を図示しない入力手段から検索式指定部１１１に与えることにより記憶部１２０を検索する検索式を指定することができる。
【００２５】
検索式は、テーブルの検索を行うための問い合わせ文であり、少なくとも１又は複数の検索条件を含むものである。検索条件は、テーブルの検索を実現するための条件を示す情報であり、少なくとも共通項目名または個別項目名を含むものである。
【００２６】
また検索式は、データベースに対する操作などを示すコマンド文、または検索式に含まれる各検索条件をつなぎ、‘ａｎｄ’や‘ｏｒ’などの演算を示す演算子をさらに含んでもよい。
【００２７】
例えば、検索式が「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」という文字列であったとすると、「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ」がコマンド文を示し、「‘メールアドレス’＝‘ｌ＠ｍ．ｎ’」、「‘ＤＭ可否’＝‘不可’」がそれぞれ検索条件を示し、「ＯＲ」が演算子を示す。また、この検索式は、「‘メールアドレス’が‘ｌ＠ｍ．ｎ’であるレコード、または‘ＤＭ可否’が‘不可’であるレコードを抽出する」という意味を示している。
【００２８】
担当者が検索式を指定する他の例として、検索式指定部１１１が択一的な選択肢を担当者に提示し、担当者がその中から一つを選択して図示しない入力手段から検索式指定部１１１に与えるようにしてもよい。
【００２９】
検索式指定部１１１は、担当者によって指定された検索式をコンピュータ１００に送信する。そして検索式指定部１１１は送信した検索式に対応する検索結果をコンピュータ１００から取得して検索結果表示部１１２に与える。
【００３０】
＜検索結果表示部１１２＞
検索結果表示部１１２は、検索式指定部１１１から検索結果を受け取り、受け取った検索結果を表示する。
【００３１】
＝＝＝コンピュータ１００＝＝＝
次に、コンピュータ１００について説明する。コンピュータ１００は図１に示すように受信部１０１、基本領域検索部１０２、テナント固有拡張領域検索部１０３ａ、１０３ｂおよびテーブル検索結果マージ部１０４を備える。
【００３２】
受信部１０１は基本領域検索部１０２とテナント固有拡張領域検索部１０３ａ、１０３ｂとそれぞれ接続されている。基本領域検索部１０２は受信部１０１とテーブル検索結果マージ部１０４と接続されている。テナント固有拡張領域検索部１０３ａ、１０３ｂはそれぞれ受信部１０１とテーブル検索結果マージ部１０４とそれぞれ接続されている。
【００３３】
＜受信部１０１＞
コンピュータ１００が情報端末１１０から記憶部１２０を検索する条件である検索式を受け取ると、受信部１０１は、受け取った検索式からテナントを識別するテナントＩＤを特定する。例えば、次のような方法によって特定する。テナントＩＤをあらかじめ検索式に含めて情報端末１１０が送信し、受信部１０１が受信した検索式からテナントＩＤを特定する。上記方法は例示であってこの方法に限られるものではない。
【００３４】
また、受信部１０１は、当該検索式と前述の特定したテナントＩＤとを基本領域検索部１０２に渡すとともに当該検索式を前述の特定したテナントＩＤが示すテナント固有拡張領域検索部１０３に渡す。
【００３５】
各レコードが示すユーザが属するテナントを後述の基本領域検索部１０２が識別するために、基本テーブル１２１は、図２に示すように各テナントを識別するテナントＩＤを格納するカラムをさらに備えていてもよい。または、各レコードのレコードＩＤと当該レコードが示すユーザが属するテナントのテナントＩＤとを対応付けて記憶する図示しないテナントＩＤ対応テーブルを記憶部１２０に備えていてもよい。また、この構成に限られることは無く、各レコードが示すユーザが属するテナントが識別できる構成であればよい。
【００３６】
なお、前述のテナントＩＤの特定においては、次のような方法であってもよい。まず、情報端末１１０を利用する担当者のユーザＩＤを当該情報端末１１０にあらかじめ登録しておく。また、受信部１０１はあらかじめユーザＩＤとテナントＩＤとを対応付けて図５に示すようなユーザＩＤ対応テーブル１０５に記憶しておく。検索式指定部１１１は、担当者に指定された検索式とともに当該検索式を指定した担当者のユーザＩＤをコンピュータ１００に送信する。そして受信部１０１は前述のユーザＩＤ対応テーブルを用いて受信したユーザＩＤに対応付けられたテナントＩＤを特定するようにする。
【００３７】
または、受信部１０１が検索式に含まれる特定の情報からテナントＩＤを特定するという構成であってもよい。これらは例示であって、これらの構成に限られるものではなく、受信部１０１がテナントＩＤを特定できる構成であればよい。
【００３８】
＜基本領域検索部１０２＞
基本領域検索部１０２は、受信部１０１から受け取った検索式に含まれる各検索条件において、基本テーブル１２１に含まれる共通項目名を含む検索条件を用いて基本テーブル１２１の中から各検索条件を満たすレコードをそれぞれ抽出する。そして、基本領域検索部１０２は、抽出されたレコードに含まれるレコードＩＤをテーブル検索結果マージ部１０４に渡す。
【００３９】
また、基本領域検索部１０２は、受信部１０１から受け取ったテナントＩＤをもつレコードを基本テーブル１２１から抽出する。そして、基本領域検索部１０２は、抽出されたレコードを受け取った検索式とともにテーブル検索結果マージ部１０４に渡す。
【００４０】
検索条件を用いた検索においては、基本領域検索部１０２は、受け取った検索式をそのまま利用して検索を実行してもよい。または、次のような方法で実現してもよい。基本領域検索部１０２は、受け取った検索式のうち基本テーブル１２１に含まれる共通項目名を含む検索条件を抽出する図示しない変換部をさらに備えておく。そして、前述の変換部が新たな検索式を生成する。基本領域検索部１０２は前述の変換部で生成された検索式を用いて検索を実行する。または、前述の変換部は基本テーブル１２１に含まれる共通項目名を含まない検索条件を、恒真を示す情報に変換することで新たな検索式を生成するような構成であってもよい。前述の変換部に、基本テーブル１２１に含まれる共通項目名を図６に示すような共通項目名対応テーブル１０６に記憶しておき、基本領域検索部１０２が、前述の変換部に記憶されている共通項目名が当該検索条件に含まれているか否かに応じて検索条件の抽出を実現するように構成してもよい。これらは例示であって上記の方法に限られるものではない。
【００４１】
＜テナント固有拡張領域１０３＞
テナント固有拡張領域検索部１０３は、テナント毎にそれぞれコンピュータ１００に備えられる。テナント固有拡張領域検索部１０３は、受信部１０１から検索式を受け取ると、当該検索式に含まれる検索条件毎に拡張テーブル１２２を検索する。そして、テナント固有拡張領域検索部１０３は、検索した結果をテーブル検索結果マージ部１０４に渡す。
【００４２】
検索条件を用いた検索においては、テナント固有拡張領域検索部１０３は、受け取った検索式をそのまま利用して検索を実行してもよい。または、次のような方法で実現してもよい。テナント固有拡張領域検索部１０３は、受け取った検索式のうち拡張テーブル１２２に含まれる個別項目名を含む検索条件を抽出する図示しない変換部をさらに備えておく。そして、前述の変換部が新たな検索式を生成する。テナント固有拡張領域検索部１０３は前述の変換部で生成された検索式を用いて検索を実行する。または、前述の変換部は拡張テーブル１２２に含まれる個別項目名を含まない検索条件を、恒真を示す情報に変換することで新たな検索式を生成するような構成であってもよい。前述の変換部に、拡張テーブル１２２に含まれる個別項目名を図７に示すような個別項目名対応テーブル１０７に記憶しておき、テナント固有拡張領域検索部１０３が、前述の変換部に記憶されている個別項目名が当該検索条件に含まれているか否かに応じて検索条件の抽出を実現するように構成してもよい。これらは例示であって上記の方法に限られるものではない。
【００４３】
本実施の形態においてはテナントの数が２の場合を示す。この場合、コンピュータ１００にはテナントＩＤ‘１’に対応するテナント固有拡張領域検索部１０３ａとテナントＩＤ‘２’に対応するテナント固有拡張領域検索部１０３ｂとを備える。本実施の形態においてはテナントの数が２の場合を示すが、テナントの数はこれに限られるものではなく少なくとも１つあればいくつであってもよい。
【００４４】
また、テナント固有拡張領域検索部１０３は、後述のテーブル検索結果マージ部１０４からレコードＩＤを受け取ると、そのレコードＩＤを持つレコードを拡張テーブル１２２から抽出し、抽出したレコードをテーブル検索結果マージ部１０４に渡す。
【００４５】
＜テーブル検索結果マージ部１０４＞
テーブル検索結果マージ部１０４は、基本領域検索部１０２からは検索式と検索結果とレコードＩＤとを、テナント固有拡張領域検索部１０３からは検索結果を、それぞれ受け取る。次にテーブル検索結果マージ部１０４は受け取ったレコードＩＤを、検索結果を渡してきたテナント固有拡張領域検索部１０３に渡す。次にテーブル検索結果マージ部１０４はテナント固有拡張領域検索部１０３から前述のレコードＩＤに対応付けられているレコードを受け取る。次に、テーブル検索結果マージ部１０４は基本領域検索部１０２から受け取った検索式に基づいてそれぞれ受け取った検索結果をマージする。次にテーブル検索結果マージ部１０４はコンピュータ１００に検索式を送信してきた情報端末１１０に、マージしたレコードを送信する。
【００４６】
各検索結果がどの検索条件を用いて検索された結果かを識別できるように、例えば、基本領域検索部１０２およびテナント固有拡張領域検索部１０３はレコードＩＤ又は検索結果をテーブル検索結果マージ部１０４に渡す際に、当該検索結果を得るために用いられた検索条件と対応付けて渡してもよい。上記は例示であってこの方法に限られるものではない。
【００４７】
マージの手順は以下の通りである。初めにテーブル検索結果マージ部１０４は基本領域検索部１０２から受け取ったレコードＩＤを、検索結果を送ってきたテナント固有拡張領域検索部１０３に渡す。テナント固有拡張領域検索部１０３は受け取ったレコードＩＤを持つレコードを抽出して、抽出されたレコードをテーブル検索結果マージ部１０４に渡す。テーブル検索結果マージ部１０４はテナント固有拡張領域検索部１０３から受け取ったレコードと前述のレコードＩＤに対応付けられていた検索条件とを新たに対応付け、当該検索条件を用いて検索して得られた結果を前述のレコードとみなす。
【００４８】
次に、検索式に含まれる検索条件と各検索条件をつなぐ演算子に基づいてレコードＩＤの抽出を行う。以下、‘Ａ’、‘Ｂ’をそれぞれ検索条件とする。検索条件‘Ａ’によって得られた検索結果に含まれるレコードＩＤと検索条件‘Ｂ’によって得られた検索結果に含まれるレコードＩＤとの論理積を取り、得られたレコードＩＤが示すレコードを検索条件‘Ａ  ａｎｄ  Ｂ’を検索したときの検索結果とする。また、検索条件‘Ａ’によって得られた検索結果に含まれるレコードＩＤと検索条件‘Ｂ’によって得られた検索結果に含まれるレコードＩＤとの論理和を取り、得られたレコードＩＤが示すレコードを検索条件‘Ａ  ｏｒ  Ｂ’を検索したときの検索結果とする。この操作を、受け取った検索式を基に繰り返して行う。
【００４９】
次に、上記手順で得られた検索結果と、基本領域検索部１０２から受け取った、テナントＩＤを基に検索した検索結果と、を結合する。結合方法は、それぞれの検索結果中のレコードＩＤを持つレコード同士を結合することで実現する。
【００５０】
最後に、マージしたレコードを出力する。
【００５１】
次に、上記構成例の動作について説明する。
【００５２】
図８は、本発明の第１の実施の形態の動作の概要を示すシーケンス図である。
【００５３】
まず、担当者は、情報端末１１０内の検索式指定部１１１により検索式を指定する。検索式指定部１１１は、指定された検索式をコンピュータ１００に送信する（ステップＳ１００１）。受信部１０１は、コンピュータ１００が受け取った検索式からテナントＩＤを特定し、受け取った検索式と特定されたテナントＩＤとを基本領域検索部１０２に渡す（ステップＳ１００２）とともに、特定されたテナントＩＤに対応するテナント固有拡張領域検索部１０３に受け取った検索式を渡す（ステップＳ１００３）。
【００５４】
基本領域検索部１０２は、受け取った検索式に含まれる検索条件のうち基本テーブル１２１に含まれる共通項目名を含む検索条件を用いて基本テーブル１２１の検索を行い、検索結果に含まれるレコードＩＤをテーブル検索結果マージ部１０４に渡す（ステップＳ１００４）とともに受け取ったテナントＩＤを持つレコードを基本テーブル１２１から検索し、検索結果と受け取った検索式とをテーブル検索結果マージ部１０４に渡す（ステップＳ１００５）。テナント固有拡張領域検索部１０３は、受信部１０１から検索式を受け取ると、受け取った検索式に含まれる検索条件毎に拡張テーブル１２２を検索し、検索結果をそれぞれテーブル検索結果マージ部１０４に渡す（ステップＳ１００６）。
【００５５】
次に、テーブル検索結果マージ部１０４は、基本領域検索部１０２から検索式と検索結果とレコードＩＤとを、テナント固有拡張領域検索部１０３から検索結果を、それぞれ受け取り、マージを行う。さらにテーブル検索結果マージ部１０４は、ステップＳ１００１にて検索式を送信してきた情報端末１１０にマージした結果を送信する（ステップＳ１００７）。次に、検索式指定部１１１はコンピュータ１００から検索結果を受け取り、検索結果表示部１１２に渡す。検索結果表示部１１２は、検索式指定部１１１から検索結果を受け取り、その検索結果を表示する（ステップＳ１００８）。
【００５６】
第１の実施の形態では、情報端末１１０から送信され、共通項目名または個別項目名を含む検索式から、基本領域検索部１０２が検索式に含まれる検索条件毎に基本テーブル１２１を、テナント固有拡張領域検索部１０３が検索式に含まれる検索条件毎に拡張テーブル１２２を、それぞれ検索し、テーブル検索結果マージ部１０４がそれぞれの検索結果をマージする。担当者は検索式に含まれる共通項目名又は個別項目名が基本テーブル１２１に含まれているか拡張テーブル１２２に含まれているかを意識することなく検索を行うことが可能となる。なぜなら基本領域検索部１０１およびテナント固有拡張領域検索部１０３がそれぞれ検索条件毎に共通項目名を含むか否か、又は個別項目名を含むか否か判定し、判定の結果に応じた検索式を生成して検索を行うからである。また、担当者が検索の際に指定するクエリには各カラムが属するテーブルを指定する必要はないので、テーブル構造が変化されても、その変化に応じてクエリを変更する必要が無くなり、クエリの保守作業負担を低減することができる。
【００５７】
また、このような構成によれば、新たなテナントを追加する際に、テナント固有拡張領域検索部１０３を新たにコンピュータ１００に備えることで、新たなテナントに所属する担当者はシステムが使用可能となり、テナントを増やす拡張作業負担を低減することができる。このテナント追加時においても既存のテナントにおける検索方法を変更する必要が無い。なぜなら、テナント毎にテーブルを検索するテナント固有拡張領域検索部１０３をコンピュータ１００に備え、各テナント固有拡張領域検索部１０３はそれぞれが当該テナントの個別項目を検索する検索式を生成しているからである。
【００５８】
第１の実施の形態において、基本領域検索部１０２は検索条件を基に検索した検索結果に含まれるレコードＩＤの代わりに当該検索結果のレコードをテーブル検索結果マージ部１０４に送るようにし、テーブル検索結果マージ部１０４は受け取ったレコードに含まれるレコードＩＤを、検索結果を送ってきたテナント固有拡張領域検索部１０３に渡すようにしてもよい。
【００５９】
次に第２の実施の形態について説明する。
【００６０】
図９は本発明の第２の実施の形態における情報処理装置の構成例を示すブロック図である。
【００６１】
図９を参照すると、本発明の第２の実施の形態における情報処理装置は、情報端末１１０とそれぞれネットワーク１０を介して接続され、記憶部２２０と通信可能に接続されたコンピュータ２００である。なお、コンピュータ２００と記憶部２２０とがネットワーク１０を介して接続されていてもよい。またコンピュータ２００は、記憶部２２０を含んで構成されていてもよい。また、図９を参照すると情報端末１１０が２台接続されているが、これに限られることは無く、１台以上の情報端末１１０とネットワーク１０を介し通信可能に接続されていればよい。ここでは第２の実施の形態の第１の実施の形態と異なる点のみを説明し、同様の構成については、同様の符号を付して説明を省略する。
【００６２】
＝＝＝記憶部２２０＝＝＝
記憶部２２０について説明する。記憶部２２０は、図９に示すように少なくとも基本テーブル２２１および拡張テーブル１２２を記憶している。拡張テーブル１２２は第１の実施の形態における拡張テーブル１２２と同様である。
【００６３】
＜基本テーブル２２１＞
基本テーブル２２１は、図１０に示すように第１の実施の形態における基本テーブル１２１の構成において、各カラムには当該カラムを識別する共通項目名又は拡張項目名が付されている点が異なる。
【００６４】
共通項目名は各カラムを識別するとともに当該カラムに記憶されている値の属性を示している。拡張項目名は各カラムを識別するためのものである。また、各拡張項目名は後述の領域名対応テーブル２０８にそれぞれ個別項目名と対応付けられて記憶されている。例えば図１０の例を参照すると、各カラムを識別するとともに当該カラムに記憶されている値の属性を示す「ユーザＩＤ」および「メールアドレス」が共通項目名、各カラムを識別する「拡張領域１」、「拡張領域２」および「拡張領域３」が拡張項目名となる。
【００６５】
拡張項目名で識別されるカラムには、テナント毎に異なる属性の値が記憶される。例えば、テナントＩＤが‘１’のレコードにおいては、「拡張領域２」のカラムに「５００万円台」、「７００万円台」という数量を示す文字列が、テナントＩＤが‘２’のレコードにおいては、「拡張領域２」のカラムに「一戸建て」、「集合住宅」という居住形態を示す文字列が、それぞれ記憶されている。
【００６６】
＝＝＝コンピュータ２００＝＝＝
次にコンピュータ２００について説明する。コンピュータ２００は、第１の実施の形態におけるコンピュータ１００に含まれるテナント固有拡張領域検索部１０３ａ、１０３ｂを、テナント固有拡張領域検索部２０３ａ、２０３ｂにそれぞれ置き換えた点でコンピュータ１００と異なる。テナント固有拡張領域検索部２０３ａ、２０３ｂはそれぞれ受信部１０１とテーブル検索結果マージ部１０４とそれぞれ接続されている。
【００６７】
＜テナント固有拡張検索部２０３＞
テナント固有拡張領域検索部２０３は、テナント毎にそれぞれコンピュータ１００に備えられる。テナント固有拡張領域検索部２０３は、受信部１０１から検索式を受け取ると、領域名対応テーブル２０８を用いて当該検索式に含まれる検索条件毎に基本テーブル２２１または拡張テーブル１２２を検索するか判定したうえで判定の結果に応じたテーブルを検索し、検索した結果をテーブル検索結果マージ部１０４に渡す。前述の判定は、受け取った検索式に含まれる各検索条件について、当該検索条件に含まれる個別項目名が領域名対応テーブル２０８に含まれているか否かによって行う。
【００６８】
領域名対応テーブル２０８は、各テナント固有拡張領域検索部２０３に備えられ、個別項名と拡張項目名とを対応付けて記憶するものである。図１１は、テナント固有拡張領域検索部２０３ａ、２０３ｂにそれぞれ備えられている領域名対応テーブル２０８ａ、２０８ｂをそれぞれ示している。テナント固有拡張領域検索部２０３は、受け取った検索式に含まれる各検索条件について、当該検索条件に含まれる個別項目名が領域名対応テーブル２０８に含まれているか否か調べる。含まれている場合にはテナント固有拡張領域検索部２０３は前述の検索条件に含まれる個別項目名を当該個別項目名に対応付けられている拡張項目名で置換する。そして、テナント固有拡張領域検索部２０３は当該拡張項目名に置換された検索条件を用いて、当該検索条件を満たすレコードを基本テーブル２２１から抽出する。さらにテナント固有拡張領域検索部２０３は、抽出されたレコードに含まれるレコードＩＤを持つレコードを拡張テーブル１２２から抽出し、拡張テーブル１２２から抽出されたレコードをテーブル検索結果マージ部１０４に渡す。
【００６９】
一方、受け取った検索式に含まれる各検索条件について、当該検索条件に含まれる個別項目名が領域名対応テーブル２０８に含まれていない場合にはテナント固有拡張領域検索部２０３は当該検索条件を満たすレコードを拡張テーブル１２２から抽出する。そして、テナント固有拡張領域検索部２０３は拡張テーブル１２２から抽出されたレコードをテーブル検索結果マージ部１０４に渡す。
【００７０】
第２の実施の形態では、第１の実施の形態と同様の効果を奏する。
【００７１】
次に第３の実施の形態について説明する。
【００７２】
図１２は本発明の第３の実施の形態における情報処理装置の構成例を示すブロック図である。
【００７３】
図１２を参照すると、本発明の第３の実施の形態における情報処理装置は、情報端末１１０とそれぞれネットワーク１０を介して接続され、記憶部２２０と通信可能に接続されたコンピュータ３００である。なお、コンピュータ３００と記憶部２２０とがネットワーク１０を介して接続されていてもよい。またコンピュータ３００は、記憶部２２０を含んで構成されていてもよい。また、図１２を参照すると情報端末１１０が２台接続されているが、これに限られることは無く、１台以上の情報端末１１０とネットワーク１０を介し通信可能に接続されていればよい。ここでは第３の実施の形態の第２の実施の形態と異なる点のみを説明し、同様の構成については、同様の符号を付して説明を省略する。
【００７４】
＝＝＝コンピュータ３００＝＝＝
コンピュータ３００について説明する。コンピュータ３００は、第２の実施の形態におけるコンピュータ２００に含まれるテナント固有拡張領域検索部２０３ａ、２０３ｂを、テナント固有拡張領域検索部３０３に置き換えた点、および受信部１０１を受信部３０１に置き換えた点でコンピュータ２００と異なる。テナント固有拡張領域検索部３０３はそれぞれ受信部３０１とテーブル検索結果マージ部１０４とそれぞれ接続されている。受信部３０１は基本領域検索部１０２とテナント固有拡張領域検索部３０３とそれぞれ接続されている。
【００７５】
＜受信部３０１＞
受信部３０１は、受信部１０１の構成において、情報端末１１０から受け取った検索式を受信部１０１が特定したテナントＩＤが示すテナント固有拡張領域検索部に渡す代わりに、情報端末１１０から受け取った検索式と受信部３０１が特定したテナントＩＤとをテナント固有拡張領域検索部３０３に渡すという点が受信部１０１と異なる。
【００７６】
＜テナント固有拡張領域検索部３０３＞
テナント固有拡張領域検索部３０３は、受信部３０１から検索式とテナントＩＤとを受け取ると、領域名対応テーブル３０８を用いて当該検索式に含まれる検索条件毎に基本テーブル２２１または拡張テーブル１２２を検索するか判定したうえで判定の結果に応じたテーブルを検索し、検索した結果をテーブル検索結果マージ部１０４に渡す。前述の判定は、受け取った検索式に含まれる各検索条件について、当該検索条件に含まれる個別項目名と受け取ったテナントＩＤとが対応付けられて領域名対応テーブル３０８に含まれているか否かによって行う。
【００７７】
領域名対応テーブル３０８は、テナント固有拡張領域検索部３０３に備えられ、個別項名と拡張項目名とテナントＩＤとを対応付けて記憶するものである。図１３は、テナント固有拡張領域検索部３０３に備えられている領域名対応テーブル３０８を示している。テナント固有拡張領域検索部３０３は、受け取った検索式に含まれる各検索条件について、当該検索条件に含まれる個別項目名が受け取ったテナントＩＤと対応付けられて領域名対応テーブル３０８に記憶されているか否か調べる。記憶されている場合にはテナント固有拡張領域検索部３０３は前述の検索条件に含まれる個別項目名を当該個別項目名に対応付けられている拡張項目名で置換する。そして、テナント固有拡張領域検索部３０３は当該拡張項目名に置換された検索条件を用いて、当該検索条件を満たすレコードを基本テーブル２２１から抽出する。さらにテナント固有拡張領域検索部３０３は、抽出されたレコードに含まれるレコードＩＤを持つレコードを拡張テーブル１２２から抽出し、拡張テーブル１２２から抽出されたレコードをテーブル検索結果マージ部１０４に渡す。
【００７８】
一方、受け取った検索式に含まれる各検索条件について、当該検索条件に含まれる個別項目名が受け取ったテナントＩＤと対応付けられて領域名対応テーブル２０８に記憶されていない場合には、テナント固有拡張領域検索部３０３は当該検索条件を満たすレコードを拡張テーブル１２２から抽出する。そして、テナント固有拡張領域検索部３０３は拡張テーブル１２２から抽出されたレコードをテーブル検索結果マージ部１０４に渡す。
【００７９】
第３の実施の形態では、テナント固有拡張領域検索部３０３がテナントＩＤを受け取り、テナント固有拡張領域検索部３０３に備えられている領域名対応テーブル３０８を基に受け取ったテナントＩＤに対応付けられた個別項目名および拡張項目名と受け取った検索式とから新たな検索式を生成する。テナント固有拡張領域検索部３０３はこの検索式を用いて検索を行う。担当者は検索式に含まれる共通項目名又は個別項目名が基本テーブル１２１に含まれているか拡張テーブル１２２に含まれているかを意識することなく検索を行うことが可能となる。
【００８０】
また、このような構成によれば、新たなテナントを追加する際に、テナント固有拡張領域検索部３０３に備えられている領域名対応テーブル３０８を更新することで、システムが使用可能となり、テナントを増やす拡張作業負担を低減することができる。このテナント追加時においても既存のテナントにおける検索方法を変更する必要が無い。なぜなら、領域名対応テーブル３０８はテナント毎に検索式を生成するための情報として拡張項目名と個別項目名とを対応付けて記憶し、テナント固有拡張領域検索部３０３はこの領域名対応テーブル３０８に基づいて各テナントの個別項目を検索する検索式を生成しているからである。
【００８１】
次に第４の実施の形態について説明する。第４の実施の形態は第１の実施の形態を、具体例を用いて詳細に説明するものである。
【００８２】
情報端末１１０は、少なくとも中央演算装置（ＣＰＵ）、メモリおよびネットワークインタフェースを備えるパーソナル・コンピュータであり、入力手段としてキーボード又はマウスを、表示手段としてディスプレイを備える。また、パーソナル・コンピュータ内のＣＰＵは、メモリ上に展開されたプログラムを解釈実行することにより、図１に示すような、検索式指定部１１１および検索結果表示部１１２として機能する。
【００８３】
コンピュータ１００は、サーバ装置であり、少なくともＣＰＵ、メモリおよびネットワークインタフェースを備える。フレキシブルディスクやＣＤ−ＲＯＭなどのコンピュータで読み取り可能な記録媒体を読み取るための読取装置や、磁気記憶装置を備えていてもよい。コンピュータ１００は、ネットワークインタフェースから受信したプログラムコードをメモリ上に展開し、あるいは、ＣＤ−ＲＯＭ又は磁気記憶装置などに記憶されたプログラムコードを読み出してメモリ上に展開し、展開されたプログラムコードをＣＰＵが解釈実行することで図１に示すような受信部１０１、基本領域検索部１０２、テナント固有拡張領域検索部１０３およびテーブル検索結果マージ部１０４として各種機能を実現するコンピュータとして動作する。
【００８４】
磁気記憶装置には、図５で示すように担当者を識別するユーザＩＤとテナントを識別するテナントＩＤとが対応付けられて記憶されている。また、磁気記憶装置には、図６で示すように基本テーブル１２１に含まれている共通項目名が共通項目名対応テーブル１０６として、図７で示すように拡張テーブル１２２に含まれている個別項目名が個別項目名対応テーブル１０７として記憶されている。
【００８５】
記憶部１２０はいわゆる記憶装置であり、少なくともネットワークインタフェースおよび磁気記憶装置を備える。磁気記憶装置には、図２および図３に示すような基本テーブル１２１と拡張テーブル１２２とがそれぞれ記憶されている。
【００８６】
今、テナントＩＤ‘１’のテナントに所属する担当者は、メールアドレスが‘ｌ＠ｍ．ｎ’であるユーザ又はＤＭ可否が‘不可’であるテナントＩＤ‘１’のテナントのユーザの情報を取得したいとする。
【００８７】
まず、担当者によって情報端末１１０のキーボードなどの入力手段が操作され、プログラムが起動される。すなわち、情報端末１１０のメモリ上にプログラムが展開され、ＣＰＵがそのプログラムを解釈実行する。ＣＰＵは情報端末１１０の備えるディスプレイに検索式を指定させるための映像を表示し、担当者からの入力を待つ。担当者はキーボード又はマウスなどの入力手段により検索式および担当者のユーザＩＤを指定する。本実施の形態では検索式として、「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」が、ユーザＩＤとして‘１００００’が、それぞれ指定されたとする。
【００８８】
この検索式に含まれる検索条件は、「‘メールアドレス’＝‘ｌ＠ｍ．ｎ’」、「‘ＤＭ可否’＝‘不可’」の２つとなる。また、個別項目名は、「ＤＭ可否」の１つとなる。共通項目名は、「メールアドレス」の１つとなる。
【００８９】
また、前述の検索式では「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ」がコマンド文に相当し、この検索式は、「‘ＷＨＥＲＥ’以降にある各検索条件を満たすレコードの全項目を抽出する」ことを意味する。
【００９０】
担当者が検索式を入力すると、情報端末の検索式指定部１１１は、指定された検索式を、ネットワークインタフェースおよびネットワークを通じてコンピュータ１００へ送信する。
【００９１】
コンピュータ１００の受信部１０１は検索式として、「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」を、ユーザＩＤとして‘１００００’を、それぞれネットワークインタフェースを通して受信すると、ユーザＩＤ‘１００００’に対応付けられているテナントＩＤがコンピュータ１００の磁気記憶装置に記憶されているかどうかを調べる。本実施の形態では‘１００００’に対応するテナントＩＤとして‘１’が記憶されているため、受信部１０１は、‘１’を磁気記憶装置から読み出す。
【００９２】
受信部１０１は、受信した検索式「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」と読み出したテナントＩＤの‘１’とをコンピュータ１００の基本領域検索部１０２に渡すとともに、当該検索式を当該テナントＩＤが示すコンピュータ１００のテナント固有拡張領域検索部１０３に渡す。
【００９３】
次にコンピュータ１００の基本領域検索部１０２は、検索式「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」からこの検索式を構成する検索条件とコマンド文とを抽出する。この検索式を構成する検索条件は「‘メールアドレス’＝‘ｌ＠ｍ．ｎ’」、「‘ＤＭ可否’＝‘不可’」という各文字列である。また、この検索式を構成するコマンド文は「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ」という文字列である。これらの文字列を抽出するために特定の語を予約語とし、その語を目印にして抽出する方法がある。例えば、検索式に含まれる‘ＷＨＥＲＥ’をコマンド文と検索条件との境界の予約語とする。そして、検索式における‘ＷＨＥＲＥ’の前までの文字列をコマンド文、それ以降の文字列を１又は複数の検索条件とする。また、検索式に含まれる‘ＯＲ’または‘ＡＮＤ’を各検索条件の境界の予約語とする。そして、検索式における１又は複数の検索条件を‘ＯＲ’または‘ＡＮＤ’で区切り、各検索条件を抽出する。もちろん予約語はこれに限定されず、空白文字、句読点、特殊文字その他の境界を示す記号であればよい。また予約語は必須ではなく、無くてもよい。
【００９４】
次に基本領域検索部１０２は、各検索条件について磁気記憶装置に記憶されている共通項目名対応テーブル１０６を用いて共通項目名を含んでいるか否か調べる。そして基本領域検索部１０２は検索条件に共通項目名が含まれている検索条件のみを抽出する。本実施の形態の場合、図６に示すように‘メールアドレス’が共通項目名として記憶されており、‘ＤＭ可否’は共通項目名として記憶されていないので、基本領域検索部１０２は「‘メールアドレス’＝‘ｌ＠ｍ．ｎ’」を抽出する。そして基本領域検索部１０２は抽出された検索条件毎にコマンド文を組み合わせて新たな検索式とし、新たな検索式毎に基本テーブル１２１を検索する。本実施の形態の場合、基本領域検索部１０２は「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’」という新たな検索式を生成し、基本テーブル１２１を検索する。この新たな検索式は「‘メールアドレス’が‘ｌ＠ｍ．ｎ’であるレコードの全項目を抽出する」指示であることを意味する。基本領域検索部１０２は検索式に含まれている文字列‘メールアドレス’という共通項目名をもつカラムを基本テーブル１２１から探し、次に探してきたカラムにこの検索式に含まれている文字列‘ｌ＠ｍ．ｎ’を含むか否かを調べる。そして、基本領域検索部１０２はこの文字列‘ｌ＠ｍ．ｎ’を含むレコードを検索結果として得る。すると、図１４（ａ）に示すレコードが検索結果として得られる。次に基本領域検索部１０２は、検索結果に含まれるレコードＩＤの‘１２’と検索条件「‘メールアドレス’＝‘ｌ＠ｍ．ｎ’」を対応付けてコンピュータ１００のテーブル検索結果マージ部１０４に渡すとともに、受け取った検索式「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」をテーブル検索結果マージ部１０４に渡す。
【００９５】
次に基本領域検索部１０２は、磁気記憶装置から読み出したテナントＩＤの‘１’を持つレコードを基本テーブル１２１から検索する。本実施の形態の場合、例えば基本領域検索部１０２が「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘テナントＩＤ’＝‘１’」という新たな検索式を生成し、基本テーブル１２１を検索する、というように実現してもよい。この場合、図１４（ｂ）に示すレコードが検索結果として得られる。次に基本領域検索部１０２は、検索結果として得たレコードをテーブル検索結果マージ部１０４に渡す。
【００９６】
次にテナントＩＤを受信部１０１から受け取ったテナント固有拡張領域検索部１０３は、各検索条件について磁気記憶装置に記憶されている個別項目名対応テーブル１０７を用いて個別項目名を含んでいるか否か調べる。そしてテナント固有拡張領域検索部１０３は検索条件に個別項目名が含まれている検索条件のみを抽出する。本実施の形態の場合、図７に示すように‘ＤＭ可否’が個別項目名として記憶されており、‘メールアドレス’は個別項目名として記憶されていないので、テナント固有拡張領域検索部１０３は「‘ＤＭ可否’＝‘不可’」を抽出する。そして抽出された検索条件毎にコマンド文を組み合わせて新たな検索式とし、新たな検索式毎に拡張テーブル１２２を検索する。本実施の形態の場合、テナント固有拡張領域検索部１０３は「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘ＤＭ可否’＝‘不可’」という新たな検索式を生成し、拡張テーブル１２２を検索する。この新たな検索式は「‘ＤＭ可否’が‘不可’であるレコードの全項目を抽出する」指示であることを意味する。テナント固有拡張領域検索部１０３は検索式に含まれている文字列‘ＤＭ可否’という個別項目名をもつカラムを拡張テーブル１２２から探し、次に探してきたカラムにこの検索式に含まれている文字列‘不可’を含むか否かを調べる。そして、テナント固有拡張領域検索部１０３はこの文字列‘不可’を含むレコードを検索結果として得るとともに、当該検索結果に含まれるレコードＩＤを持つレコードも検索結果として得る。すると、図１４（ｃ）に示すようなレコードが検索結果として得られる。次にテナント固有拡張領域検索部１０３は、検索結果として得たレコードと検索条件「‘ＤＭ可否’＝‘不可’」とを対応付けてテーブル検索結果マージ部１０４に渡す。
【００９７】
次にテーブル検索結果マージ部１０４は、基本領域検索部１０２からは検索式「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」と図１４（ｂ）に示すレコードとレコードＩＤの‘１２’とを、テナント固有拡張領域検索部１０３からは図１４（ｃ）に示すようなレコードを、それぞれ受け取る。そしてテーブル検索結果マージ部１０４は、基本領域検索部１０２から受け取ったレコードＩＤの‘１２’を、検索結果を渡してきたテナント固有拡張領域検索部１０３に渡す。テナント固有拡張領域検索部１０３は、受け取ったレコードＩＤの‘１２’を持つレコードを拡張テーブルから検索し、検索結果として図１４（ｄ）に示すようなレコードを得る。テナント固有拡張領域検索部１０３は、検索結果として得たレコードをテーブル検索結果マージ部１０４に渡す。テーブル検索結果マージ部１０４は、テナント固有拡張領域検索部１０３から図１４（ｄ）に示すようなレコードを受け取る。テーブル検索結果マージ部１０４は、この受け取ったレコードとテナント固有拡張領域検索部１０３に送信したレコードＩＤに対応付けられた検索条件とを対応付ける。すなわち、‘メールアドレス’＝‘ｌ＠ｍ．ｎ’と図１４（ｄ）に示すようなレコードとを対応付ける。
【００９８】
次に、テーブル検索結果マージ部１０４は、基本領域検索部１０２から受け取った検索式に基づいて受け取った検索結果をマージする。それぞれの検索結果には当該検索結果を得るために用いた検索条件が対応付けられており、各検索条件と当該検索条件間をつなぐ演算子に基づいてマージする。まずテーブル検索結果マージ部１０４は検索式「ＳＥＬＥＣＴ  ＊  ＷＨＥＲＥ  ‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」の最初の検索条件「メールアドレス’＝‘ｌ＠ｍ．ｎ’」、二番目の検索条件「ＤＭ可否’＝‘不可’」とそれらをつなぐ演算子‘ＯＲ’を参照する。「メールアドレス’＝‘ｌ＠ｍ．ｎ’」に対応付けられた検索結果（図１４（ｄ））に含まれるレコードＩＤは‘１２’、「‘ＤＭ可否’＝‘不可’」に対応付けられた検索結果（図１４（ｃ））に含まれるレコードＩＤは、‘１１’、‘１３’であり、それらを‘ＯＲ’でつないでいるので、それらの論理和をとる。得られたレコードＩＤが示すレコード（図１５（ｅ））を検索条件「‘メールアドレス’＝‘ｌ＠ｍ．ｎ’  ＯＲ  ‘ＤＭ可否’＝‘不可’」を用いて検索したときの検索結果とする。
【００９９】
次にテーブル検索結果マージ部１０４は、検索結果（図１５（ｅ））と基本領域検索部１０２から受け取ったレコード（図１４（ｂ））とを結合する。結合方法は、それぞれの検索結果中のレコードＩＤを持つレコード同士を結合することで実現する。マージの結果、図１５（ｆ）のレコードが得られる。
【０１００】
次にテーブル検索結果マージ部１０４は図１５（ｆ）のレコードを検索式とユーザＩＤとを送信してきた情報端末１１０に送信する。検索式指定部１１１は受け取った図１５（ｆ）のレコードを検索結果表示部１１２に表示させる。
【０１０１】
なお上記説明において図１４および図１５では説明のため各カラムの名前を付しているが、実際にはこれらの項目は付いていなくてもよい。
【０１０２】
以上、これまで述べてきた各実施の形態は、本発明の好適な実施形態であり、上記実施の形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１０３】
また、本発明の各実施の形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述して各実施の形態における構成要素として機能させる。
【産業上の利用可能性】
【０１０４】
本発明によれば、SaaS(Software as a Service)によるマルチテナントへのサービス提供といった用途に適用できる。
【図面の簡単な説明】
【０１０５】
【図１】本発明を実施するための第１の実施の形態の構成を示すブロック図である。
【図２】基本テーブル１２１の具体例を示す図である。
【図３】拡張テーブル１２２の具体例を示す図である。
【図４】仮想的なレコードの具体例を示す図である。
【図５】ユーザＩＤ対応テーブル１０５の具体例を示す図である。
【図６】共通項目名対応テーブル１０６の具体例を示す図である。
【図７】個別項目名対応テーブル１０７の具体例を示す図である。
【図８】本発明を実施するための第１の実施の形態の処理フローを示す図である。
【図９】本発明を実施するための第２の実施の形態の構成を示すブロック図である。
【図１０】基本テーブル２２１の具体例を示す図である。
【図１１】領域名対応テーブル２０８ａ、２０８ｂの具体例を示す図である。
【図１２】本発明を実施するための第３の実施の形態の構成を示すブロック図である。
【図１３】領域名対応テーブル３０８の具体例を示す図である。
【図１４】本発明を実施するための第４の実施の形態において、各検索の動作の詳細な説明をするための図である。（ａ）本発明を実施するための第４の実施の形態において、基本領域検索部１０２が検索条件を基に検索した結果を示す。（ｂ）本発明を実施するための第４の実施の形態において、基本領域検索部１０２がテナントＩＤを基に検索した結果を示す。（ｃ）本発明を実施するための第４の実施の形態において、テナント固有拡張領域検索部１０３が検索条件を基に検索した結果を示す。（ｄ）本発明を実施するための第４の実施の形態において、テナント固有拡張領域検索部１０３がテーブル検索結果マージ部から受け取ったレコードＩＤを基に検索した結果を示す。
【図１５】本発明を実施するための第４の実施の形態において、各検索およびマージの動作の詳細な説明をするための図である。（ｅ）テーブル検索結果マージ部１０４が、基本領域検索部１０２から受け取った検索式に基づいて受け取った検索結果をマージした結果を示す。（ｆ）検索結果として得られたレコードを示す。
【符号の説明】
【０１０６】
１０  ネットワーク
１００  コンピュータ
１０１  受信部
１０２  基本領域検索部
１０３ａ、１０３ｂ  テナント固有拡張領域検索部
１０４  テーブル検索結果マージ部
１０５  ユーザＩＤ対応テーブル
１０６  共通項目名対応テーブル
１０７  個別項目名対応テーブル
１１０  情報端末
１１１  検索式指定部
１１２  検索結果表示部
１２０  記憶部
１２１  基本テーブル
１２２  拡張テーブル
２００  コンピュータ
２０３ａ、２０３ｂ  テナント固有拡張領域検索部
２０８ａ、２０８ｂ  領域名対応テーブル
２２０  記憶部
２２１  基本テーブル
３００  コンピュータ
３０１  受信部
３０３  テナント固有拡張領域検索部
【図１】
0005358981.tif 000002
【図２】
0005358981.tif 000003
【図３】
0005358981.tif 000004
【図４】
0005358981.tif 000005
【図５】
0005358981.tif 000006
【図６】
0005358981.tif 000007
【図７】
0005358981.tif 000008
【図８】
0005358981.tif 000009
【図９】
0005358981.tif 000010
【図１０】
0005358981.tif 000011
【図１１】
0005358981.tif 000012
【図１２】
0005358981.tif 000013
【図１３】
0005358981.tif 000014
【図１４】
0005358981.tif 000015
【図１５】
0005358981.tif 000016