(57)【特許請求の範囲】
【請求項１】
個人の履歴及び日付を対応付けて蓄積する第１履歴テーブルと、
前記日付に対応し、前記第１履歴テーブルに蓄積された前記履歴とは異なる履歴を蓄積する第２履歴テーブルと、
前記第１及び第２履歴テーブルに蓄積された日付が同じ履歴を特定する履歴特定部と、
該履歴特定部が特定した履歴が複数の場合、日付が同じ履歴の数を計数し、計数した該履歴の数の最大値を特定する最大値特定部と、
該最大値特定部が特定した最大値に応じた項目数の履歴を蓄積するセルと、日付を対応付けて格納するセルとを有する第３履歴テーブルを生成し、前記第１及び第２履歴テーブルに蓄積された履歴を前記第３履歴テーブルに日付毎に格納するテーブル作成部と、
検索項目を含む検索条件を受け付ける受付部と、
該受付部が受け付けた検索条件に含まれる検索項目に基づいて、前記第３履歴テーブルから該当する検索項目に対応する履歴を抽出する第１抽出部と、
前記履歴の日付を取得すると共に、次の履歴の日付に基づいて前記履歴の期間を算出する履歴期間算出部と、
前記第１抽出部が前記第３履歴テーブルから抽出した履歴と、前記履歴期間算出部が算出した期間とに基づいて、検索条件に該当する履歴を抽出する第２抽出部と
を備える情報検索装置。
【請求項２】
前記第２履歴テーブルを複数備え、
前記履歴特定部は、
前記第１履歴テーブル、及び、前記複数の第２履歴テーブルに蓄積された日付が同じ履歴を特定するようにしてあり、
前記テーブル作成部は、
前記複数の第２履歴テーブルに蓄積された履歴を前記第３履歴テーブルに格納するようにしてある
請求項１に記載の情報検索装置。
【請求項３】
前記受付部は、
検索対象の期間を含む検索条件を受け付け、
前記第１抽出部は、
第３履歴テーブルから該当する履歴を順次読み込み、
前記履歴期間算出部は、
前記受付部が受け付けた期間、及び前記履歴中の日付に基づいて有効期間を特定し、
前記第２抽出部は、
特定した有効期間内にある履歴から、前記受付部から指定された検索条件に該当する履歴を抽出するようにしてある
請求項１又は２に記載の情報検索装置。
【請求項４】
前記受付部は、
有効期間の合計数を含む検索条件を受け付け、
前記第２抽出部は、
前記履歴期間算出部が時間的に不連続な複数の有効期間を特定した場合、前記複数の有効期間を合算し、合算結果と前記受付部から指定された有効期間の合計数とに基づいて、履歴を抽出するようにしてある
請求項３に記載の情報検索装置。
【請求項５】
個人の履歴及び日付を対応付けて蓄積する第１履歴テーブルと、前記日付に対応し、前記第１履歴テーブルに蓄積された前記履歴とは異なる履歴を蓄積する第２履歴テーブルとを備えるコンピュータで実行する情報検索方法において、
前記第１及び第２履歴テーブルに蓄積された日付が同じ履歴を特定し、
特定した履歴が複数の場合、履歴の数を計数し、計数した該履歴の数の最大値を特定し、
特定した最大値に応じた項目数の履歴を蓄積するセルと、日付を対応付けて格納するセルとを有する第３履歴テーブルを生成し、前記第１及び第２履歴テーブルに蓄積された履歴を前記第３履歴テーブルに日付毎に格納し、
検索項目を含む検索条件を受け付け、
受け付けた検索条件に含まれる検索項目に基づいて、前記第３履歴テーブルから該当する検索項目に対応する履歴を抽出し、
前記履歴の日付を取得すると共に、次の履歴の日付に基づいて前記履歴の期間を算出し、
前記第３履歴テーブルから抽出した履歴と、算出した期間とに基づいて、検索条件に該当する履歴を抽出する
情報検索方法。
【請求項６】
個人の履歴及び日付を対応付けて蓄積する第１履歴テーブルと、前記日付に対応し、前記第１履歴テーブルに蓄積された前記履歴とは異なる履歴を蓄積する第２履歴テーブルとを備えるコンピュータで実行されるプログラムにおいて、
コンピュータを、
前記第１及び第２履歴テーブルに蓄積された日付が同じ履歴を特定する履歴特定部、
該履歴特定部が特定した履歴が複数の場合、履歴の数を計数し、計数した該履歴の数の最大値を特定する最大値特定部、
該最大値特定部が特定した最大値に応じた項目数の履歴を蓄積するセルと、日付を対応付けて格納するセルとを有する第３履歴テーブルを生成し、前記第１及び第２履歴テーブルに蓄積された履歴を前記第３履歴テーブルに日付毎に格納するテーブル作成部、
検索項目を含む検索条件を受け付けた検索条件に含まれる検索項目に基づいて、前記第３履歴テーブルから該当する検索項目に対応する履歴を抽出する第１抽出部、
前記履歴の日付を取得すると共に、次の履歴の日付に基づいて前記履歴の期間を算出する履歴期間算出部、及び、
前記第１抽出部が前記第３履歴テーブルから抽出した履歴と、前記履歴期間算出部が算出した期間とに基づいて、検索条件に該当する履歴を抽出する第２抽出部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、事象が発生した日付毎にデータを記憶し、記憶した複数のデータから必要なデータを検索する情報検索装置、情報検索方法及びプログラムに関する。
【背景技術】
【０００２】
企業などにおいて社員の個人情報をデータベース化してコンピュータで管理することは一般化している。特許文献１には、蓄積されたデータから必要とするデータを有効的に検索及び抽出できる履歴データ処理装置が開示されている。特許文献１に記載の装置は、事象が発生した日付毎にデータを記憶し、記憶した複数のデータから検索及び抽出する際に、事象が発生した日付だけではなく、任意の日を基準として、目的のデータを検索することを可能としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２８６００６３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年、個人情報が複雑化する傾向にあり、また、同日に複数の事象が発生することがあるため、記憶するデータを管理するデータファイルが複数に亘って作成されるなど、データベースの構造が複雑化している。このような同日に複数の事象が発生する場合を上記の従来技術では考慮されておらず、任意の日を基準とした検索ができない。このような問題を解消するために、一つのレコードに全ての事象が保存できるようにレコード長を長くする事が考えられる。しかし、顧客によって、複数発生する事象の数は固定できず、どのような数にも対応できるよう、無限に長いレコードを用意しておくことは、データベースの負荷を考慮すると現実的ではない。つまり、データ量に関係なく長いレコードを定義したテーブルを用意すると、無駄にデータベースの容量を消費すると共に、検索する際にも無駄な負荷が生じる。そのため、データ数がわからないデータ構造の場合、レコード長で対応するのではなく、レコード数で対応するのが普通である。つまり、事象が発生する毎にレコードを追加するようにすれば、データベースを有効に活用することができる。しかし、レコードの数で複数事象に対応すると、同じ日付のレコードが複数存在してしまう。上記の従来技術では、処理しているレコードに保存されている日付と、次のレコードに保存している日付から、任意の日付の事象を検索しているため、同じ日付のレコードが存在すると、正常に検索できなくなる。
【０００５】
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、同日に複数のレコードが存在する場合でも、任意の日を基準とした効率的な情報検索を行える情報検索装置、情報検索方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本願に開示する情報検索装置は、個人の履歴及び日付を対応付けて蓄積する第１履歴テーブルと、前記日付に対応し、前記第１履歴テーブルに蓄積された前記履歴とは異なる履歴を蓄積する第２履歴テーブルと、前記第１及び第２履歴テーブルに蓄積された日付が同じ履歴を特定する履歴特定部と、該履歴特定部が特定した履歴が複数の場合、日付が同じ履歴の数を計数し、計数した該履歴の数の最大値を特定する最大値特定部と、該最大値特定部が特定した最大値に応じた項目数の履歴を蓄積するセルと、日付を対応付けて格納するセルとを有する第３履歴テーブルを生成し、前記第１及び第２履歴テーブルに蓄積された履歴を前記第３履歴テーブルに日付毎に格納するテーブル作成部と、検索項目を含む検索条件を受け付ける受付部と、該受付部が受け付けた検索条件に含まれる検索項目に基づいて、前記第３履歴テーブルから該当する検索項目に対応する履歴を抽出する第１抽出部と、前記履歴の日付を取得すると共に、次の履歴の日付に基づいて前記履歴の期間を算出する履歴期間算出部と、前記第１抽出部が前記第３履歴テーブルから抽出した履歴と、前記履歴期間算出部が算出した期間とに基づいて、検索条件に該当する履歴を抽出する第２抽出部とを備える。
【発明の効果】
【０００７】
本願に開示する情報検索装置は、第２履歴テーブルのように、同日に発生する履歴数に制限が無いデータベース構造であっても、第３履歴テーブルを用いて任意の日を基準とした効率的な履歴の検索が可能となるので、ユーザは記憶態様を特に意識することなく目的の履歴情報の検索を行なうことが可能となる。また、第３履歴テーブルから履歴の検索を行なうため、情報検索装置に新たな検索方法を構築する必要が無く、検索時間が膨大となることを回避することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態に係る人事管理装置の模式図である。
【図２】実施の形態に係る人事管理装置のハードウェア構成を示すブロック図である。
【図３】個人情報ファイルが管理するデータファイルの一部を説明するための模式図である。
【図４】人事管理装置で実現される機能を模式的に示すブロック図である。
【図５】経歴ファイルを模式的に示す図である。
【図６】兼務履歴ファイルを模式的に示す図である。
【図７】出向履歴ファイルを模式的に示す図である。
【図８】検索対象のデータファイルの一覧を表示する選択画面の一例を示す模式図である。
【図９】連結定義ファイルを模式的に示す図である。
【図１０】作成される仮想ＤＢを模式的に示す図である。
【図１１】検索用データテーブルを示す模式図である。
【図１２】データ検索処理の手順を示すフローチャートである。
【図１３】検索実行処理の処理手順を示すフローチャートである。
【図１４】データ復元検索処理の手順を示すフローチャートである。
【図１５】社員の検索・抽出方法を説明するための模式図である。
【図１６】社員の検索・抽出方法を説明するための模式図である。
【図１７】実施の形態に係る人事管理装置の別の例の模式図である。
【発明を実施するための形態】
【０００９】
以下、本発明に係る情報検索装置、情報検索方法及びプログラムの好適な実施の形態について図面を参照して説明する。以下に説明する実施の形態では、本発明に係る情報検索装置を企業における人事情報を管理する人事管理装置とし、一般的なパーソナルコンピュータ（以下、パソコンという）を例に挙げて説明する。なお、本発明に係る情報検索装置は、企業における人事情報以外に、病院又は学校などにおける個人情報、あるいは、物流における物品情報などを管理するコンピュータ、携帯電話機又はPersonal Digital Assistant（ＰＤＡ）などであってもよい。
【００１０】
本実施の形態に係る人事管理装置は、社員の経歴を管理するデータファイルを記憶しており、そのデータファイルには、社員の人事異動が発令される都度、異動年月日を含んだデータが異動のあった社員毎に情報が追加される。人事管理装置は、このデータファイルを用いて、例えば「何年何月何日に本店営業に在籍していた社員」を検索するよう入力指示することで、複数の社員の中から該当する一又は複数の社員を検索することができる。また、人事管理装置は、検索する社員が、本店営業→Ａ支店→本店営業→Ｂ支店に異動している場合であっても、ある基準日まで本店営業に何日滞留していたかの日数を合算することができ、検索条件を「本店営業に１年以上在籍していた社員」とした場合であっても、該当する社員の検索を行なえる。
【００１１】
図１は、実施の形態に係る人事管理装置の模式図であり、図２は、実施の形態に係る人事管理装置のハードウェア構成を示すブロック図である。本実施の形態に係る人事管理装置１は、Central Processing Unit（ＣＰＵ）２、Read Only Memory（ＲＯＭ）３、Random Access Memory（ＲＡＭ）４、大容量記憶装置５、入力部（受付部）６及び出力部７などを備えている。
【００１２】
ＣＰＵ２は、ＲＯＭ３又は大容量記憶装置５に予め格納されているプログラムをＲＡＭ４に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＲＯＭ３は、人事管理装置１に必要な動作をさせるためのプログラム３ａを予め格納している。なお、プログラム３ａは、Compact Disc-ＲＯＭ（ＣＤ−ＲＯＭ）、Digital Versatile Disc-ＲＯＭ（ＤＶＤ−ＲＯＭ）、又はMagneto-Optical disk（ＭＯ）などの記録媒体９により大容量記憶装置５にインストールし、又はネットワークからダウンロードして使用する形態でもよい。
【００１３】
ＲＡＭ４は、例えばStatic ＲＡＭ（ＳＲＡＭ）、Dynamic ＲＡＭ（ＤＲＡＭ）、フラッシュメモリなどである。ＲＡＭ４は、ＣＰＵ２によるプログラムの実行時に発生する種々のデータを一時的に記憶する。入力部６は、社員の情報などのデータの入力及び必要とするデータの検索の検索条件の入力を行なうキーボード及びマウスなどであり、出力部７は、検索結果を表示するモニタである。なお、出力部７は、検索結果を印刷するプリンタなどであってもよい。
【００１４】
大容量記憶装置５は、例えばハードディスクドライブであり、必要な各種データ及び必要な種々のプログラムを格納している。大容量記憶装置５は、具体的には、個人情報ファイル５０を記憶している。個人情報ファイル５０は、社員情報を管理するファイルであり、企業内の社員毎の情報を管理している。個人情報ファイル５０は、社員情報をさらに詳細にした経歴ファイル５１及び勤務職務歴ファイル５２など複数のデータファイルを管理している。
【００１５】
図３は、個人情報ファイル５０が管理するデータファイルの一部を説明するための模式図である。
【００１６】
経歴ファイル５１（第１履歴テーブル）は、社員の主務における所属及び役職などを管理するデータファイルであり、個人番号および異動年月日で一意に特定できるように記憶されている。経歴ファイル５１には人事異動が発令される都度、異動年月日を含んだデータが異動のあった社員毎に情報が追加作成される。経歴ファイル５１は、各社員に割り当てられた個人番号、異動年月日、出向がある場合には出向を開始する年月日（出向発令日）、及び、兼務（主務以外に兼ねる職務）を開始する年月日（兼務発令日）の情報を記憶している。この経歴ファイル５１には、兼務履歴ファイル及び出向履歴ファイルが従属している。
【００１７】
兼務履歴ファイル（第２履歴テーブル）は、兼務が発令されている場合に、その兼務経歴における勤務店などを管理するデータファイルである。兼務履歴ファイルには、経歴ファイル５１の個人番号及び兼務発令日に対応付けて、兼務における社員の勤務店などの情報が記憶されている。また、兼務履歴ファイルには、個人番号に対応する社員に出向がある場合には出向発令日などの情報が記憶されている。出向履歴ファイル（第２履歴テーブル）は、主務又は兼務において出向が発令されている場合に、その出向経歴を管理するデータファイルである。出向履歴ファイルは、経歴ファイル５１又は兼務履歴ファイルの個人番号及び出向発令日に対応付けて、出向先及び出向先役職などの情報が記憶されたデータファイルである。
【００１８】
勤務職務歴ファイル５２は、社員の主務における実質勤務先及び担当職務などを管理するデータファイルであり、個人番号および異動年月日に対応付けて記憶されている。勤務職務歴ファイル５２は、個人番号、異動年月日、主務における担当職務、兼務勤務発令日などの情報を記憶している。この勤務職務歴ファイル５２には、兼務勤務職務歴ファイルが従属している。兼務勤務職務歴ファイルは、勤務職務歴ファイル５２の個人番号及び兼務勤務発令日に対応付けて、主務における兼務職務、兼務先における実質勤務先と担当職務など、兼務の内容の情報が記憶されたデータファイルである。
【００１９】
図３に示すように、経歴ファイル５１及び勤務職務歴ファイル５２に含まれるべき詳細な情報を、別のデータファイルで管理し、経歴ファイル５１などに従属させることで、経歴ファイル５１などに情報を付加してサイズが大きくなることを回避できる。また、経歴ファイル５１に新たな情報を追記する場合、経歴ファイル５１などのデータファイルを再設計する必要があるが、別のデータファイルを作成し、従属させることで、かかる手間を省くことができる。なお、個人情報ファイル５０が管理するデータファイルとしては、社員の家族構成、就業履歴、業績評価などが記憶されたデータファイルなど、適宜変更可能である。
【００２０】
本実施の形態に係る人事管理装置１は、検索条件を「主務において何年何月何日に本店営業に在籍していた社員」とした場合には、経歴ファイル５１のみを用いることで、データを検索できる。一方、検索条件を「主務又は兼務において何年何月何日に本店営業に在籍していた社員」とした場合には、人事管理装置１は、経歴ファイル５１及び兼務履歴ファイルの両方を用いて、データ検索（所謂ＯＲ検索）を行う必要がある。このため、主務の経歴のみからデータを検索する場合と、主務及び兼務の両方の経歴からデータを検索する場合とでは、検索方法を変更する必要があるか、又は検索時間が大きく異なる場合がある。以下、主務及び兼務の両方の経歴から社員を検索する場合であっても、主務の経歴のみからデータ検索を行なう場合と同様の検索を行う方法について詳述する。
【００２１】
図４は、人事管理装置１で実現される機能を模式的に示すブロック図である。図４に示す各機能は、ＣＰＵ２がＲＯＭ３のプログラム３ａを実行することで実現される。人事管理装置１は、検索開始部１０、仮想データベース（以下、仮想ＤＢという）作成部１１、検索実行部１２、テーブル作成部１３及び結果出力部１４などの機能を有している。また、人事管理装置１は、個人情報ファイル格納部１５、連結定義ファイル格納部１６、及び仮想ＤＢ格納部１７などの機能を有している。個人情報ファイル格納部１５は、大容量記憶装置５であって、個人情報ファイル５０を格納する。上述したように、個人情報ファイル５０は、経歴ファイル５１及び勤務職務歴ファイル５２などを含む。
【００２２】
図５は、経歴ファイル５１を模式的に示す図である。経歴ファイル５１は、個人番号、異動年月日、主兼務順位、発令所属、発令役職、資格、出向発令日、出向先及び兼務発令日の情報を１レコードとして格納している。「個人番号」の欄には、社員それぞれに割り当てられた番号が格納される。「異動年月日」の欄には、人事異動の発令日が格納される。「主兼務順位」の欄は、主務及び兼務における優先順位が格納される。「発令所属」及び「発令役職」の欄には、主務の勤務店及び役職が格納される。「資格」の欄には、当該社員が有する資格が格納される。「出向発令日」及び「出向先」の欄には、当該社員が出向する年月日及び出向先の情報が格納される。「兼務発令日」の欄には、当該社員の兼務が発令された年月日が格納される。
【００２３】
例えば、図５では、「１１１１１１」の個人番号を有する社員は、２００９年４月１日、及び２００９年７月１日には、主務としてＡ支店に所属し、役職が支店長代理であることを示している。そして、２０１０年５月１日には、本店営業に所属し、役職がグループ長代理であり、２０１２年１０月１日には、関連出向先（カード会社）で、調査役の役職となっていることを示している。また、この社員は、２００９年４月１日では、Ａ３の資格を有しており、２００９年７月１日以降には、Ａ２の資格を有していることを示している。さらに、この社員は、２００９年４月１日、２０１０年５月１日、及び２０１２年１０月１日それぞれに、主務以外の兼務が発令されていることを示している。
【００２４】
図６は、兼務履歴ファイルを模式的に示す図である。兼務履歴ファイルは、個人番号、兼務発令日、主兼務順位、兼務所属、兼務役職、出向開始日及び出向先の情報を１レコードとして格納している。「個人番号」及び「兼務発令日」の欄は、図５の経歴ファイル５１における「個人番号」及び「兼務発令日」と同様の情報が格納される。すなわち、経歴ファイル５１のレコードが兼務履歴ファイルのレコードに対応付けられている。「主兼務順位」の欄は、主務及び兼務における優先順位が格納される。「兼務所属」及び「兼務役職」の欄には、兼務における所属先、及び兼務する役職がそれぞれ格納される。「出向開始日」及び「出向先」の欄は、兼務で出向する場合に、出向開始年月日及び出向先の情報がそれぞれ格納される。例えば、図５の経歴ファイル５１では、２００９年４月１日に兼務が発令されており、その発令された兼務の内容が、図６の兼務履歴ファイルに格納されている。すなわち、発令された兼務における所属先はＢ支店であり、役職は、支店長代理である。
【００２５】
図７は、出向履歴ファイルを模式的に示す図である。出向履歴ファイルは、個人番号、出向発令日、出向順位、出向先及び出向先役職の情報を１レコードとして格納している。「個人番号」及び「出向発令日」の欄は、経歴ファイル５１及び兼務履歴ファイルにおける「個人番号」及び「出向発令日」と同様の情報が格納される。すなわち、経歴ファイル５１又は兼務履歴のレコードが出向履歴ファイルのレコードに対応付けられている。「出向順位」の欄は、主務及び兼務における「主兼務順位」に対応した情報が格納される。例えば「出向順位」の欄に「００」が格納されている場合には、経歴ファイル５１の主務における出向の情報を格納し、「１０」が格納されている場合には、兼務履歴ファイルの兼務における出向の情報を格納していることを示す。「出向先」及び「出向先役職」の欄には、所属先、及び出向先での役職がそれぞれ格納される。例えば、図５の経歴ファイル５１では、２０１２年１０月１日に出向が発令されており、その発令された兼務の内容が、図７の出向履歴ファイルに格納されている。すなわち、発令された出向先はカード会社であり、出向先の役職は課長である。また、図６の兼務履歴ファイルでは、兼務において２０１０年５月１日に出向が発令されており、その発令された兼務の内容が、図７の出向履歴ファイルに格納されている。すなわち、発令された出向先はカード会社であり、出向先の役職は課長である。
【００２６】
図４に示す機能の検索開始部１０は、ユーザから入力部６を介して検索条件の入力を受け付ける。検索条件は、例えば、「現在在籍者で１９９５年４月１日以降で本店営業部又はＡ支店に所属していた社員」、「主務又は兼務において何年何月何日に本店営業に在籍していた社員」などのように指定される。検索対象とするデータファイルは、例えば出力部７のモニタに表示された画面から選択される。図８は、検索対象のデータファイルの一覧を表示する選択画面の一例を示す模式図である。画面には、個人情報ファイル５０が有するデータファイルの一覧が、選択可能に表示される。各データファイルは、時系列に変化する個人の履歴を記憶するデータファイル（図中の白色菱形で表示される項目）、不連続に発生する個人の履歴を記憶するデータファイル（図中の黒丸で表示される項目）、及びある時点で発生した個人の履歴を記憶するデータファイル（図中の白丸で表示される項目）、形式の異なる履歴ファイルを結合して、時間的に並行して変化する個人の履歴を検索できるように作成するデータファイル（図中の黒色菱形で表示される項目）、他の履歴と重複して発生する個人の履歴を記憶するデータファイル（図中の白色三角で表示される項目）などがある。
【００２７】
ユーザが白色菱形で表示される項目（例えば、主務経歴）を選択した場合には、一のデータファイルを時系列に沿って検索することで、必要なデータが検索される。一方、ユーザが黒色菱形で表示される項目（例えば、主務又は兼務の経歴）を選択した場合には、複数のデータファイルを時系列に沿って検索する必要があるが、従来と同じ検索アルゴリズムを利用可能としているため、利用者には検索時間の変化が認識できない程度にまで抑えることができる。
【００２８】
検索開始部１０は、図８の画面でユーザが白色菱形で表示される項目を選択した場合には、検索実行部１２に対して、入力された検索条件を含む社員を、選択された項目に対応するデータファイルから検索する。一方、検索開始部１０は、ユーザが黒色菱形で表示される項目を選択した場合には、仮想ＤＢ作成部１１に対して検索するために必要な仮想ＤＢの作成を指示する。そして、検索開始部１０は、検索実行部１２に対して、仮想ＤＢ作成部１１が作成した仮想ＤＢから、入力された検索条件を含む社員の検索の実行を指示する。
【００２９】
仮想ＤＢ作成部１１は、個人情報ファイル格納部１５に格納されたデータファイル、及び連結定義ファイル格納部１６に格納される連結定義ファイルから、仮想ＤＢを作成する。連結定義ファイル格納部１６は、大容量記憶装置５であって、連結定義ファイルを格納している。仮想ＤＢ格納部１７は、ＲＡＭ４であって、作成された仮想ＤＢを格納する。
【００３０】
図９は、連結定義ファイルを模式的に示す図である。連結定義ファイルは、個人情報ファイル格納部１５に記憶される経歴ファイル５１、及びそれに従属されるデータファイル（兼務履歴ファイル及び出向履歴ファイル）の関連を定義し、仮想ＤＢを作成するためのデータテーブルである。この連結定義ファイルは、主テーブル、主項目、縦テーブル、縦項目、横テーブル、及び横項目を格納する情報欄を有している。図９における縦及び横とは、後述する仮想ＤＢのテーブルの行方向（縦方向）及び列方向（横方向）を意味している。
【００３１】
「主テーブル」の欄には、メインとなるデータファイル（経歴ファイル５１）が定義され、「主項目」の欄には、そのデータファイル（経歴ファイル５１）の各項目が格納される。「縦テーブル」の欄には、仮想ＤＢにおいて、メインとなるデータファイル（経歴ファイル５１）と並列なレコードとして扱いたいデータファイル（兼務履歴ファイル）が定義される。「縦項目」の欄には、「縦テーブル」で定義されたデータファイル（兼務履歴ファイル）の各項目が格納され、「主項目」の欄に格納された情報と対応付けられている。「横テーブル」の欄には、仮想ＤＢにおいて、主テーブル及び縦テーブルで定義されたデータファイル（経歴ファイル５１及び兼務履歴ファイル）と同じレコードとして扱いたいデータファイル（出向履歴ファイル）が定義され、「横項目」の欄には、そのデータファイル（出向履歴ファイル）の各項目が格納され、「主項目」及び「縦項目」の欄に格納された情報と対応付けられている。
【００３２】
図１０は、作成される仮想ＤＢを模式的に示す図である。仮想ＤＢは、個人番号、異動年月日、主兼務順位、出向発令日、発令所属、発令役職、資格、出向先、出向先役職の情報を１レコードとして格納する。レコードは、仮想ＤＢのテーブルの行方向（縦方向）に配列されており、横方向（列方向）に沿って情報を格納している。仮想ＤＢの１レコードには、経歴ファイル５１の情報が格納される。そして、兼務履歴ファイルは、連結定義ファイルでは「縦テーブル」に定義されているため、兼務履歴ファイルの情報は、経歴ファイル５１とは別のレコードに格納される。また、出向履歴ファイルは、「横テーブル」に定義されているため、出向履歴ファイルの情報は、経歴ファイル５１又は兼務履歴ファイルのレコードに格納される。換言すれば、仮想ＤＢは、経歴ファイル５１及び出向履歴ファイルの情報からなるレコードと、兼務履歴ファイル及び出向履歴ファイルの情報からなるレコードとを有している。
【００３３】
例えば、図１０に示す仮想ＤＢの一行目のレコードには、経歴ファイル５１の一行目のレコードの情報、及び、対応する出向履歴ファイルのレコードの情報が格納される。経歴ファイル５１の一行目のレコードは、兼務履歴ファイルのレコードが割り当てられているため、仮想ＤＢの二行目の各欄には、対応する兼務履歴ファイルのレコードの情報、及びその兼務履歴ファイルに対応する出向履歴ファイルのレコードの情報が格納される。なお、兼務履歴ファイルの兼務発令日は、図９の連結定義ファイルにより、異動年月日に対応付けられているため、兼務発令日の情報は、図１０の仮想ＤＢの異動年月日の欄に格納される。このように、図１０に示す仮想ＤＢは、連結定義ファイルに従って、経歴ファイル５１と、経歴ファイル５１に従属する兼務履歴ファイル及び出向履歴ファイルとを一つに纏めたデータテーブルとなる。このテーブルから個人番号および日付が同じレコード数を演算し、演算したレコード数の最大値を求める。
【００３４】
検索実行部１２は、ユーザから入力部６を介して検索条件の入力を受け付けた検索開始部１０からの指示により社員の検索を実行する。検索実行部１２は、ユーザが図８に示す画面で白色菱形で表示されるデータファイルを選択した場合には、対応するデータファイルを個人情報ファイル格納部１５から取得し、入力された検索条件を含む社員を検索する。また、検索実行部１２は、ユーザが黒色菱形で表示される項目を選択した場合には、後述のテーブル作成部１３が作成する検索用データテーブルから、入力された検索条件を含む社員を検索する。
【００３５】
テーブル作成部１３は、検索実行部１２に用いられる検索用データテーブル（第３履歴テーブル）を作成する。テーブル作成部１３は、ユーザが黒色菱形で表示される項目を選択した場合には、仮想ＤＢ格納部１７から仮想ＤＢを取得し、個人番号および日付が同じレコード数の最大値を求め、その最大値に基づいてレコード長を決定し、仮想ＤＢに基づいて検索用データテーブルを作成する。図１１は、検索用データテーブルを示す模式図である。テーブル作成部１３は、仮想ＤＢ格納部１７から取得した仮想ＤＢから、同じ日付（異動年月日）の情報を特定し、同じ個人番号および日付に存在するレコード数の最大値を算出し、兼務が複数ある場合には、主務→兼務１→兼務２→兼務３と算出数分特定した情報を横方向に展開して一つのレコードとすることで、検索用データテーブルを作成する。例えば、図１０では、一行目及び二行目の異動年月日は、何れも「２００９年４月１日」である。テーブル作成部１３は、この２つの情報を、横方向に展開する。すなわち、図１１に示す検索用データテーブルの一行目のレコードは、「２００９年４月１日」に、主務及び兼務（図中「０２」が付されている情報）において社員がどのような状態であるかを記憶している。
【００３６】
検索実行部１２は、上述のように、テーブル作成部１３が作成した検索用データテーブルから、入力された検索条件を含む社員をＯＲ検索する。例えば、検索条件を「支店長代理の役職経験があり、カード会社に出向経験のある社員」とした場合、検索実行部１２は、発令役職に「支店長代理」が格納されているレコード、出向先に「カード」が格納されているレコード、又は両方が格納されているレコードを検索する。図１１に示す検索用データテーブルでは、何れのレコードも格納している。これにより、検索実行部１２は、個人番号「１１１１１１」の社員は検索条件に合致するとして、その社員を抽出する。この場合に、役職を検索するときに、主務→兼務１→兼務２→兼務３と全ての役職が検索できるよう、レコード数の最大値に基づいて、役職の検索回数を決定して、役職の検索を行う。
【００３７】
結果出力部１４は、検索実行部１２が実行した結果をモニタ又はプリンタなどの出力部７から出力する。検索の実行結果の出力態様は適宜変更可能である。
【００３８】
次に、人事管理装置１において実行される処理について説明する。
【００３９】
図１２は、データ検索処理の手順を示すフローチャートである。図１２に示す処理は、ＣＰＵ２により実行される。まず、ＣＰＵ２は、入力部６により検索条件が入力されたか否かを判定する（Ｓ１）。入力されていない場合（Ｓ１：ＮＯ）、ＣＰＵ２は、本処理を終了する。検索条件が入力された場合（Ｓ１：ＹＥＳ）、ＣＰＵ２は、検索条件に応じた検索実行処理を実行する（Ｓ２）。検索実行処理については後述する。そして、ＣＰＵ２は、検索実行処理の結果をモニタなど出力部７を介して出力し（Ｓ３）、本処理を終了する。
【００４０】
図１３は、検索実行処理の処理手順を示すフローチャートである。
【００４１】
ＣＰＵ２は、図１２のＳ１で入力された検索条件を読み込み（Ｓ１０）、検索条件から、仮想ＤＢを作成する必要があるか否かを判定する（Ｓ１１）。具体的には、図８に示す画面で、黒色菱形で表示される項目（例えば、「主務又は兼務の経歴」）が選択されているか否かを判定する。仮想ＤＢを作成する必要がない場合（Ｓ１１：ＮＯ）、ＣＰＵ２は、Ｓ１４の処理に移行する。
【００４２】
仮想ＤＢを作成する必要がある場合（Ｓ１１：ＹＥＳ）、ＣＰＵ２は、図１０に示す仮想ＤＢを作成する（Ｓ１２）。例えば、「主務又は兼務の経歴」から社員を検索する場合には、図５、図６及び図７で説明した経歴ファイル５１、兼務履歴ファイル及び出向履歴ファイルから、連結定義ファイル（図９参照）に従って、仮想ＤＢを作成する。次に、ＣＰＵ２は、仮想ＤＢを参照し個人番号および日付が同じレコード数の最大値を求め、その最大値に基づいてレコード長を決定し、図１１に示す検索用データテーブルを作成する（Ｓ１３）。なお、ＣＰＵ２は、作成した仮想ＤＢ及び検索用データテーブルをＲＡＭ４に記憶し、不要となった仮想ＤＢ及び検索用データテーブルを削除する。これにより、必要以上にメモリ容量が消費することを回避できる。また、検索実行時に仮想ＤＢ及び検索用データテーブルの作成を実行することで、経歴ファイル５１などの情報が常に最新の状態で仮想ＤＢなどを作成することができる。
【００４３】
次に、ＣＰＵ２は、入力された検索条件から、有効期間を検索する必要があるか否かを判定する（Ｓ１４）。例えば、検索条件が「１９９５年から２００１年の間にＡ支店に所属していた社員」とした場合、ＣＰＵ２は、「１９９５年から２００１年」の間に含まれるレコードを検索する必要がある。有効期間を検索する必要がない場合（Ｓ１４：ＮＯ）、ＣＰＵ２はＳ１６の処理に移行する。有効期間を検索する必要がある場合（Ｓ１４：ＹＥＳ）、ＣＰＵ２は、データ復元検索処理を実行する（Ｓ１５）。
【００４４】
図１４は、データ復元検索処理の手順を示すフローチャートである。ＣＰＵ２は、データファイルから１レコードのデータを読み込み（Ｓ３０）、そのデータの個人番号を記憶する（Ｓ３１）。次に、ＣＰＵ２は、Ｓ３０読み込んだデータが検索条件に一致するか否かを判定する（Ｓ３２）。検索条件に一致しない場合（Ｓ３２：ＮＯ）、ＣＰＵ２は、Ｓ３０の処理に戻り、次のレコードのデータを読み込む。検索条件に一致する場合（Ｓ３２：ＹＥＳ）、ＣＰＵ２は、読み込んだデータの異動年月日をデータの有効期間の開始日として記憶する（Ｓ３３）。
【００４５】
次に、ＣＰＵ２は、次の１レコードのデータを読み込み（Ｓ３４）、そのレコードの個人番号が、Ｓ３１で記憶した個人番号と一致するか否かを判定する（Ｓ３５）。一致する場合（Ｓ３５：ＹＥＳ）、ＣＰＵ２は、Ｓ３４で読み込んだデータが検索条件に一致するか否かを判定する（Ｓ３６）。一致する場合（Ｓ３６：ＹＥＳ）、ＣＰＵ２は、Ｓ３４の処理に戻る。一致しない場合（Ｓ３６：ＮＯ）、ＣＰＵ２は、Ｓ３４で読み込んだデータの異動年月日の前日を終了日として記憶し（Ｓ３７）、Ｓ３０の処理に戻る。一方、Ｓ３５において、個人番号が一致しない場合（Ｓ３５：ＮＯ）、ＣＰＵ２は、現在日を終了日として記憶し（Ｓ３８）、本処理を終了する。以上により、検索条件に合致する期間のレコードの特定を行うことができる。この場合に、主務や兼務に限らない検索を行うときには、レコード長に応じて、上記の検索を繰り返し、主務および兼務の全てを検索対象として検索する。
【００４６】
次に、ＣＰＵ２は、入力された検索条件の中に検索条件で設定された日時（基準日）までの滞留日数を計算する必要があるか否かを判定する（Ｓ１６）。例えば、検索条件が「本店営業に何年何ヶ月以上滞留していた社員」とした場合に、滞留日数の計算が必要となる。滞留日数を計算する必要がない場合（Ｓ１６：ＮＯ）、ＣＰＵ２は、Ｓ１８の処理に移行する。滞留日数を計算する必要がある場合（Ｓ１６：ＹＥＳ）、ＣＰＵ２は、Ｓ１５で特定した有効期間内で、検索条件に合致する期間を加算し、滞留日数を算出する（Ｓ１７）。そして、ＣＰＵ２は、入力された条件に合致する社員を検索し（Ｓ１８）、本処理を終了する。なお、Ｓ１８で社員を検索する場合、検索用データテーブルが作成されている場合には、ＣＰＵ２は、その検索用データテーブルから目的の社員を検索する。一方、検索用データテーブルが作成されていない場合には、ＣＰＵ２は、取得したデータファイル（例えば、経歴ファイル５１）から目的の社員を検索する。
【００４７】
次に、検索条件に合致する社員の検索・抽出の具体例を説明する。図１５及び図１６は、社員の検索・抽出方法を説明するための模式図である。
【００４８】
まず、検索条件を「融資業務の経験があり、その当時、融資市場担当者研修を受講している社員」を設定した場合について説明する。この場合、勤務職務歴ファイル５２の時系列のデータファイルと、ある時点で発生した個人の履歴を記憶するデータファイルが検索対象となる。まず、勤務職務歴ファイル５２が参照され、図１４に示される処理により融資係の経験のある社員が経験した期間を特定する開始日及び終了日と共に抽出される。例えば、勤務職務歴ファイル５２から、個人番号「１１１１１１」の社員が、図１５に示すように１９８６年４月１日から１９８６年６月１日まで、及び、１９８６年８月１日以降に融資係の経験があることが抽出される。次に、図示しない研修履歴ファイルが参照され、検索条件である「融資市場担当者研修」を受講したことのある社員が抽出される。例えば個人番号「１１１１１１」の社員が研修履歴を有していて、このうち、検索条件である「融資市場担当者研修」は１９８７年６月１日に受講を終了している場合、図１５に示すように融資係の経験中に「融資市場担当者研修」を受講していることが抽出される。以上により個人番号「１１１１１１」の社員が検索条件に合致する社員として抽出される。
【００４９】
次に、検索条件を「主務で本店営業に在籍し、その当時、兼務で関連出向に在籍していた社員」とした場合について説明する。この場合、経歴ファイル５１及び兼務履歴ファイルの二つの時系列のデータファイルが検索対象となる。まず、経歴ファイル５１及び兼務履歴ファイルから仮想ＤＢが作成され、さらに検索用データテーブルが作成される。この検索用データテーブルから、個人番号「１１１１１１」の社員が、本店営業に在籍した社員として抽出され、本店営業の在籍期間を開始日及び終了日として設定しつつ、図１６に示すように抽出される。次に、「その当時、兼務で関連出向に在籍していた社員」として、個人番号「１１１１１１」の社員を、検索用データテーブルを参照することにより抽出する。このとき、個人番号「１１１１１１」の社員が関連出向に在籍していた在籍期間を開始日及び終了日として図１６に示すように復元し、これにより、本店営業に在籍していた期間と兼務で関連出向に在籍していた期間とが重なることがわかる。この結果、個人番号「１１１１１１」の社員が検索条件に合致することになる。
【００５０】
以上説明したように、本実施の形態に係る人事管理装置１は、経歴ファイル５１に別のデータファイルが（兼務履歴ファイルなど）が従属する場合であっても、一つの検索用データテーブルを作成することで、簡単に目的の社員を検索することができる。また、一つの検索用データテーブルから検索することで、従来用いられてきた検索方法により、データの発生日のみならず、任意の日を基準として社員の検索を行う際に、主務履歴のみならず、兼務履歴も含めて検索することができる。近年、限られた人員で最大限の成果を出すために兼務履歴が複雑化しており、さらに、人事評価において兼務履歴を検索できる事の重要度が上がってきている。このような背景に合った検索が可能となることで、有効な人員配置や正確な人事評価に繋がる。また、データが発生した日時毎に履歴を記憶する、いわゆるデータ発生主義的に管理されたデータを、データ発生日時に応じてデータが有効となる期間を復元し、この復元されたデータを用いることによりデータを継続的に扱うことができ、上述したように指定した時間に属する、すなわち、指定した時間にデータが有効となるデータの検索・抽出処理を自動で実現できる。
【００５１】
以上、本発明の好適な一実施の形態について、具体的に説明したが、各構成及び動作などは適宜変更可能であって、上述の実施の形態に限定されることはない。例えば、図１７は、実施の形態に係る人事管理装置の別の例の模式図である。図１７は、人事管理装置１は、ネットワークＮを介して、個人情報ファイル５０を記憶する大容量記憶装置２０と接続している。ネットワークＮは、Local Area Network（ＬＡＮ）又はWide Area Network（ＷＡＮ）などである。人事管理装置１は、ネットワークＮを介して、個人情報ファイル５０などのデータファイルを取得するようにしてもよい。この場合、人事管理装置１は、大容量記憶装置５を備えていなくてもよい。また、複数の人事管理装置１が大容量記憶装置２０とネットワークＮを介して接続できるようにしてもよい。さらに、上述の実施の形態では、個人番号「１１１１１１」の社員のみを抽出しているが、検索条件に合致する社員が複数いる場合には、他の個人番号の社員も抽出されることは当然である。
【符号の説明】
【００５２】
１  人事管理装置
５  大容量記憶装置
１０  検索開始部（受付部）
１１  仮想ＤＢ作成部
１２  検索実行部（第１、第２抽出部、履歴期間算出部）
１３  テーブル作成部
１４  結果出力部
１５  個人情報ファイル格納部
１６  連結定義ファイル格納部
１７  仮想ＤＢ格納部
【図１】
0005545085.tif 000002
【図２】
0005545085.tif 000003
【図３】
0005545085.tif 000004
【図４】
0005545085.tif 000005
【図５】
0005545085.tif 000006
【図６】
0005545085.tif 000007
【図７】
0005545085.tif 000008
【図８】
0005545085.tif 000009
【図９】
0005545085.tif 000010
【図１０】
0005545085.tif 000011
【図１１】
0005545085.tif 000012
【図１２】
0005545085.tif 000013
【図１３】
0005545085.tif 000014
【図１４】
0005545085.tif 000015
【図１５】
0005545085.tif 000016
【図１６】
0005545085.tif 000017
【図１７】
0005545085.tif 000018