データベース管理システムと、ユーザテーブルを管理する論理ページを記録するための論理ページ用メモリ領域と、可変長の圧縮ページを表形式で管理するページ管理テーブル内の圧縮ページを記録するための物理ページ用メモリ領域と、前記データベース管理システムに配置され、前記論理ページ用メモリ領域に記録される未圧縮ページを圧縮する圧縮ライブラリと、データベースファイルを記録格納するストレージと、を備え、前記データベース管理システムは、ページ単位でデータを圧縮/伸張するデータベース圧縮装置。前記データベース管理システムは、SQL文を解釈して処理するSQLコンパイル部と、前記SQLコンパイル部での処理に応じてデータベースファイルからページ単位でデータを展開するページ管理部と、前記ページ管理部で展開されたデータをページ単位で圧縮または伸張するデータ圧縮/伸張部と、前記ページ管理部から展開されたデータを取得し、前記SQLコンパイル部での処理に応じたデータベースの操作を制御するデータベースエンジン部と、前記SQLコンパイル部での処理に応じてデータベースファイルにアクセスして、前記ページ管理部とのファイルの受け渡しを司るファイル操作部と、を備え、データベースファイルからのページ単位のデータ読出しと伸張を実行する請求項1記載のデータベース圧縮装置。前記データベース管理システムは、SQL文を解釈して処理するSQLコンパイル部と、前記SQLコンパイル部での処理に応じて前記ユーザテーブルからレコードデータを展開するページ管理部と、前記ページ管理部で展開されたレコードデータをページ単位で圧縮するデータ圧縮/伸張部と、前記データ圧縮/伸張部による圧縮ページを取得して前記ページ管理部への受け渡しを行うデータベースエンジン部と、前記SQLコンパイル部での処理に応じて前記ページ管理部から圧縮ページの受け渡しを受け、データベースファイルにアクセスするファイル操作部と、を備え、前記ページ管理部は、前記データベースエンジン部から圧縮ページを取得し、レコードデータに変換し、データベースファイルへの書込みを実行する請求項1記載のデータベース圧縮装置。前記ストレージは、ハードディスク装置又はソリッドステートドライブ装置のいずれかである請求項1乃至請求項3のいずれか1項に記載のデータベース圧縮装置。前記圧縮ライブラリは、任意のアルゴリズムに入れ替え可能である請求項1乃至請求項4のいずれか1項に記載のデータベース圧縮装置。本発明が解決しようとする課題は、ページ単位で圧縮あるいは伸張可能なデータベース圧縮装置を提供することである。実施形態のデータベース圧縮装置は、データベース管理システムと、ユーザテーブルを管理する論理ページを記録するための論理ページ用メモリと、可変長の圧縮ページを表形式で管理するページ管理テーブル内の圧縮ページを記録するための物理ページ用メモリと、前記データベース管理システムに配置され、前記論理ページ用メモリに記録される未圧縮ページを圧縮する圧縮ライブラリと、データベースファイルを記録格納するストレージと、を備え、前記データベース管理システムは、ページ単位で圧縮/伸張する。以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。まず、本実施形態で用いる主要な用語について説明する。ページとは、データファイルからデータを読み書きする単位をいう。ページには、テーブルを構成するレコードが、複数格納される。テーブルは、1乃至複数のページに所属している。ユーザは、テーブルに対してレコードの追加や、変更、削除等レコードを操作するが、実際のデータの取り扱いはページ単位となる。本実施形態に係るデータベース圧縮装置は、ページ単位でデータベースを圧縮するものである。図1は、本実施形態に係るデータベース圧縮装置の構成例を示す図である。データベース圧縮装置100は、CPU10、主記憶装置20、データベース管理システム以下、DBMSという。30、ストレージ40、メモリ50を主な構成要素としている。主記憶装置20の上には、ストレージ40もしくは他のストレージ装置図示しないから読み出されたオペレーティングシステムとして機能するアプリケーション60が展開される。さらに、DBMS30が主記憶装置20の上で展開される。アプリケーション60の制御のもとでCPU10がDBMS30における処理を実行する。まず、各部を簡潔に説明する。DBMS30は、データベースを管理し、データに対するアクセス要求に応えるものである。DBMS30は、管理するデータの表現形式により、いくつかの種類に分類でき、カード型、リレーショナル型、オブジェクト型などがある。本実施形態では、特定の種類に限定されることはないが、例えばリレーショナル型が典型的といえる。リレーショナルデータベースでは、1件のデータを複数の項目フィールドの集合として表現し、データの集合をテーブルと呼ぶ表で表す。ID番号や名前などのキーとなるデータを利用して、データの結合や抽出を行う。DBMS30は、SQLコンパイル部31、データベースエンジン部以下、DBエンジン部という。32、ページ管理部33、データ圧縮/伸張部34、ファイル操作部35、圧縮ライブラリ36から構成されている。SQLコンパイル部31は、SQL構造化問い合わせ言語文を解釈して処理するものである。DBエンジン部32は、DBMS30がデータベースファイル41に実際にアクセスして、データを挿入、抽出、更新、削除するために使用するソフトウェア部品である。ページ管理部33は、ファイルからページ単位でデータを展開し、ページの取得、ページの更新、ページの圧縮、ページの格納に際して、中心的な機能を果たす。DBエンジン部32は、ページ管理部33から展開されたデータを取得し圧縮ページを伸張する。また、ページ管理部33は、展開されたページ中のデータをページ単位で更新した後、データ圧縮/伸張部34に渡すものである。データ圧縮/伸張部34は、ページ単位でデータを圧縮または伸張するものである。ファイル操作部35は、ストレージ40中のデータベースファイル41にアクセスして、ファイルの受け渡しを司るものである。圧縮ライブラリ36は、ファイルを圧縮するもので、そのアルゴリズムに特徴を有する。例えば、圧縮方式としてハフマン符号化法に代表される辞書を別途保存する必要がある方式、LZ77符号化法に代表される辞書を別途保存する必要がない方式などのアルゴリズムが用いられる。本実施形態では、圧縮ライブラリそのものは、入れ替えることが可能である。ストレージ40は、外部記憶装置であって、データベースファイル41を記録格納するものである。例えば、ハードディスク装置や、半導体メモリであるフラッシュメモリを使用したソリッドステートドライブSSD装置が好適である。メモリ50は、データやプログラムを記憶する記憶装置である。本実施形態では、記憶装置を小さなサイズで固定長にて管理されるページと呼ぶ単位に分割して割り当てを行うページング方式が採用されている。物理メモリ空間、論理メモリ空間ともページ単位に分割して管理される。論理メモリから物理メモリ空間への対応づけは、ページテーブルという構造体で実現される。メモリ50は、論理ページを記憶する論理ページ用メモリ51と物理ページを記憶する物理ページ用メモリ52に分けることができる。本実施形態では、ユーザがデータベースファイルを利用するためのテーブルとしてユーザテーブル53が設けられ、圧縮ページを表形式で管理するためのテーブルとしてページ管理テーブル54が設けられる。以上のように構成されたデータベース圧縮装置100における圧縮処理の概要について説明する。図2は、圧縮処理の概要について説明する図である。<圧縮からDBファイルへの書込み>アプリケーション60からSQLコマンドが渡されると、DBエンジン部32は、SQLコマンドを解釈する。ここでは、そのSQLコマンドがユーザテーブル53のレコードID301に新たにレコードを書き込むINSERTステートメントであるとする。DBエンジン部32は、ページ管理部33を介して、ユーザテーブル53を参照する。ユーザテーブル53には、既にレコードID101、レコードID201にレコードが記録されている。そこで、INSERTステートメントを実行し、ユーザテーブル53のレコードID301に新たにレコードを書き込む。本実施形態では、ユーザテーブル53は論理ページ用メモリ51によって管理されており、ユーザテーブル53のレコードID301に記録されたレコードは、論理ページの3ページ目に書き込まれていることがわかる。論理ページの3ページ目に記録されたレコードID301のレコードは、レコードID101のレコード、レコードID201のレコードに続けて詰めて記録される。レコードID301のレコードが記録された3ページ目は、まだ圧縮されていない。そこで、未圧縮のページ3を圧縮ライブラリを使用して圧縮する。圧縮されたページ3は、可変長となっている。DBエンジン部32は、ページ管理部33を介して、ページ管理テーブル54にインサートする。ページ管理テーブル54では、可変長の圧縮ページを表のように管理するもので、ユーザは、可変長の圧縮ページを固定長のページの集合体のイメージで利用することができる。ここでは、ページ管理テーブル54のレコードID3に圧縮されたページ3がインサートされる。ページ管理テーブル54の中身は、物理ページ用メモリ52で管理されている。図2に示す例では、ページ管理テーブル54の中身は、物理ページ用メモリ52のページ2に対応していることがわかる。圧縮ページ3は、物理ページ用メモリ52のページ2に詰めて、データベースファイル41に記録格納される。<DBファイルからの読出しから伸張>基本的には、圧縮からDBファイルへの書込みとは、逆の流れの処理となる。アプリケーション60からSQLコマンドがなげられると、DBエンジン部32は、SQLコマンドを解釈する。ここでは、そのSQLコマンドが圧縮済みのデータベースファイル41から、物理ページ用メモリ52のページ2に詰めて記録格納されている圧縮ページ3を読出す。圧縮ページ3は、物理ページ用メモリ52とページ管理テーブル54との対応から、ページ管理テーブル54ではレコードID3として圧縮された状態で展開される。DBエンジン部32は、ページ管理部33を介して、レコードID3に展開された圧縮ページ3を圧縮ライブラリ36を使用して伸張する。伸張されたページ3は、論理ページ用メモリ51のページ3として展開される。ページ3の中には、いくつかのレコードが詰めて記録されている。論理ページ用メモリ51とユーザテーブル53との対応から、論理ページ用メモリ51のページ3のレコードは、ユーザテーブル53の各レコードID毎に、レコードに展開される。ここでは、レコードID301に読み出したレコードがインサートされる。次に、以上のように構成されたデータベース圧縮装置100におけるデータベースとしての操作について説明する。本実施形態では、通常のデータベースとして、テーブルの作成、テーブルの削除、テーブルの参照、テーブルの更新が可能である。図3は、テーブルの作成の操作の流れを示すフローチャートである。まず、テーブルを作成するステップS31。次いで、コミット時、すなわち、トランザクションによる内容更新を確定する場合には、ページを圧縮するステップS32。圧縮データをデータベースにインサートするステップS33。次いで、DBファイルへの書き込みを行うステップS34。図4は、テーブルの削除の操作の流れを示すフローチャートである。まず、目的のページを圧縮したレコードを取得するステップS41。次いで、レコードの伸張を行い、メモリへの展開を行うステップS42。次いで、テーブルの削除処理を行うステップS43。その後、コミット時、ページを圧縮するステップS44。圧縮データをデータベースにインサートするステップS45。次いで、DBファイルへの書き込みを行うステップS46。図5は、テーブルの参照の操作の流れを示すフローチャートである。まず、目的のページを圧縮したレコードを取得するステップS51。次いで、レコードの伸張を行い、メモリへの展開を行うステップS52。その後、通常の参照処理を行うステップS53。図6は、テーブルの更新の操作の流れを示すフローチャートである。まず、目的のページを圧縮したレコードを取得するステップS61。次いで、レコードの伸張を行い、メモリへの展開を行うステップS62。次いで、通常のテーブルの更新処理を行うステップS63。その後、コミット時、ページを圧縮するステップS64。圧縮データをデータベースにインサートするステップS65。次いで、DBファイルへの書き込みを行うステップS66。次に、更新処理を行う際の、ページの取得、更新、圧縮、格納の一連の流れにおける、それぞれの処理の詳細について説明する。<ページの取得>図7は、ページの取得の処理の流れを説明する図である。ページ管理部33は、ページ単位でデータを展開するために、ファイル操作部35を介してDBファイル41にアクセスし、2ページ目ここでは、ページ2に該当のデータが存在していることを把握する。このページ2は、物理ページ用メモリ52において、圧縮ページとして詰めて記録格納されている。ページ管理部33は、当該圧縮ページを取得し、DBエンジン部32に受け渡す。DBエンジン部32は、データ圧縮/伸張部34を介して、取得した圧縮ページを伸張する。論理ページ用メモリ51において、伸張された圧縮ページが書き込まれる。<ページの更新と圧縮>図8は、ページの更新と圧縮の処理の流れを説明する図である。論理ページ用メモリ51上で、該当のデータが更新されると、ページ管理部33は、データ圧縮/伸張部34を介して、そのデータが含まれるページを圧縮する。ページ管理部33は、圧縮されたページを、インサートのためDBエンジン部32に受け渡す。<圧縮ページの格納>図9は、圧縮ページの格納の処理の流れを説明する図である。DBエンジン部32は、論理ページ用メモリ51上にある圧縮されたデータを取得し、ページ管理部33を介して、物理ページ用メモリ52上で指定された圧縮ページに通常のレコードとしてインサートする。ページ管理部33は、ファイル操作部35を介してDBファイル41にアクセスし、圧縮ページ、ここでは、ページ2としてDBファイル41に格納する。<圧縮率等の比較>本実施形態に係るデータベース圧縮装置と、従来手法による圧縮率等を比較する。比較する従来手法には、MySQLInnoDBPluginとし、以下の表に示すようなDBファイルを圧縮する。MySQLInnoDBPluginでは、圧縮後のページがKEYBLOCKSIZEより大きい場合には、2分割して再圧縮する。全てのページがKEYBLOCKSIZE以下になった時点で、終了する。したがって、ここでの比較事例での両者の圧縮率、圧縮回数、圧縮時間は次のように表される。本実施形態による圧縮率=圧縮後のページのサイズの合計/圧縮前のファイルサイズMySQLInnoDBPluginによる圧縮率=圧縮済ページ数×KEYBLOCKSIZE/圧縮前のファイルサイズ本実施形態による圧縮回数=nMySQLInnoDBPluginによる圧縮回数=nm2本実施形態による圧縮時間=nMySQLInnoDBPluginによる圧縮時間=ntcompmtdivm2tcompこのとき、n:ページ数、m:一回目の圧縮率がKEYBLOCKSIZE以上となったファイルの数、tcomp:圧縮時間、tdiv:ページ分割時間とする。以上から、本実施形態による圧縮率=4455/9000=49.5MySQLInnoDBPluginによる圧縮率=407×16/9000=72.4となり、圧縮率は22.9、上回っている。また、圧縮回数の比較は、本実施形態による圧縮回数=289ページ数=289回MySQLInnoDBPluginによる圧縮回数=289118分割したページ数×2=525回となり、圧縮回数は236回、上回っている。また、処理時間の比較は、本実施形態による処理時間=289tcompMySQLInnoDBPluginによる処理時間=525tcomp118tdivとなり、236tcomp118tdiv、上回っている。本実施形態によれば、短い処理速度でページ単位で圧縮/伸張することができ、圧縮後の可変長データにも対応することができ、データベース機能に制約が無い。また、用途に応じて圧縮アルゴリズムを変更することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。