(57)【要約】【課題】既存のマルチバイトコードのデータベース内に全く異なるマルチバイトコードのデータを格納することができ、データベースクラスタ全体で消費されるリソースを抑えることができるデータベースシステム、データベース処理方法及びプログラムを提供する。【解決手段】Ｗｅｂブラウザと、データベース操作用アプリケーションと、単一のデータベースとを有するデータベースシステムであって、データベースは、文字列表示型データの格納先としてバイナリ型のテーブルを有し、データベース操作用アプリケーションは、Ｗｅｂブラウザとデータベースとの間に備えられ、Ｗｅｂブラウザとデータベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換を行う機能を有する。【選択図】図１
2010266923.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂブラウザと、データベース操作用アプリケーションと、単一のデータベースとを有するデータベースシステムであって、
前記データベースは、
文字列表示型データの格納先としてバイナリ型のテーブルを有し、
前記データベース操作用アプリケーションは、
前記Ｗｅｂブラウザと前記データベースとの間に備えられ、
前記Ｗｅｂブラウザと前記データベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換を行う機能を有することを特徴とするデータベースシステム。
【請求項２】
前記データベース操作用アプリケーションは、
前記Ｗｅｂブラウザから前記データベースに対する要求内容を示す文字列表示型データを受信すると、前記文字列表示型データをバイナリ型データに変換した上で前記データベースに接続し、ＳＱＬ文を送信することを特徴とする請求項１記載のデータベースシステム。
【請求項３】
前記データベースは、
前記データベース操作用アプリケーションから受信したＳＱＬ文に基づいた処理を実行し、実行結果を示すバイナリ型データを前記データベース操作用アプリケーションに返信し、
前記データベース操作用アプリケーションは、
前記データベースから受信した前記実行結果を示すバイナリ型データを、文字列表示型データに変換し、前記Ｗｅｂブラウザへ送信することを特徴とする請求項１又は２記載のデータベースシステム。
【請求項４】
前記Ｗｅｂブラウザは、
前記データベース操作用アプリケーションから、前記データベースに対する要求内容の実行結果を示す文字列表示型データを受信すると、画面表示することを特徴とする請求項１から３のいずれか１項に記載のデータベースシステム。
【請求項５】
PostgreSQLを用いたことを特徴とする請求項１から４のいずれか１項に記載のデータベースシステム。
【請求項６】
Ｗｅｂブラウザと、データベース操作用アプリケーションと、単一のデータベースとで行われるデータベース処理方法であって、
前記データベースには、
文字列表示型データの格納先としてバイナリ型のテーブルが作成され、
前記データベース操作用アプリケーションは、
前記Ｗｅｂブラウザと前記データベースとの間に備えられ、
前記Ｗｅｂブラウザと前記データベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換を行うことを特徴とするデータベース処理方法。
【請求項７】
Ｗｅｂブラウザと、文字列表示型データの格納先としてバイナリ型のテーブルが作成された単一のデータベースとの間に備えられるコンピュータに実行させるプログラムであって、
前記コンピュータに、
前記Ｗｅｂブラウザと、データベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマルチバイト文字コードデータを扱うデータベースシステム、データベース処理方法及びプログラムに関する。
【背景技術】
【０００２】
例えばPostgreSQLを用いたデータベースシステムにおいてマルチバイト文字コードを取り扱う場合、データベースを作成したときに指定した文字コードで表現可能な文字列を格納することを前提としている。このため、複数種類の文字コードデータを扱う場合にはそれぞれ専用のデータベースを作成する必要がある。
【０００３】
例えばPostgreSQLはデータベースクラスタ単位で使用可能なリソースを設定するため、クラスタ内に新規のデータベースを作成すると、他のデータベースで使用可能なリソースが制限される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０５−１２７９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
既存のマルチバイト文字コードを用いたデータベースクラスタに対して、異なるマルチバイト文字コードの文字列を格納させる場合、以下の問題が発生する可能性がある。
【０００６】
格納したい文字コード毎に専用のデータベースを作成した場合、１データベースあたりで使用可能なリソースが制限される。具体的な例としてデータベースクラスタ全体に対する最大接続数を挙げる。最大接続可能数200のデータベースクラスタに１つのデータベースがある状態で新規にデータベースを追加したと仮定する。この時、既に存在していたデータベースに対して発生する接続数が150で新規データベースに対して発生する接続数が100とすると、データベースクラスタに対して発生する接続数は250となる。この接続数はデータベースクラスタ全体の上限値より大きい為、接続エラーとなる可能性が高い。この点を解消する為、データベースクラスタの最大接続数を増やすことは可能であるが、ＯＳ（Operating System）側のパラメータを変更する必要があることと、データベースクラスタの再起動が必要であることから、既に運用されているデータベースクラスタに対して実施することはあまり望ましくない。また、動作しているサーバの性能によっては接続数自体を増やすことが出来ない場合がある。
【０００７】
データベースを作成したときに指定した文字コード以外の文字列を格納しようとすると文字コード体系の違いから格納可能な文字数がテーブル定義と異なるため、以下の問題が発生する。
【０００８】
・格納しようとする文字列の文字コードがテーブル側の文字コードに存在しない場合、格納自体がエラーとなる。
・文字コードによって１文字あたりで使用するバイト数が異なるため、これによりvarchar等、文字数に依存して定義された列に対するレコード格納時にエラーとなる。
例）EUC-JPで作成されたデータベースのテーブルの列varchar(6)に対してEUC-JP(1文字2バイト)、UTF-8(1文字3バイト)のデータを格納する場合、EUC-JPでは6文字格納可能であるが、UTF-8では4文字までしか格納できない。
【０００９】
なお、特許文献１には、データベースと、データベース操作用のアプリケーションとの間で、データのバイナリ形式と文字列表示形式との変換を行うことで、アプリケーション側の負担を抑える発明が開示されている。しかし、この発明では、インターフェースとなるアプリケーション側で変換処理を行う構成ではなく、既存のデータベースクタスタ内に別文字コード体系のデータベースを新規作成することに伴う、データベースクラスタ内でのリソース消費の軽減を実現するものではない。
【００１０】
本発明は、上記事情に鑑みてなされたものであり、既存のマルチバイトコードのデータベース内に全く異なるマルチバイトコードのデータを格納することができ、データベースクラスタ全体で消費されるリソースを抑えることができるデータベースシステム、データベース処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
かかる目的を達成するために、本発明のデータベースシステムは、Ｗｅｂブラウザと、データベース操作用アプリケーションと、単一のデータベースとを有するデータベースシステムであって、データベースは、文字列表示型データの格納先としてバイナリ型のテーブルを有し、データベース操作用アプリケーションは、Ｗｅｂブラウザとデータベースとの間に備えられ、Ｗｅｂブラウザとデータベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換を行う機能を有することを特徴とする。
【００１２】
本発明のデータベース処理方法は、Ｗｅｂブラウザと、データベース操作用アプリケーションと、単一のデータベースとで行われるデータベース処理方法であって、データベースには、文字列表示型データの格納先としてバイナリ型のテーブルが作成され、データベース操作用アプリケーションは、Ｗｅｂブラウザとデータベースとの間に備えられ、Ｗｅｂブラウザとデータベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換を行うことを特徴とする。
【００１３】
本発明のプログラムは、Ｗｅｂブラウザと、文字列表示型データの格納先としてバイナリ型のテーブルが作成された単一のデータベースとの間に備えられるコンピュータに実行させるプログラムであって、コンピュータに、Ｗｅｂブラウザと、データベースとの間で通信されるデータについて、文字列表示型とバイナリ型の変換処理を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、既存のマルチバイトコードのデータベース内に全く異なるマルチバイトコードのデータを格納することができ、データベースクラスタ全体で消費されるリソースを抑えることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るデータベースシステムの構成例を示す図である。
【図２】本発明の一実施形態に係るデータベースシステムの動作例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態（実施形態）について添付図面を参照して詳細に説明する。ここでは、本発明のデータベースシステムの一実施形態として、PostgreSQLを用いたデータベースシステムを例に説明する。
【００１７】
上述したように、一般的には、既存のデータベースで定義されているマルチバイト文字コードと異なる文字コードデータを格納させる際、文字コード体系の違いからそのまま格納させることはできない。このような場合、通常はデータベースクラスタ内に使用したい文字コード用のデータベースを新規に作成するが、データベースクラスタ全体のリソースを余分に消費するという課題がある。そこで、本実施形態のデータベースシステムでは、扱いたいマルチバイトコードの格納先として、既存の単一データベース内にバイナリ型のテーブルを作成し、データ変換用のＷｅｂアプリケーションと組み合わせることで、上記課題を解決する。すなわち、既存のマルチバイトコードのデータベース内に全く異なるマルチバイトコードのデータを格納することで、データベースクラスタ全体で消費されるリソースを抑えることを目的とする。
【００１８】
本実施形態のデータベースシステムは、図１に示すように、Ｗｅｂブラウザ１１、操作用ＡＰ（アプリケーション）、ＤＢ（データベース）１３を有する。
【００１９】
Ｗｅｂブラウザ１１は、インターネット上のＷｅｂページを閲覧等するためのアプリケーションである。Ｗｅｂブラウザ１１は、例えばＰＣ（パーソナルコンピュータ）等のクライアント端末（情報処理装置）に搭載され、操作用ＡＰ１２とデータ通信を行う。また、Ｗｅｂブラウザ１１は、ユーザ（利用者）によって操作される。
【００２０】
操作用ＡＰ１２は、ＤＢ１３を操作（検索、格納、削除、更新など）するためのアプリケーションである。操作用ＡＰ１２は、例えばＷｅｂアプリケーションサーバ等に搭載され、Ｗｅｂブラウザ１１及びＤＢ１３とデータ通信を行う。なお、本実施形態では、操作用ＡＰ１２は、データのバイナリ形式（バイナリ型）と文字列表示形式（文字列表示型）とを変換する機能を有し、Ｗｅｂブラウザ１１とは文字列表示形式での通信となり、ＤＢ１３とはバイナリ型での通信となる。
【００２１】
ＤＢ１３は、操作用ＡＰ１２からの操作を受け付け、その結果を操作用ＡＰ１２へ返す。ＤＢ１３では、マルチバイト文字コードの格納先として、バイナリ型の列を含んだテーブルが定義（作成）される。
【００２２】
以上のように構成された本実施形態のデータベースシステムは、図２に示すように動作する。図２は、本実施形態のデータベースシステムにおけるＤＢレコードの操作概略を示したものである。なお、ここでは例として、ＤＢ１３側のマルチバイトコードをCode-A、格納したいマルチバイトコードをCode-Bとして説明する。
【００２３】
〔ステップＳ１〕
まず、ユーザはＷｅｂブラウザ１１から操作用ＡＰ１２にアクセスする。アクセスに成功すると、操作用ＡＰ１２から提供される画面が表示されるが、その画面は、ユーザが実施したい内容（ＤＢ１３に対する要求内容、操作内容）をCode-Bで入力してもらうため、Code-Bを用いて作成されたものとする。Ｗｅｂブラウザ１１は、ユーザによる要求内容の入力が完了すると、入力された要求内容を操作用ＡＰ１２へ送信する。
【００２４】
〔ステップＳ２〕
操作用ＡＰ１２は、受信した要求内容のうち、Code-Bで記載されている部分をバイナリ型に変換した後、Code-Aで作成されたデータベースに接続し、ＳＱＬ文を送信する。
【００２５】
〔ステップＳ３〕
ＤＢ１３は、受信したＳＱＬ文に基づいて処理を実行し、その実行結果を操作用ＡＰ１２に返信する。
【００２６】
〔ステップＳ４〕
操作用ＡＰ１２は、受信した実行結果をバイナリ型からCode-Bの文字列に変換し、Ｗｅｂブラウザ１１へ送信する。
【００２７】
〔ステップＳ５〕
Ｗｅｂブラウザ１１は、受信した実行結果（Code-Bの文字列で記載）を画面表示する。
【００２８】
以上説明したように、本実施形態によれば、既存のテータベースに対し、マルチバイトコードの格納先として、バイナリ型の列を含んだテーブルを予め定義しておく。そして、上述した変換機能を有するアプリケーション（操作用ＡＰ１２）を用いることで、既存のマルチバイトコード（例えば、Code-A）のデータベース内に全く異なるマルチバイトコード（例えば、Code-B）のデータを格納することができる。これにより、文字コード体系の相違による格納エラーや文字数の制限の問題は解消され、データベースクラスタ全体で消費されるリソースを抑えることが可能となる。一方で、本実施形態では、バイナリ型のデータから元々の文字データをユーザが直接確認することは困難になるため、開発言語PHPを用いたWebインターフェースによるレコードの操作を実現する。
【００２９】
以上、本発明の実施形態について説明したが、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。
【００３０】
例えば、上述した実施形態における動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【００３１】
ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させてもよい。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させてもよい。
【００３２】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭ（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＭＯ（Magneto optical）ディスク，ＤＶＤ（Digital Versatile Disc）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。
【００３３】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送してもよい。または、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送してもよい。コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【００３４】
また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【００３５】
また、上記実施形態で説明したシステムは、複数の装置の論理的集合構成にしたり、各装置の機能を混在させたりするように構築することも可能である。
【符号の説明】
【００３６】
１１    Ｗｅｂブラウザ
１２    操作用ＡＰ
１３    ＤＢ
【図１】
2010266923.tif 000003
【図２】
2010266923.tif 000004