(57)【特許請求の範囲】
【請求項１】
記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割し、前記共通して含まれる範囲を含むファイルの数が大きいほど、前記閾値を小さくする分割手段、
を含むことを特徴とするファイル管理装置。
【請求項２】
値の指定を含む検索条件を受け付けた場合に、前記記憶手段に記憶されるファイル群のうち、ファイルに含まれるデータ群の値の範囲が前記検索条件を満たす値を含む範囲であるファイルを対象に、前記検索条件に基づく検索処理を行なう検索手段、
をさらに含むことを特徴とする請求項１に記載のファイル管理装置。
【請求項３】
前記分割手段は、
前記あるファイルを除く前記複数のファイルと、前記あるファイルを除く前記複数のファイルとデータ群の値の範囲が一部重複する前記複数の分割ファイルのいずれかとのデータサイズの和が前記閾値を超える場合に、前記あるファイルを除く前記複数のファイルのいずれかまたは前記複数の分割ファイルのいずれかを対象に、さらに分割を実行する、
ことを特徴とする請求項１又は請求項２に記載のファイル管理装置。
【請求項４】
前記ファイル群に含まれる各ファイルのデータサイズは、所定サイズ以下であり、
前記分割手段は、
前記ファイル群のうちの所定数以上のファイルに、ファイルに含まれるデータ群の値の範囲に共通して含まれる範囲が存在する場合に、前記閾値を超えたと判断する、
ことを特徴とする請求項１又は請求項２に記載のファイル管理装置。
【請求項５】
前記分割手段は、
前記あるファイルを、それぞれに含まれるデータ群の値の範囲が互いに重複しない複数の分割ファイルに分割する、
ことを特徴とする請求項１〜４のいずれか１項に記載のファイル管理装置。
【請求項６】
前記データ群は、前記複数のファイルそれぞれに含まれるある属性に属するデータの集合である、
ことを特徴とする請求項１〜５のいずれか１項に記載のファイル管理装置。
【請求項７】
前記複数のファイルのうちのあるファイルは、前記ある属性に属するデータと、他の属性に属するデータと、を含み、
前記複数の分割ファイル同士で、前記ある属性に属するデータの値と、前記他の属性に属するデータの値との双方の範囲が同一でない、
ことを特徴とする請求項１〜６のいずれか１項に記載のファイル管理装置。
【請求項８】
前記分割手段が、
前記ある属性のデータの値と、前記他の属性のデータの値と、による２次元空間中の各格子点を含む所定の空間充填曲線を分割し、
前記複数のファイルに含まれるファイルのデータであって、分割されたそれぞれの前記所定の空間充填曲線上に存在するデータ群ごとに、分割ファイルを生成する、
ことを特徴とする請求項６に記載のファイル管理装置。
【請求項９】
前記ある属性について前記ファイル群に含まれるデータがとり得る値の範囲と、前記他の属性について前記ファイル群に含まれるデータがとり得る値の範囲の比に応じて、前記所定の空間充填曲線において自己相似となる各ユニットの縦横比が決定される、
ことを特徴とする請求項８に記載のファイル管理装置。
【請求項１０】
前記所定の空間充填曲線は、Ｚ曲線またはヒルベルト曲線のいずれかである、
ことを特徴とする請求項８又は請求項９に記載のファイル管理装置。
【請求項１１】
ファイル群を記憶する記憶装置と、
前記記憶装置に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズの和が閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割し、前記共通して含まれる範囲を含むファイルの数が大きいほど、前記閾値を小さくする分割手段、を含む管理装置と、
を含むことを特徴とするファイル管理システム。
【請求項１２】
コンピュータに、
記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割し、前記共通して含まれる範囲を含むファイルの数が大きいほど、前記閾値を小さくする、
ことを実行させることを特徴とするファイル管理方法。
【請求項１３】
コンピュータに、
記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割し、前記共通して含まれる範囲を含むファイルの数が大きいほど、前記閾値を小さくする、
処理を実行させることを特徴とするファイル管理プログラム。
【請求項１４】
前記コンピュータに、
他のファイルとファイル内のデータ群の値の範囲が重複するあるファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なるファイル群を、前記あるファイルに関連付けて前記記憶装置に記憶する、
処理を実行させることを特徴とする請求項１２に記載のファイル管理方法。
【請求項１５】
前記コンピュータに、
前記他のファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なる他のファイル群を、前記他のファイルに関連付けて前記記憶装置に記憶する、
処理を実行させることを特徴とする請求項１４に記載のファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に記憶するファイルの管理技術に関する。
【背景技術】
【０００２】
データベースに格納されるファイルに含まれる各データを、複数設定された範囲のうちのいずれに含まれるかに応じて振り分けて、複数ファイルを生成する技術がある。生成された複数ファイルが格納されたデータベースについて、ある値を検索条件とした検索処理を行なう場合に、複数ファイルのうち、設定された範囲が検索条件の値を含まないファイルについては検索処理を行なわずに済む。そのため、検索処理に伴うデータの読み出し量が抑制される（例えば、特許文献１など）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２３２２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、分割してデータベースに格納されたとしても、ファイルに含まれるデータの値の範囲が他のファイルと重複する場合には、検索処理において、いずれのファイルも読みだされることとなってしまう。従って、分割して格納されたファイル単体ではデータサイズが抑制されていたとしても、結果的に検索処理において多量のデータ読み出しが必要になり、検索性能が劣化してしまう。
【０００５】
本発明の一側面として、検索対象の複数のファイル同士でデータの値の範囲が重複する場合に、少なくとも一部の範囲についての検索処理におけるデータ読み出し量を低減することを目的とする。
【課題を解決するための手段】
【０００６】
１態様においては、ファイル管理装置が、記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する分割手段、を含む。
【０００７】
１態様においては、ファイル管理システムは、ファイル群を記憶する記憶装置と、前記記憶装置に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する分割手段、を含む管理装置と、を含む。
【０００８】
１態様では、ファイル管理方法は、コンピュータに、記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する、ことを実行させることである。
【０００９】
１態様では、ファイル管理プログラムは、コンピュータに、記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する、処理を実行させる。
【００１０】
１態様では、ファイル管理方法は、コンピュータに、他のファイルとファイル内のデータ群の値の範囲が重複するあるファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なるファイル群を、前記あるファイルに関連付けて記憶装置に記憶する、ことを実行させることである。 
【発明の効果】
【００１１】
本発明の一側面として、検索対象の複数のファイル同士でデータの値の範囲が重複する場合に、少なくとも一部の範囲についての検索処理におけるデータ読み出し量を低減する。
【図面の簡単な説明】
【００１２】
【図１】図１は、各ファイルのデータの値の範囲とデータ量との関係例を示す。
【図２】図２は、各ファイルのデータの値の範囲とデータ量との関係例を示す。
【図３】図３は、各ファイルのデータの値の範囲とデータ量との関係例を示す。
【図４】図４は、各ファイルのデータの値の範囲とデータ量との関係例を示す。
【図５】図５は、各ファイルのデータの値の範囲とデータ量との関係例を示す。
【図６】図６は、各ファイルのデータの値の範囲とデータ量との関係例を示す。
【図７】図７は、ファイル管理システムの装置構成例を示す。
【図８】図８は、コンピュータ１の機能構成例を示す。
【図９】図９は、コンピュータ１のハードウェア構成例を示す。
【図１０】図１０は、コンピュータ１のソフトウェア構成例を示す。
【図１１】図１１は、ファイル管理システムの装置構成例を示す。
【図１２】図１２は、ファイルの例を示す。
【図１３】図１３は、ファイルの例を示す。
【図１４】図１４は、ファイル管理テーブルの例を示す。
【図１５】図１５は、検索対象テーブルの例を示す。
【図１６】図１６は、ファイル格納の処理フロー例を示す。
【図１７】図１７は、分割対象テーブルの例を示す。
【図１８】図１８は、データ読出し量算出の処理フロー例を示す。
【図１９】図１９は、分割判定の属性が複数の場合の演算順序の説明図である。
【図２０】図２０は、ファイル分割の処理フロー例を示す。
【図２１】図２１は、ファイルの例を示す。
【図２２】図２２は、ファイルに含まれるデータの分布図を示す。
【図２３】図２３（ａ）、（ｂ）及び（ｃ）は、Ｚ曲線の例を示す。
【図２４】図２４は、Ｚ曲線の例を示す。
【図２５】図２５は、Ｚ曲線の例を示す。
【図２６】図２６は、Ｚ曲線を用いた分割のイメージ図を示す。
【図２７】図２７は、ファイルに含まれる各データの評価結果を示す。
【図２８】図２８は、ファイルの分割例を示す。
【図２９】図２９は、ファイルの分割例を示す。
【図３０】図３０は、ファイル管理の処理フロー例を示す。
【図３１】図３１は、ファイル検索の処理フロー例を示す。
【発明を実施するための形態】
【００１３】
データベースに格納されるファイルに対し「あるカラムＸに属するある値ｘ」を検索条件として検索する場合でも、カラムＸの値の範囲が値ｘを含まないデータ群を含むファイルについては、検索処理を行なう必要がない。換言すると、カラムＸの範囲が値ｘを含まないデータ群を含むファイルに対して、値ｘについての検索を行なったとしても、値ｘと合致するデータは得られない。そのため、検索処理を行なうにあたって、ファイルをメモリに読み出す前に、そのファイルに含まれるデータ群のカラムＸの値の範囲と、検索条件の値ｘとの照合を行なうことによって、不要なファイル読み出しが抑制される。
【００１４】
例えば、ファイルＡには、カラムＸの値が「１」のデータ、「４」のデータ、「７」のデータが含まれており、ファイルＢには、「５」のデータ、「９」のデータ、「１１」のデータが含まれているとする。その場合に、ファイルＡのカラムＸの値の範囲は、「１〜７」であり、ファイルＢのカラムＸの値の範囲は、「５〜１１」である。例えば、カラムＸの値が「３」のデータを要求する検索要求を受けた場合には、「３」は範囲「１〜７」に含まれるので、ファイルＡに対してカラムＸの値が「３」のデータを検索するが、「３」は「５〜１１」に含まれないので、ファイルＢに対して検索処理の必要がない。一方、カラムＸの値が「６」のデータを要求する検索要求を受けた場合には、「６」は、「１〜７」と「５〜１１」とのいずれにも含まれるため、ファイルＡ及びファイルＢの双方に対して検索処理を行なう。検索処理を行なう場合には、検索処理に伴って、補助記憶装置などに記憶されたファイルを主記憶装置などのプロセッサのワークエリアであるメモリに読み出す処理が行なわれる。また、検索処理を行なわない場合には、ファイルはメモリに読み出されないでよい。
【００１５】
図１〜６は、ファイルごとのカラムＸの値の範囲とデータ量との関係例を示す。縦軸はデータ量を示し、横軸は、カラムＸの値を示す。図１〜６中に示される各ブロックは各ファイルに対応し、横幅が各ファイルに含まれるカラムＸの値の範囲を示しており、縦幅が各ファイルのファイルサイズを示している。図１〜６において、ファイルに含まれるカラムＸの値の範囲が他のファイルと重複する場合には、それぞれのファイルに関する情報（ブロック）は縦軸方向に積み重ねられる。そのため、図１〜６には、ある値ｘで検索する際に、読み出しが必要なファイルと、読み出されるデータ量とが示される。
【００１６】
例えば、ある業務システムで作成されたファイルがデータベースに格納されるとする。業務システムで作成されるファイルには、日々新たに作成される類のファイルもあり得る。そういった場合に、カラムＸが例えば「日付」といった項目であると、ファイルごとのカラムＸの値の範囲とデータ量との関係は、図１に示す傾向となりうる。図１の例では、日付データが２０１２／０１／２６〜２０１２／０１／２７のファイルと、２０１２／０１／２７〜２０１２／０１／２８のファイルとでは、カラム「日付」の値が２０１２／０１／２７の部分で、カラムＸの値の範囲が重複している。また、日付データが２０１２／０１／２７〜２０１２／０１／２８のファイルと、２０１２／０１／２８〜２０１２／０１／２９のファイルとでは、カラム「日付」の値が２０１２／０１／２８の部分で、カラムＸのデータの範囲が重複している。
【００１７】
図１の例において、カラムＸの値が２０１２／０１／２７のデータを検索する場合には、２０１２／０１／２６〜２０１２／０１／２７のファイルと、２０１２／０１／２７〜２０１２／０１／２８のファイルとが読み出される。その一方で、２０１２／０１／２８〜２０１２／０１／２９のファイルは、カラムＸの値が２０１２／０１／２７のデータを含まないので、読み出さなくてもよい。
【００１８】
また、図１の例における点線は、検索処理においてメモリに読み出すデータ量の閾値を示す。この閾値は、例えば、検索処理の性能要件を満たす範囲内で定められたディスクのリードに要する時間（Ｉ／Ｏ時間）に対応するデータ量などである。各ファイルのファイルサイズは閾値を超えず、他のファイルと重複する範囲においても閾値を超えていない。
【００１９】
図１の例では、一部のファイル同士でカラムＸの値の範囲が一部重複するものの、カラムＸの範囲が互いに重複しないファイルが存在する。検索条件に含まれるカラムＸを「日付」とすると、日常的に新しいファイルを作成させる業務システムであれば、範囲の重複が少ない場合もあり得る。
【００２０】
しかしながら、図２に示すように、ファイル同士でカラムＸの値の範囲がほぼ重複してしまう場合がある。例えば、検索対象のカラムＸが従業員ＩＤや商品単価などのように、各ファイルで共通する値の使用が考えられる場合には、ファイル同士で値の範囲が重複しやすい。
【００２１】
図２にはファイルＦ１、ファイルＦ２及びファイルＦ３それぞれのカラムＸの値の範囲と、ファイルサイズとの関係を示している。ファイルＦ１、ファイルＦ２及びファイルＦ３は、それぞれのファイルのカラムＸの値がＸａ〜Ｘｂの範囲で互いに重複している。また、ファイルＦ１、ファイルＦ２及びファイルＦ３は、図１と同様に設定された閾値を超えている。
【００２２】
図３は、図２に示した例をより正確に図示した例である。図２では、理解のし易さのためにファイルとブロックとが１対１で対応付けられている。図２の例では、カラムＸの値がＸａ以下の場合に読み出すデータ量の合計が正しく表示されていない。図３の例に示すように、カラムＸがＸａ以下の場合とＸｂ以上の場合には、ファイルＦ１、ファイルＦ２及びファイルＦ３のファイルサイズは、閾値を超えていない。図４及び図５においても理解のし易さのために、図１及び図２のようにファイルとブロックとが１対１で対応付けられている。
【００２３】
図４は、ファイルＦ３をファイルＦ３−１及びファイルＦ３−２に分割した場合のカラムＸの値の範囲とデータ量との関係を示す。図２に示すようにファイルＦ１、ファイルＦ２及びファイルＦ３のファイルサイズが閾値を超えてしまった場合に、例えば、ファイルＦ３を互いにカラムＸの値の範囲が重複しない複数のファイルに分割することで、閾値超えとなりにくくなる。換言すれば、検索処理の際にメモリに読み出されるデータ量が閾値以下に抑えられる。複数のファイルに分割するには、例えば、ファイル内のデータを例えばカラムＸの値についてソートして、前半部分のデータを含むファイルと後半部分を含むファイルとが作成されることとしてもよい。例えば、ファイルＦ３に含まれるデータそれぞれのカラムＸの値が「４、７、１１、５、１、９、」であるとする。カラムＸについてソートされると、ファイルＦ３に含まれる各データは、「１、４、５、７、９、１１」の順序となる。ファイルＦ３は、例えば、カラムＸの値が「１、４、５」のデータを含むファイルＦ３−１と、「７、９、１１」のデータを含むファイルＦ３−２とに分割される。ファイルＦ３−１のカラムＸの値の範囲は「１〜５」であり、ファイルＦ３−２のカラムＸの値の範囲は「７〜１１」である。ファイルＦ３がデータを６つ含んでいたのに対し、ファイルＦ３−１とファイルＦ３−２とは、ともにデータを３つ含んでいる。これにより、カラムＸの値に対応したデータ量を削減することができるため、図４に示すようにファイルＦ１、ファイルＦ２及びファイルＦ３（ファイルＦ３−１及びファイルＦ３−２）のデータ量が閾値以下に抑制される。
【００２４】
さらに、例えば、ファイルＦ１、ファイルＦ２及びファイルＦ３により閾値を超えた場合に、図５の例に示すように、ファイルＦ１、ファイルＦ２及びファイルＦ３のそれぞれが分割されてもよい。その場合、検索処理にメモリに読み出すデータ量はさらに抑制される。
【００２５】
一方、ファイルＦ１、ファイルＦ２及びファイルＦ３のそれぞれが分割された場合であっても、分割の仕方によっては、図６の例に示すように、ファイルサイズが閾値を超える可能性がある。その場合は、例えば、カラムＸの値の範囲が、閾値を超えるカラムＸの範囲（Ｘｃ〜Ｘｂ）を含むファイル（ファイルＦ１−２、ファイルＦ２−２及びファイルＦ３−２）について再度分割が行なわれる。カラムＸの各値当たりのデータ量は、分割により元のファイルのカラムＸの各値当たりのデータ量以下になる。そのため、分割の繰り返しにより、カラムＸの各値当たりのデータ量は、閾値を下回る。
【００２６】
また、ファイルＦ１、ファイルＦ２及びファイルＦ３により閾値を超えた場合に分割して得られる複数のファイルは、互いにカラムＸの値の範囲が重複しない複数のファイルでなく、単にカラムＸの値の範囲が異なる複数のファイルでもよい。例えば、ファイルＦ３に含まれるデータそれぞれのカラムＸの値が「４、７、１１、５、１、９、」であるとする。例えば、ファイルＦ３を、カラムＸの値が「１、４、７」のデータを含むファイルＦ３−３と、カラムＸの値が「５、９、１１」のデータを含むファイルＦ３−４に分割されてもよい。ファイルＦ３−３とファイルＦ３−４とで、カラムＸの値の範囲は「５〜７」で重複する。そのため、「５〜７」の範囲内の値を検索条件とする検索処理においては、ファイルＦ３−３もファイルＦ３−４も読み出すことになるが、例えば、「１〜４」の範囲内の値を検索条件とする検索処理においては、ファイルＦ３−４の読み出しが抑制される。
【００２７】
図７は、本発明の実施形態のシステム構成例を示す。本実施形態のファイル管理システムは、コンピュータ１、記憶装置２、ネットワーク３、コンピュータ４、ネットワーク５を含む。コンピュータ１は、記憶装置２に記憶されたファイルの格納処理、管理、検索処理を行なう。記憶装置２は、記録媒体２ａを含み、コンピュータ１の制御に応じてファイルを記録媒体２ａに記憶する。コンピュータ４は、ネットワーク３を介してコンピュータ１と通信する。コンピュータ４は、例えば、コンピュータ１に検索要求を送信し、コンピュータ１から検索結果を受信する。また、コンピュータ４は、例えば、コンピュータ１にファイルをアップロードする。ネットワーク３は、例えば、インターネットやイントラネットなどのネットワークである。コンピュータ１と記憶装置２とは、ネットワーク５を介して通信する。ネットワーク５はインターネットやイントラネットでもよいし、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）など、ファイバチャネルなどを用いたネットワークでもよい。コンピュータ１は、例えば、コンピュータ４から検索要求を受けた場合に、記憶装置２に記憶されたファイルを検索し、検索結果をコンピュータ４に送信する。また例えば、コンピュータ１は、コンピュータ４からファイルのアップロード要求を受けた場合に、記憶装置２にファイルを格納し、管理する。
【００２８】
図８は、コンピュータ１の機能構成例を示す。コンピュータ１は、処理部１１、記憶部１２、通信部１３及び通信部１４を含む。処理部１１は、読込部１１１、分割部１１２、管理部１１３及び検索部１１４を含む。処理部１１は、記憶装置２への検索処理、ファイル管理処理、ファイル格納処理に関する演算と、記憶部１２、通信部１３及び通信部１４の制御を行なう。記憶部１２は、処理部１１のワークエリアとしてデータを記憶する。通信部１３は、ネットワーク３を介したコンピュータ４との通信処理を行なう。通信部１４は、ネットワーク５を介した記憶装置２との通信処理を行なう。
【００２９】
読込部１１１は、通信部１３によりコンピュータ４からのアップロード要求を引き渡された場合に、アップロードを要求されたファイルを記憶装置２に記憶させる。まず、読込部１１１は、アップロードするファイルのデータサイズ、ファイル名などの情報に加え、検索対象候補の属性、その属性の値の範囲などの情報を記憶部１２に記憶する。また、読込部１１１は、記憶装置２に記憶された他のファイルについてもデータサイズ、検索対象候補の属性、値の範囲などの情報を参照し、参照結果に応じて分割対象のファイルを決定する。  
【００３０】
分割部１１２は、分割対象のファイルが決定された場合に、ファイルの分割処理を行なう。また、分割部１１２は、ファイルの分割後に、さらに、記憶装置２に記憶された他のファイルのデータサイズ、検索対象候補の属性、値の範囲などの情報を参照し、参照結果に応じて分割対象のファイルを決定する。
【００３１】
管理部１１３は、記憶装置２に記憶されたファイルの管理を行なう。記憶装置２に記憶されたファイル群のデータサイズ、検索対象候補の属性、値の範囲などの情報を参照し、参照結果に応じて分割対象のファイルを決定する。
【００３２】
検索部１１４は、通信部１３によりコンピュータ４からの検索要求を引き渡された場合に、記憶部１２に記憶された記憶装置２に記憶されたファイル群のデータサイズ、検索対象候補の属性、値の範囲などの情報を参照し、検索対象のファイルを決定する。検索部１１４は、検索対象のファイルを記憶部１２に読み出して、検索要求に含まれる検索条件を満たすデータを抽出して、通信部１３に、抽出したデータをコンピュータ４に送信させる。
【００３３】
図９は、コンピュータ１のハードウェア構成例を示す。コンピュータ１は、例えば、プロセッサ３０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０３、ドライブ装置３０４、記録媒体３０５、通信インターフェース（Ｉ／Ｆ）３０６、入力インターフェース（Ｉ／Ｆ）３０７、出力インターフェース（Ｉ／Ｆ）３０８、ＳＡＮインターフェース（Ｉ／Ｆ）３０９、などを含む。それぞれのハードウェアはバス３０１を介して接続している。通信Ｉ／Ｆ３０６はネットワーク３を介した通信の制御を行なう。ＳＡＮ  Ｉ／Ｆ３０９は、ネットワーク５を介した通信の制御を行なう。入力インターフェース３０７は、入力装置３１１と接続されており、入力装置３１１から受信した入力信号をプロセッサ３０１に伝達する。出力インターフェース３０８は、出力装置３１２と接続されており、出力装置３１２に、プロセッサ３０１の指示に応じた出力を実行させる。
【００３４】
ＲＡＭ３０２は読み書き可能なメモリ装置であって、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの半導体メモリ、またはＲＡＭでなくてもフラッシュメモリなどが用いられる。ＲＯＭ３０３は、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）なども含む。ドライブ装置３０４は、記録媒体３０５に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記録媒体３０５は、ドライブ装置３０４によって書き込まれた情報を記憶する。記録媒体３０５は、例えば、ハードディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスクなどの記録媒体である。また、例えば、コンピュータ１は、複数種類の記録媒体それぞれについて、ドライブ装置３０４及び記録媒体３０５を設ける。
【００３５】
入力装置３１１は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ１の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力装置は、コンピュータ１の制御に応じて情報を出力する装置である。出力装置は、例えば、ディスプレイなどの画像出力装置（表示デバイス）や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力装置３１１及び出力装置３１２として用いられる。
【００３６】
プロセッサ３０１は、ＲＯＭ３０３や記録媒体３０５に記憶されたプログラムをＲＡＭ３０２に読み出し、読み出されたプログラムの手順に従って処理部１１の処理を行なう。その際にＲＡＭ３０２はプロセッサのワークエリアとして用いられ、記憶部１２の機能が実現される。プロセッサ３０１が読み出すプログラムについては、図１０を用いて説明する。
【００３７】
図１０は、コンピュータ１で動作するソフトウェア構成の例を示す。コンピュータ１において、図９に示すハードウェア群２４の制御を行なうＯＳ２３（オペレーションシステム）が動作する。ＯＳ２３に従った手順でプロセッサ３０１が動作して、ハードウェア２４の制御・管理が行なわれることにより、アプリケーションプログラムやミドルウェアによる処理がハードウェア２４により実行される。さらに、コンピュータ１において、例えば、ファイル管理プログラム２１やＳＡＮ制御プログラム２２などのミドルウェアが、ＲＡＭ３０２に読み出されてプロセッサ３０１により実行される。プロセッサ３０１がＳＡＮ制御プログラム２２に基づく処理を行なうことにより、通信部１４の処理を行なうように、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）などのＳＡＮ  Ｉ／Ｆ３０９が制御される。また、プロセッサ３０１がファイル管理プログラム２１に基づく処理を行なうことにより、（それらの処理をＯＳ２３に基づいてハードウェア２４を制御して）処理部１１、記憶部１２、通信部１３、通信部１４の機能が実現される。
【００３８】
図１１は、ファイル管理システムの構成例を示す。図８に示したシステムは、図１１に示すように構成されてもよい。図１１のシステムにおいては、図８に示すコンピュータ１の機能を複数のコンピュータにより実現する。例えば、図８のコンピュータ１に代えて、管理装置１Ａ、検索装置１Ｂ−１、検索装置１Ｂ−２、読込装置１Ｃ、Ｗｅｂサーバ１Ｄ及びＬＡＮ６がシステムに含まれる。例えば、管理装置１Ａは、蓄積データを管理し、図８に示す分割部１１２と管理部１１３の処理を行なう。例えば、検索装置１Ｂ（検索装置１Ｂ−１、検索装置１Ｂ−２など）は、蓄積データに対する検索処理など、図８に示す検索部１１４の処理を行なう。読込装置１Ｃは、業務システムからデータを取り込むなど、図８に示す読込部１１１の処理を行なう。Ｗｅｂサーバ１Ｄは、業務システムのコンピュータ４と、管理装置１Ａ、検索装置１Ｂ及び読込装置１Ｃとの間で行なわれるデータの中継処理を行なう。図１１のシステムのように機能ごとに別の装置を用いると、特定の機能の利用が増大した場合の対処が容易である。例えば、新たなデータの格納があまり行なわれず、検索要求が増大している場合には、検索装置を増設するなどによる対処が行なわれる。図１１に示すように記憶装置２は、記録媒体２ａに加えて記録媒体２ｂを備えてもよい。読込部１１１の制御により記憶されるデータの量が増大した場合には、例えば、記録媒体を記憶装置２に増設する対処が行われる。他にも、例えば、記憶装置２以外に別の記憶装置を増設する対処が行われる。
【００３９】
図８や図１１に示すファイル管理システムにおけるファイル管理の仕方について、さらに詳細に説明する。ファイル管理システムで管理されるファイルは、例えば、図１２に示すファイルＦＸ〜ＦＺや、図１３に示すファイルＦ１〜Ｆ３のようなＣＳＶ（Ｃｏｍｍａ−Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）形式のデータである。もしくは、ＸＭＬ形式のファイルが管理されてもよい。さらには、固定長データフォーマットが用いられてもよい。
【００４０】
ＣＳＶ形式のファイルでは、改行で区切られたレコードごと含まれる複数のデータは、カンマで区切られる。ＣＳＶ形式と類似の形式で、複数のデータをタブで区切る形式や半角スペースで区切る形式などがあるが、それらの形式もＣＳＶ形式と同様に取り扱うことができる。ＣＳＶ形式では、レコードにおいてカンマで区切られたいずれの位置にあるデータであるかによって、そのデータの属性（カテゴリ）が判断される。換言すれば、異なるレコード内のデータであって、カンマで区切られたデータ位置のうちの同じ位置に存在するデータ同士の属性は同じである。属性は、例えば、ファイルを作成する業務システム内でのデータの役割を示す。例えば、ファイルＦＸ〜ＦＺにおいては、「日付，時刻，商品名，金額」の順序で属性が定められている。レコード内で一番始めのデータは、業務システム内で「日付」を示すデータとして取り扱われ、次のデータは、「時刻」を示すデータとして取り扱われる。ちなみに、ファイルＦ１〜ファイルＦ３においては、「ＩＤ，コードＡ，コードＢ，名前」の順序で属性が定められている。固定長フォーマットを用いた場合にも、データの位置によって属性が定められる。ＸＭＬ形式のファイルでは、ファイルに含まれるデータに付されたタグにより属性が定められる。
【００４１】
図１４は、ファイル管理システムにおける管理情報の例である。図１４に示すファイル管理情報テーブルＴ１には、ファイルそれぞれのファイル名に対して、ファイルを格納したアドレス、ファイルサイズ、検索補助情報および親ファイル名が関連付けられて記憶されている。検索補助情報は、検索対象の候補となる属性と、ファイルに含まれるその属性のデータの最小値及び最大値と、を含む。検索対象の候補となる属性は、例えば、業務システムから設定されてもよいし、過去の統計に基づいて検索を要求されることが多い属性としてもよいし、もしくは、ファイルに含まれる全ての属性についての検索補助情報をファイル管理テーブルＴ１に記憶してもよい。親ファイル名は、分割元のファイルのファイル名である。ファイル名が指定され、指定されたファイルを読み出す場合には、管理部１１３は、ファイル管理テーブルＴ１のファイル名カラムのうち、指定されたファイル名に合致するものを抽出する。ファイル名カラムに指定されたファイル名が見つからない場合には、管理部１１３は、ファイル管理テーブルの親ファイル名カラムのうち、指定されたファイル名に合致するものを抽出する。複数の分割ファイルが合致した場合には、管理部１１３は、それらのファイルをまとめて出力する。ファイル管理テーブルＴ１は、例えば、ＲＡＭ３０２などに記憶されていて、ファイル管理プログラム２１を終了する場合に、記録媒体３０５に記憶される。
【００４２】
図１４のファイル管理テーブルＴ１を用いて管理されるファイルに対して行われる検索処理について説明する。例えば、属性「ＩＤ」が「６００」であるデータを要求する検索要求を受けた場合には、検索部１１４が、ファイル管理テーブルＴ１を参照し、属性「ＩＤ」のデータの範囲が「６００」を含むファイル（最小値が「６００」以下かつ最大値が「６００」以上のファイル）を抽出し、図１５に示す検索対象テーブルＴ２に格納する。検索対象テーブルＴ２には、抽出されたファイルのアドレスとファイルサイズが格納される。検索対象テーブルＴ２には、さらに、検索処理を終えたかを示すフラグ情報が格納される。検索部１１４は、さらに、検索対象テーブルＴ２を参照して検索未処理のファイルについて、検索対象テーブルＴ２に格納されたアドレスから、検索対象テーブルＴ２に格納されたサイズのデータをメモリに読み出して検索処理を行う。属性「ＩＤ」が「６００」を含むファイルＦ１、ファイルＦ２、ファイルＦ３−２及びファイルＦ４については、検索対象テーブルＴ２に情報が格納される。ファイルＦ３−１は、属性「ＩＤ」の範囲が「００１〜３２４」なので検索対象テーブルＴ２には格納されない。検索処理が終わったファイルは、フラグ情報が切り換えられる（図１５では「０」→「１」）。
【００４３】
別のやり方では、属性を特定しない検索補助情報が用いられる。記憶装置２に記憶される各ファイルについて、単にデータの値の範囲（最小値と最大値）を関連付けておき、検索条件の値「６００」と比較して、各ファイルについて「６００」を含みうるか否か判断してもよい。
【００４４】
また、別のやり方として、記憶装置２に記憶する際のデータ単位（ページ）のサイズを固定して管理する方法がある。ページごとに、ページに含まれるデータの値の範囲を関連付けておき、この範囲と検索条件との照合により、検索処理においてページの読み込みの要不要が判断される。その際、各ページのサイズが決まっているので、ファイル管理テーブルＴ１と検索対象テーブルＴ２においては、アドレスとサイズではなく、アドレス（もしくはページ番号）で管理される。
【００４５】
上述のファイル管理システムの各処理（ファイル格納、ファイル管理、検索）についてさらに詳細に説明する。
【００４６】
図１６は、記憶装置２にファイルを新規に格納する場合の処理フロー例を示す。読込部１１１が処理可能な状態になる（Ｓ１００）と、読込部１１１は、通信部１３によりコンピュータ４からのアップロード要求が伝達されたかを判定する（Ｓ１０１）。アップロード要求を受けない場合は、再度Ｓ１０１の判定が行われる（Ｓ１０１：Ｎｏ）。アップロード要求を受けた場合（Ｓ１０１：Ｙｅｓ）に、読込部１１１は、アップロード要求されたファイルのファイル名、ファイルサイズ、検索補助情報及びその他ファイルに定義された情報などのファイル管理情報を取得し、記憶部１２に記憶されたファイル管理テーブルＴに記憶する（Ｓ１０２）。ファイルサイズは、通信部１３を介してコンピュータ４から取得したファイルそのものから計測されてもよいし、ファイルに付加されたメタデータから取得してもよい。検索補助情報についても、属性及び範囲情報（最大値、最小値）をファイルに付されたメタデータから取得してもよいし、ファイルに含まれる各カラムをサーチして取得してもよい。
【００４７】
Ｓ１０２の処理後、読込部１１１は、ファイルに含まれる分割判定の属性を設定する（Ｓ１０３）。属性の設定は、例えば事前に設定されたポリシーに基づいて行われる。例えば、ファイル形式、コンピュータ４で動作するアプリケーションのＩＤ、アップロード要求を行ったクライアントのＩＤ、ファイル名のパターンなどに応じて、ファイルに含まれるいずれの属性を分割判定に用いるかを決定する。例えば、コンピュータ４を用いた業務システムで作成されたファイルは「日付」で検索される頻度が多い、という傾向が過去の統計から明らかになっていた場合に、「日付」についての検索時にデータ読出量を少なくするようなファイル分割により、確率的に性能向上が見込める。そのため、業務システムに用いられているアプリケーションを識別するＩＤや、業務システムを使用するクライアントのＩＤなどによりいずれの属性を分割判定の属性とするかが決定される。なお、分割判定の属性の決定は、アップロードするファイルごとに行われても良いし、記憶装置２に格納されたファイル群全体の傾向に基づいて統一的に決定されることとしてもよい。
【００４８】
次に、読込部１１１は、Ｓ１０３で決定された分割判定の属性について、記憶部１２に記憶されたファイル管理テーブルＴ１から、記憶装置２に記憶される各ファイルについての範囲情報を取得する（Ｓ１０４）。さらに、読込部１１１は、Ｓ１０４で取得した範囲情報に基づいて、分割判定の属性の値について、各値が検索条件となった場合のデータ読み出し量を算出する（Ｓ１０５）。Ｓ１０５のやり方については後述する。
【００４９】
さらに、読込部１１１は、Ｓ１０５で算出した読み出し量が予め設定した閾値を超えたか否かを判定する（Ｓ１０６）。閾値を超えた場合（Ｓ１０６：Ｙｅｓ）には、読込部１１１は、アップロードされるファイルのファイル名を、図１７に示す分割対象テーブルＴ３に格納する（Ｓ１０７）。もしくは、Ｓ１０７の処理において、読込部１１１は、Ｓ１０６で閾値を超えると判定された範囲を含む、または一部重複する範囲のデータによるファイルのファイル名を分割対象テーブルに格納する。分割対象テーブルＴ３は、記憶部１２に記憶される。分割部１１２は、分割対象テーブルＴ３に格納されたファイル名のファイルについて分割処理を行なう（Ｓ１０８）。分割処理の詳細については後述する。Ｓ１０８の分割処理によりファイルが分割されると、分割部１１２は、分割対象テーブルのフラグを更新し、記憶部１２に記憶されたファイル管理テーブルＴ１に、分割されたファイルのファイル管理情報を格納する（Ｓ１０９）。
【００５０】
例えば、Ｓ１０９の処理後、更に、Ｓ１０２からＳ１０９の処理が再度行なわれてもよい。すると、読込部１１１は、Ｓ１０８の分割処理後のファイル群のデータサイズの和が閾値を超えているか否かの判定を行なう（Ｓ１０６を再度行なう）。閾値を超えている場合（Ｓ１０６：Ｙｅｓ）には、読込部１１１（管理部１１３でもよい）は、分割処理後のファイル群に含まれるファイルのファイル名を分割対象テーブルＴ３に格納し（Ｓ１０７）、分割部１１２によるファイルの分割が再度行なわれる。このようにＳ１０２からＳ１０９の処理が繰り返されることにより、検索時のデータ読出し量がさらに抑制される。
【００５１】
Ｓ１０６で算出した読出し量が閾値を超えない場合（Ｓ１０７：Ｎｏ）か、もしくはＳ１０９の処理を終えた場合に、読込部１１１は、記憶装置２の空き領域を確認する（Ｓ１１０）。図１６には示していないが、空き領域がない場合には、読込部１１１はエラーを出力する。次に、読込部１１１は、通信部１１５に、Ｓ１１０で確認した空き領域のアドレスに、アップロードを要求されたファイルを転送させる（Ｓ１１１）。Ｓ１１１によりアップロードを要求されたファイルの格納処理を終了し、さらにアップロードするファイルがあるか否かの判定処理Ｓ１０１に戻る。
【００５２】
図１８は、分割判定の属性の各値におけるデータ読み出し量を算出する処理フロー例を示す。読込部１１１が処理を行なうこととして説明するが、管理部１１３が処理を行なう場合でも同様の処理が行なわれる。まず（Ｓ２００）、Ｓ１０４で取得したファイルごとの最大値と最小値とをソートする（Ｓ２０１）。ファイル数をｎとした場合に、ソートされた配列Ｘは、Ｘ（１）〜Ｘ（２ｎ）である。
【００５３】
さらに、読込部１１１は、ＶというＶ（１）〜Ｖ（２ｎ−１）の配列を生成し、ｂという変数についてｂが１から２ｎ−１まで繰り返し以下の演算（Ｓ２０７まで）を行なう（Ｓ２０２）。次に読込部１１１は、Ｖ（ｂ）を初期化（Ｖ（ｂ）＝０）する（Ｓ２０３）。Ｓ２０３の処理後、変数ａについて１からｎまで繰り返し以下の演算（Ｓ２０６まで）を行なう（Ｓ２０４）。ファイル管理テーブルＴ１において、ａ番目のファイルについて、ファイルサイズをＦｓｉｚｅ（ａ）、分割判定の属性についての最小値をＦｍｉｎ（ａ）、最大値をＦｍｉｎ（ａ）とする。その場合に、読込部１１１は、Ｆｍｉｎ（ａ）≦Ｘ（ｂ）かつＸ（ｂ＋１）≦Ｆｍａｘ（ａ）ならば、Ｖ（ｂ）＝Ｖ（ｂ）＋Ｆｓｉｚｅ（ａ）を計算する（Ｓ２０５）。ここで「＝」は代入演算子である。
【００５４】
Ｓ２０４〜Ｓ２０６、Ｓ２０２〜Ｓ２０７の繰り返しを行なった後、読込部１１１は、Ｖ（１）〜Ｖ（２ｎ−１）を出力する（Ｓ２０８）。その後、データ格納処理またはデータ管理処理に戻る。これらの処理により、分割判定の属性について、データ読み出し量を算出することができる。
【００５５】
例えば、分割判定の属性は複数決定されてもよい。複数の属性について検索頻度が高い場合には、複数の属性に基づいてファイルを分割することにより、複数の属性に対して検索性能が維持される。分割判定に複数の属性を用いる場合には、図１８の処理フローのＳ２０２〜Ｓ２０７の繰り返しを多重で行なえばよい。その場合は、配列Ｖは２次元の配列となり、範囲情報がソートされた値を格納する配列として、Ｘに加えてＹが用いられる。図１９を用いて、分割判定の属性に２つの属性を用いた場合に、データ読み出し量を算出する範囲の探索方法について説明する。例えば、ファイルＦ１０〜Ｆ１２（不図示）の属性Ｘの最小値及び最大値でソートし、ファイルＦ１０〜Ｆ１２の属性Ｙの最小値及び最大値でソートした結果が図１９に示す通りであったとする。例えば、ファイルＦ１０の属性Ｘの最小値はＸ（１）であり、属性Ｙの最小値はＹ（１）であり、属性Ｘの最大値はＸ（４）であり、属性Ｙの最大値はＹ（５）である。データの読出し量Ｖの値は、実線を隔てることにより変化するため、実線または点線で隔てられた単位領域ごとにＶの値を計算することで、２次元領域においてもＶの各値をもれなく算出することができる。例えば、Ｓ２０５の計算対象の領域は、網掛けで示した領域についてのＶを計算した後には、さらに矢印で示す方向に計算対象の領域にシフトされる。さらに、Ｓ２０５の計算対象の領域は、Ｘ（５），Ｙ（１）を最小値とし、Ｘ（６），Ｙ（２）を最大値とする領域を計算した後には、Ｘ（１），Ｙ（２）を最小値とし、Ｘ（２），Ｙ（３）を最大値とする領域にシフトされる。
【００５６】
図１９に示したファイルＦ１０〜Ｆ１２の例において、さらに、ファイルＦ１０、Ｆ１１、Ｆ１２のデータサイズが、それぞれ１．５ＭＢ、２ＭＢ、１ＭＢであり、閾値が４ＭＢであるとする。図１９には、最小値がＸ（３），Ｙ（３）であり、最大値がＸ（４），Ｙ（４）である領域が、ファイルＦ１０〜Ｆ１２のいずれにも含まれる得る範囲であることが示されている。最小値がＸ（３），Ｙ（３）であり、最大値がＸ（４），Ｙ（４）である領域内に含まれる検索条件を受け付けた場合には、ファイルＦ１０〜Ｆ１２のいずれについても読み出す（検索する）必要があり、４．５ＭＢのデータの読み出しが行なわれる。この場合、例えば図１６のＳ１０６の判定などで、４．５ＭＢは閾値４ＭＢを超えた（Ｓ１０６：Ｙｅｓ）と判定される。
【００５７】
図２０は、分割対象テーブルＴ３にファイル名が格納されたファイルの分割処理の処理フローを示す。分割部１１２は、まず（Ｓ３００）、分割対象テーブルＴ３に分割対象のファイル名が格納されているか否かを判定する（Ｓ３０１）。分割対象のファイル名が格納されていない場合（Ｓ３０１：Ｎｏ）には、Ｓ３０１の処理を再度行なう（待機する）。Ｓ３０１の判定で、分割対象のファイルがある場合には、分割対象のファイルをいくつに分割するかを示す分割数Ｄを決定する（Ｓ３０２）。分割数Ｄは、例えば、予め定められた数を用いる。例えば、「Ｄ＝２」と予め定められている場合には、分割対象のファイルは、２つに分割される。その他に分割数Ｄを定める方法については、後述する。
【００５８】
Ｓ３０２で分割数Ｄが決定されると、分割部１１２は、分割ファイルごとに、分割判定の属性についての範囲Ｒを決定する（Ｓ３０３）。例えば、分割数Ｄがｎである場合に、分割部１１２は、まず、Ｒ（０）〜Ｒ（ｎ）の配列を生成する。例えば、分割対象ファイルの分割判定の属性の最小値をＦｍｉｎ、最大値をＦｍａｘとすると、Ｒ（０）＝Ｆｍｉｎ，Ｒ（ｎ）＝Ｆｍａｘである。Ｒ（１）〜Ｒ（ｎ−１）については、分割部１１２は、例えば、Ｒ（０）〜Ｒ（ｎ）の範囲を等分割して定めてもよい。すなわち、Ｒ（ａ）は、Ｒ（０）＋（Ｒ（ｎ）−Ｒ（０））＊ａ／ｎなどである。または、例えば、分割部１１２は、ｎ＝２として、分割対象ファイルに含まれるデータ群の分割判定属性の値の平均値をＲ（１）としてもよい。その他の方法については、後述する。
【００５９】
Ｓ３０３の処理でＲ（０；ｎ）が決定されると、分割対象のファイルに含まれる各データに対して、Ｓ３０５及びＳ３０６の処理が繰り返し行なわれる（Ｓ３０４，Ｓ３０７）。分割部１１２は、Ｓ３０５の処理において、分割対象のファイルからデータを読み出し、Ｓ３０６の処理において、読み出したデータを含む範囲を決定する。Ｓ３０６の処理は、例えば、分割部１１２は、読み出したデータ値がＲ（ａ−１）以上でＲ（ａ）以下の場合に、ａ番目の範囲に含まれると判断する。ａ番目の範囲に含まれるデータは、分割ファイルａに振り分けられる。分割対象のファイルに含まれる各データについて、Ｓ３０４〜Ｓ３０７の処理を終えると、各データはＤ個の分割ファイルに振り分けられている。さらに、分割部１１２は、Ｓ３０１のフローに戻り、他に分割対象のファイルがあるか否かを判定する。
【００６０】
分割判定の属性が複数設けられた場合には、分割部１１２は、分割数Ｄ及び分割範囲Ｒを複数の属性のそれぞれについて設定する。カラムＸとカラムＹに基づいた分割を行なう場合には、カラムＸ方向の分割数ＤＸと、カラムＹ方向の分割数ＤＹとが設定される。さらに、Ｘ方向の分割範囲ＲＸ（０；ＤＸ）とＹ方向の分割範囲（０；ＤＹ）とが設定される。さらに、方向ごとに別のやり方で分割範囲が定められてもよい。例えば、ＲＸ（０）〜ＲＸ（ＤＸ）の範囲を等分割によりＲＸ（ａ）が定められ、ＲＹ（ａ）が分割対象のファイル内のデータの平均に基づいて定められてもよい。
【００６１】
分割判定の属性が複数設けられた場合の他の分割方法について説明する。例えば、図２１に示すファイルＦ２０について、分割判定の属性を「ＩＤ」と「コードＡ」にしたとする。図２２は、ファイルＦ２０に含まれるデータの「ＩＤ」と「コードＡ」の値の分布を示す。複数の属性に関して同じような頻度で検索要求を受けるのであれば、「ＩＤ」方向にも「コードＡ」方向にも幅が拡がらないデータ群で分割ファイルを作成した方が効率的である。例えば、１方向（「ＩＤ」方向）に狭い幅（１００ごと）に分割し、且つ他の１方向（「コードＡ」方向）で広い幅（５００ごと）に分割したとする。すると、各ブロックは全体の１／２０程度のデータサイズになっているにも関わらず、他の１方向（「コードＡ」）に関する検索要求に対しては、全体の半分程度のデータ読み出しが必要になってしまうためである。そこで、複数の属性の両者の検索頻度に応じた分割範囲の設定に、空間充填曲線を利用し、複数方向のいずれについてもひろがらない分割範囲を設定する。
【００６２】
例えば、空間充填曲線にＺ曲線を用いる。Ｚ曲線とは、図２３（ａ）〜（ｃ）に示す曲線であり、複数次元空間に存在する各格子点を１本の曲線が通るため、複数次元の空間を１次元的に処理できる。図２３（ａ）に示すように、（０，０）を始点とするＺ曲線は、「コードＡ」方向（Ｙ方向）に＋１進み、（０，０）→（０，１）という経路を通る。その次に、Ｚ曲線は、Ｙ方向に−１、「ＩＤ」方向（Ｘ方向）に＋１進み、（０，１）→（１，０）の経路を通る。さらに、Ｚ曲線は、Ｙ方向に＋１進み、（１，０）→（１，１）の経路を通る。Ｚ曲線は、Ｙ方向に進む→Ｙ方向について戻るとともにＸ方向に進む→Ｙ方向に進む、というパターンを繰り返した経路を通る。図２３（ｂ）に示すように、Ｚ曲線は、（１，１）に続いて、（０，２）から、（０，０）→（０，１）→（１，０）→（１，１）のパターンを繰り返し、次に、（２，０）から、（０，０）→（０，１）→（１，０）→（１，１）のパターンを繰り返し、さらに、（２，２）から、（０，０）→（０，１）→（１，０）→（１，１）のパターンを繰り返している。従って、（０，０）→（０，１）→（１，０）→（１，１）のパターンは、（０，０）→（０，２）→（２，０）→（２，２）の順で繰り返されている。このように、Ｚ曲線は、パターンの繰り返し自体が、繰り返したパターンと同形であり、いわゆる自己相似形をなしている。さらに、図２３（ｃ）には、図２３（ｂ）に示したパターンが（０，０）→（０，４）→（４，０）→（４，４）と繰り返されており、Ｚ曲線はさらに自己相似形をなしている。図２３（ｃ）に示されるＺ曲線上で近い点同士は、大体まとまった範囲に存在しているため、Ｚ曲線上で近い点同士で分割ファイルを作成すると、Ｘ方向とＹ方向との双方向についてまとまった分割ファイルが作成される。
【００６３】
Ｚ曲線の経路は、例えば、以下のアルゴリズムにより辿ることができる。まず、Ｚ曲線上の座標点Ｚ１を２進数表記する（例えば、Ｚ１＝１００１０１１０１０１１）。次に、Ｚ１の値を一桁ずつ交互にＸの値とＹの値に振り分ける（例えば、Ｚｘ１＝１００１１１、Ｚｙ１＝０１１００１）。この振り分けられた値が２次元空間上の座標となる（例えば、Ｚｘ１＝３９、Ｚｙ１＝２５）。
【００６４】
また、空間充填曲線は、上述のＺ曲線のみに限られない。先述の（０，０）→（０，１）→（１，０）→（１，１）のパターンを用いたＺ曲線に加えて、図２４に示す（０，０）→（１，０）→（０，１）→（１，１）のパターンを用いたＺ曲線も用いられ得る。ちなみに、自己相似のパターンが（０，０）→（１，０）→（０，１）→（１，１）のＺ曲線の場合は、Ｚ１の値を交互に振り分ける順序が逆となる。
【００６５】
さらには、例えば、図２５に示す（０，０）→（１，０）→（２，０）→（０，１）→（１，１）→（２，１）のパターンで自己相似形を有するＺ曲線が用いられる。この場合、Ｘ方向については０→１→２、Ｙ方向には０→１でユニットが形成されているので、Ｘ方向には３進数、Ｙ方向には２進数を用いて、Ｘ−Ｙ空間の座標とＺ曲線の座標との変換が行なわれる。Ｚ１の座標は、Ｚｘ１＝３９、Ｚｙ１＝２５である。Ｚｘ１は３進数表記で１１１０である。また、Ｚｙ１は２進数表記で１１００１である。Ｚｙ１とＺｘ１との値を交互に用いると、Ｚ１＝１０１１０１０１１０となる。この値を３進数の値として用いると、２次元空間中の各格子点が、図２５に示す順序でＺ曲線上に配置される。
【００６６】
このように、Ｚ曲線の自己相似形のパターンは変更可能である。例えば、図２５に示す自己相似形のパターンでＸ方向に隣り合う座標点同士は、図２３に示すパターンよりも、Ｚ曲線上で近い位置に配置される可能性が高い。そのため、Ｚ曲線上の位置に基づいてファイル分割を行なう場合には、図２５のパターンを用いることで、Ｘ方向で近い位置にある２点（２データ）が別の分割ファイルに分かれてしまうことが抑制される。以下に述べる分割方法が行なわれる場合に、Ｚ曲線の自己相似パターンを選択されることとしてもよい。例えば、そもそもファイルに含まれるデータのオーダーが異なる場合（分割判定の属性に「日時」と「ＩＤ」とが選ばれた場合など）に、そのオーダーに合わせて自己相似パターンのＸ−Ｙ比を定める。また、例えば、属性ごとの検索頻度の統計情報に基づいて自己相似パターンのＸ−Ｙ比を定めてもよい。例えば、管理部１１３が、検索部１１４により検索処理が行なわれるたびに、どの属性についての検索処理が行なわれたかを判断し、属性ごとに、検索処理が行なわれた回数をカウントしておく。さらに、管理部１１３は、ファイルの分割が必要であると判断された場合に、属性Ｘについてカウントした値と属性Ｙについてカウントした値との比（もしくはそれに近い比）を、自己相似パターンのＸ−Ｙ比として用いる。その際、自己相似形のパターンは、検索頻度の高い属性の方に、大きい数ｎを基準にしたｎ進数を用いて設定される。これにより、検索頻度の高い属性の方が細かくファイル分割されやすくなるため、検索性能劣化しにくくなる。また、Ｘ−Ｙ座標が、図２５に示す自己相似形のパターンのようにＸ−Ｙで異なる基準数を用いてＺ曲線上の座標に変換された場合、Ｚ曲線上にデータが存在しない範囲が存在する。例えば、図２３の例によれば、Ｚ曲線上の値は、０→１→２→１０→１１→１２→１００・・・なるが、３進数でならば、１２→１００の間に、２０，２１及び２２が存在する。これは、Ｙ方向に２進数で進むため、Ｚ曲線上の座標の２桁目が「２」をとりえないためである。このため、Ｘ−Ｙで、変換に用いるｎ進数のｎが異なる場合には、Ｚ曲線上でユニット間にデータが存在しない範囲が生じるため、ユニット間の距離が長くなり、ユニット間で分割されやすくなる。
【００６７】
また、空間充填曲線として、Ｚ曲線でなく、例えば、ヒルベルト曲線が用いられてもよい。
【００６８】
図２１に示されるファイルＦ２０の各データは、上述の順序で２次元格子点を経由するＺ曲線に、図２２の矢印に示す順序で通過される。その通過順序で各データを表すことにより、「ＩＤ」と「コードＡ」という２次元で表現されたファイル２０の各データは、図２６のように１次元で表現可能である。この場合、例えば、分割判定の属性が１つの場合と同様に、Ｚ曲線を等分割する、各データのＺ曲線における順序の平均値のところで分割する、などの方法により分割範囲が定められる。
【００６９】
ちなみに、図２１に示されるファイルＦ２０に含まれるＸ（「ＩＤ」の値）、Ｙ（「コードＡ」の値）及びＺの値は、図２７に示す通りである（Ｘ、Ｙ及びＺのいずれについても１０進数で表記している）。「ｌｅｎｇｔｈ（Ｚ）」は、１つ上のレコードに記載されたデータとのＺ曲線上での距離を示しており、その隣の「ｒａｎｋ」は、Ｚ曲線上での距離が遠い順に順位を示している。また、「ｌｅｎｇｔｈ（Ｘ−Ｙ）」は、１つ上のレコードに記載されたデータとのＸ−Ｙ空間での距離を示しており、その隣の「ｒａｎｋ」は、Ｘ−Ｙ空間での距離が遠い順に順位を示している。
【００７０】
例えば、ファイルＦ２０の分割範囲は、距離（「ｌｅｎｇｔｈ（Ｚ）」又は「ｌｅｎｇｔｈ（Ｘ−Ｙ）」の値）が大きいデータ間で区切って定められてもよい。例えば分割数を２とすると、ファイルＦ２０の例に基づけば、分割範囲は（１００，６９４）と（５３３，１３０）との間で区切られる。すなわち、Ｚ曲線で結ばれた（００１，０４５）から（１００，６９４）までのデータと、Ｚ曲線で結ばれた（５３３，１３０）から（９９１，６８１）までのデータとで、それぞれ分割ファイルが生成される。分割数が２よりも大きい場合には、例えば、図２７においてｒａｎｋが２以上のデータ間でも分割範囲が区切られる。ｒａｎｋは、「ｌｅｎｇｔｈ（Ｚ）」に関するｒａｎｋを採用してもよいし、「ｌｅｎｇｔｈ（Ｘ−Ｙ）」に関するｒａｎｋを採用してもよい。
【００７１】
図２８は、分割数が２の場合に、「ｌｅｎｇｔｈ（ｚ）」が最も大きいデータ間と、「ｌｅｎｇｔｈ（ｚ）」が２番目に大きいデータ間とで、ファイルＦ２０を分割した例である。分割ファイルＦ２０−１と分割ファイルＦ２０−２とは、それぞれＸ方向の範囲が大幅に小さくなる（「ＩＤ」の値の範囲が狭まる）。ファイルＦ２０では、００１〜９９９の範囲であったところ、分割ファイルＦ２０−１では００１〜３２４、分割ファイルＦ２０−２では５３３〜９９９となっている。
【００７２】
図２９は、分割数が３の場合に、「ｌｅｎｇｔｈ（ｚ）」が最も大きいデータ間、２番目に大きいデータ間、３番目に大きいデータ間でファイルＦ２０を分割した例である。図２６に示した分割ファイルＦ２０−２がさらに分割されて、分割ファイルＦ２０−３、分割ファイルＦ２０−４が生成される。分割ファイルＦ２０−２では、Ｙ方向の範囲が１３０〜６８１であったところ、分割ファイルＦ２０−３では１３０、分割ファイルＦ２０−４では２８０〜６８１となっている。
【００７３】
また、分割範囲を決定する他の方法として、Ｚ曲線上のデータ間のそれぞれで区切られた場合を評価する方法がある。例えば、（３２４，４７５）と（１００，６９４）との間でファイルを分割するか、（１００，６９４）と（５３３，１３０）との間でファイルを分割するかの判断を例として説明する。比較するデータ間は、ファイルＦ２０のうちの全てのデータ間でも一部のデータ間でもよい。
【００７４】
評価は、例えば、分割ファイルそれぞれに含まれるデータのＺ曲線における（最大値−最小値）の積を用いる。積が小さいほど、分割ファイルに含まれるデータ同士がＺ曲線上で近い位置にあると考えられる。図２７によれば、（１，４５）のＺの値は１１０７、（３２４，４７５）のＺの値は２２５６３７、（１００，６９４）のＺの値は２９０１００、（５３３，１３０）のＺの値は５４１２２２、（９９１，６８１）のＺの値は９７６６１９である。すると、（３２４，４７５）と（１００，６９４）との間でファイルを分割した場合の評価値は、１．５×１０＾１１程度であり、（１００，６９４）と（５３３，１３０）との間でファイルを分割した場合の評価値は、１．３×１０＾１１程度である。この場合、評価値が小さい方の（１００，６９４）と（５３３，１３０）との間でファイルＦ２０が分割される。
【００７５】
ファイルを分割することにより、一度の検索処理で読み出すデータの量が少なくなり得ることを上述した。しかしながら、ファイル数が増大しすぎると、ファイルのオープン／クローズなどによるオーバーベッドが増大する。例えば、ファイルの抽出に要する時間をＣｅとすると、その内訳は、主に、（１）ファイルのリードに要する時間、（２）リードするファイルの特定に要する時間、（３）ファイルのオープン／クローズ処理に大別される。
【００７６】
さらに、（１）〜（３）のそれぞれは、例えば、後述のパラメータで見積もられる。（１）は、（分割対象のファイルのファイルサイズ）／（分割数）×（オープンするファイル数）×（Ｉ／Ｏ性能に依存する比例係数）などで見積もられる。また、（２）は、（分割数）×
（検索補助情報のサイズ）×（管理情報へのアクセス性能に依存する係数）などで見積もられる。さらに、（３）は、（オープンされるファイルの数）×（１ファイルのオープン／クローズ処理時間）などで見積もられる。
【００７７】
分割数が大きくなると、読出しが必要なデータ量が小さくなるため、（１）のファイルリードに要する時間は少なくなると考えられる。しかしながら、分割数が多くなると、（２）のリードするファイルを特定する時間などの１ファイル当たりのオーバーヘッドは、検索補助情報の参照処理のボリュームが多くなるため、増大する。そのため、例えば、図２０のＳ３０２では、上述の式に基づいて、分割数を決定する。先述の通り、分割数は、予め数が定められていてもよい。例えば、２又は３と決めておく。
【００７８】
また、例えば、ファイルの数に応じて（３）の処理時間が見込まれるため、ファイルの数に応じて読み出しデータ量の閾値が設定される。例えば、図１から６に示した閾値は、ファイルの数が１つ増えるたびに、（１ファイルのオープン／クローズ処理時間）に読み出し可能なデータ量ずつ下げて設定される。これにより、ファイル数が多い場合に、ファイルのオープン／クローズ処理などのオーバーヘッドによる検索性能劣化が生じにくくなる。
【００７９】
次に、既に格納されたファイルの監視に基づいて、ファイル分割を行なう場合について説明する。図３０は、管理部１１３のファイル管理の処理フロー例を示す。読込部１１１とファイル分割判定を行なう契機が異なる。まず、管理部１１３が監視を開始する（Ｓ４００）と、管理部１１３は、図１６のＳ１０２〜Ｓ１０９の処理を行なう（Ｓ４０１）。その後、管理部１１３は処理を終了する（Ｓ４０２）。
【００８０】
次に、検索要求を受け付けた場合の検索処理の手順を説明する。図３１は、検索部１１４のファイル検索の処理フロー例を示す。まず（Ｓ５００）、検索部１１４は、検索要求が受け付けられたかを判定する（Ｓ５０１）。次に、検索部１１４は、受け付けた検索要求から、属性と、データの値と、を取得する（Ｓ５０２）。検索部１１４は、さらにＳ５０２で取得した属性の情報がファイル管理テーブルＴ１に含まれているか否かを判定する（Ｓ５０３）。検索要求の属性がそもそも存在しない場合（Ｓ５０３：Ｎｏ）には、Ｓ５０９にフローが移行する。ファイル管理テーブルＴ１に管理情報を格納された各ファイルに関して、検索部１１４は、以下の処理を行なう（Ｓ５０４〜Ｓ５０７）。検索部１１４は、Ｓ５０３で判定された属性における最大値と最小値とは、最小値≦検索要求の値≦最大値であるかを判定する（Ｓ５０５）。検索部１１４は、最小値≦検索要求の値≦最大値の関係を満たすファイルについては（Ｓ５０５：Ｙｅｓ）、図１５に示す検索対象テーブルに、アドレスとサイズ情報を格納する（Ｓ５０６）。最小値≦検索要求の値≦最大値を満たさない場合（Ｓ５０５：Ｎｏ）は、Ｓ５０７にフローが移行する。検索部１１４は、Ｓ５０４〜Ｓ５０７の処理を終えると、検索対象テーブルＴ２の情報を基にファイルを読み出して、Ｓ５０２で取得した検索条件（属性及び値）を満たす検索処理を行ない、検索結果を出力する（Ｓ５０８）。上記の手順により検索処理が行なわれる（Ｓ５０９）。
【００８１】
以上の実施形態に関し、さらに以下の付記を開示する。
【００８２】
（付記１）
記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する分割手段、
を含むことを特徴とするファイル管理装置。
（付記２）
値の指定を含む検索条件を受け付けた場合に、前記記憶手段に記憶されるファイル群のうち、ファイルに含まれるデータ群の値の範囲が前記検索条件を満たす値を含む範囲であるファイルを対象に、前記検索条件に基づく検索処理を行なう検索手段、
をさらに含むことを特徴とする付記１に記載のファイル管理装置。
（付記３）
前記分割手段は、
前記共通して含まれる範囲を含むファイルの数が大きいほど、前記閾値を小さくする、
ことを特徴とする付記１又は付記２に記載のファイル管理装置。
（付記４）
前記分割手段は、
前記あるファイルを除く前記複数のファイルと、前記あるファイルを除く前記複数のファイルとデータ群の値の範囲が一部重複する前記複数の分割ファイルのいずれかとのデータサイズの和が前記閾値を超える場合に、前記あるファイルを除く前記複数のファイルのいずれかまたは前記複数の分割ファイルのいずれかを対象に、さらに分割を実行する、
ことを特徴とする付記１又は付記２に記載のファイル管理装置。
（付記５）
前記ファイル群に含まれる各ファイルのデータサイズは、所定サイズ以下であり、
前記分割手段は、
前記ファイル群のうちの所定数以上のファイルに、ファイルに含まれるデータ群の値の範囲に共通して含まれる範囲が存在する場合に、前記閾値を超えたと判断する、
ことを特徴とする付記１又は付記２に記載のファイル管理装置。
（付記６）
前記分割手段は、
前記あるファイルを、それぞれに含まれるデータ群の値の範囲が互いに重複しない複数の分割ファイルに分割する、
ことを特徴とする付記１〜５のいずれか１つに記載のファイル管理装置。
（付記７）
前記データ群は、前記複数のファイルそれぞれに含まれるある属性に属するデータの集合である、
ことを特徴とする付記１〜６のいずれか１つに記載のファイル管理装置。
（付記８）
前記複数のファイルのうちのあるファイルは、前記ある属性に属するデータと、他の属性に属するデータと、を含み、
前記複数の分割ファイル同士で、前記ある属性に属するデータの値と、前記他の属性に属するデータの値との双方の範囲が同一でない、
ことを特徴とする付記１〜７のいずれか１つに記載のファイル管理装置。
（付記９）
前記分割手段が、
前記ある属性のデータの値と、前記他の属性のデータの値と、による２次元空間中の各格子点を含む所定の空間充填曲線を分割し、
前記複数のファイルに含まれるファイルのデータであって、分割されたそれぞれの前記所定の空間充填曲線上に存在するデータ群ごとに、分割ファイルを生成する、
ことを特徴とする付記８に記載のファイル管理装置。
（付記１０）
前記ある属性について前記ファイル群に含まれるデータがとり得る値の範囲と、前記他の属性について前記ファイル群に含まれるデータがとり得る値の範囲の比に応じて、前記所定の空間充填曲線において自己相似となる各ユニットの縦横比が決定される、
ことを特徴とする付記９に記載のファイル管理装置。
（付記１１）
前記所定の空間充填曲線は、Ｚ曲線またはヒルベルト曲線のいずれかである、
ことを特徴とする付記９又は付記１０に記載のファイル管理装置。
（付記１２）
ファイル群を記憶する記憶装置と、
前記記憶装置に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズの和が閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する分割手段、を含む管理装置と、
を含むことを特徴とするファイル管理システム。
（付記１３）
コンピュータに、
記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する、
ことを実行させることを特徴とするファイル管理方法。
（付記１４）
コンピュータに、
記憶手段に記憶されるファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する、
処理を実行させることを特徴とするファイル管理プログラム。
（付記１５）
記憶装置に記憶されるファイル群に含まれる各ファイルについて、各ファイルに含まれるデータ群の値の範囲を記憶するメモリと、
前記ファイル群中の複数のファイルそれぞれに含まれるデータ群の値の範囲に、共通して含まれる範囲が存在し、且つ前記複数のファイルの総データサイズが閾値を超える場合に、前記複数のファイルのうちのあるファイルを、それぞれに含まれるデータ群の値の範囲が互いに異なる複数の分割ファイルに分割する処理を行なうプロセッサと、
を含むことを特徴とするファイル管理装置。
（付記１６）
コンピュータに、
他のファイルとファイル内のデータ群の値の範囲が重複するあるファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なるファイル群を、前記あるファイルに関連付けて記憶装置に記憶する、
処理を実行させることを特徴とするファイル管理方法。
（付記１７）
前記コンピュータに、
前記他のファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なる他のファイル群を、前記他のファイルに関連付けて前記記憶装置に記憶する、
処理を実行させることを特徴とする付記１６に記載のファイル管理方法。
（付記１８）
記憶装置に記憶された他のファイルとファイル内のデータ群の値の範囲が重複するあるファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なるファイル群を、前記あるファイルに関連付けて記憶装置に記憶する制御手段、
を含むことを特徴とするファイル管理装置。
（付記１９）
前記制御手段は、
前記他のファイルが分割されて得られる、ファイル内のデータ群の値の範囲が互いに異なる他のファイル群を、前記他のファイルに関連付けて前記記憶装置に記憶する、
処理を実行させることを特徴とする付記１８に記載のファイル管理装置。 
【符号の説明】
【００８３】
１      コンピュータ
２      記憶装置
３      ネットワーク
４      コンピュータ
５      ネットワーク
１１    処理部
１２    記憶部
１３    通信部
１４    通信部
１１１  読込部
１１２  分割部
１１３  管理部
１１４  検索部
【図１】
0005867145.tif 000002
【図２】
0005867145.tif 000003
【図３】
0005867145.tif 000004
【図４】
0005867145.tif 000005
【図５】
0005867145.tif 000006
【図６】
0005867145.tif 000007
【図７】
0005867145.tif 000008
【図８】
0005867145.tif 000009
【図９】
0005867145.tif 000010
【図１０】
0005867145.tif 000011
【図１１】
0005867145.tif 000012
【図１２】
0005867145.tif 000013
【図１３】
0005867145.tif 000014
【図１４】
0005867145.tif 000015
【図１５】
0005867145.tif 000016
【図１６】
0005867145.tif 000017
【図１７】
0005867145.tif 000018
【図１８】
0005867145.tif 000019
【図１９】
0005867145.tif 000020
【図２０】
0005867145.tif 000021
【図２１】
0005867145.tif 000022
【図２２】
0005867145.tif 000023
【図２３】
0005867145.tif 000024
【図２４】
0005867145.tif 000025
【図２５】
0005867145.tif 000026
【図２６】
0005867145.tif 000027
【図２７】
0005867145.tif 000028
【図２８】
0005867145.tif 000029
【図２９】
0005867145.tif 000030
【図３０】
0005867145.tif 000031
【図３１】
0005867145.tif 000032