(57)【特許請求の範囲】
【請求項１】
データベース処理要求による検索対象データを検索する検索部と、
属性定義情報を格納するデータ格納部と、
前記データベース処理要求の検索条件に記述されたデータを検出し、前記検出されたデータに記述された属性値のデータ属性と、前記検出されたデータに対応する前記属性定義情報に規定されたデータ属性とを比較し、両者が一致しない場合、前記属性値のデータ属性を前記属性定義情報に規定されたデータ属性にフォーマット変換する属性訂正部と、
を有するデータベース管理装置。
【請求項２】
前記データ格納部は更に、前記検索対象データを検索するためのインデックスデータを有し、
前記検索部は、前記フォーマット変換された検索条件により前記インデックスデータを検索する、請求項１記載のデータベース管理装置。
【請求項３】
前記属性訂正部は、前記検出された検索条件を通知する、請求項１又は２記載のデータベース管理装置。
【請求項４】
データベース処理要求の検索条件を解析し、前記データベース処理要求の検索条件に記述されたデータを検出するステップと、
前記検出されたデータに記述された属性値のデータ属性と、前記検出されたデータに対応する属性定義情報に規定されたデータ属性とを比較するステップと、
両者が一致しない場合、前記属性値のデータ属性を前記属性定義情報に規定されたデータ属性にフォーマット変換するステップと、
前記フォーマット変換されたデータによる検索条件により検索対象データを検索するステップと、
をプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理システム（ＤＢＭＳ）に関する。
【背景技術】
【０００２】
データベース管理システムでは、データベースにおいて検索条件に一致したデータ又はレコードを特定し、特定されたデータを抽出、更新及び削除するための各種データベース処理が実行されている。これらデータベース処理を実現するため、ＳＱＬ言語が典型的に利用されている。
【０００３】
ＳＱＬ言語による抽出処理は、例えば、
"ＳＥＬＥＣＴ  ＦＲＯＭ  テーブル名  ＷＨＥＲＥ  検索条件"
の形式により記述され、当該ＳＱＬ命令を実行することによって、"ＷＨＥＲＥ"文に記述された検索条件に一致したデータがテーブルから抽出される。
【０００４】
また、更新処理は、例えば、
"ＵＰＤＡＴＥ  テーブル名  ＳＥＴ  更新情報  ＷＨＥＲＥ  検索条件"
の形式により記述され、当該ＳＱＬ命令を実行することによって、"ＷＨＥＲＥ"文に記述された検索条件に一致したデータが、"ＳＥＴ"文に記述された更新情報により更新される。
【０００５】
また、削除処理は、例えば、
"ＤＥＬＥＴＥ  ＦＲＯＭ  テーブル名  ＷＨＥＲＥ  検索条件"
の形式により記述され、当該ＳＱＬ命令を実行することによって、"ＷＨＥＲＥ"文に記述された検索条件に一致したデータがテーブルから削除される。
【０００６】
例えば、顧客データベースにおいて、各顧客を識別するため、数値属性を有するカラム"顧客番号"が割り当てられているとする。このとき、顧客番号が"１２３４５"である顧客を検索するため、ＷＨＥＲＥ文において"顧客番号＝１２３４５"と記述することによって当該顧客を検索できる。また、各顧客を識別するため、文字属性を有するカラム"顧客名"が割り当てられているとする。このとき、顧客名が"鈴木一郎"である顧客を検索するため、ＷＨＥＲＥ文において"顧客名＝鈴木一郎"と記述することによって当該顧客を検索できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−３２５７
【特許文献２】特開２０００−３４８０６１
【発明の概要】
【発明が解決しようとする課題】
【０００８】
このように、各カラムにはデータ属性が定義されており、定義されたデータ属性に対応する値が入力される必要がある。しかしながら、誤ったデータ属性による値が入力されることがあり、例えば、数値属性として定義されたカラム"顧客番号"に文字属性による値が入力されることもある。この場合、データベース管理システムは、適切な検索処理を実行できない、検索処理により多くの時間がかかる、などの問題が生じうる。
【０００９】
上述した問題点を鑑み、本発明の課題は、誤った属性値により記述されたデータベース処理要求の検索条件を訂正し、適切に検索処理を実行することが可能なデータベース管理システムを提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の一態様は、データベース処理要求による検索対象データを検索する検索部と、属性定義情報を格納するデータ格納部と、前記データベース処理要求の検索条件に記述されたデータを検出し、前記検出されたデータに記述された属性値のデータ属性と、前記検出されたデータに対応する前記属性定義情報に規定されたデータ属性とを比較し、両者が一致しない場合、前記属性定義情報に規定されたデータ属性に従って前記検出されたデータを訂正する属性訂正部と、を有するデータベース管理装置に関する。
【００１１】
本発明の他の態様は、データベース処理要求の検索条件を解析し、前記データベース処理要求の検索条件に記述されたデータを検出するステップと、前記検出されたデータに記述された属性値のデータ属性と、前記検出されたデータに対応する属性定義情報に規定されたデータ属性とを比較するステップと、両者が一致しない場合、前記属性定義情報に規定されたデータ属性に従って前記検出されたデータを訂正するステップと、前記訂正された属性値の検索条件により検索対象データを検索するステップと、をプロセッサに実行させるためのプログラムに関する。
【発明の効果】
【００１２】
本発明によると、データベース処理要求において誤った属性値により記述された検索条件を適切に訂正して処理することができる。これにより、検索処理の実行時間を適正値に抑えることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の一実施例によるデータベース管理システムを示す概略図である。
【図２】図２は、本発明の一実施例によるデータベース管理装置のハードウェア構成を示すブロック図である。
【図３】図３は、本発明の一実施例によるデータベース管理装置の機能構成を示すブロック図である。
【図４】図４は、本発明の一実施例による属性定義情報を示す図である。
【図５】図５は、本発明の一実施例による属性値の訂正処理を示す概略図である。
【図６】図６は、本発明の一実施例によるデータベース検索処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。
【００１５】
後述される実施例では、データベース管理システムが開示される。本発明を概略すると、ＳＱＬ命令などのデータベース処理要求を受信すると、データベース管理装置は、受信したデータベース処理要求を解析する。解析の結果として、誤った属性値により記述された検索条件を検出すると、データベース管理装置は、予め保持する属性定義情報に規定された正しいデータ属性によって当該検索条件の属性値を訂正し、訂正後の検索条件によりデータベースを検索する。これにより、受信した検索条件において誤った属性値が記述されていたとしても、属性定義情報に従って正しい属性値によりデータベース処理要求を書き換えることによって、適切な検索処理を実行することが可能になる。
【００１６】
まず、図１を参照して、本発明の一実施例によるデータベース管理システムを説明する。図１は、本発明の一実施例によるデータベース管理システムを示す概略図である。
【００１７】
図１に示されるように、データベース管理システム１０は、データベース管理装置１００、データベース２００及びクライアント端末３００を有する。データベース管理システム１０では、クライアント端末３００からのデータベース処理要求に応答して、データベース管理装置１００が、データベース２００に対して抽出処理、追加処理、更新処理、削除処理などの各種データベース処理を実行する。
【００１８】
データベース管理装置１００は、クライアント端末３００からデータベース処理要求を受信すると、受信したデータベース処理要求に対応するデータベース処理をデータベース２００に対して実行する。データベース管理装置１００は、典型的には、データベース２００に通信接続されたサーバとして実現されてもよい。例えば、データベース管理装置１００は、図２に示されるようなハードウェア構成を有してもよい。すなわち、データベース管理装置１００は、バスＢを介し相互接続されるドライブ装置１０１、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０４、インタフェース装置１０５及び通信装置１０６を有する。
【００１９】
データベース管理装置における後述される各種機能及び処理を実現するプログラムを含む各種コンピュータプログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体１０７によって提供されてもよい。プログラムを記憶した記録媒体１０７がドライブ装置１０１にセットされると、プログラムが記録媒体１０７からドライブ装置１０１を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０７により行う必要はなく、ネットワークなどを介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。
【００２０】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムやデータを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムやプログラムを実行するのに必要なパラメータなどの各種データに従って、後述されるようなデータベース管理装置１００の各種機能及び処理を実行する。インタフェース装置１０５は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。通信装置１０６は、データベース２００やクライアント端末３００やなどの外部装置と通信するための各種通信処理を実行する。
【００２１】
しかしながら、データベース管理装置１００は、上述したハードウェア構成に限定されるものでなく、例えば、何れか適切な情報処理装置により実現されてもよい。
【００２２】
データベース２００は、所定のデータ形式により記述されたデータ又はレコードを格納する。データベース２００は、データベース管理装置１００からのデータベース処理要求に従ってデータ又はレコードを抽出、追加、更新、削除などする。データベース１００は、典型的には、多数のストレージを備えたデータベースサーバにより実現されてもよい。データベース２００は、データベース管理装置１００の遠隔に配置されてもよいし、又はデータベース管理装置１００に併設されてもよい。
【００２３】
一実施例では、データベース２００は、リレーショナルデータベースであってもよく、所定のデータ形式により記述されたデータ又はレコードをテーブル形式などにより格納する。各データ又はレコードは識別子と１以上のカラムとから構成されてもよく、各カラムには文字属性、数値属性、ブール属性などのデータ属性が定義されている。各データ又はレコードには、各カラムに対応するデータ属性による値が収容されている。例えば、データ又はレコードは、"識別子：カラム１（数値属性）；カラム２（文字属性）；カラム３（ブール属性）"のデータ形式から構成され、データ又はレコードは、例えば、"１０１：１２３４５；'ａｂｃｄｅ'；０"であってもよい。すなわち、当該データ又はレコードの識別子は"１０１"であり、カラム１は数値"１２３４５"であり、カラム２は文字"'ａｂｃｄｅ'"（なお、記号'ｘ'はｘが文字であることを表す）であり、カラム３はブール値"０"である。このようなデータ又はレコードが収集され、データベース２００においてテーブルが形成される。
【００２４】
クライアント端末３００は、図示されるように、パーソナルコンピュータ（ＰＣ）、携帯電話、スマートフォン、タブレットなど、ネットワークを介しデータベース管理装置１００と通信可能な何れかの情報処理装置である。クライアント端末３００は、ユーザからの入力操作に応答して、当該操作に対応する処理要求をデータベース管理装置１００に送信し、データベース管理装置１００による処理結果を受信する。
【００２５】
次に、図３を参照して、本発明の一実施例によるデータベース管理装置の構成を説明する。図３は、本発明の一実施例によるデータベース管理装置の機能構成を示すブロック図である。
【００２６】
図３に示されるように、データベース管理装置１００は、検索部１１０、データ格納部１２０及び属性訂正部１３０を有する。
【００２７】
検索部１１０は、データベース処理要求による検索対象データを検索する。具体的には、検索部１１０は、データベース２００に格納されている検索対象データにアクセスし、クライアント端末３００から受信した抽出処理、更新処理、削除処理などのためのデータベース処理要求の処理対象のデータを特定する。ＳＱＬ言語によるデータベース処理がデータベース管理装置１００において利用可能である場合、検索部１１０は、ＷＨＥＲＥ文に記述された検索条件に一致するデータ又はレコードについて検索対象領域を検索する。
【００２８】
データ格納部１２０は、属性定義情報を格納する。ここで、属性定義情報は、データベース２００に格納されているデータ又はレコードの各カラムのデータ属性を規定する。上述した具体例によると、属性定義情報は、カラム１，２，３のデータ属性がそれぞれ数値属性、文字属性及びブール属性であると規定する。属性定義情報は、例えば、データベース管理者により設定されるメタ情報である。
【００２９】
図４は、本発明の一実施例による属性定義情報を示す図である。図４に示されるように、属性定義情報はテーブル形式により構成され、「テーブル」、「カラム」、「属性」、「Ｌｅｎｇｔｈ」などのデータ項目から構成される。図示された具体例では、「顧客管理テーブル」の属性情報が定義され、「顧客管理テーブル」の「顧客番号」、「顧客名」、「取引日」、「取引時刻」などの各カラムの「属性」及び「Ｌｅｎｇｔｈ」が定義されている。例えば、「顧客番号」は、「文字列」属性及び長さ「１０」を有する。また、「顧客名」は、「文字列」属性及び長さ「３０」を有し、「取引日」は、「日付」属性及び長さ「８」を有し、「取引時刻」は、「時刻」属性及び長さ「１０」を有する。なお、属性定義情報は、図示された実施例に限定されるものでなく、データ又はレコードの各カラムの属性を規定する何れか適切なデータ構造を有してもよい。
【００３０】
一実施例では、データ格納部１２０は更に、検索対象データを検索するためのインデックスデータを有してもよい。典型的なデータベース管理では、検索条件についてデータベース２００の全データを検索する全量検索の代わりに、検索対象データの一部により構成された検索用のインデックスデータが用意され、インデックスデータを利用したインデックス（索引）検索が実行される。このインデックスデータを利用することによって、検索部１１０は、全量検索を実行するのと比較して、検索条件に一致したデータ又はレコードをより迅速に特定することができる。
【００３１】
属性訂正部１３０は、データベース処理要求の検索条件に記述されたデータを検出し、検出されたデータに記述された属性値のデータ属性と、検出されたデータに対応する属性定義情報に規定されたデータ属性とを比較し、両者が一致しない場合、属性定義情報に規定されたデータ属性に従って検出されたデータを訂正する。具体的には、クライアント端末３００などからデータベース処理要求を受信すると、属性訂正部１３０は、受信したデータベース処理要求を解析し、データベース処理要求に記述された検索条件の各カラムの属性値が属性定義情報に規定されたデータ属性に一致しているか判断する。一致しない属性値を有する検索条件を検出すると、属性訂正部１３０は、属性定義情報に規定されたデータ属性により当該属性値を訂正又は書き換える。例えば、データベース処理要求がＳＱＬ言語により記述されている場合、属性訂正部１３０は、ＷＨＥＲＥ文に記述された検索条件の属性値が属性定義情報に規定されたデータ属性に一致しているか判断し、一致しない属性値を検出すると、ＷＨＥＲＥ文を書き換えることによって、当該属性値を属性定義情報に規定された属性値に訂正する。例えば、図５に示されるような発行前ＳＱＬが与えられたとする。属性訂正部１３０はまず、当該データベース処理要求が、「顧客管理テーブル」に対するものであると判断し、さらに、ＷＨＥＲＥ文の検索条件が「顧客番号」カラムに関するものであることを検出する。その後、属性訂正部１３０は、データ格納部１２０に記憶されている属性定義情報にアクセスし、「顧客管理テーブル」及び「顧客番号」に対応する属性情報が「文字列」であることを確認する。与えられた発行前ＳＱＬに記述された数値属性と属性定義情報の文字列属性とは一致しないため、属性訂正部１３０は、発行前ＳＱＬの属性値「１１１１１１１１１」が誤った属性により記述されていると判断し、数値属性による属性値「１１１１１１１１１」を属性定義情報に定義された文字列属性による属性値「'１１１１１１１１１'」に訂正することによって、データベース処理要求を変換する。  一実施例では、属性訂正部１３０は、属性定義情報に規定されたデータ属性と一致しない検索条件を検出すると、検出された検索条件を通知してもよい。具体的には、属性定義情報に規定されたデータ属性と一致しない属性値を有する検索条件を検出すると、属性訂正部１３０は、検出された検索条件をクライアント端末３００に通知してもよい。これにより、属性不一致が検出され、適切な属性値に訂正することが困難なケースにおいて、属性訂正部１３０は、データベース管理装置１００による自動訂正が困難であることをクライアント端末３００に報告し、クライアント端末３００に訂正後のデータベース処理要求を再入力させることができる。例えば、ブール属性値として"５"が誤入力されていた場合、属性訂正部１３０は、属性不一致を検出しても、誤入力された"５"が"０"又は"１"の何れを意図したものであるか容易には判断できない。この場合、属性訂正部１３０は、検出された属性値を訂正することなく、クライアント端末３００に属性不一致が検出されたことを通知し、訂正後の検索条件を再入力させてもよい。
【００３２】
また、一実施例では、データ格納部１２０がインデックスデータを有する場合、検索部１１０は、訂正された検索条件によりインデックスデータを検索してもよい。インデックスデータを利用することによって、検索部１１０は、全量検索を実行するのと比較して、訂正後の検索条件に一致したデータ又はレコードをより迅速に特定することができる。
【００３３】
次に、図６を参照して、本発明の一実施例によるデータベース検索処理を説明する。図６は、本発明の一実施例によるデータベース検索処理を示すフローチャートである。
【００３４】
当該処理は、例えば、データベース管理装置１００がクライアント端末３００から抽出処理、更新処理、削除処理など、データベース２００に格納されているデータ又はレコードを検索することを必要とするデータベース処理要求を受信したことに応答して実行されてもよい。
【００３５】
ステップＳ１０１において、データベース管理装置１００は、受信したデータベース処理要求を解析し、データベース処理要求の検索条件に記述されたデータを検出する。具体的には、データベース管理装置１００は、データベース処理要求の検索条件を解析する。
【００３６】
ステップＳ１０２において、データベース管理装置１００は、検出されたデータに記述された属性値のデータ属性と、検出されたデータに対応する属性定義情報に規定されたデータ属性とを比較する。両者が一致しない場合（Ｓ１０２：Ｙｅｓ）、データベース管理装置１００は、ステップＳ１０３において、属性定義情報に規定されたデータ属性に従って検出されたデータを訂正する。他方、両者が一致した場合（Ｓ１０２：Ｎｏ）、データベース管理装置１００は、ステップＳ１０４に移行する。
【００３７】
ステップＳ１０４において、データベース管理装置１００は、訂正された属性値の検索条件により検索対象データを検索する。また、インデックスデータが利用可能である場合、データベース管理装置１００は、訂正後の検索条件によりインデックスデータを検索してもよい。
【００３８】
上述したデータベース検索処理は、データベース管理装置１００のプロセッサにより実行されるプログラムにより実現されてもよい。
【００３９】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４０】
１０  データベース管理システム
１００  データベース管理装置
１１０  検索部
１２０  データ格納部
１３０  属性訂正部
２００  データベース
３００  クライアント端末
【図１】
0006628566.tif 000002
【図２】
0006628566.tif 000003
【図３】
0006628566.tif 000004
【図４】
0006628566.tif 000005
【図５】
0006628566.tif 000006
【図６】
0006628566.tif 000007