(57)【要約】      （修正有）【課題】指定された出力項目を含む出力テーブルを生成するための入力テーブルと生成プログラムとを特定するテーブル管理装置、方法及びプログラムを提供する。【解決手段】本テーブル管理方法は、テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、特定された１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に１または複数の項目の各々を出力するプログラムを特定し、１または複数のテーブルについての情報と特定されたプログラムについての情報とを出力する処理を含む。【選択図】図１
2018005644.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、
プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、特定された前記１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に前記１または複数の項目の各々を出力するプログラムを特定し、
前記１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する、
処理を実行させるテーブル管理プログラム。
【請求項２】
特定された前記プログラムは、前記１または複数の項目の各々が当該プログラムの実行によって出力される項目のいずれかと一致するという第１条件、または、前記１または複数の項目の各々が前記１または複数のテーブルの項目のいずれかと一致するという第２条件を満たす、
請求項１記載のテーブル管理プログラム。
【請求項３】
特定された前記プログラムは、前記１または複数のテーブルの数と当該プログラムの入力に利用されるテーブルの数とが一致するという第３条件を満たす、
請求項１又は２記載のテーブル管理プログラム。
【請求項４】
特定された前記プログラムは、当該プログラムの実行時に入力される各項目が前記１または複数のテーブルの項目のいずれかと一致し且つ当該プログラムの実行によって出力される各項目が前記１または複数の項目のいずれかと一致するという第４条件を満たす、
請求項１乃至３のいずれか１つ記載のテーブル管理プログラム。
【請求項５】
前記コンピュータに、
前記１または複数の項目の各々を出力するプログラムを前記第２データ格納部から特定し、
特定された前記プログラムの入力及び出力についての情報と前記１または複数の項目の各々とから、１または複数の入力項目を生成する、
処理をさらに実行させ、
前記第４条件が、
前記プログラムの実行時に入力される各項目が前記１または複数のテーブルの項目のいずれか又は前記１または複数の入力項目のいずれかと一致し、且つ、前記プログラムの実行によって出力される各項目が前記１または複数の項目のいずれかと一致するという条件である、
請求項４記載のテーブル管理プログラム。
【請求項６】
前記コンピュータに、
特定された前記プログラムを、前記１または複数のテーブルの項目を入力として実行することで、前記１または複数の項目の各々を含む出力テーブルを生成する、
処理をさらに実行させる請求項１乃至５のいずれか１つ記載のテーブル管理プログラム。
【請求項７】
コンピュータが、
テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、
プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、特定された前記１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に前記１または複数の項目の各々を出力するプログラムを特定し、
前記１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する、
処理を実行するテーブル管理方法。
【請求項８】
テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定する第１特定部と、
プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、前記第１特定部により特定された前記１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に前記１または複数の項目の各々を出力するプログラムを特定する第２特定部と、
前記１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する出力部と、
を有するテーブル管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルの管理技術に関する。
【背景技術】
【０００２】
例えば組織等の情報処理システムにおいては、組織の活動或いは組織の構成員等についてのデータが登録されたテーブルが用意され、要求に応じてデータが抽出される。このようなデータ抽出に関しては、様々な技術が文献に開示されている。
【０００３】
ところで、データが登録された複数のテーブルが用意されている場合において、データ分析等を行うために、それら複数のテーブルのいくつかを利用して指定の項目を含む別のテーブルを生成することをユーザが所望する場合がある。しかし、たとえテーブルを生成するための生成プログラムが予めいくつか用意されていたとしても、生成プログラムとその生成プログラムの入力に利用される入力テーブルとを選び出すことは、特にテーブル及び生成プログラムの数が多い場合には困難である。
【０００４】
このような問題に対処するための従来技術は知られていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１０−５２７４７２号公報
【特許文献２】特開２０００−７６２９６号公報
【特許文献３】特開２０１０−２３７７２５号公報
【特許文献４】特開２００９−７６０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、指定された出力項目を含む出力テーブルを生成するための入力テーブルと生成プログラムとを特定するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係るテーブル管理方法は、テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、特定された１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に１または複数の項目の各々を出力するプログラムを特定し、１または複数のテーブルについての情報と特定されたプログラムについての情報とを出力する処理を含む。
【発明の効果】
【０００８】
１つの側面では、指定された出力項目を含む出力テーブルを生成するための入力テーブルと生成プログラムとを特定できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、情報処理装置の機能ブロック図である。
【図２】図２は、テーブル格納部に格納されているテーブルの一例を示す図である。
【図３】図３は、テーブルメタデータの一例を示す図である。
【図４】図４は、プログラムメタデータの一例を示す図である。
【図５】図５は、メインの処理フローを示す図である。
【図６】図６は、指定される出力項目の一例を示す図である。
【図７】図７は、プログラムメタデータの一例を示す図である。
【図８】図８は、テーブルメタデータの一例を示す図である。
【図９】図９は、指定される出力項目の一例を示す図である。
【図１０】図１０は、プログラムメタデータの一例を示す図である。
【図１１】図１１は、生成される入力項目の一例を示す図である。
【図１２】図１２は、テーブルメタデータの一例を示す図である。
【図１３】図１３は、テーブルの一例を示す図である。
【図１４】図１４は、メインの処理フローを示す図である。
【図１５】図１５は、メインの処理フローを示す図である。
【図１６】図１６は、情報処理装置の具体的な動作を説明するための図である。
【図１７】図１７は、情報処理装置の具体的な動作を説明するための図である。
【図１８】図１８は、情報処理装置の具体的な動作を説明するための図である。
【図１９】図１９は、情報処理装置の具体的な動作を説明するための図である。
【図２０】図２０は、情報処理装置の具体的な動作を説明するための図である。
【図２１】図２１は、情報処理装置の具体的な動作を説明するための図である。
【図２２】図２２は、情報処理装置の具体的な動作を説明するための図である。
【図２３】図２３は、情報処理装置の具体的な動作を説明するための図である。
【図２４】図２４は、情報処理装置の具体的な動作を説明するための図である。
【図２５】図２５は、情報処理装置の具体的な動作を説明するための図である。
【図２６】図２６は、情報処理装置の具体的な動作を説明するための図である。
【図２７】図２７は、情報処理装置の具体的な動作を説明するための図である。
【図２８】図２８は、情報処理装置の具体的な動作を説明するための図である。
【図２９】図２９は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態の情報処理装置１の機能ブロック図を示す。情報処理装置１は、プログラム格納部１０１と、テーブル格納部１０２と、第１メタデータ格納部１０３と、第２メタデータ格納部１０４と、入力データ格納部１０５と、出力データ格納部１０６と、テーブル管理部１１とを含む。テーブル管理部１１は、テーブル特定部１１１と、プログラム特定部１１２と、出力部１１３とを含む。
【００１１】
テーブル特定部１１１は、入力データ格納部１０５に格納されているデータ、第１メタデータ格納部１０３に格納されているデータ及び第２メタデータ格納部１０４に格納されているデータに基づき処理を実行し、処理結果をプログラム特定部１１２に通知する。
【００１２】
プログラム特定部１１２は、テーブル特定部１１１から受け取った処理結果、入力データ格納部１０５に格納されているデータ及び第２メタデータ格納部１０４に格納されているデータに基づき処理を実行し、処理結果を出力部１１３に通知する。出力部１１３は、プログラム特定部１１２から受け取った処理結果、テーブル格納部１０２に格納されているデータ、プログラム格納部１０１に格納されているデータに基づき処理を実行し、処理結果を出力データ格納部１０６に格納する。
【００１３】
図２に、テーブル格納部１０２に格納されているテーブルの一例を示す。図２（ａ）に示されたテーブルは、項目名が「倉庫名」である項目と項目名が「所在地（都道府県）」である項目とを含むテーブルである。図２（ｂ）に示されたテーブルは、項目名が「店舗名」である項目と項目名が「所在地（都道府県）」である項目とを含むテーブルである。図２（ｃ）に示されたテーブルは、項目名が「日」である項目と項目名が「支店名」である項目と項目名が「売上」である項目とを含むテーブルである。
【００１４】
図３に、第１メタデータ格納部１０３に格納されているテーブルメタデータの一例を示す。図３の例では、テーブルの名前と、当該テーブルに含まれる項目の項目名とが格納される。第１メタデータ格納部１０３に格納されているデータは、予めユーザにより設定され或いは情報処理装置１により自動的に生成される。
【００１５】
図４に、第２メタデータ格納部１０４に格納されているプログラムメタデータの一例を示す。図４の例では、プログラムの名前と、当該プログラムの実行時に入力される項目の項目名及び当該プログラムの実行によって出力される項目の項目名とが格納される。例えば、プログラム「ｔｒａｎｓ＿ｓｉｔｅｎ」においては、或るテーブルから項目名が「支店コード」である項目が入力され、項目名が「支店名」である項目が出力される。第２メタデータ格納部１０４に格納されているデータは、予めユーザにより設定され或いは情報処理装置１により自動的に生成される。
【００１６】
プログラム格納部１０１には、プログラムメタデータに登録されているプログラムが格納される。
【００１７】
次に、図５乃至図２８を用いて、情報処理装置１の動作を説明する。
【００１８】
まず、情報処理装置１のテーブル特定部１１１は、ユーザが所望する出力テーブルに含まれる出力項目の指定を、情報処理装置１の入力装置（例えばマウス或いはキーボード等）を介してユーザから受け付ける（図５：ステップＳ１）。例えば図６に示すように、項目名が「日」である出力項目、項目名が「支店名」である出力項目、項目名が「所在地（都道府県）」である出力項目及び項目名が「売上」である出力項目の指定を受け付ける。但し、指定される項目の数は４以外であってもよい。
【００１９】
テーブル特定部１１１は、出力テーブルに含まれる出力項目の各々を含むメタデータを有するプログラムを、プログラムメタデータにおいて探索する（ステップＳ３）。
【００２０】
テーブル特定部１１１は、ステップＳ３の処理によってプログラムが検出されたか判定する（ステップＳ５）。ステップＳ３の処理によってプログラムが検出されなかった場合（ステップＳ５：Ｎｏルート）、テーブル特定部１１１は、指定された出力項目の少なくともいずれかの項目名と同じ項目名の項目を含むテーブルを、テーブルメタデータから特定する（ステップＳ７）。そしてステップＳ１５の処理に移行する。
【００２１】
例えば、図６に示した出力項目が指定され、プログラムメタデータが図４に示したデータであるとする。この場合、図７に示すように、指定された出力項目の各々を含むメタデータは存在しない。プログラム「ｔｒａｎｓ＿ｓｉｔｅｎ」のメタデータは、項目名が「支店名」である出力項目以外の出力項目を含まない。プログラム「ｓｕｍ＿ｍｏｎｔｈ」及びプログラム「ｊｏｉｎ＿ｂｒａｎｃｈ」のメタデータは、いずれの出力項目も含まない。なお、ｘは任意の文字列を表す。
【００２２】
すると、ステップＳ７の処理が実行される。例えばテーブルメタデータが図３に示したデータであるとする。この場合、図８に示すように、項目名が「所在地（都道府県）」である項目を含むテーブル「倉庫所在地」と、項目名が「所在地（都道府県）」である項目を含むテーブル「店舗所在地」と、項目名が「日」である項目と項目名が「支店名」である項目と項目名が「売上」である項目とを含むテーブル「売り上げ」とが特定される。
【００２３】
図５の説明に戻り、ステップＳ３の処理によってプログラムが検出された場合（ステップＳ５：Ｙｅｓルート）、テーブル特定部１１１は、検出されたプログラムのメタデータと、指定された出力項目の各々の項目名とから、入力項目の項目名を生成する（ステップＳ９）。
【００２４】
例えば、図９に示した出力項目が指定され、プログラムメタデータが図１０に示すデータであるとする。この場合、プログラム「ｓｕｍ＿ｍｏｎｔｈ」の実行によって、指定された出力項目の各々が出力される。
【００２５】
すると、プログラム「ｓｕｍ＿ｍｏｎｔｈ」のメタデータを利用することで、図１１に示すように、項目名が「日」である入力項目と、項目名が「売上」である入力項目とが生成される。
【００２６】
図５の説明に戻り、テーブル特定部１１１は、入力項目の少なくともいずれかの項目名と同じ項目名の項目を含むテーブルを、テーブルメタデータから特定する（ステップＳ１１）。例えばテーブルメタデータが図１２に示すデータである場合、テーブル「売り上げ」が特定される。特定されるテーブルは、例えば図１３に示すようなテーブルである。
【００２７】
テーブル特定部１１１は、指定された出力項目の少なくともいずれかの項目名と同じ項目名の項目を含むテーブルを、テーブルメタデータから特定する（ステップＳ１３）。本ステップはステップＳ７と同じである。
【００２８】
テーブル特定部１１１は、ステップＳ７において特定された１又は複数のテーブル又はステップＳ１１及びＳ１３において特定された１又は複数のテーブルから、テーブルの組合せを生成する（ステップＳ１５）。組合せに含まれるテーブルの数が１であってもよい。例えばテーブルａ及びテーブルｂが特定された場合、テーブルａ、テーブルｂ、並びに、テーブルａ及びテーブルｂとが組合せとして生成される。そして、テーブル特定部１１１は、生成されたテーブルの組合せをプログラム特定部１１２に出力する。そして処理は端子Ａを介して図１４のステップＳ１７に移行する。
【００２９】
図１４の説明に移行し、プログラム特定部１１２は、生成された組合せのうち未処理の組合せを１つ特定する（図１４：ステップＳ１７）。
【００３０】
プログラム特定部１１２は、プログラムメタデータから、入力に利用されるテーブルの数がステップＳ１７において特定された組合せに含まれるテーブルの数と同じであるメタデータを有するプログラムを探索する（ステップＳ１９）。例えば組合せに含まれるテーブルの数が２であり、プログラムメタデータが図４に示したデータである場合、プログラム「ｊｏｉｎ＿ｂｒａｎｃｈ」が検出される。
【００３１】
プログラム特定部１１２は、ステップＳ１９の処理によってプログラムが検出されたか判定する（ステップＳ２１）。ステップＳ１９の処理によってプログラムが検出されなかった場合（ステップＳ２１：Ｎｏルート）、処理はステップＳ２９に移行する。
【００３２】
一方、ステップＳ１９の処理によってプログラムが検出された場合（ステップＳ２１：Ｙｅｓルート）、プログラム特定部１１２は、検出されたプログラムのメタデータに含まれる各条件が満たされるか判定する（ステップＳ２３）。例えば、図４に示したプログラム「ｔｒａｎｓ＿ｓｉｔｅｎ」が検出された場合、メタデータには、条件「入力１：支店コード」及び条件「出力：支店名」が含まれる。
【００３３】
検出されたプログラムの条件のうち少なくともいずれかの条件が満たされない場合（ステップＳ２５：Ｎｏルート）、処理はステップＳ２９に移行する。一方、検出されたプログラムの各条件が満たされる場合（ステップＳ２５：Ｙｅｓルート）、検出されたプログラムとステップＳ１７において特定された組合せとを含む候補を候補リストに登録する（ステップＳ２７）。
【００３４】
プログラム特定部１１２は、生成された組合せのうち未処理の組合せが有るか判定する（ステップＳ２９）。未処理の組合せが有る場合（ステップＳ２９：Ｙｅｓルート）、処理はステップＳ１７に戻る。一方、未処理の組合せが無い場合（ステップＳ２９：Ｎｏルート）、処理は端子Ｂを介して図１５のステップＳ３１に移行する。
【００３５】
図１５の説明に移行し、プログラム特定部１１２は、候補リストから未処理の候補を１つ特定する（図１５：ステップＳ３１）。
【００３６】
プログラム特定部１１２は、指定された出力項目の各々が、候補に含まれるプログラムの実行によって生成されるか判定する（ステップＳ３３）。指定された出力項目の各々が、ステップＳ３１において特定された候補に含まれるプログラムの実行によって生成される場合（ステップＳ３３：Ｙｅｓルート）、処理はステップＳ３９に移行する。
【００３７】
一方、指定された出力項目の各々が、ステップＳ３１において特定された候補に含まれるプログラムの実行によって生成されない場合（ステップＳ３３：Ｎｏルート）、プログラム特定部１１２は、指定された出力項目の各々が、候補に含まれる入力テーブルのいずれかに含まれるか判定する（ステップＳ３５）。たとえ出力項目の各々がプログラムの実行によって生成されなくても、入力テーブルに含まれていればプログラムの実行によって出力されるので、ステップＳ３５の処理が実行される。
【００３８】
指定された出力項目の各々が、候補に含まれる入力テーブルのいずれかに含まれる場合（ステップＳ３５：Ｙｅｓルート）、処理はステップＳ３９に移行する。
【００３９】
一方、指定された出力項目の少なくともいずれかが、候補に含まれる入力テーブルのいずれにも含まれない場合（ステップＳ３５：Ｎｏルート）、プログラム特定部１１２は、ステップＳ３１において特定された候補を候補リストから削除する（ステップＳ３７）。
【００４０】
プログラム特定部１１２は、候補リストに未処理の候補が有るか判定する（ステップＳ３９）。候補リストに未処理の候補が有る場合（ステップＳ３９：Ｙｅｓルート）、処理はステップＳ３１に戻る。
【００４１】
一方、候補リストに未処理の候補が無い場合（ステップＳ３９：Ｎｏルート）、プログラム特定部１１２は、候補リストを出力部１１３に出力する。これに応じ、出力部１１３は、候補リストに含まれる候補のデータを表示装置（例えば、モニタ或いはプリンタ）に出力する（ステップＳ４１）。
【００４２】
ユーザは、表示装置に出力された候補のデータを参照し、入力装置（例えばマウス或いはキーボード）の操作によって適切な候補を１つ選択する。これに応じ、出力部１１３は、候補の指定を受け付ける（ステップＳ４３）。
【００４３】
出力部１１３は、候補に含まれるプログラムをプログラム格納部１０１から読み出し、候補に含まれるテーブルをテーブル格納部１０２から読み出す。そして、出力部１１３は、読み出されたプログラムを実行することで、読み出されたテーブルから、指定された出力項目の各々を含む出力テーブルを生成する（ステップＳ４５）。出力部１１３は、生成された出力テーブルを出力データ格納部１０６に格納する。そして処理は終了する。
【００４４】
以上のように、本実施の形態によれば、ユーザが出力項目を指定すれば、指定された出力項目の各々を含む出力テーブルが自動的に生成される。
【００４５】
ここで、図１６乃至図２８を用いて、情報処理装置１の動作をより具体的に説明する。
【００４６】
まず、第１の例を示す。例えば図１６に示すように、項目名が「月」である出力項目と、項目名が「売上月合計」である出力項目とが指定されたとする。この場合、図１７に示すように、プログラムメタデータ１７０１から、項目名が「月」である項目と項目名が「ｘ＋月合計」（ｘは任意の文字列）である項目とが出力されるプログラム「ｓｕｍ＿ｍｏｎｔｈ」が特定される。すると、図１８に示すように、プログラム「ｓｕｍ＿ｍｏｎｔｈ」のメタデータに含まれる条件から、項目名が「日」である入力項目１８０１と、項目名が「売上」である入力項目１８０２とが生成される。図１９に示すように、テーブルメタデータ１９０１からは、入力項目１８０１及び入力項目１８０２のいずれかを含むテーブルが特定される。ここでは、テーブル「支店売上」とテーブル「商品売上」とが特定されるので、図２０（ａ）乃至図２０（ｃ）に示すような組合せが生成される。
【００４７】
プログラムメタデータ１７０１と図２０（ａ）とを比較すると、プログラム「ｓｕｍ＿ｍｏｎｔｈ」については、入力に利用されるテーブルの数が１であり、プログラムメタデータ１７０１に登録されている各条件が満たされ、且つ、指定された出力項目１６０１の各々が出力される。従って、図２０（ａ）のテーブルとプログラム「ｓｕｍ＿ｍｏｎｔｈ」とを含む候補が候補リストに登録される。
【００４８】
プログラムメタデータ１７０１と図２０（ｂ）とを比較すると、プログラム「ｓｕｍ＿ｍｏｎｔｈ」については、入力に利用されるテーブルの数が１であり、プログラムメタデータ１７０１に登録されている各条件が満たされ、且つ、指定された出力項目１６０１の各々が出力される。従って、図２０（ｂ）のテーブルとプログラム「ｓｕｍ＿ｍｏｎｔｈ」とを含む候補が候補リストに登録される。
【００４９】
その他については、候補リストには登録されない。
【００５０】
従って、図２１に示すように、各候補のデータが表示装置に出力される。例えば、プログラム「ｓｕｍ＿ｍｏｎｔｈ」とテーブル「商品売上」とを含む候補が選択され、プログラム「ｓｕｍ＿ｍｏｎｔｈ」が実行されると、テーブル「商品売上」を入力として図２２に示すようなテーブルが出力される。
【００５１】
次に、第２の例を示す。例えば図２３に示すように、項目名が「日」である出力項目と、項目名が「支店名」である出力項目と、項目名が「所在地（都道府県）」である出力項目と、項目名が「売上」である出力項目とが指定されたとする。この場合、図２４に示すように、プログラムメタデータ２４０１からは、指定された出力項目２３０１の各々が出力されるプログラムは特定されない。すると、図２５に示すように、テーブルメタデータ２５５１から、項目名が「日」である項目、項目名が「支店」である項目、項目名が「所在地（都道府県）」である項目及び項目名が「売上」である項目のいずれかを含むテーブルが特定される。ここでは、テーブル「店舗所在地」とテーブル「支店売上」とテーブル「商品売上」とが特定されるので、図２６（ａ）乃至（ｇ）に示すような組合せが生成される。
【００５２】
プログラムメタデータ２４０１と図２６（ｄ）とを比較すると、プログラム「ｊｏｉｎ＿ｂｒａｎｃｈ」については、入力に利用されるテーブルの数が２であり、プログラムメタデータ２４０１に登録されている各条件が満たされ、且つ、指定された出力項目の各々が図２６（ｄ）のテーブルのいずれかに含まれる。従って、図２６（ｄ）のテーブルとプログラム「ｊｏｉｎ＿ｂｒａｎｃｈ」とを含む候補が候補リストに登録される。
【００５３】
プログラムメタデータ２４０１と図２６（ｄ）とを比較すると、プログラム「ｊｏｉｎ」については、入力に利用されるテーブルの数が２であり、プログラムメタデータ２４０１に登録されている各条件が満たされ、且つ、指定された出力項目の各々が図２６（ｄ）のテーブルのいずれかに含まれる。従って、図２６（ｄ）のテーブルとプログラム「ｊｏｉｎ」とを含む候補が候補リストに登録される。
【００５４】
その他については、候補リストには登録されない。
【００５５】
従って、図２７に示すように、各候補のデータが表示装置に出力される。例えば、プログラム「ｊｏｉｎ＿ｂｒａｎｃｈ」とテーブル「店舗所在地」及びテーブル「支店売上」とを含む候補が選択され、プログラム「ｊｏｉｎ＿ｂｒａｎｃｈ」が実行されると、テーブルテーブル「店舗所在地」及びテーブル「支店売上」を入力として図２８に示すようなテーブルが出力される。
【００５６】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５７】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５８】
なお、上で述べた情報処理装置１は、コンピュータ装置であって、図２９に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。例えば、テーブル特定部１１１とプログラム特定部１１２と出力部１１３とは、上記アプリケーションプログラムがＣＰＵ２５０３により実行されることで実現される。また、例えば、プログラム格納部１０１と、テーブル格納部１０２と、第１メタデータ格納部１０３と、第２メタデータ格納部１０４と、入力データ格納部１０５と、出力データ格納部１０６とは、メモリ２５０１又はＨＤＤ２５０５に設けられる。
【００５９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６０】
本実施の形態の第１の態様に係るテーブル管理方法は、（Ａ）テーブルの項目についての情報をテーブル毎に格納する第１データ格納部（例えば第１メタデータ格納部１０３）から、ユーザにより指定された１または複数の項目（例えば指定された出力項目）の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、（Ｂ）プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部（例えば第２メタデータ格納部１０４）から、特定された１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に１または複数の項目の各々を出力するプログラムを特定し、（Ｃ）１または複数のテーブルについての情報と特定されたプログラムについての情報とを出力する処理を含む。
【００６１】
このように、指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルに限定して処理が実行される。これにより、処理時間を短縮しつつ、指定された１または複数の項目を含む出力テーブルを生成するための入力テーブルと生成プログラムとを特定できるようになる。
【００６２】
また、特定されたプログラムは、１または複数の項目の各々が当該プログラムの実行によって出力される項目のいずれかと一致するという第１条件、または、１または複数の項目の各々が１または複数のテーブルの項目のいずれかと一致するという第２条件を満たしてもよい。出力が適切ではないプログラムを除外できるようになる。
【００６３】
また、特定されたプログラムは、１または複数のテーブルの数と当該プログラムの入力に利用されるテーブルの数とが一致するという第３条件を満たしてもよい。入力の数が適切ではないプログラムを除外できるようになる。
【００６４】
また、特定されたプログラムは、当該プログラムの実行時に入力される各項目が１または複数のテーブルの項目のいずれかと一致し且つ当該プログラムの実行によって出力される各項目が１または複数の項目のいずれかと一致するという第４条件を満たしてもよい。入力又は出力が適切ではないプログラムを除外できるようになる。
【００６５】
また、本テーブル管理方法は、（Ｄ）１または複数の項目の各々を出力するプログラムを第２データ格納部から特定し、（Ｅ）特定されたプログラムの入力及び出力についての情報と１または複数の項目の各々とから、１または複数の入力項目を生成する処理をさらに含んでもよい。そして、第４条件が、プログラムの実行時に入力される各項目が１または複数のテーブルの項目のいずれか又は１または複数の入力項目のいずれかと一致し、且つ、プログラムの実行によって出力される各項目が１または複数の項目のいずれかと一致するという条件であってもよい。上記のようにして生成された１または複数の入力項目をも利用することで、より適切なプログラムを特定できるようになる。
【００６６】
また、本テーブル管理方法は、（Ｆ）特定されたプログラムを、１または複数のテーブルの項目を入力として実行することで、１または複数の項目の各々を含む出力テーブルを生成する処理をさらに含んでもよい。ユーザが要求する出力テーブルを生成できるようになる。
【００６７】
本実施の形態の第２の態様に係るテーブル装置は、（Ｇ）テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定する第１特定部（例えばテーブル特定部１１１）と、（Ｈ）プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、第１特定部により特定された１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に１または複数の項目の各々を出力するプログラムを特定する第２特定部（例えばプログラム特定部１１２）と、（Ｉ）１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する出力部（例えば出力部１１３）とを有する。
【００６８】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７０】
（付記１）
コンピュータに、
テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、
プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、特定された前記１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に前記１または複数の項目の各々を出力するプログラムを特定し、
前記１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する、
処理を実行させるテーブル管理プログラム。
【００７１】
（付記２）
特定された前記プログラムは、前記１または複数の項目の各々が当該プログラムの実行によって出力される項目のいずれかと一致するという第１条件、または、前記１または複数の項目の各々が前記１または複数のテーブルの項目のいずれかと一致するという第２条件を満たす、
付記１記載のテーブル管理プログラム。
【００７２】
（付記３）
特定された前記プログラムは、前記１または複数のテーブルの数と当該プログラムの入力に利用されるテーブルの数とが一致するという第３条件を満たす、
付記１又は２記載のテーブル管理プログラム。
【００７３】
（付記４）
特定された前記プログラムは、当該プログラムの実行時に入力される各項目が前記１または複数のテーブルの項目のいずれかと一致し且つ当該プログラムの実行によって出力される各項目が前記１または複数の項目のいずれかと一致するという第４条件を満たす、
付記１乃至３のいずれか１つ記載のテーブル管理プログラム。
【００７４】
（付記５）
前記コンピュータに、
前記１または複数の項目の各々を出力するプログラムを前記第２データ格納部から特定し、
特定された前記プログラムの入力及び出力についての情報と前記１または複数の項目の各々とから、１または複数の入力項目を生成する、
処理をさらに実行させ、
前記第４条件が、
前記プログラムの実行時に入力される各項目が前記１または複数のテーブルの項目のいずれか又は前記１または複数の入力項目のいずれかと一致し、且つ、前記プログラムの実行によって出力される各項目が前記１または複数の項目のいずれかと一致するという条件である、
付記４記載のテーブル管理プログラム。
【００７５】
（付記６）
前記コンピュータに、
特定された前記プログラムを、前記１または複数のテーブルの項目を入力として実行することで、前記１または複数の項目の各々を含む出力テーブルを生成する、
処理をさらに実行させる付記１乃至５のいずれか１つ記載のテーブル管理プログラム。
【００７６】
（付記７）
コンピュータが、
テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定し、
プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、特定された前記１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に前記１または複数の項目の各々を出力するプログラムを特定し、
前記１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する、
処理を実行するテーブル管理方法。
【００７７】
（付記８）
テーブルの項目についての情報をテーブル毎に格納する第１データ格納部から、ユーザにより指定された１または複数の項目の少なくともいずれかをそれぞれ含む１または複数のテーブルを特定する第１特定部と、
プログラムの実行時に入力される項目及び当該プログラムの実行によって出力される項目についての情報をプログラム毎に格納する第２データ格納部から、前記第１特定部により特定された前記１または複数のテーブルの各々から少なくともいずれかの項目が入力された場合に前記１または複数の項目の各々を出力するプログラムを特定する第２特定部と、
前記１または複数のテーブルについての情報と特定された前記プログラムについての情報とを出力する出力部と、
を有するテーブル管理装置。
【符号の説明】
【００７８】
１  情報処理装置    １１  テーブル管理部
１０１  プログラム格納部    １０２  テーブル格納部
１０３  第１メタデータ格納部    １０４  第２メタデータ格納部
１０５  入力データ格納部    １０６  出力データ格納部
１１１  テーブル特定部    １１２  プログラム特定部
１１３  出力部
【図１】
2018005644.tif 000003
【図２】
2018005644.tif 000004
【図３】
2018005644.tif 000005
【図４】
2018005644.tif 000006
【図５】
2018005644.tif 000007
【図６】
2018005644.tif 000008
【図７】
2018005644.tif 000009
【図８】
2018005644.tif 000010
【図９】
2018005644.tif 000011
【図１０】
2018005644.tif 000012
【図１１】
2018005644.tif 000013
【図１２】
2018005644.tif 000014
【図１３】
2018005644.tif 000015
【図１４】
2018005644.tif 000016
【図１５】
2018005644.tif 000017
【図１６】
2018005644.tif 000018
【図１７】
2018005644.tif 000019
【図１８】
2018005644.tif 000020
【図１９】
2018005644.tif 000021
【図２０】
2018005644.tif 000022
【図２１】
2018005644.tif 000023
【図２２】
2018005644.tif 000024
【図２３】
2018005644.tif 000025
【図２４】
2018005644.tif 000026
【図２５】
2018005644.tif 000027
【図２６】
2018005644.tif 000028
【図２７】
2018005644.tif 000029
【図２８】
2018005644.tif 000030
【図２９】
2018005644.tif 000031