(57)【要約】【課題】高速検索が可能なＦＡＳＴ構造を利用しつつ、データの登録、追加、更新等の際の処理時間を短縮することができるデータ管理方法を提供すること。【解決手段】データ管理プログラム２１には、複数の項目についてそれぞれ項目値を持つレコードを複数含む表形式の元データの入力を受け付ける入力受付機能２１ａと、入力された元データについて、データ処理のキーとして使用する項目については、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存するコンパイル機能２１ｂと、入力された元データについて、データ処理のキーとして使用しない項目については、１レコードに複数の項目を含む表形式のデータとして保存する表形式保存機能２１ｃとが含まれる。【選択図】図１
2008250727.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
複数の項目についてそれぞれ項目値を持つレコードを複数含む表形式の元データの入力を受け付ける入力受付手順、
入力された元データについて、データ処理のキーとして使用する項目については、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている前記項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存するコンパイル手順、
入力された元データについて、データ処理のキーとして使用しない項目については、１レコードに複数の項目を含む表形式のデータとして保存する表形式保存手順、
を実行することを特徴とするデータ管理方法。
【請求項２】
コンピュータが、さらに、
前記表形式保存手段により保存されたデータについて、表形式で保存された全項目を１つの項目と見立て、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている前記項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存する第２のコンパイル手順
を実行することを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
コンピュータを、
複数の項目についてそれぞれ項目値を持つレコードを複数含む表形式の元データの入力を受け付ける入力受付手段、
入力された元データについて、データ処理のキーとして使用する項目については、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている前記項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存するコンパイル手段、
入力された元データについて、データ処理のキーとして使用しない項目については、１レコードに複数の項目を含む表形式のデータとして保存する表形式保存手段、
として機能させることを特徴とするデータ管理プログラム。
【請求項４】
複数の項目についてそれぞれ項目値を持つレコードを複数含む表形式の元データの入力を受け付ける入力受付手段と、
入力された元データについて、データ処理のキーとして使用する項目については、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている前記項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存するコンパイル手段と、
入力された元データについて、データ処理のキーとして使用しない項目については、１レコードに複数の項目を含む表形式のデータとして保存する表形式保存手段と、
を備えることを特徴とするデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いた大規模なデータベースにおけるデータ管理方法、プログラム及び装置に関し、特に、表形式のデータを読み込んで保存する際の手法に関する。
【背景技術】
【０００２】
大規模なデータベースには、多数のデータを表形式で管理し、複数の表を関連付けて運用するリレーショナルデータベース(ＲＤＢ)が従来から用いられている。ＲＤＢはトランザクション処理に向いているため、各種の基幹システムに用いられているが、全件のソートや更新、検索といった処理には時間がかかる。
【０００３】
このようなＲＤＢの弱点を克服するため、特許文献１には、成分分解法によるＦＡＳＴ(Filter Array Structure)構造が開示されている。ＦＡＳＴ構造では、表形式のレコードの配列であるデータを順序、位置、値の成分に分解(コンパイル)して管理することにより、全件を対象とした処理の高速化を可能としている。
【０００４】
【特許文献１】特許第３５８１８３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のＦＡＳＴ構造を採用したデータ管理方法では、表形式の元データに含まれる全ての項目についてＦＡＳＴ構造へのコンパイルが必要となるため、データの登録コストが高くなる。また、データの追加や更新、集計の際にもコンパイルが必要となるため、これらの処理に時間がかかるという問題がある。
【０００６】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、高速検索が可能なＦＡＳＴ構造を利用しつつ、データの登録、追加、更新等の際の処理時間を短縮することができるデータ管理方法、プログラム及び装置を提供することを目的(課題)とする。
【課題を解決するための手段】
【０００７】
本発明にかかるデータ管理方法は、コンピュータが、複数の項目についてそれぞれ項目値を持つレコードを複数含む表形式の元データの入力を受け付ける入力受付手順、入力された元データについて、データ処理のキーとして使用する項目については、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている前記項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存するコンパイル手順、入力された元データについて、データ処理のキーとして使用しない項目については、１レコードに複数の項目を含む表形式のデータとして保存する表形式保存手順を実行することを特徴とする。
【０００８】
コンピュータが、さらに、表形式保存手段により保存されたデータについて、表形式で保存された全項目を１つの項目と見立て、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存する第２のコンパイル手順を実行するようにしてもよい。
【０００９】
なお、本発明のデータ管理プログラムは、上記の方法の各手順に相当する手段としてコンピュータを機能させることを特徴とし、本発明のデータ管理装置は、そのように機能するコンピュータと等価である。
【発明の効果】
【００１０】
本発明によれば、入力された表形式の元データのうち、キーとして利用する項目についてのみＦＡＳＴ構造へのコンパイルを実行し、他の項目については表形式のまま保存するようにしたため、検索等に利用する項目についてはＦＡＳＴ構造に変換して高速検索を可能としつつ、キーとして利用しない項目についてはコンパイルをしないで表形式で保存することにより、全項目をコンパイルする従来の方法と比較してデータ登録の際、あるいは、レコードの追加、更新の際の処理時間を短縮することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明にかかるデータ管理方法の実施形態を説明する。最初に、図１に基づいて本実施形態のデータ管理方法が適用されるシステムの概要を説明する。このシステム１は、単独のコンピュータ１０と、周辺機器とから構成されている。コンピュータ１０は、ＣＰＵ１１、並びにこのＣＰＵ１１に接続されたハードディスク(ＨＤ)２０、メモリ(ＲＡＭ)１２及びインターフェイス１３を備えている。
【００１２】
なお、コンピュータ１０のＣＰＵ１１には、周辺機器としてディスプレイ３０、キーボード３１がインターフェイス１３を介して接続されている。
【００１３】
ＨＤ２０には、図示せぬオペレーティングシステムの他、データ管理プログラム２１がインストールされると共に、データベース(ＤＢ)２２が構築されている。ＣＰＵ１１は、起動するとＨＤ２０からオペレーティングシステムをＲＡＭ１３上に読み出して実行し、このオペレーティングシステム上でデータ管理プログラム２１を実行する。
【００１４】
データ管理プログラム２１には、複数の項目についてそれぞれ項目値を持つレコードを複数含む表形式の元データの入力を受け付ける入力受付機能２１ａと、入力された元データについて、データ処理のキーとして使用する項目については、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存するコンパイル機能２１ｂと、入力された元データについて、データ処理のキーとして使用しない項目については、１レコードに複数の項目を含む表形式のデータとして保存する表形式保存機能２１ｃとが含まれている。
【００１５】
ＤＢ２２は、キーとなる項目についてコンパイルして保存されたＦＡＳＴ構造データ２２ａと、キーとならない項目についてコンパイルせずに保存された表形式データ２２ｂとが格納されている。
【００１６】
なお、図１には、作業管理システムが単独のコンピュータにより構成される例を示したが、このコンピュータをサーバとしてネットワークを介して複数の端末を接続し、各端末から入力、閲覧ができるようにしてもよい。
【００１７】
次に、上記のシステム１において実行されるデータ管理処理の内容を、図２に示すフローチャートに基づいて説明する。図２のフローチャートは、入力されたテキストデータを所定の形式で保存した後、入力されたコマンドに従ってデータを処理する手順を示している。処理が開始すると、ＣＰＵ１１は、ステップS001においてテキストデータの入力を受け付ける。テキストデータは、CSV形式、あいるはタブ区切りのテキスト等の表形式のデータであり、外部のリレーショナルデータベースから出力され、あるいは、ユーザにより入力される。
【００１８】
入力時には、例えば図３に示すような選択画面がディスプレイ３０上に表示される。ユーザは、この画面上でテキストファイルを選択し、キーとする項目名をチェックボックスを使ってチェックする。例えば、この例では、master.txtというテキストファイルが入力ファイルとして選択されている。このファイルの内容は、図４に示されている。項目としてID，名称、性別が含まれている。図３の選択画面では、その中の項目「性別」がキーとして利用する項目として指定されている。
【００１９】
ステップS001でテキストデータが入力されると、ＣＰＵ１１は、ステップS002において、テキストデータの構造から各項目を識別し、項目毎にキーとして利用される項目か否かを判断する。キーとして利用する項目については、ステップS003でＦＡＳＴ構造へコンパイルされ、キーとして利用しない項目については、ステップS004で表形式の中継データ項目の配列に追加される。ステップS005で他の項目があると判断される間は、ステップS002〜S004の処理を繰り返し、全ての項目の処理が終了すると、ステップS006に処理が進められる。
【００２０】
処理されたテキストデータは、図５に示すような形式で保存される。すなわち、キーとして利用する項目「性別」については、ＦＡＳＴ構造にコンパイルされ、図５(A)に示すように、ユニークな項目値をソートした配列である項目値テーブルValueListと、レコードの配列順OrderSetと、当該レコードの項目値が格納されている項目値テーブル内の位置を記録した配列であるインデックス値テーブルValueNoとに分解して保存される。
【００２１】
一方、キーとして利用されない項目「ＩＤ」、「名称」は、コンパイルされず、図５(B)に示すような１つのレコードに複数の項目値を含む表形式の中継データ項目として保存される。ただし、レコードの位置を示すインデックス値テーブルValueListは生成される。
【００２２】
次に、ステップS006でコマンドが入力されると、ＣＰＵ１１はステップS007〜S009でコマンドの種類に応じて項目をチェックする。すなわち、コマンドがコンパイルされた項目を対象とするものである場合には、対象となる項目が全てコンパイル済みか否かを判断し、１つでもコンパイル済みでない項目があると異常終了する。全ての対象項目がコンパイル済みである場合、あるいは、コマンドの対象がコンパイルされた項目を対象としない場合に、ステップS010でコマンドを実行する。コマンドが複数ある場合には、ステップS011からステップS007に戻って全てのコマンドについて上記のS007〜S010の処理を繰り返し実行する。
【００２３】
全てのコマンドの実行が終了すると、ＣＰＵ１１はステップS012で処理結果としてテキストデータを出力する。ここでは、コンパイル済みの項目については、テキスト形式の文字列に変換し、表形式の中継データ項目と結合して１行ずつ出力する。全ての行の出力が終了すると、処理を終了する。
【００２４】
例えば、コマンドとして先に登録された図５に示すデータを性別順にソートして出力するよう入力した場合、出力のオプションを選択するために図６に示すような選択画面がディスプレイ３０に表示される。ここでは、出力ファイル名をmaster_new.txtと指定し、タブ区切りのデータとして、キーでない項目も出力するよう選択している。
【００２５】
性別によるソートを指定しているため、ステップS007ではコンパイル対象のコマンドであると判断され、ステップS008でこの項目がコンパイル済みであることが確認され、他の処理対象はないためステップS009をNoで抜けてステップS010で性別によるソートが実行される。ソートの結果は図７に示すとおりである。すなわち、項目「性別」については、図７(A)に示すように、インデックス値テーブルValueNoの値が昇順となるように、レコードの配列順OrderSetが並べ替えられる。ここではOderSetの「２」と「３」とが入れ替えられている。キーとして利用されない項目は、操作されず、図７(B)に示した状態で保存されている。
【００２６】
他のコマンドがなくステップS011をNoで抜けると、ステップS012でソートされた結果が１行ずつ出力される。このとき、図７(A)に示されるコンパイルされた項目「性別」は、コンパイル前の文字列に変換されて図７(B)に示される中継データ項目と結合されて出力される。図８は、出力フィルの内容を示す。この図に示されるように、ＩＤ、名称、性別の各項目を含むレコードが性別順にソートされて出力される。
【００２７】
なお、上記の実施形態では、キー項目とならない項目については、ＦＡＳＴ構造にコンパイルせずに、入力されたテキストデータと同様の表形式で保存している。ただし、これをさらにＦＡＳＴ構造にコンパイルすることも可能である。すなわち、表形式で保存されたデータについて、表形式で保存された全項目を１つの項目と見立て、ユニークな項目値をソートした配列である項目値テーブルと、レコードの配列順に当該レコードの項目値が格納されている項目値テーブル内の位置を記録した配列であるインデックス値テーブルとに分解して保存してもよい。
【００２８】
図９は、中継項目についてもコンパイルする場合の入力時の選択画面の例である。図３で示した選択画面に加え、「中継項目もコンパイルする」のチェックボックスが加えられている。ここで、図１０に示すようなテキストデータが入力された場合を例に説明する。図４に示したデータと比較すると、ＩＤ「０００１」の名称「山田太郎」のレコード(行)が４行になっている。
【００２９】
このテキストデータを入力し、上記の実施形態と同様性別をキー項目としてコンパイルすると、図１１(Ａ)に示すようなテーブルとなる。中継項目にはＩＤと名称とが含まれるが、これをさらにＦＡＳＴ構造にコンパイルする。
【００３０】
すなわち、中継項目に含まれる全項目を１つの項目と見立て、ユニークな項目値をソートする。この例では、ＩＤと名称との２つの項目を１つの項目と見立て、これらの値が共に一致するレコードは、同一と判断して項目値テーブルでは１つのレコードとする。すなわち、図１１(Ｂ)に示されるように、「０００１  山田  太郎」という項目値を持つ４つのレコードは、１つのレコードにまとめられる。
【００３１】
この変形例のように中継項目も圧縮(FAST構造へのコンパイル)した場合には、中継項目をコンパイルしない実施形態の方法よりコンパイルのための時間はかかるが、複数の項目について一回のみコンパイルすればよいため、全ての項目について１つずつコンパイルする場合と比較すれば時間を短縮でき、しかも、コンパイル後はデータ量が圧縮されるため、ハードディスクやメモリの消費量を削減することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るデータ管理装置を含むコンピュータシステムを示すブロック図である。
【図２】図１のデータ管理装置による処理の内容を示すフローチャートである。
【図３】図１のデータ管理装置のファイル入力時の選択画面を示す説明図である。
【図４】図１のデータ管理装置に入力されるテキストファイルの内容を示す説明図である。
【図５】図１のデータ管理装置により保存されたデータの構造を示す説明図である。
【図６】図１のデータ管理装置のファイル出力時の選択画面を示す説明図である。
【図７】図１のデータ管理装置により操作されたデータの構造を示す説明図である。
【図８】図１のデータ管理装置から出力されるテキストファイルの内容を示す説明図である。
【図９】本発明の実施形態の変形例におけるデータ管理装置のファイル入力時の選択画面を示す説明図である。
【図１０】本発明の実施形態の変形例におけるデータ管理装置に入力されるテキストファイルの内容を示す説明図である。
【図１１】本発明の実施形態の変形例におけるデータ管理装置により保存されたデータの構造を示す説明図である。
【符号の説明】
【００３３】
１  システム
１０  コンピュータ
１１  ＣＰＵ
１２  ＲＡＭ
１３  インターフェイス
２０  ＨＤ
２１  データ管理プログラム
２１ａ  入力受付機能
２１ｂ  コンパイル機能
２１ｃ  表形式保存機能
２２  ＤＢ
２２ａ  ＦＡＳＴ構造データ
２２ｂ  表形式データ
３０  ディスプレイ
３１  キーボード
【図１】
2008250727.tif 000003
【図２】
2008250727.tif 000004
【図３】
2008250727.tif 000005
【図４】
2008250727.tif 000006
【図５】
2008250727.tif 000007
【図６】
2008250727.tif 000008
【図７】
2008250727.tif 000009
【図８】
2008250727.tif 000010
【図９】
2008250727.tif 000011
【図１０】
2008250727.tif 000012
【図１１】
2008250727.tif 000013