(57)【要約】【課題】  データを圧縮した形式で保持するデータベースシステムのデータ格納方式と取り出し方式において、サーバのデータベース格納領域の効率的使用を保ちつつ、通信データ量の削減、解凍処理にかかる負荷分散を図ることを課題とする。【解決手段】  特定データ型圧縮部１０３は、特定型のカラムデータを単独で圧縮して、データ格納領域１０８に記憶させ、一括圧縮部１０４は、特定型以外の連続するカラムデータを一括して圧縮して、データ格納領域１０８に記憶させる。解凍識別部１０６は、検索結果となるカラムであって、特定型のカラムを解凍しない部分とし、検索文に含まれるそれ以外のカラムを解凍する部分として、解凍部１０７で解凍する。【選択図】        図１
2005352561.tif 000002
【特許請求の範囲】
【請求項１】
データベースクライアントからの要求を受けて、１つ又は複数のカラムからなるレコードデータを格納し、格納したデータを検索するデータベースサーバにおいて、
データベースクライアントからの要求に応じて、データを格納する処理を行うデータ格納処理部として、
特定のデータ型のカラムのカラムデータを単独で圧縮し、データ格納領域に記憶させる特定データ型圧縮部と、
特定のデータ型以外のカラムのカラムデータを一括して圧縮し、データ格納領域に記憶させる一括圧縮部とを有し、
データベースクライアントからの要求に応じて、データ格納領域を検索文に従って検索する処理を行う検索処理部として、
検索文に含まれるカラムのうち、検索結果に含まれるが検索キーでない特定のデータ型を解凍しない部分として識別し、検索文に含まれるカラムのうち、解凍しない部分以外のカラムを解凍する部分として識別する解凍識別部と、
検索結果となるカラムについて、解凍処理の有無を示すフラグを付加するデータ変換部とを有することを特徴とするデータベースサーバ。
【請求項２】
データベースサーバへ検索を要求し、応答として検索結果を受信するデータベースクライアントにおいて、
１つ又は複数のカラムデータからなる検索結果を、複数の分割されたデータとして、それぞれの解凍処理の有無を示すフラグとともに入力する入力部と、
フラグにより解凍処理されていないデータを識別する解凍識別部と、
解凍処理されていないデータを解凍する解凍部とを有することを特徴とするデータベースクライアント。
【請求項３】
データベースクライアントは、検索を依頼する検索依頼処理部と接続され、更に、
検索依頼処理部から、解凍の要否を入力する入力部と、
解凍の要否を記憶する解凍不要指定部とを有し、
前記解凍部は、解凍不要指定部に解凍の要が記憶されている場合にデータを解凍することを特徴とする請求項２記載のデータベースクライアント。
【請求項４】
検索依頼処理部からの依頼に応じて、データベースサーバへ検索を要求し、応答として検索結果を受信するデータベースクライアントにおいて、
検索依頼処理部から解凍の要否を入力する入力部と、
解凍の要否を記憶する解凍不要指定部と、
解凍不要指定部に解凍の要が記憶されている場合にデータを解凍する解凍部とを有することを特徴とするデータベースクライアント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを圧縮した形式で保持するデータベースシステムのデータ格納方式と取り出し方式に係り、サーバのデータベース格納領域の効率的使用を保ちつつ、通信データ量の削減、解凍処理にかかる負荷分散を図ることができる方式に関する。
【背景技術】
【０００２】
データを圧縮した形式で保持するデータベースシステムのデータ格納方式と取り出し方式において、従来は、システム全体における各種資源の使用率の低減化、及び検索処理の高速化を図るため、レコード単位で受け取るデータをカラム単位で圧縮しデータベースに格納しておき、必要に応じて解凍して検索し、クライアント側に圧縮されたままのデータとカラム情報位置を送信してクライアント側でデータを解凍する方法が提案されている（例えば、特許文献１）。
【０００３】
しかし、このような従来のデータベースシステムのデータ格納方式と取り出し方式のうちレコードをカラム単位で圧縮する方法では、圧縮の単位が小さくなり、サーバのデータベース格納領域の削減効果が小さい。基幹業務に必要なデータだけでなくＷｅｂ上の様々なデータやログを格納するといった今日のデータベースの使い方を考慮すると、データベース格納領域の圧縮による削減はできるだけ大きいことが望ましい。また、クライアントへ送信する検索結果データは圧縮データであるが、検索結果データ以外にカラム位置情報を送信するため、通信量削減効果が小さい。さらに、検索時に必要に応じて解凍したデータであっても、クライアントへの送信データは圧縮データであるためクライアントで再度解凍する必要があり、サーバで解凍するデータ量が多くなるほど処理オーバヘッドが増大するという問題があった。
【０００４】
別の従来技術として、データベース処理の単純化、高速化、データベースの機密保持を可能にするために、固定長、可変長文字列データを固定長の内部符号に置換して格納する方法も提案されている（例えば、特許文献２）。
【０００５】
このように、固定長、可変長文字列データを固定長の内部符号に置換して格納する方法では、数値型のデータは圧縮されないため、サーバの格納領域の削減効果が小さい。また、解凍手段はサーバだけに存在し、クライアントへは全て解凍されたデータが送信されるため、通信量は削減されないという問題があった。
【特許文献１】特開平８−３１４９５７号公報
【特許文献２】特開昭６３−１２１９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は上記のような問題点を解決するためになされたもので、データを圧縮した形式で保持するデータベースシステムのデータ格納方式と取り出し方式において、サーバのデータベース格納領域の効率的使用を保ちつつ、通信データ量の削減、解凍処理にかかる負荷分散を図ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータベースサーバは、
データベースクライアントからの要求を受けて、１つ又は複数のカラムからなるレコードデータを格納し、格納したデータを検索するデータベースサーバにおいて、
データベースクライアントからの要求に応じて、データを格納する処理を行うデータ格納処理部として、
特定のデータ型のカラムのカラムデータを単独で圧縮し、データ格納領域に記憶させる特定データ型圧縮部と、
特定のデータ型以外のカラムのカラムデータを一括して圧縮し、データ格納領域に記憶させる一括圧縮部とを有し、
データベースクライアントからの要求に応じて、データ格納領域を検索文に従って検索する処理を行う検索処理部として、
検索文に含まれるカラムのうち、検索結果に含まれるが検索キーでない特定のデータ型を解凍しない部分として識別し、検索文に含まれるカラムのうち、解凍しない部分以外のカラムを解凍する部分として識別する解凍識別部と、
検索結果となるカラムについて、解凍処理の有無を示すフラグを付加するデータ変換部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明においては、サーバのデータベース格納領域の効率的使用を保ちつつ、通信データ量の削減、解凍処理にかかる負荷分散を図ることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
以下本発明を図面に示す実施例に基づいて説明する。図１はこの発明におけるデータベースシステムの構成図である。
【００１０】
図１において、データベースシステムを構成するデータベースサーバ１とデータベースクライアント２はネットワーク３を介して接続されている。また、データベースクライアント２は必要に応じて応用プログラム４から呼び出される。尚、データベースサーバ１とデータベースクライアント２はシステムを示す名称であって、１つの装置に相当する場合に限らない。
【００１１】
データベースサーバ１はデータ格納領域１０８を有し、データ格納領域１０８へは、データベース管理部であるデータ格納処理部１０１や検索処理部１０５を経てアクセスされる。
【００１２】
データ格納処理部１０１はデータベースに投入するデータを圧縮する圧縮部１０２を有し、圧縮部１０２は特定のデータ型だけを単独で圧縮する特定データ型圧縮部１０３と、特定データ型圧縮部１０３では圧縮されないデータ（特定のデータ型以外のカラムデータ）を一括して圧縮する一括圧縮部１０４とを有する。更に、カラム毎に特定のデータ型か否かを判定するデータ型判定部１１０と、特定のデータ型以外のカラムデータを一時的に記憶するデータ蓄積部１１１とを有する。
【００１３】
検索処理部１０５は、データベースクライアント２から送信された検索文を解析し、検索キーに含まれるカラムと検索結果に含まれるカラムを判別する検索文解析部１１２と、レコードデータを構成するカラムについて解凍するデータと解凍しないデータを判別する解凍識別部１０６と、解凍処理を行う解凍部１０７を有する。更に、解凍したデータと解凍しないデータを一時的にデータを蓄積するデータ蓄積部１１３と、検索結果を取得する検索結果取得部１１４と、解凍フラグを付加して検索結果を通信データに変換するデータ変換部１１５とを有する。
【００１４】
データベースクライアント２は、データベースサーバ１から送信されたデータが圧縮されたデータか否かを解凍識別部２１で判別して、解凍が必要であれば解凍部２２で解凍し、結果データを応用プログラム４へ渡すように構成されている。
【００１５】
応用プログラム４（検索依頼処理部の例）は、データベースクライアント２へ送信された圧縮されたままのデータを解凍せずに要求する場合に、解凍が不要である旨を、データベースクライアント２に対して指定する。解凍不要指定部２３は、解凍が不要である旨を記憶する。データベースクライアント２は図１では１つであるが、複数接続されていてもよい。
【００１６】
次に動作について説明する。本説明では特定データ型圧縮部１０３で圧縮する特定のデータ型を固定長文字列型として説明する。特定のデータ型は、他の型であっても構わない。
【００１７】
まず、データベースサーバ１においてデータ格納領域１０８へ登録するデータ格納処理部１０１の動作を図３のフローチャートと図４のデータフローを用いて説明する。図３は本実施形態のデータ型を考慮したデータ格納処理を示すフローチャートである。図４は、データ格納処理に係るデータフローを示す図である。
【００１８】
データベースサーバ１は、まず入力部１００で、データベースクライアント２より格納するレコードデータを受信し、データ型判定部１１０によりカラム毎に固定長文字列型であるかを判別する（ステップ５１）。特定のデータ型（固定長文字列型）以外の場合は（ステップ５２）、当該カラムのデータをデータ蓄積部１１１に蓄積しておく（ステップ５４）。
【００１９】
特定のデータ型（固定長文字列型）の場合は（ステップ５２）、前回の一括圧縮以降に蓄積されたカラムデータ群を、一括圧縮部１０４によりまとめて圧縮する（ステップ５３）。このとき、蓄積されているカラムデータをクリアする。そして、特定のデータ型（固定長文字列型）の当該カラムデータを特定データ型圧縮部１０３により圧縮する（ステップ５５）。
【００２０】
最後のカラムまで（ステップ５６）、ステップ５１からステップ５５を繰り返す。この結果、データ格納領域１０８には図２に示すような形式で格納される。
【００２１】
図２は１レコードが４つ以上のカラムで構成され、それぞれのデータ型が順に整数型、日付型、固定長文字列型、整数型である場合の格納データの圧縮結果を示す。固定長文字列型データでない最初のカラムと２番目のカラムはまとめて圧縮され、３番目のカラムはこれのみで圧縮される。
【００２２】
次にデータベースサーバ１における検索処理部１０５の動作を図５のフローチャートと図６のデータフローを用いて説明する。図５は本実施形態の検索処理を示すフローチャートである。図６は、検索処理に係るデータフローを示す図である。
【００２３】
入力部１００で受信した検索文を、検索文解析部１１２により解析する（ステップ６１）。その結果、検索キーに使われるカラムと、検索結果に使われるカラムを抽出する。解凍識別部１０６は、検索結果に含まれるが検索キーとなっていない特定のデータ型（固定長文字列型）のカラムデータを除き、検索キー又は検索結果に含まれるカラムが格納されているデータを解凍部１０７により解凍する。更に解凍部１０７では解凍されたデータと圧縮されたままの特定のデータ型（固定長文字列型）のデータを対応付けて、データ蓄積部に記憶させる（ステップ６２）。
【００２４】
検索結果取得部１１４は、各レコード毎に検索キーに含まれるカラムのデータをデータ蓄積部から読みこみ、検索条件を満たすか判定し、検索結果となるレコードを特定する（ステップ６３）。そして、データ変換部１１３で、取得した検索結果を通信データに変換する際に、結果データ毎に解凍されているか否かを示す解凍フラグを付加し、圧縮されたままのカラムデータには解凍フラグを立て、これらをまとめて通信データとして出力部１０９からネットワーク３を介してデータベースクライアント２へ送信する（ステップ６４）。
【００２５】
次に、データベースクライアント２における動作を図７のフローチャートを用いて説明する。図７は本実施形態のデータベースサーバ１からデータベースクライアント２へ送られた検索結果を応用プログラム４で取得するまでの手順を示すフローチャートである。
【００２６】
データベースクライアント２は、入力部２０でデータベースサーバ１からの検索結果である通信データを受信し（ステップ７１）、解凍識別部２１で受信した通信データを結果データに分割し、解凍フラグにより結果データが圧縮データかどうかの判別をする（ステップ７２）。圧縮データである場合は（ステップ７３）、応用プログラム４により指定される解凍不要指定部２３の内容が、解凍が必要と示されている場合に（ステップ７４）、解凍部２２により解凍する（ステップ７５）。結果データの最後まで（ステップ７６）、ステップ７２からステップ７５を繰り返す。このようにして通信データから復元された検索結果を応用プログラム４に渡す。
【００２７】
以上のように、サーバでの圧縮が１つのカラム単位ではなく、特定のデータ型の場合を除いて一括して圧縮するので、サーバのデータベース格納領域の効率的使用が図られる。
【００２８】
また、特定のデータ型の場合は圧縮したまま通信するので、全て解凍したデータを通信する場合に比べて通信データ量の削減が図られる。
【００２９】
さらに、サーバで解凍する部分とクライアントで解凍する部分に分けたので、解凍処理にかかる負荷分散が図られる。
【００３０】
そして、サーバで解凍した部分を再度クライアントで解凍することはないので、二度手間もない。
【００３１】
さらに、応用プログラムは必要に応じて圧縮したままのデータを受け取れるので、解凍の手間が省かれる。
【００３２】
実施の形態２．
以上の実施形態では、データ格納処理部１０２の動作をデータベースクライアント２で受信したデータの単位で格納するものとして説明したが、受信したデータをデータベースサーバ１で蓄積し、一定数のデータ量に達した時点で圧縮し格納してもよい。本実施の形態により、サーバのデータベース格納領域の削減効果が大きくなる。
【００３３】
実施の形態３．
以上の実施形態では、データベースクライアント２が、ネットワークを介してデータベースサーバ１にアクセスするものとして説明したが、データベースクライアント２をデータベースサーバ１と同じ装置に配しても同様の効果を得られる。
【００３４】
実施の形態４．
解凍不要の指定を行わない形態であっても、特定のデータ型以外のデータ群を一括して圧縮することにより、サーバのデータベース格納領域の効率的使用が図られる。
【００３５】
その場合には、図９のように、解凍不要指定部２３は省かれ、図８のように解凍不要の判断（Ｓ７４）の処理も行わない。
【００３６】
実施の形態５．
また、解凍不要の指定は、上述のように結果データ中に圧縮データと非圧縮データが混在している場合以外にも有効である。
【００３７】
例えば、分割した結果データがすべて圧縮されている前提の場合には、図１０のように、すべての結果データについて解凍不要の判断を行う（ステップ７４）。
【００３８】
データベースサーバ１とデータベースクライアント２は、コンピュータであり、各要素はプログラムにより処理を実行することができる。また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
【００３９】
図１１は、データベースサーバ１とデータベースクライアント２のハードウエア構成例を示す図である。バスに、演算装置１１０１、データ記憶装置１１０２、メモリ１１０３、通信インターフェース１１０４が接続されている。データ記憶装置１１０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスクである。メモリ１１０３は、通常ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００４０】
プログラムは、通常データ記憶装置１１０２に記憶されており、メモリ１１０３にロードされた状態で、順次演算装置１１０１に読み込まれ処理を行う。
【図面の簡単な説明】
【００４１】
【図１】システム構成を示す図である。
【図２】データ格納領域の構成例を示す図である。
【図３】データ格納処理のフローを示す図である。
【図４】データ格納処理のデータフローを示す図である。
【図５】検索処理のフローを示す図である。
【図６】検索処理のデータフローを示す図である。
【図７】クライアント処理のフローを示す図である。
【図８】実施の形態４に係るクライアント処理のフローを示す図である。
【図９】実施の形態４に係るクライアントの構成を示す図である。
【図１０】実施の形態５に係るクライアント処理のフローを示す図である。
【図１１】ハードウェア構成例を示す図である。
【符号の説明】
【００４２】
１  データベースサーバ、２  データベースクライアント、４  応用プログラム、２０  入力部、２１  解凍識別部、２２  解凍部、２３  解凍不要指定部、２４  出力部。
【図１】
2005352561.tif 000003
【図２】
2005352561.tif 000004
【図３】
2005352561.tif 000005
【図４】
2005352561.tif 000006
【図５】
2005352561.tif 000007
【図６】
2005352561.tif 000008
【図７】
2005352561.tif 000009
【図８】
2005352561.tif 000010
【図９】
2005352561.tif 000011
【図１０】
2005352561.tif 000012
【図１１】
2005352561.tif 000013