(57)【特許請求の範囲】
【請求項１】
複数のフィールドから構成されるレコードを複数集めて構成されているファイル形式から、複数のレコードの同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換手段と、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換し、前記第２のブロックを記憶手段に記憶させる第２の変換手段と、前記第１のブロックを構成するレコード数を、該第１のブロックを変換した第２のブロックの容量が予め定めた最大容量を越えない範囲に設定するレコード数決定手段とを有することを特徴とするデータ管理装置。
【請求項２】
第２の変換手段は、予め記憶された複数のデータ変換方法から、第１のブロックの性質に応じて１つのデータ変換方法を選択し、この選択したデータ変換方法を用いて前記第１のブロックを第２のブロックに変換することを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
データ変換方法はデータ圧縮アルゴリズムであることを特徴とする請求項１または請求項２に記載のデータ管理装置。
【請求項４】
第２の変換手段は、最も圧縮効率のよいデータ圧縮アルゴリズムを選択することを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
第２の変換手段は、第１のブロックから第２のブロックへの変換に用いたデータ変換方法の種別情報を記憶手段に記憶させることを特徴とする請求項１から請求項４のいずれかに記載のデータ管理装置。
【請求項６】
種別情報は、第２のブロックと同じ記憶手段に記憶させることを特徴とする請求項５に記載のデータ管理装置。
【請求項７】
第２の変換手段は、第２のブロックのデータサイズを記憶手段に記憶させることを特徴とする請求項５または請求項６に記載のデータ管理装置。
【請求項８】
複数のフィールドから構成される少なくとも１つのレコードから、同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換手段と、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換し、前記第２のブロックを記憶手段に記憶させる第２の変換手段とを有し、前記第２の変換手段は、第１のブロックから第２のブロックへの変換に用いたデータ変換方法の種別情報を記憶手段に記憶させ、前記種別情報は、第２のブロックと同じ記憶手段に記憶させ、前記第２の変換手段は、第２のブロックのデータサイズを記憶手段に記憶させることを特徴とするデータ管理装置。
【請求項９】
第２の変換手段は、予め記憶された複数のデータ変換方法から、第１のブロックの性質に応じて１つのデータ変換方法を選択し、この選択したデータ変換方法を用いて前記第１のブロックを第２のブロックに変換することを特徴とする請求項８に記載のデータ管理装置。
【請求項１０】
データ変換方法はデータ圧縮アルゴリズムであることを特徴とする請求項８または請求項９に記載のデータ管理装置。
【請求項１１】
第２の変換手段は、最も圧縮効率のよいデータ圧縮アルゴリズムを選択することを特徴とする請求項１０に記載のデータ管理装置。
【請求項１２】
記憶手段に記憶された種別情報を参照し、第２のブロックを第１のブロックに逆変換させる逆変換手段を有していることを特徴とする請求項５から請求項１１のいずれかに記載のデータ管理装置。
【請求項１３】
複数のフィールドから構成されたレコードを有する入力ファイルから少なくとも１つのレコードをバッファに追加し、前記バッファ中のレコードをフィールド毎に変換して変換後ブロックを生成する処理を、前記バッファ中のレコードの全フィールドの前記変換後ブロックのデータサイズが予め定められたしきい値を超えるまで繰り返す仮想変換ステップと、
超えた場合には、１つ前の処理でのバッファ中のレコード数を記憶するレコード数算出ステップと、
前記入力ファイルから前記記憶されたレコード数のレコードを読み込み、前記読み込んだレコードをフィールド毎に変換して変換後ブロックとし、記憶手段に記憶させる変換ステップとを有していることを特徴とするデータ管理方法。
【請求項１４】
仮想変換ステップは、バッファ中のレコードを固定長フィールド形式に変換し、変換後のレコードから同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の仮想変換ステップと、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換する第２の仮想変換ステップとを有していることを特徴とする請求項１３に記載のデータ管理方法。
【請求項１５】
複数のフィールドから構成されたレコードを有する入力ファイルから複数のレコードを読み込み、読み込んだレコードを固定長フィールド形式に変換し、変換後のレコードから同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換ステップと、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換する第２の変換ステップと、前記第１のブロックを構成するレコード数を、該第１のブロックを変換した第２のブロックの容量が予め定めた最大容量を越えない範囲に設定するレコード数決定ステップとを有していることを特徴とするデータ管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、大量のデータを格納する装置、特にデータベースサーバ等の装置などにおいて、大量のデータを効率よく記憶するとともに、必要なデータを効率よく取り出せるデータ管理装置、およびデータ管理方法に関するものである。
【０００２】
【従来の技術】
データを記憶するものとして、アプリケーションから見えるファイル形式を各フィールド毎にまとめてグループとした、いわゆるブロック化トランスポーズ変換したファイルを取り扱うデータ管理装置がある。
【０００３】
図１５は、特開平１１−１５４１５５号公報に記載された従来のブロック化トランスポーズ変換したファイルのデータ管理装置でのデータ管理概念を示す概念図である。図中、１０００は、形式変換の過程を示すために定義された内部ファイル形式であり、１番目からＮ番目までの複数の内部フィールド１００１から構成されるレコード１００２が、複数集まって構成されている。１０１０は、アプリケーションプログラムとの間でのインタフェースとして定義された論理ファイル形式であり、１番目からＮ番目までの複数の論理フィールド１０１１から構成されるレコード１０１２が、複数集まって構成されている。１０２０は、内部ファイル形式をブロック化トランスポーズドファイル形式に変換した後のディスク等に記憶させる状態でのブロック化トランスポーズドファイルである。なお、ブロック化トランスポーズドファイル１０２０では、同一のフィールド１０２１が複数集ってブロック１０２２という単位を構成し、さらに、このブロック１０２２が集ってグループ１０２３という単位を構成している。
【０００４】
図１６は、内部ファイル形式からブロック化トランスポーズドファイル形式への変換を示す図である。
この変換は、まず、内部ファイル形式１０００の１レコード目からＬレコード目までを１つの処理単位として、このなかの各レコード中の同種類の内部フィールド１００１、例えば１番目の内部フィールド１００１を切り出し、ブロック１０２２という単位でブロック化トランスポーズドファイル１０２０に記憶させる。次に、２番目の内部フィールド１００１を切り出し、同様にしてブロック化トランスポーズドファイル１０２０に記憶させる。この処理を、内部ファイル形式のＮ番目のフィールドまで繰り返す。次に、内部ファイル形式１０００のＬ＋１レコード目から２Ｌレコード目までを処理単位として、同じ操作を行う。これを繰り返すようにして、ブロック化トランスポーズドファイルへの変換処理をなしている。
【０００５】
図１７は、アプリケーションプログラムでの処理単位となる論理レコード１０１２と内部レコード１００２との対応関係の一例を示す図である。
図１７において、内部ファイル形式でのレコードは、各フィールド１００１ａ〜１００１ｆの長さはある固定値とされており、論理レコード１０１２に含まれる各論理フィールド１０１１ａ〜１０１１ｄを固定境界に整地することによって得られている。
【０００６】
アプリケーション等が扱う論理レコード１０１２は、内部フィールド形式に変換されるが、この変換では、まず、論理フィールド１０１１ａは、論理フィールドと内部フィールドの長さが一致するため、そのまま内部フィールド１００１ａとなる。しかし、論理フィールド１０１１ｂの場合は、論理フィールドが内部フィールドよりも短いため、ヌルデータの挿入等のパディングを施して内部フィールド１００１ｂとなり、論理フィールド１０１１ｃの場合は、論理フィールドが内部フィールドよりも長いため、複数の内部フィールド１００１ｃ〜１００１ｅに分解される。
【０００７】
一般に、個々の処理において実際に必要となる論理フィールドは限られており、すべての論理フィールドを必要としないことが多い。ブロック化トランスポーズドファイル形式にした場合には、関係のある論理フィールドに関するブロックだけを読み出せばすみ、入出力量を削減することによって処理の効率化を図ることができる。例えば、図１８のような構成の社員情報ブロック化トランスポーズファイルがあり、１番目のフィールドが氏名、２番目のフィールドが部署番号、３番目のフィールドが部署名、４番目のフィールドが社員番号、…９９番目のフィールドが電話番号である場合に、社員の電話番号一覧を作成する場合には、１番目・４番目・９９番目のブロックだけを入出力バッファに格納し、処理すればよく、それ以外のフィールドの読み出しは必要としない。
【０００８】
また、各ブロックに含まれるレコード数が同じになるようにブロック化しているため、そのレコード数を単位とした読み出しを行うことにより、ファイルの読み出し方向を一定方向にすることができ、磁気ディスク装置などに格納した場合のヘッドの移動量を最小化し、処理速度を高めることができる。
【０００９】
ところで、最近は、ファイルをディスク等に格納する場合に、データの持つ冗長性に着目し、ファイルをデータ圧縮した後にディスク装置等に格納し、必要な場合に復元をするという方法の複数のデータ変換処理方法が存在する。このようなデータ圧縮処理をした場合には、格納に必要な記憶装置の容量を削減するとともに、記憶装置に対する入出力量の効率化によって処理速度の向上を図ることができるという利点がある。
【００１０】
【発明が解決する課題】
なお、データ変換処理では、一般にデータの持つ性質に依存して、変換前のデータ長と変換後のデータ長の比率が変動する。ところが、従来のブロック化トランスポーズドファイルを使用したデータ管理では、ブロック化トランスポーズドファイルの同一グループ内に含まれるレコード数が一定であり、かつ同一グループ内に含まれる全ブロックに渡ってそのデータ長が一定でなければ処理できないので、記憶容量削減、処理速度向上といった利点と両立することができないという問題があった。
【００１１】
なお、ブロック化トランスポーズドファイル全体を圧縮処理することは可能であるが、読み出す時には、ブロック化トランスポーズドファイル全体を復元した後に処理しなければならないので、性能が低下するという問題があった。
【００１２】
さらに、この場合にはブロック化トランスポーズドファイル全体を一種類のデータ変換方法でデータ圧縮処理しなければならず、データの種類に対応した木目細かい処理ができないという問題があった。
【００１３】
この発明は、上述の課題を解決するためになされたものであり、ブロック化トランスポーズ変換した結果をブロック毎にデータ変換処理して記憶させることにより、入出力効率の向上を図るとともに記憶容量の削減を図ることを目的としたものである。
【００１４】
【課題を解決するための手段】
この発明にかかるデータ管理装置は、複数のフィールドから構成されるレコードを複数集めて構成されているファイル形式から、複数のレコードの同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換手段と、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換し、前記第２のブロックを記憶手段に記憶させる第２の変換手段と、前記第１のブロックを構成するレコード数を、該第１のブロックを変換した第２のブロックの容量が予め定めた最大容量を越えない範囲に設定するレコード数決定手段とを有するものとした。
【００１５】
さらに、第２の変換手段は、予め記憶された複数のデータ変換方法から、第１のブロックの性質に応じて１つのデータ変換方法を選択し、この選択したデータ変換方法を用いて第１のブロックを第２のブロックに変換するものとした。
【００１６】
さらに、データ変換方法はデータ圧縮アルゴリズムであるものとした。
【００１７】
さらに、第２の変換手段は、最も圧縮効率のよいデータ圧縮アルゴリズムを選択するものとした。
【００１８】
さらに、第２の変換手段は、第１のブロックから第２のブロックへの変換に用いたデータ変換方法の種別情報を記憶手段に記憶させるものとした。
【００１９】
さらに、種別情報は、第２のブロックと同じ記憶手段に記憶させるものとした。
【００２０】
さらに、第２の変換手段は、第２のブロックのデータサイズを記憶手段に記憶させるものとした。
また、この発明にかかるデータ管理装置は、複数のフィールドから構成される少なくとも１つのレコードから、同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換手段と、予め記憶されたデータ変換方法を用いて第１のブロックから第２のブロックに変換し、第２のブロックを記憶手段に記憶させる第２の変換手段とを有し、第２の変換手段は、第１のブロックから第２のブロックへの変換に用いたデータ変換方法の種別情報を記憶手段に記憶させ、種別情報は、第２のブロックと同じ記憶手段に記憶させ、第２の変換手段は、第２のブロックのデータサイズを記憶手段に記憶させるものとした。
さらに、第２の変換手段は、予め記憶された複数のデータ変換方法から、第１のブロックの性質に応じて１つのデータ変換方法を選択し、この選択したデータ変換方法を用いて前記第１のブロックを第２のブロックに変換するものとした。
さらに、データ変換方法はデータ圧縮アルゴリズムであるものとした。
さらに、第２の変換手段は、最も圧縮効率のよいデータ圧縮アルゴリズムを選択するものとした。
【００２１】
さらに、記憶手段に記憶された種別情報を参照し、第２のブロックを第１のブロックに逆変換させる逆変換手段を有しているものとした。
【００２２】
また、この発明にかかるデータ管理方法は、複数のフィールドから構成されたレコードを有する入力ファイルから少なくとも１つのレコードをバッファに追加し、バッファ中のレコードをフィールド毎に変換して変換後ブロックを生成する処理を、バッファ中のレコードの全フィールドの変換後ブロックのデータサイズが予め定められたしきい値を超えるまで繰り返す仮想変換ステップと、
超えた場合には、１つ前の処理でのバッファ中のレコード数を記憶するレコード数算出ステップと、
入力ファイルから記憶されたレコード数のレコードを読み込み、読み込んだレコードをフィールド毎に変換して変換後ブロックとし、記憶手段に記憶させる変換ステップとを有しているものとした。
【００２３】
さらに、仮想変換ステップは、バッファ中のレコードを固定長フィールド形式に変換し、変換後のレコードから同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の仮想変換ステップと、予め記憶されたデータ変換方法を用いて第１のブロックから第２のブロックに変換する第２の仮想変換ステップとを有しているものとした。
【００２４】
また、この発明にかかるデータ管理方法は、複数のフィールドから構成されたレコードを有する入力ファイルから複数のレコードを読み込み、読み込んだレコードを固定長フィールド形式に変換し、変換後のレコードから同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換ステップと、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換する第２の変換ステップと、前記第１のブロックを構成するレコード数を、該第１のブロックを変換した第２のブロックの容量が予め定めた最大容量を越えない範囲に設定するレコード数決定ステップとを有しているものとした。
【００２５】
【発明の実施の形態】
実施の形態１．
図１は、この発明の実施の形態１におけるデータ管理装置の可変長ブロック化トランスポーズドファイル変換の概念を示す概念図である。
図中、１は、形式変換の過程を示すために定義した内部ファイル形式であり、１番目からＮ番目までの複数の内部フィールド２から構成されるレコード３が、複数集まって構成されている。１１は、アプリケーションプログラムとの間のインタフェースとして定義された論理ファイル形式であり、１番目からＮ番目までの複数の論理フィールド１２から構成されるレコード１３が、複数集まって構成されている。２１は、内部ファイル形式をブロック化トランスポーズ変換した後のファイル形式（以下、「変換前ブロック化トランスポーズドファイル形式」とする）である。なお、変換前ブロック化トランスポーズドファイル形式２１では、同一のフィールド２２が複数集って変換前ブロック２３という単位を構成し、さらに、この変換前ブロック２３が集って変換前グループ２４という単位を構成している。また、内部ファイル形式１および変換前ブロック化トランスポーズドファイル形式２１は、処理の過程で発生する中間形式であり、実際にファイルとしてディスク等に存在している必要はない。
【００２６】
５１は、変換後のファイル群（以下、「可変長ブロック化トランスポーズドファイル群」とする）であり、可変長ブロック化トランスポーズドデータファイル（以下、「データファイル」とする）６１と、可変長ブロック化トランスポーズド管理ファイル（以下、「管理ファイル」とする）７１とがある。データファイル６１は、変換前ブロック化トランスポーズドファイル形式２１の変換前ブロック２３に対応する変換後ブロック６２と、変換前ブロック化トランスポーズドファイル形式２１の変換前グループ２４に対応する変換後グループ６３の単位で構成されている。
【００２７】
管理ファイル７１は、ファイル毎付加情報７２、グループ毎付加情報７３のデータを有している。さらに、グループ毎付加情報７３には、各変換後グループを構成する変換後ブロックの情報であるブロック毎付加情報７４を有している。ここで、ファイル毎付加情報７２としては、最大ブロックサイズがあり、ブロック毎付加情報７４としては、ブロックオフセット、変換後ブロックサイズ、変換種別などの情報がある。
【００２８】
８１は、内部フィールド変換手段であり、論理ファイル形式１１から内部ファイル形式１への変換を行っている。８２は、トランスポーズ変換手段であり、内部ファイル形式１から変換前ブロック化トランスポーズドファイル形式２１への変換を行っている。８３は、可変長データ変換手段であり、変換前ブロック化トランスポーズドファイル形式をデータファイルに変換を行っている。また、可変長データ変換手段の一例としては、損失の無いデータ圧縮などのように、データの性質に依存して、変換後のデータ長が変動するものである。
【００２９】
なお、以降では簡単化のために、変換前ブロック化トランスポーズドファイル形式２１、および可変長ブロック化トランスポーズドファイル群５１では、４種類のフィールドからなるものとし、対応付けを明確にするために識別子としてａ〜ｄを付加して説明する。
図２は、内部ファイル形式から変換前ブロック化トランスポーズドファイル形式への変換を示す図である。
【００３０】
この変換は、まず、内部ファイル形式１の１レコード目からＬ１レコードを１つの処理単位として、このなかの各レコード中に含まれる１番目のフィールド２ａを切り出し、変換前ブロック２３ａとする。同様に、２番目・３番目・４番目のフィールド２ｂ・２ｃ・２ｄを切り出し、変換前ブロック２３ｂ・２３ｃ・２３ｄとする。
【００３１】
次に、内部ファイル形式１のＬ１＋１レコード目からＬ２レコードを処理単位として、同じ操作を行う。これを繰り返すようにして、変換前ブロック化トランスポーズドファイル形式２１への変換処理をなしている。なお、グループに含まれるレコード数Ｌ１、Ｌ２などは全グループを通じて一定でなくてもよく、グループ毎に異なっていても良い。レコード数Ｌ１、Ｌ２を決定する手段については後述する。
【００３２】
図３は、変換前ブロック化トランスポーズドファイル形式２１を、データファイル６１に変換する可変長データ変換手段８３の構成を示す図である。８４ａ、８４ｂ、８４ｃは、可変長データ変換手段８３に含まれる３つの可変長データ変換種別である。図３に示すように、可変長データ変換手段８３は、個々のブロックの性質に合わせて複数種類の変換種別８４ａ〜８４ｃの中から選択することができる。
【００３３】
例えば、可変長データ変換としてデータ圧縮を用いる場合、ブロックの性質によりデータ圧縮効率の最もよいデータ圧縮アルゴリズムを選択することにより、記憶装置の利用効率を高めることができる。図３では、変換前ブロック２３ａは変換種別８４ａにより変換後ブロック６２ａに、変換前ブロック２３ｂは変換種別８４ｃにより変換後ブロック６２ｂに、変換前ブロック２３ｃは変換種別８４ａにより、変換後ブロック６２ｃに、変換前ブロック２３ｄは変換種別８４ｂにより、変換後ブロック６２ｄに、それぞれ変換されることを示している。
【００３４】
なお、変換前ブロック化トランスポーズドファイル形式２１からデータファイル６１への変換で、可変長データ変換手段８３は個々のブロックの変換後のサイズを得ることになるので、単に変換後サイズだけを求めることが目的であれば、実際に変換後ブロックを生成しないことも可能となる。
【００３５】
図４は、このデータ管理装置における入力ファイルからデータファイル５１を生成するまでの処理における動作関係を階層的に示した図であり、上位に位置するものが下位に位置するものを起動する構成になっている。図４において、１００は、可変長ブロック化トランスポーズドファイル生成プログラム、１０１はグループ内レコード数決定手段、１０２は可変長ブロック化トランスポーズドファイル生成手段である。
【００３６】
図５は、論理ファイル形式１１で示されるファイル（以降、「入力ファイル」とする）からデータファイル５１を生成する処理を示すフローチャートである。
図６は、入力ファイル１１からデータファイル５１への変換において、各変換後グループに含まれるレコード数の決定処理手順を示すフローチャートである。
【００３７】
図７は、入力ファイルからデータファイル５１への変換において、データファイルの生成処理手順を示すフローチャートである。
【００３８】
次に、ファイルを入力し、データファイルへ変換されるまでの処理を、図４・図５・図６・図７に基づいて説明する。
【００３９】
まず、入力ファイルからデータファイルを生成するまでの概略を図４・図５に基づき説明する。
図５のフローチャートにおいて、まず、可変長ブロック化トランスポーズドファイル生成プログラム１００が起動される（ステップＳ１）。この起動は、一般的にはユーザの要求に応じて行なわれる。但し、時間指定や、アプリケーションプログラムの終了を検出して自動的に起動させるようにしてもよい。
次に、可変長ブロック化トランスポーズドファイル生成プログラム１００はグループ内レコード数決定手段１０１を起動し（ステップＳ２）、グループ内レコード数決定処理が行なわれる（ステップＳ３）。
次に、可変長ブロック化トランスポーズドファイル生成プログラム１００は可変長ブロック化トランスポーズドファイル生成手段１０２を起動し（ステップＳ４）、データファイルが生成される（ステップＳ５）。
【００４０】
次に、ステップＳ３のグループ内レコード数決定処理の詳細につき、図６のフローチャートに基づいて説明する。
この手順は、変換後の各グループ６２に含まれるレコード数、および変換後グループ内の各ブロック６２と変換前グループ内の各ブロック２３との変換種別を得ることを目的とする。
最初に、グループ番号（ＧｒｏｕｐＮｏ）を１に初期化する（ステップＳ１０１）。次に、グループ内レコード数（ＲｅｃｏｒｄＣｏｕｎｔ）を０に初期化する（ステップＳ１０２）。
次に、入力ファイル１１の読み出し位置を先頭に位置づけ、変換後グループサイズ（ＧｒｏｕｐＳｉｚｅ）を０に初期化する（ステップＳ１０３）。
【００４１】
次に、ファイル内の全レコードの処理が終了したかの判定を行う（ステップＳ１０４）。
終了していない場合には、入力ファイルからあるレコード数Ｒを読み出し、バッファに追加する（ステップＳ１０５）。なお、レコード数Ｒは事前に決めた任意の読み出し単位であり、１以上の任意のレコード数を設定することができる。但し、一般にＲが小さいほどブロックサイズを精密に調整可能であるが、Ｒが小さいと処理時間が長くなることがあるので、状況に応じて適切な値を選ぶ必要がある。
次に、処理対象を先頭フィールドとし、ブロック番号（ＢｌｏｃｋＮｏ）及びグループサイズ（ＧｒｏｕｐＳｉｚｅ）を０に初期化する。
【００４２】
次に、ステップＳ１０７〜ステップＳ１０９を実行して、現在のバッファ内に含まれるレコードから変換後グループを作成した場合の変換後グループのサイズを求める。
具体的には、まず、内部フィールド変換手段８１を起動して、バッファ内に読み出されたレコードを内部フィールド形式に変換し、さらに、トランスポーズ変換手段８２を起動して、変換前ブロック化トランスポーズドファイル形式に変換する（ステップＳ１０７）。
【００４３】
次に、可変長データ変換手段８３を起動して、各変換前ブロックについて可変長データ変換処理を実施し、最も適したデータ変換種別を選択し、タイプ情報として、そのグループ番号とブロック番号を記憶する。さらに、選択されたデータ変換種別で変換した場合の変換後ブロックのサイズをグループサイズに加える（ステップＳ１０８）。なお、最も適したデータ変換種別を選択する方法としては、例えば、全ての選択種別に対して変換後ブロックサイズを求め、それが最小のものとなるようにする方法がある。
【００４４】
次に、バッファに含まれる全フィールドを処理したか否かを判断する（ステップＳ１０９）。ここで、未処理と判断された場合は、ブロック番号に１を加えて（ステップＳ１１０）、ステップＳ１０７からステップＳ１０９を繰り返す。
また、全フィールドの処理が終了した場合には、記憶されたグループサイズが予め定められた最大許容グループサイズ（ＭａｘＧｒｏｕｐ）を超えるか否かを判断する（ステップＳ１１１）。なお、最大許容グループサイズとしては、例えば、読み出し処理時に用意できるバッファサイズとする。
【００４５】
ステップＳ１１１で、最大許容グループサイズを超えていない場合には、グループ内レコード数にＲを加え（ステップＳ１１２）、ステップＳ１０２からの処理を実施する。
また、ステップＳ１１１で、最大許容グループサイズを超えていた場合には、１回前のレコード数までが現在のグループに格納可能であることを意味しているので、グループ内レコード数を現在のブロック番号に対するレコード数Ｌ（ＧｒｏｕｐＮｏ）として保存し、タイプ情報を保存する。さらに、グループ番号に１を加える（ステップＳ１１３）。
次に、最後に読み出したＲレコード分を除くレコードをバッファから削除し（ステップＳ１１４）、ステップＳ１０４からの処理を実施する。
【００４６】
なお、ステップＳ１０４で入力ファイルの全データを処理したと判断された場合には、最後にバッファ内に残っているレコードによって変換処理を実施するので、レコード数Ｌ（ＧｒｏｕｐＮｏ）、変換種別タイプを保存する。
【００４７】
可変長ブロック化トランスポーズドファイル生成プログラム１００は、グループ内レコード数決定手段１０１から、処理が終了したとの通知を受けた場合には、可変長ブロック化トランスポーズドファイル生成手段１０２を起動し、データファイルの生成を行う。
【００４８】
次に、ステップＳ５のデータファイルの生成処理の詳細につき、図７のフローチャートに基づいて説明する。
まず、ブロックオフセット（ＢｌｏｃｋＯｆｆｓｅｔ）を０に初期化し、更にすべてのフィールドｉ（ｉ＝１，２，．．．Ｎ）に対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ｉ））を０に初期化する（ステップＳ２０１）。ただし、Ｎは内部フィールド変換後の内部フィールド数である。
次に、入力ファイルの読み出し位置を先頭に位置づける（ステップＳ２０２）。
【００４９】
次に、グループ内ブロック番号（ＢｌｏｃｋＮｏ）を１に初期化する（ステップＳ２０３）。
【００５０】
次に、入力ファイルから、グループ内レコード数決定手順により求めたレコード数Ｌ（ＧｒｏｕｐＮｏ）のデータを読み出す（ステップＳ２０４）。
次に、内部フィールド変換手段８１を起動して、読み出されたレコード群を内部フィールド形式１に変換し、さらにトランスポーズ変換手段８２を起動して、変換前ブロック化トランスポーズドファイル形式２１に変換する（ステップＳ２０５）。
【００５１】
次に、可変長データ変換手段８３を起動して、生成された変換前ブロックにつき、グループ内レコード数の決定手順により求めた変換種別タイプ（ＧｒｏｕｐＮｏ，  ＢｌｏｃｋＮｏ）によって変換前ブロックを変換し、変換後ブロックを得る。このとき、得られた変換後ブロックのデータサイズをブロックサイズ（ＢｌｏｃｋＳｉｚｅ）とする（ステップＳ２０６）。
【００５２】
次に、変換後ブロックを可変長ブロック化トランスポーズドファイルのデータファイルの最後尾に追加する（ステップＳ２０７）。次に、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）が、その内部フィールドに対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ＢｌｏｃｋＮｏ））よりも大きいか否かを判断する（ステップＳ２０８）。ここで、大きいと判断された場合には、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）をもって最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ＢｌｏｃｋＮｏ））とし（ステップＳ２０９）、ブロックオフセット（ＢｌｏｃｋＯｆｆｓｅｔ）にブロックサイズ（ＢｌｏｃｋＳｉｚｅ）を加える（ステップＳ２１０）。なお、ステップＳ２０８で、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）が、その内部フィールドに対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ＢｌｏｃｋＮｏ））よりも小さいか等しいときはステップＳ２０９はスキップし、ステップＳ２１０を実行する。
【００５３】
次に、ブロックオフセット（ＢｌｏｃｋＯｆｆｓｅｔ）、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）、変換種別タイプによって管理ファイルのブロック毎付加情報を形成し、管理ファイルに追加する（ステップＳ２１１）。
【００５４】
次に、グループ内の全ブロックの処理が終了したか否かを判断し（ステップＳ２１２）、終了していない場合には、現在のブロックを次のブロックに進め（ステップＳ２１３）、ステップＳ２０４以降を実行する。また、ステップＳ２１２で終了したと判断された場合には、次に、ファイル内の全グループの処理が終了したか否かを判断する（ステップＳ２１４）。ここで、終了していないと判断された場合には、現在のグループを次のグループに進め、ステップＳ２０３以降を実行する。
【００５５】
また、ステップＳ２１４で、終了したと判断された場合には、管理ファイルのファイル毎情報に各変換後ブロックに対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ｉ）  （ｉ＝１，２，．．．．Ｎ））を追加し（ステップＳ２１６）、処理を終了する。
【００５６】
次に、データファイルから論理ファイル形式に変換する場合について説明する。図８は、この発明の実施の形態１のデータ管理装置における、データ読み出しシステムを示す図である。
【００５７】
図８において、９１は可変長データ逆変換手段、９２は入力手段、９３はデータベース変換手段である。なお、データベース変換手段９３は、トランスポーズドファイル変換手段８２および内部フィールド変換手段８１の動作を基本的には逆に行うものであるが、その変換では、データベース等からの要求があったフィールドからレコードを生成している。また、入力手段９２は、複数の入力バッファ９２ａを有している。
【００５８】
図９は、データファイル６１を、変換前ブロック化トランスポーズドファイル形式２１に逆変換する可変長データ逆変換手段９２の構成を示す図である。９３ａ、９３ｂ、９３ｃは、可変長データ逆変換手段９２に含まれる３つの可変長データ逆変換種別である。図９に示すように、可変長データ逆変換手段９２は、管理ファイル７１のブロック毎の付加情報７３に記憶されている変換種別を参考に、逆変換種別を決定し、逆変換を行っている。
【００５９】
ここでは、変換後ブロック６２ａは変換種別９３ａにより変換前ブロック２３ａに、変換後ブロック６２ｂは変換種別９３ｃにより変換前ブロック２３ｂに、変換後ブロック６２ｃは変換種別９３ａにより、変換前ブロック２３ｃに、変換後ブロック６２ｄは変換種別９３ｂにより、変換前ブロック２３ｄに、それぞれ変換されることを示している。
【００６０】
図１０は、この可変長ブロック化トランスポーズドのデータ管理装置におけるアプリケーションがデータファイルからデータを読み出す処理における動作関係を階層的に示した図であり、上位に位置するものが下位に位置するものを起動している。図１０中、１１０は、アプリケーションプログラム、１１１は、データベース管理システム、１１２は、可変長ブロック化トランスポーズドファイル逆変換プログラムである。
【００６１】
図１１は、アプリケーションプログラムがデータファイルからデータを読み出すまでの処理を示すフローチャートである。
図１２は、データファイルの逆変換処理を示すフローチャートである。
次に、図１０、図１１、図１２に基づき、アプリケーションプログラムが可変長ブロック化トランスポーズドファイルからデータを読み出す処理について説明する。
【００６２】
まず、アプリケーションプログラム１１０からデータの読み出し問い合わせを受ける（ステップＳ３０１）。この読み出し問い合わせは、ＳＱＬ言語等で記述されている。この問い合わせを受けたデータベース管理システム１１１は、その問い合わせを解析して必要となるフィールドを決定し（ステップＳ３０２）、可変長ブロック化トランスポーズド逆変換プログラム１１２を起動する。可変長ブロック化トランスポーズド逆変換プログラム１１２は、可変長ブロック化トランスポーズドファイル逆変換処理を実行する（ステップＳ３０４）。
【００６３】
次に、可変長ブロック化トランスポーズドファイル逆変換プログラム１１２は、ステップＳ３０４で処理されたデータをデータベース管理システム１１１に送りデータベース管理システム１１１が処理を行い（ステップＳ３０５）、その後にアプリケーションプログラム１１０に送られる（ステップＳ３０６）。
【００６４】
なお、ステップＳ３０４の動作詳細について、図１２のフローチャートに基づいて説明する。
まず、入力手段９２が起動されステップＳ４０１〜ステップＳ４０８までの動作を実行する。具体的には、管理ファイル７１のファイル毎情報から読み出しに必要な内部フィールド群に対応する最大ブロックサイズを読み出す。これらの合計をもって必要なバッファサイズとする（ステップＳ４０１）。次に、管理ファイル７１の読み出し位置を先頭に位置づける（ステップＳ４０２）。
【００６５】
次に、管理ファイル７１から現在のグループに関するブロック毎付加情報７４を読み出し、必要とするフィールド群に対応するブロックオフセット、ブロックサイズ、および変換種別を得る（ステップＳ４０３）。
【００６６】
次に、内部フィールドに目的とする内部フィールド群の最初のフィールドを位置付け（ステップＳ４０４）、該当フィールドに対応するブロックオフセットおよびブロックサイズを用いて、データファイル６１から変換後ブロック６２を読み出す。
なお、ここでは複数のフィールドの読み出しが可能なので、読み出しは非同期的に起動する（ステップＳ４０５）。その後、内部フィールドに目的とする次のフィールド群の先頭を位置付ける（ステップＳ４０６）。
【００６７】
次に、目的とする全フィールドの読み出し起動が完了したかを判断し（ステップＳ４０７）、完了していないと判断された場合には、ステップＳ４０５以降を実行する。
また、ステップＳ４０７で、目的とする全フィールドの読み出し起動が完了したと判断された場合には、読み出し処理が全て終了することを待つ（ステップＳ４０８）。
全読み出し処理が終了した場合には、次に、可変長データ逆変換手段９２が起動され、読み出された変換後ブロック６２を逆変換する。このとき、管理ファイル７１のブロック毎情報７４から読み出された、該当フィールドに対応する変換種別を用いる（ステップＳ４０９）。
【００６８】
次に、データベース処理手段９３が起動され、逆変換された変換前ブロック２３に対して所定の処理を行う。なお、この処理は従来のブロック化トランスポーズドファイルと同様である（ステップＳ４１０）。
次に、ファイルの最後まで処理を実行したかを判断し（ステップＳ４１１）、最後まで処理が完了していない場合には、現在のグループを次のグループに進め（ステップＳ４１２）、ステップＳ４０３以降の処理を実行する。
また、ステップＳ４１１で最後まで処理したと判断された場合には、バッファを開放し、読み出し処理を終了させる。
【００６９】
このようなデータ管理システムでは、従来のようなブロック化トランスポーズドファイル形式をデータ圧縮処理して記憶することができ、記憶容量の削減や入出力の高速化を図ることができる。
【００７０】
また、データ圧縮手段を複数持ち、データの性質に応じて木目細かい処理ができるので、データ圧縮効率が向上する。
【００７１】
さらに、ほぼ同じ大きさのグループ単位でデータファイルに出力するようにしたので、記憶効率を高めることができる。
【００７２】
なお、この実施の形態におけるファイルは、記憶装置上におけるデータの論理的構成単位を示すものであって、いわゆるファイルシステムの提供するファイルの概念と必ずしも対応しなくても良い。すなわち、ファイルシステム上の同一のファイルの内部に管理ファイル７１とデータファイル６１を配置してもよい。
【００７３】
また、１つの管理ファイル７１、あるいは１つのデータファイル６１をファイルシステム上の複数のファイルに分割して配置してもよい。さらに、１または複数のブロック、１または複数のグループを単位として、ファイルシステム上の異なるファイルに分割することが可能である。また、ファイルシステムを介在しない、いわゆるＲａｗデバイス上に管理ファイル７１、データファイル６１を配置してもよい。
【００７４】
また、この実施の形態では、可変長データ変換手段に対応する変換種別が複数存在するものとしたが、変換種別を１通りに固定しても当然に良い。
これにより、変換種別の選択動作が不必要となり、処理速度を早めることができる。
【００７５】
さらに、データファイルの読み出しは非同期的に行うとしたが、同期的に読み出してもよい。
同期的に読み出すようにすることで、処理を簡単にすることができる。
【００７６】
さらにまた、この実施の形態では、データ読み出しの最初にバッファを獲得し、最後に解放するとしたが、ブロック毎に必要なバッファの確保、解放を動的に繰り返しても良い。
これにより、逆変換処理の動作中に使用される記憶容量を小さくでき、装置を小さくすることができる。
【００７７】
さらに、可変長データ変換手段によって生成される変換後ブロックに適宜パディングを行うなどの手段により、変換後のデータ長を入出力単位の倍数にそろえても良い。
一般に、可変長データ変換手段によって生成される変換後ブロックサイズを物理的入出力単位の倍数にそろえると入出力効率が高くなるので、これにより入出力効率を上げることができる。
【００７８】
また、この発明の実施の形態では、全ファイルのグループ内レコード数決定処理を実施した後に、実際の変換処理を実施してデータファイルの生成を行ったが、グループ内レコード数が決定された後に、都度変換処理を実施しても当然によい。
【００７９】
なお、この実施の形態では、内部フィールドの順序がブロックの順序と同一であることを仮定したが、ブロックの順序は必要に応じて変更しても良い。
【００８０】
実施の形態２
図１３は、この発明の実施の形態２におけるデータ管理装置でのデータファイルを示す図であり、実施の形態１のデータファイルにおいて、管理ファイル内の情報と同一内容の情報をデータファイルにも含めるようにしたものである。
【００８１】
図１３中、６４はデータファイル６１の変換後グループである。変換後グループ６４は、複数の変換後ブロック６５ａ〜６５ｄを有しており、さらに、変換後ブロック６５ａ〜６５ｄは管理ファイル７１が有するブロック毎付加情報７４ａ〜７４ｄのコピーをそれぞれ有している。
【００８２】
なお、ブロック毎付加情報をデータファイルにコピーすることは、図７のフローチャートにおいて、ステップＳ２１１で管理ファイル７１に対して追加するのと同一のデータをデータファイル６１に対しても同時に書き込むことによって実現することができる。
【００８３】
なお、このようなデータファイルの読み出し手順は実施の形態１と全く同一である。
【００８４】
このようにすることで、管理ファイルが何らかの理由で失われたり、データファイルと管理ファイルの整合性がとれなくなった場合でもデータファイルから管理ファイルを再生成することができる、ファイル全体の整合性を保ちやすいという利点がある。
【００８５】
実施の形態３
図１４は、この発明の実施の形態３における、可変長ブロック化トランスポーズドデータファイル生成処理の動作を示すフローチャートである。実施の形態１では、図６のフローチャートを実行してグループ内レコード数を決定した後に、図７のフローチャートを実行して可変長ブロック化トランスポーズドファイルを生成していたが、この実施の形態３では、あらかじめグループ内レコード数を固定値とし、グループ内レコード数決定処理を省略したものである。
なお、この場合には、当然に図４のグループ内レコード数決定手段は存在せず、さらに、図５のステップＳ２、Ｓ３も存在しないことになる。
【００８６】
次に、データファイルの生成処理について、図１４のフローチャートに基づいて説明する。
まず、ブロックオフセット（ＢｌｏｃｋＯｆｆｓｅｔ）を０に初期化し、更にすべてのフィールドｉ（ｉ＝１，２，．．．Ｎ）に対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ｉ））を０に初期化する（ステップＳ５０１）。ただし、Ｎは内部フィールド変換後の内部フィールド数である。
次に、入力ファイルの読み出し位置を先頭に位置づける（ステップＳ５０２）。
【００８７】
次に、グループ内ブロック番号（ＢｌｏｃｋＮｏ）を１に初期化する（ステップＳ５０３）。
【００８８】
次に、入力ファイルから、予め固定されたレコード数Ｌのデータを読み出す（ステップＳ５０４）。
次に、読み出されたレコード群を内部フィールド形式１に変換後、変換前ブロック化トランスポーズド形式に変換する（ステップＳ５０５）。
【００８９】
生成された変換前ブロックにつき、最も適したデータ変換種別を選択しそれをＴｙｐｅとする。この選択は、例えば全ての選択種別に対して変換後ブロックサイズを求め、その最小となるものを選ぶことによって行う。この時、得られた変換後ブロックのデータサイズをＢｌｏｃｋＳｉｚｅとする（ステップＳ５０６）。
【００９０】
次に、変換後ブロックをデータファイルの最後尾に追加する（ステップＳ５０７）。次に、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）が、その内部フィールドに対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ＢｌｏｃｋＮｏ））よりも大きいか否かを判断する（ステップＳ５０８）。ここで、大きいと判断された場合には、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）をもって最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ＢｌｏｃｋＮｏ））とし（ステップＳ５０９）、ブロックオフセット（ＢｌｏｃｋＯｆｆｓｅｔ）にブロックサイズ（ＢｌｏｃｋＳｉｚｅ）を加える（ステップＳ５１０）。なお、ステップＳ５０８で、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）が、その内部フィールドに対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ＢｌｏｃｋＮｏ））よりも小さいか等しいときはステップＳ５０９はスキップし、ステップＳ５１０を実行する。
【００９１】
次に、ブロックオフセット（ＢｌｏｃｋＯｆｆｓｅｔ）、ブロックサイズ（ＢｌｏｃｋＳｉｚｅ）、変換種別タイプ、レコード数Ｌによって管理ファイルのブロック毎付加情報を形成し、管理ファイルに追加する（ステップＳ５１１）。
【００９２】
次に、グループ内の全ブロックの処理が終了したか否かを判断し（ステップＳ５１２）、終了していない場合には、現在のブロックを次のブロックに進め（ステップＳ５１３）、ステップＳ５０４以降を実行する。また、ステップＳ５１２で終了したと判断された場合には、次に、ファイル内の全グループの処理が終了したか否かを判断する（ステップＳ５１４）。ここで、終了していないと判断された場合には、現在のグループを次のグループに進め、ステップＳ５０３以降を実行する。
【００９３】
また、ステップＳ５１４で、終了したと判断された場合には、管理ファイルのファイル毎情報に各変換後ブロックに対応する最大ブロックサイズ（ＭａｘＢｌｏｃｋＳｉｚｅ（ｉ）  （ｉ＝１，２，．．．．Ｎ））を追加し（ステップＳ５１６）、処理を終了する。
【００９４】
このように、グループ内レコード数を固定値としグループ内レコード数決定処理を省くことで、変換処理を高速に行うことができる。
【００９５】
なお、この実施の形態における可変長ブロック化トランスポーズド形式ファイルの読み出し手順は実施の形態１と全く同一で処理することができる。
【００９６】
【発明の効果】
この発明にかかるデータ管理装置は、複数のフィールドから構成されるレコードを複数集めて構成されているファイル形式から、複数のレコードの同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換手段と、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換し、前記第２のブロックを記憶手段に記憶させる第２の変換手段と、前記第１のブロックを構成するレコード数を、該第１のブロックを変換した第２のブロックの容量が予め定めた最大容量を越えない範囲に設定するレコード数決定手段とを有するものとした。
【００９７】
さらに、第２の変換手段は、予め記憶された複数のデータ変換方法から、第１のブロックの性質に応じて１つのデータ変換方法を選択し、この選択したデータ変換方法を用いて第１のブロックを第２のブロックに変換するものとした。
【００９８】
これにより、ブロック毎にデータ変換して記憶することができる。
【００９９】
さらに、データ変換方法はデータ圧縮アルゴリズムであるものとした。
【０１００】
さらに、第２の変換手段は、最も圧縮効率のよいデータ圧縮アルゴリズムを選択するものとした。
【０１０１】
さらに、第２の変換手段は、第１のブロックから第２のブロックへの変換に用いたデータ変換方法の種別情報を記憶手段に記憶させるものとした。
【０１０２】
これにより、ブロック毎に圧縮処理をして記憶することができる。
【０１０３】
さらに、種別情報は、第２のブロックと同じ記憶手段に記憶させるものとした。
【０１０４】
これにより、ブロックの整合性を保ちやすくすることができる。
【０１０５】
さらに、第２の変換手段は、第２のブロックのデータサイズを記憶手段に記憶させるものとした。
また、この発明にかかるデータ管理装置は、複数のフィールドから構成される少なくとも１つのレコードから、同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換手段と、予め記憶されたデータ変換方法を用いて第１のブロックから第２のブロックに変換し、第２のブロックを記憶手段に記憶させる第２の変換手段とを有し、第２の変換手段は、第１のブロックから第２のブロックへの変換に用いたデータ変換方法の種別情報を記憶手段に記憶させ、種別情報は、第２のブロックと同じ記憶手段に記憶させ、第２の変換手段は、第２のブロックのデータサイズを記憶手段に記憶させるものとした。
さらに、第２の変換手段は、予め記憶された複数のデータ変換方法から、第１のブロックの性質に応じて１つのデータ変換方法を選択し、この選択したデータ変換方法を用いて前記第１のブロックを第２のブロックに変換するものとした。
さらに、データ変換方法はデータ圧縮アルゴリズムであるものとした。
さらに、第２の変換手段は、最も圧縮効率のよいデータ圧縮アルゴリズムを選択するものとした。
【０１０６】
さらに、記憶手段に記憶された種別情報を参照し、第２のブロックを第１のブロックに逆変換させる逆変換手段を有しているものとした。
【０１０７】
これにより、変換後ブロックからの復元を高速に行うことができる。
【０１０８】
また、この発明にかかるデータ管理方法は、複数のフィールドから構成されたレコードを有する入力ファイルから少なくとも１つのレコードをバッファに追加し、バッファ中のレコードをフィールド毎に変換して変換後ブロックを生成する処理を、バッファ中のレコードの全フィールドの変換後ブロックのデータサイズが予め定められたしきい値を超えるまで繰り返す仮想変換ステップと、
超えた場合には、１つ前の処理でのバッファ中のレコード数を記憶するレコード数算出ステップと、
入力ファイルから記憶されたレコード数のレコードを読み込み、読み込んだレコードをフィールド毎に変換して変換後ブロックとし、記憶手段に記憶させる変換ステップとを有しているものとした。
【０１０９】
さらに、仮想変換ステップは、バッファ中のレコードを固定長フィールド形式に変換し、変換後のレコードから同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の仮想変換ステップと、予め記憶されたデータ変換方法を用いて第１のブロックから第２のブロックに変換する第２の仮想変換ステップとを有しているものとした。
【０１１０】
これにより、ブロック毎にデータ変換して記憶することができ、さらに、記憶効率を高めることができる。
【０１１１】
また、この発明にかかるデータ管理方法は、複数のフィールドから構成されたレコードを有する入力ファイルから複数のレコードを読み込み、読み込んだレコードを固定長フィールド形式に変換し、変換後のレコードから同一フィールド部分を分割し、フィールド毎に結合することによって第１のブロックを生成する第１の変換ステップと、予め記憶されたデータ変換方法を用いて前記第１のブロックから第２のブロックに変換する第２の変換ステップと、前記第１のブロックを構成するレコード数を、該第１のブロックを変換した第２のブロックの容量が予め定めた最大容量を越えない範囲に設定するレコード数決定ステップとを有しているものとした。
【０１１２】
これにより、ブロック毎の変換を早くすることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１におけるデータ管理装置の可変長ブロック化トランスポーズ変換の概念図である。
【図２】内部ファイル形式から変換前ブロック化トランスポーズドファイル形式への変換を示す図である。
【図３】可変長データ変換手段の構成を示す図である。
【図４】データ管理装置の入力ファイルからデータファイルを生成するまでの処理における動作関係を階層的に示した図である。
【図５】入力ファイルからデータファイルを生成する処理を示すフローチャートである。
【図６】変換後グループに含まれるレコード数の決定処理を示すフローチャートである。
【図７】データファイルの生成処理手順を示すフローチャートである。
【図８】データ管理装置におけるデータ読み出しシステムを示す図である。
【図９】可変長データ逆変換手段の構成を示す図である。
【図１０】データファイルからデータを読み出す処理における動作関係を階層的に示した図である。
【図１１】アプリケーションプログラムがデータファイルからデータを読み出すまでの処理を示すフローチャートである。
【図１２】データファイルの逆変換処理を示すフローチャートである。
【図１３】この発明の実施の形態２におけるデータファイルを示す図である。
【図１４】この発明の実施の形態３における可変長ブロック化トランスポーズドデータファイルの生成処理の動作を示すフローチャートである。
【図１５】従来のブロック化トランスポーズドのデータ管理装置でのデータ管理概念を示す概念図である。
【図１６】内部ファイル形式からブロック化トランスポーズドファイル形式への変換を示す図である。
【図１７】論理レコードと内部レコードとの対応関係を示す図である。
【図１８】従来のブロック化トランスポーズドファイルからの読み出しを示す図である。
【符号の説明】
１  内部フィールド形式、  ２  内部フィールド、  ３  レコード、
１１  論理ファイル形式、  １２  論理フィールド、  １３  レコード、
２１  変換前ブロック化トランスポーズドファイル形式、
２２  フィールド、  ２３  変換前ブロック、  ２４  変換後グループ、
５１  可変長ブロック化トランスポーズドファイル群、
６１  可変長ブロック化トランスポーズドデータファイル、
６２  変換後ブロック、  ６３  変換後グループ、
６４  変換後グループ、  ６５  変換後グループ、
７１  可変長ブロック化トランスポーズド管理ファイル、
７２  ファイル毎付加情報、  ７３  グループ毎付加情報、
７４  ブロック毎付加情報、  ８１  内部フィールド変換手段、
８２  トランスポーズド変換手段、  ８３  可変長データ変換手段、
８４  可変長データ変換種別、
９１  可変長データ逆変換手段、  ９２  入力手段、
９３  データベース処理手段、
１００  可変長ブロック化トランスポーズドファイル生成プログラム、
１０１  グループ内レコード数決定手段、
１０２  可変長ブロック化トランスポーズドファイル生成手段、
１１０  アプリケーションプログラム、
１１１  データベース管理システム、
１１２  可変長ブロック化トランスポーズドファイル逆変換プロフラム
【図１】
0003573012.tif 000002
【図２】
0003573012.tif 000003
【図３】
0003573012.tif 000004
【図４】
0003573012.tif 000005
【図５】
0003573012.tif 000006
【図６】
0003573012.tif 000007
【図７】
0003573012.tif 000008
【図８】
0003573012.tif 000009
【図９】
0003573012.tif 000010
【図１０】
0003573012.tif 000011
【図１１】
0003573012.tif 000012
【図１２】
0003573012.tif 000013
【図１３】
0003573012.tif 000014
【図１４】
0003573012.tif 000015
【図１５】
0003573012.tif 000016
【図１６】
0003573012.tif 000017
【図１７】
0003573012.tif 000018
【図１８】
0003573012.tif 000019