(57)【要約】【課題】ユーザに応じたデータの抽出条件設定を容易に変更可能なデータベース処理装置等を提供する。【解決手段】取得部２１０は、ユーザを表す情報と、抽出すべきデータを表す情報と、を取得する。設定情報記憶部２４０は、ユーザを表す情報と、そのユーザが参照可能なデータの条件を表すデータセット情報２４６とを対応付けて記憶する。ＳＱＬ文生成部２６０は、設定情報記憶部２４０から、取得部２１０により取得されたユーザを表す情報に対応するデータセット情報２４６を取得し、取得したデータセット情報２４６と、取得部２１０により取得された抽出すべきデータを表す情報と、に基づいて、ＳＱＬ文を生成する。ＳＱＬ文実行部２７０は、ＳＱＬ文生成部２６０により生成されたＳＱＬ文を実行することにより、データベースからデータを抽出する。【選択図】図３
2014078059.tif 000002
【特許請求の範囲】
【請求項１】
データが格納されるテーブルを記憶するデータベースから、データを抽出するデータベース処理装置であって、
ユーザを表す情報と、抽出すべきデータを表す情報と、を取得する取得部と、
ユーザを表す情報と、そのユーザが参照可能なデータの条件を表すデータセット情報とを対応付けて記憶する設定情報記憶部と、
前記設定情報記憶部から、前記取得部により取得された前記ユーザを表す情報に対応する前記データセット情報を取得し、取得した前記データセット情報と、前記取得部により取得された前記抽出すべきデータを表す情報と、に基づいて、ＳＱＬ文を生成するＳＱＬ文生成部と、
前記ＳＱＬ文生成部により生成されたＳＱＬ文を実行することにより、前記データベースからデータを抽出するＳＱＬ文実行部と、
を備えることを特徴とするデータベース処理装置。
【請求項２】
前記データセット情報は、抽出すべきデータを表す情報と、その抽出すべきデータが抽出される複数のテーブルを表す情報と、を含むテーブル結合情報を含み、
前記ＳＱＬ文生成部は、取得した前記データセット情報に含まれる前記テーブル結合情報に基づいて、前記複数のテーブルを結合して抽出すべきデータを抽出する旨を表すＳＱＬ文を生成する、
ことを特徴とする請求項１に記載のデータベース処理装置。
【請求項３】
前記データセット情報は、ユーザを表す情報と、抽出すべきデータのうち、除外すべきデータを表す情報と、を含むマスク設定情報を含み、
前記ＳＱＬ文生成部は、前記取得部により取得された前記ユーザを表す情報と、前記マスク設定情報に含まれるユーザを表す情報とが一致する場合、前記マスク設定情報に含まれる前記除外すべきデータを除外する旨を表すＳＱＬ文を生成する、
ことを特徴とする請求項１または２に記載のデータベース処理装置。
【請求項４】
前記ＳＱＬ文実行部により実行される前記ＳＱＬ文の実行状況を監視する実行監視部をさらに備え、
前記実行監視部が所定の停止条件が満たされたと判定した場合に、前記ＳＱＬ文実行部は、実行中の前記ＳＱＬ文の実行を停止する、
ことを特徴とする請求項１乃至３のいずれか１項に記載のデータベース処理装置。
【請求項５】
データベースから、データを抽出するデータベース処理方法であって、
ユーザを表す情報と、抽出すべきデータを表す情報と、を取得する取得ステップと、
ユーザを表す情報と、そのユーザが参照可能なデータの条件を表すデータセット情報とを対応付けて記憶する設定情報記憶部から、前記取得ステップにおいて取得された前記ユーザを表す情報に対応する前記データセット情報を取得し、取得した前記データセット情報と、前記取得ステップにおいて取得された前記抽出すべきデータを表す情報と、に基づいて、ＳＱＬ文を生成するＳＱＬ文生成ステップと、
前記ＳＱＬ文生成ステップにおいて生成されたＳＱＬ文を実行することにより、前記データベースからデータを抽出するＳＱＬ文実行ステップと、
を有することを特徴とするデータベース処理方法。
【請求項６】
データベースから、データを抽出するコンピュータを、
ユーザを表す情報と、抽出すべきデータを表す情報と、を取得する取得手段、
ユーザを表す情報と、そのユーザが参照可能なデータの条件を表すデータセット情報とを対応付けて記憶する設定情報記憶手段、
前記設定情報記憶手段から、前記取得手段により取得された前記ユーザを表す情報に対応する前記データセット情報を取得し、取得した前記データセット情報と、前記取得手段により取得された前記抽出すべきデータを表す情報と、に基づいて、ＳＱＬ文を生成するＳＱＬ文生成手段、
前記ＳＱＬ文生成手段により生成されたＳＱＬ文を実行することにより、前記データベースからデータを抽出するＳＱＬ文実行手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース処理装置、データベース処理方法、及びプログラムに関する。
【背景技術】
【０００２】
複数テーブルから構成されるデータベースを検索する際に、データベースの専門的な知識がない初心者でも検索を可能とする技術として、例えば、特許文献１に記載の技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１６１６５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術では、データベースから抽出可能なデータの条件設定を動的に生成することはできない。すなわち、データベースからデータを抽出しようとするユーザに応じて、条件設定を変更することができない。そのため、ユーザ毎に、抽出可能なデータの条件を変えるためには、データベースの専門的な知識を必要とするプログラムにより、データベースに対し設定する必要があった。
【０００５】
本発明は、上述の事情の下になされたもので、ユーザに応じたデータの抽出条件設定を容易に変更可能なデータベース処理装置、データベース処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るデータベース処理装置は、
データが格納されるテーブルを記憶するデータベースから、データを抽出するデータベース処理装置であって、
ユーザを表す情報と、抽出すべきデータを表す情報と、を取得する取得部と、
ユーザを表す情報と、そのユーザが参照可能なデータの条件を表すデータセット情報とを対応付けて記憶する設定情報記憶部と、
前記設定情報記憶部から、前記取得部により取得された前記ユーザを表す情報に対応する前記データセット情報を取得し、取得した前記データセット情報と、前記取得部により取得された前記抽出すべきデータを表す情報と、に基づいて、ＳＱＬ文を生成するＳＱＬ文生成部と、
前記ＳＱＬ文生成部により生成されたＳＱＬ文を実行することにより、前記データベースからデータを抽出するＳＱＬ文実行部と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ユーザに応じたデータの抽出条件設定を容易に変更することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係るデータベース処理システムの構成を示すブロック図である。
【図２】本実施形態に係るデータベース処理装置のハードウェア構成を示すブロック図である。
【図３】本実施形態に係るデータベース処理装置の機能的構成を示すブロック図である。
【図４】データベース処理装置が実行するデータ抽出処理の流れの一例を示すフローチャートである。
【図５】データベース処理装置が実行するデータ抽出処理の流れの一例を示すフローチャートである。
【図６】ユーザ権限情報を表す図である。
【図７】ユーザグループ情報を表す図である。
【図８】論理接続情報を表す図である。
【図９】ＤＢ接続権限情報を表す図である。
【図１０】論理接続権限情報を表す図である。
【図１１】（ａ）はデータセット詳細情報を表す図、（ｂ）はテーブル項目条件情報を表す図、（ｃ）はマスク設定情報を表す図、（ｄ）はテーブル結合情報を表す図、（ｅ）は昇順設定情報を表す図である。
【発明を実施するための形態】
【０００９】
図１は、本実施形態に係るデータベース処理システム１の構成を示すブロック図である。図１に示すように、データベース処理システム１は、端末装置１００と、データベース処理装置２００と、参照データベース（ＤＢ）３００と、から構成される。端末装置１００と、データベース処理装置２００とは、インターネット等のネットワーク４００を介して接続されている。
【００１０】
端末装置１００は、例えば、ＬＣＤ（Liquid Crystal Display）などの表示部と、キーボード及びマウスなどの入力部とを備えたパーソナル・コンピュータで構成される。端末装置１００は、ユーザから、入力部を介して、参照ＤＢ３００に格納されたデータを抽出する旨の要求を受け付ける。そして、端末装置１００は、受け付けた要求をデータベース処理装置２００にネットワーク４００を介して送信する。また、端末装置１００は、データベース処理装置２００から、送信した要求に対する応答として、参照ＤＢ３００から抽出されたデータを受信し、表示部に表示する。
【００１１】
データベース処理装置２００は、端末装置１００から受信したデータ抽出要求に従って、その端末装置１００のユーザに対応するデータを参照ＤＢ３００から抽出し、端末装置１００に送信する。具体的には、データベース処理装置２００は、端末装置１００から受信したデータ抽出要求に従って、ＳＱＬ（Structured Query Language）により構成されるプログラムを生成し、参照ＤＢ３００からデータを抽出する。
【００１２】
また、データベース処理装置２００は、具体的には、端末装置１００にＷＥＢサービスを提供するＷＥＢサーバから構成される。従って、端末装置１００は、ＷＥＢブラウザを介して抽出を希望するデータの条件をユーザから受け付け、その条件をデータベース処理装置２００に送信する。
【００１３】
参照ＤＢ３００は、各種データを記憶する記憶装置から構成される。参照ＤＢ３００は、具体的には、テーブル構造により各種データを管理する。
【００１４】
次に、本実施形態に係るデータベース処理装置２００のハードウェア構成について詳細に説明する。
【００１５】
図２は、本実施形態に係るデータベース処理装置２００のハードウェア構成を示すブロック図である。図２に示すように、データベース処理装置２００は、通信部２０１と、補助記憶部２０２と、主記憶部２０３と、制御部２０４と、入力部２０５と、出力部２０６と、から構成され、これら各部はバス２０７により接続されている。
【００１６】
通信部２０１は、ネットワーク４００と通信可能に接続するための通信インターフェースから構成される。本実施形態において、通信部２０１は、制御部２０４の制御の下、端末装置１００及び参照ＤＢ３００との間で通信を行う。
【００１７】
補助記憶部２０２は、ハードディスク、フラッシュメモリ等の不揮発性メモリから構成される。補助記憶部２０２は、データベース処理装置２００の処理を制御部２０４に行わせるためのプログラムや、プログラムの実行に必要な各種情報を記憶する。また、補助記憶部２０２は、制御部２０４の制御に従って、このプログラムのデータを制御部２０４に供給し、制御部２０４から供給されたデータを記憶する。
【００１８】
主記憶部２０３は、ＲＡＭ（Random-Access Memory）等で構成される。制御部２０４は、補助記憶部２０２に記憶されているプログラムを主記憶部２０３にロードし、作業領域として用いる。
【００１９】
制御部２０４は、例えば、ＣＰＵ（Central Processing Unit）から構成されており、データベース処理装置２００の全体の制御を行う。
【００２０】
入力部２０５は、例えば、キーボード、マウス等の各種データを入力するための入力装置から構成される。
【００２１】
出力部２０６は、例えば、液晶ディスプレイ等の各種データを表示出力するための装置から構成される。
【００２２】
次に、本実施形態に係るデータベース処理装置２００の機能的構成について詳細に説明する。
【００２３】
図３は、本実施形態に係るデータベース処理装置２００の機能的構成を示すブロックである。図３に示すように、データベース処理装置２００は、取得部２１０と、認証部２２０と、セッション判定部２３０と、設定情報記憶部２４０と、実行権限判定部２５０と、ＳＱＬ文生成部２６０と、ＳＱＬ文実行部２７０と、実行監視部２８０と、出力部２９０と、を備える。
【００２４】
取得部２１０は、ユーザからのデータ抽出指示を取得する。具体的には、取得部２１０は、ユーザを表す情報と、抽出すべきデータを表す情報とを含む抽出要求情報を端末装置１００から受信する。
【００２５】
本実施形態において、通信部２０１と制御部２０４とが協働して、取得部２１０として機能する。
【００２６】
認証部２２０は、データ抽出指示を送信したユーザが、ＷＥＢシステムにログイン可能なユーザであるか否かを判定する。具体的には、認証部２２０は、取得部２１０により取得されたユーザを表す情報が、予めデータベース処理装置２００に記憶されている、ＷＥＢシステムにログイン可能なユーザの情報に含まれている場合、データ抽出指示を送信したユーザが、ＷＥＢシステムにログイン可能なユーザであると判定する。
【００２７】
本実施形態において、制御部２０４が、認証部２２０として機能する。
【００２８】
セッション判定部２３０は、取得部２１０により取得された抽出要求情報に、ＷＥＢシステムにより参照ＤＢ３００からデータ取得を実行するためのセッション情報が含まれているか否かを判定する。
【００２９】
本実施形態において、制御部２０４が、セッション判定部２３０として機能する。
【００３０】
設定情報記憶部２４０は、参照ＤＢ３００から情報を抽出するための条件を予め設定情報として記憶する。具体的には、設定情報記憶部２４０は、ユーザ権限情報２４１と、ユーザグループ情報２４２と、論理接続情報２４３と、ＤＢ接続権限情報２４４と、論理接続権限情報２４５と、データセット情報２４６と、を記憶する。
【００３１】
ユーザ権限情報２４１は、ユーザが参照ＤＢ３００からデータを取得可能か否かを表す情報である。図６に、ユーザ権限情報２４１の一例を示す。図６に示すユーザ権限情報２４１は、ユーザを識別するための情報である「USER_ID」と、そのユーザが参照ＤＢ３００からデータを取得可能か否かを表す権限情報である「AUTH_KBN」と、を対応付けて含む。なお、「AUTH_KBN」の「0」は、そのユーザが参照ＤＢ３００からデータを取得できない（取得する権限がない）ことを表し、「AUTH_KBN」の「0」は、そのユーザが参照ＤＢ３００からデータを取得できる（取得する権限がある）ことを表す。
【００３２】
ユーザグループ情報２４２は、ユーザ毎に、そのユーザが属するグループを表す情報である。図７に、ユーザグループ情報２４２の一例を示す。図７に示すユーザグループ情報２４２は、ユーザを識別するための情報である「USER_ID」と、そのユーザが属するグループを識別するための情報である「GROUP_ID」と、を対応付けて含む。
【００３３】
論理接続情報２４３は、論理接続毎に、参照ＤＢ３００に格納されているテーブルのうち、その論理接続により接続可能な少なくとも１つのテーブルの集合を表す情報である。ここで、「論理接続」とは、設定情報記憶部２４０に記憶された設定に基づいた、参照ＤＢ３００への接続を表す。図８に、論理接続情報２４３の一例を示す。図８に示す論理接続情報２４３は、論理接続を識別するための情報である「CONNECT_ID」と、その論理接続により接続可能なテーブルの集合に含まれるテーブルを識別するための情報である「TABLE_ID」と、そのテーブルの集合に含まれるテーブルが格納されているデータベースを識別するための情報を表す「DATABASE_ID」と、を対応付けて含む。
【００３４】
ＤＢ接続権限情報２４４は、ユーザが利用可能な論理接続を表す情報である。図９に、ＤＢ接続権限情報２４４の一例を示す。図９に示すＤＢ接続権限情報２４４は、論理接続を識別するための情報である「CONNECT_ID」と、その論理接続を利用可能なユーザのグループを識別するための情報である「GROUP_ID」と、を対応付けて含む。
【００３５】
論理接続権限情報２４５は、論理接続情報と、その論理接続情報に含まれるテーブルの集合の中のテーブルを利用するデータセット情報と、を表す情報である。データセット情報については、後述する。図１０に、論理接続権限情報２４５の一例を示す。図１０に示す論理接続権限情報２４５は、データセット情報を識別するための情報である「DATASET_ID」と、そのデータセット情報が利用するテーブルをテーブルの集合の中に含む論理接続を識別するための情報である「CONNECT_ID」と、データセット情報の階層を表す「DATASET_LEVEL」を対応付けて含む。データセット情報は、後述するように、テーブルだけでなく、他のデータセット情報を利用することも可能であり、他のデータセット情報を利用するデータセット情報を、さらに他のデータセット情報が利用してもよい。このように、データセット情報の階層は、他のデータセット情報を利用する程深くなり、その深さが「DATASET_LEVEL」として表される。
【００３６】
データセット情報２４６は、論理接続情報に含まれるテーブルの集合の中のテーブルからデータを抽出するためのＳＱＬ文を生成するために必要な情報の集合である。具体的には、データセット情報２４６は、データセット詳細情報２４６ａ、テーブル項目条件情報２４６ｂ、マスク設定情報２４６ｃ、テーブル結合情報２４６ｄ、昇順設定情報２４６ｅを含む。
【００３７】
データセット詳細情報２４６ａは、データ抽出対象であるテーブル及びそのテーブル中の項目を表す情報である。図１１（ａ）に、データセット詳細情報２４６ａの一例を示す。図１１（ａ）に示すデータセット詳細情報２４６ａは、データセット情報を識別するための情報である「DATASET_ID」と、そのデータセット情報が利用するテーブルを識別するための情報である「TABLE_ID」と、そのテーブル中の、データ抽出対象である項目を表す「COLUMN_ID」と、その項目が出力される順番を表す「DETAIL_ID」と、を対応付けて含む。データセット詳細情報２４６ａの「COLUMN_ID」及び「TABLE_ID」は、後述するＳＱＬ文生成部２６０により生成されるＳＱＬ文において、ＳＥＬＥＣＴ句で指定される列名と、ＦＲＯＭ句内で指定されるテーブル名と、にそれぞれ対応する。
【００３８】
テーブル項目条件情報２４６ｂは、データセット詳細情報２４６ａにより表される、データ抽出対象であるテーブル及びそのテーブル中の項目からデータを抽出する条件を表す情報である。図１１（ｂ）に、テーブル項目情報２４６ｂの一例を示す。図１１（ｂ）に示すテーブル項目情報２４６ｂは、データセット情報を識別するための情報である「DATASET_ID」と、データ抽出対象である項目の出力の順番を表す「DETAIL_ID」と、その項目に対するデータ抽出条件を表す「COND_ID」と、を対応付けて含む。テーブル項目条件情報２４６ｂは、後述するＳＱＬ文生成部２６０により生成されるＳＱＬ文において、ＷＨＥＲＥ句で指定される条件に対応する。
【００３９】
マスク設定情報２４６ｃは、ユーザが参照不可能な項目を設定するための情報である。図１１（ｃ）に、マスク設定情報２４６ｃの一例を示す。図１１（ｃ）に示すマスク設定情報２４６ｃは、データセット情報を識別するための情報である「DATASET_ID」と、データ抽出対象である項目の出力の順番を表す「DETAIL_ID」と、その項目に対するデータ抽出条件を表す「COND_ID」と、その項目に対するデータ抽出条件の内容を表す「MASK_USER_COLUMN_ID」とを対応付けて含む。マスク設定情報２４６ｃは、後述するＳＱＬ文生成部２６０により生成されるＳＱＬ文において、ＷＨＥＲＥ句で指定される条件に対応する。
【００４０】
テーブル結合情報２４６ｄは、出力項目を出力するために結合が必要なテーブルを表す情報である。テーブル結合情報２４６ｄは、図１１（ｄ）に、テーブル情報２４６ｄの一例を示す。図１１（ｄ）に示すテーブル結合情報２４６ｄは、データセット情報を識別するための情報である「DATASET_ID」と、データ抽出対象である項目の出力の順番を表す「DETAIL_ID」と、一方の結合対象のテーブルを識別するための情報である「BASE_JOIN_TABLE_ID」と、結合する際にキーとなる、そのテーブルの項目を識別するための情報である「BASE_JOIN_COLUMN_ID」と、他方の結合対象のテーブルを識別するための情報である「JOIN_TABLE_ID」と、結合する際にキーとなる、そのテーブルの項目を識別するための情報である「JOIN_COLUMN_ID」と、を対応付けて含む。テーブル結合情報２４６ｄは、後述するＳＱＬ文生成部２６０により生成されるＳＱＬ文において、ＦＲＯＭ句内の、テーブルの結合条件を表すＩＮＮＥＲ  ＪＯＩＮ句に対応する。
【００４１】
昇順設定情報２４６ｅは、出力項目のソート方法を表す情報である。図１１（ｅ）に、昇順設定情報２４６ｅの一例を示す。図１１（ｅ）に示す昇順設定情報２４６ｅは、データセット情報を識別するための情報である「DATASET_ID」と、データ抽出対象である項目の出力の順番を表す「DETAIL_ID」と、ソート対象であるテーブルを識別するための情報である「TABLE_ID」と、ソート対象である項目を識別するための情報である「COLUMN_ID」と、昇順または降順を表す「SORT_KBN」と、を対応付けて含む。昇順設定情報２４６ｅは、後述するＳＱＬ文生成部２６０により生成されるＳＱＬ文において、ＯＲＤＥＲ句で指定される条件に対応する。
【００４２】
本実施形態において、補助記憶部２０２が、設定情報記憶部２４０として機能する。
【００４３】
実行権限判定部２５０は、ユーザが参照ＤＢ３００からデータを抽出する処理を実行する権限があるか否かを判定する。具体的には、実行権限判定部２５０は、取得部２１０により取得されたユーザを表す情報と、設定情報記憶部２４０に記憶されたユーザ権限情報２４１、ユーザグループ情報２４２、論理接続情報２４３、ＤＢ接続権限情報２４４、及び論理接続権限情報２４５と、に基づいて、ユーザが参照ＤＢ３００からデータを抽出する処理を実行する権限があるか否かを判定する。
【００４４】
本実施形態において、制御部２０４が、実行権限判定部２５０として機能する。
【００４５】
ＳＱＬ文生成部２６０は、ユーザに応じて、参照ＤＢ３００から取得できるデータを考慮したＳＱＬ文を生成する。具体的には、ＳＱＬ文生成部２６０は、ユーザが参照可能なデータセット情報２４６を設定情報記憶部２４０から取得し、取得したデータセット情報２４６に基づいて、ＳＱＬ文を生成する。
【００４６】
本実施形態において、制御部２０４が、ＳＱＬ文生成部２６０として機能する。
【００４７】
ＳＱＬ文実行部２７０は、ＳＱＬ文生成部２６０により生成されたＳＱＬ文に従って、参照ＤＢ３００に対してデータを抽出するプログラムを実行する。
【００４８】
本実施形態において、制御部２０４が、ＳＱＬ文実行部２７０として機能する。
【００４９】
実行監視部２８０は、ＳＱＬ文実行部２７０により実行されたＳＱＬ文を監視し、実行状況を管理し、成功・エラーの確認、及び、実行中のＳＱＬ文を停止する。不特定多数のユーザが様々なＳＱＬ文を実行した場合、取得テーブルの状態や取得対象データ件数に応じて実行速度が異なる。実行監視部２８０は、これらの実行中のＳＱＬ文をユーザから操作入力を契機として、または、実行開始から所定時間を経過したことを契機として、実行中のＳＱＬ文のプログラムを停止させる。
【００５０】
具体的には、実行監視部２８０は、アプリケーション上で、システム管理者が実行中のＳＱＬ文の状況をモニタリングすることが可能な画面を提供する。そして、実行監視部２８０が、入力部２０５を介して、システム管理者から実行の停止を希望するプログラムの選択を受け付けると、ＳＱＬ文実行部２７０は、選択されたＳＱＬ文のプログラムの実行を停止する。
【００５１】
また、実行監視部２８０は、システム全体でＳＱＬ文のプログラムを実行開始してからの経過時間を計測する。そして、実行監視部２８０は、計測時間が、予め設定された所定の閾値（例えば、５分）を超えているか否かを判定する。そして、実行監視部２８０が、経過時間が閾値を超えていると判定した場合、ＳＱＬ文実行部２７０は、そのＳＱＬ文のプログラムの実行を停止する。
【００５２】
本実施形態において、制御部２０４が、実行監視部２８０として機能する。
【００５３】
出力部２９０は、ＳＱＬ文実行部２７０がデータ抽出処理を実行した結果、抽出されたデータを端末装置１００に出力する。
【００５４】
本実施形態において、通信部２０１と制御部２０４とが協働して、出力部２９０として機能する。
【００５５】
次に、データベース処理装置２００が実行する処理の流れについて説明する。
【００５６】
図４及び図５は、データベース処理装置２００が実行するデータ抽出処理の流れの一例を示すフローチャートである。図４及び図５に示すデータ抽出処理は、例えば、取得部２１０が、端末装置１００から、抽出要求情報を取得したことを契機として開始される。
【００５７】
具体的には、抽出要求情報には、ユーザを表す情報と、抽出すべきデータを表す情報と、が含まれる。ユーザを表す情報は、例えば、ユーザＩＤである。抽出すべきデータを表す情報は、データセットＩＤ、さらにそのデータセットＩＤの中から選択された出力項目を表す情報である。端末装置１００は、ユーザから、抽出すべきデータを表す情報である、データセットＩＤ及び出力項目を表す情報を取得し、取得した情報を抽出要求情報として、データベース処理装置２００に送信する。
【００５８】
まず、認証部２２０は、取得部２１０により取得されたユーザを表す情報に基づいて、当該ユーザの認証に成功したか否かを判定する（ステップＳ１１）。認証部２２０が、認証に失敗したと判定した場合（ステップＳ１２；Ｎｏ）、認証部２２０は、認証エラーを表す情報を端末装置１００に送信し（ステップＳ１３）、データ抽出処理を終了する。
【００５９】
具体的には、認証部２２０は、取得部２１０により取得されたユーザを表す情報と、予めデータベース処理装置２００に記憶されている、ＷＥＢシステムにログイン可能なユーザの情報に含まれている場合、当該ユーザが、ＷＥＢシステムにログイン可能なユーザであると判定する。
【００６０】
認証部２２０が、認証に成功したと判定した場合（ステップＳ１２；Ｙｅｓ）、セッション判定部２３０は、取得部２１０により取得された抽出要求情報に、ＷＥＢシステムにより参照ＤＢ３００からデータ取得を実行するためのセッション情報が含まれているか否かを判定する（ステップＳ１４）。
【００６１】
セッション情報が含まれていないと判定した場合（ステップＳ１４；Ｎｏ）、セッション判定部２３０は、セッション情報を生成する（ステップＳ１５）。
【００６２】
セッション情報が含まれていると判定した場合（ステップＳ１４；Ｙｅｓ）、実行権限判定部２５０は、設定情報記憶部２４０のユーザ権限情報２４１から、取得部２１０により取得されたユーザを表す情報に対応する権限情報を特定する（ステップＳ１６）。
【００６３】
次に、実行権限判定部２５０は、ステップＳ１６で特定した権限情報に基づいて、当該ユーザが参照ＤＢ３００を参照可能な実行権限を有しているか否かを判定する（ステップＳ１７）。実行権限判定部２５０は、当該ユーザが実行権限を有していないと判定した場合（ステップＳ１７；Ｎｏ）、データ抽出処理を終了する。
【００６４】
例えば、取得部２１０が、ユーザを表す情報として、USER_ID「TEST000」を取得したとする。この場合、ステップＳ１６において、実行権限判定部２５０は、図６に示すユーザ権限情報２４１から、USER_ID「TEST000」に対応するAUTH_KBN「0」を特定する。従って、実行権限判定部２５０は、USER_ID「TEST000」により表されるユーザは、実行権限を有していないと判定する。
【００６５】
また、例えば、取得部２１０が、ユーザを表す情報として、USER_ID「TEST001」を取得したとする。この場合、ステップＳ１６において、実行権限判定部２５０は、図６に示すユーザ権限情報２４１から、USER_ID「TEST001」に対応するAUTH_KBN「1」を特定する。従って、実行権限判定部２５０は、USER_ID「TEST001」により表されるユーザは、実行権限を有していると判定する。
【００６６】
実行権限判定部２５０は、当該ユーザが実行権限を有していると判定した場合（ステップＳ１７；Ｙｅｓ）、設定情報記憶部２４０のユーザグループ情報２４２から、取得部２１０により取得されたユーザが属するグループを表すグループ情報を特定する（ステップＳ１８）。
【００６７】
次に、実行権限判定部２５０は、ステップＳ１８で特定したグループ情報に基づいて、設定情報記憶部２４０のＤＢ接続権限情報２４４を参照し、当該ユーザが属するグループに対応する論理接続情報があるか否かを判定する（ステップＳ１９）。実行権限判定部２５０は、対応する論理接続情報がないと判定した場合（ステップＳ１９；Ｎｏ）、データ抽出処理を終了する。
【００６８】
例えば、取得部２１０が、ユーザを表す情報として、USER_ID「TEST001」を取得したとする。この場合、ステップＳ１８において、実行権限判定部２５０は、図７に示すユーザグループ情報２４２から、USER_ID「TEST001」に対応するGROUP_ID「G000000001」を特定する。そして、ステップＳ１９において、実行権限判定部２５０は、図９に示すＤＢ接続権限情報２４４を参照し、ステップＳ１８において取得したGROUP_ID「G000000001」に対応するCONNECT_ID「CON0000001」を特定する。従って、実行権限判定部２５０は、当該ユーザが属するグループに対応する論理接続情報があると判定する。
【００６９】
実行権限判定部２５０は、当該ユーザが属するグループに対応する論理接続情報があると判定した場合（ステップＳ１９；Ｙｅｓ）、取得部２１０により取得された抽出すべきデータを表す情報に対応する論理接続を特定する（ステップＳ２０）。
【００７０】
具体的には、実行権限判定部２５０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応する論理接続を、論理接続権限情報２４５を参照して、特定する。例えば、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤが、DATASET_ID「D000000001」であった場合、実行権限判定部２５０は、図１０に示す論理接続権限情報２４５を参照して、DATASET_ID「D000000001」に対応するCONNECT_ID「CON0000001」を特定する。
【００７１】
次に、実行権限判定部２５０は、ステップＳ２０において特定された論理接続に対応するテーブルを特定する（ステップＳ２１）。
【００７２】
具体的には、実行権限判定部２５０は、論理接続情報２４３を参照して、ステップＳ２０において特定された論理接続に対応するテーブルを特定する。例えば、ステップＳ２０において特定された論理接続がCONNECT_ID「CON0000001」である場合、実行権限判定部２５０は、論理接続情報２４３を参照して、CONNECT_ID「CON0000001」に対応するTABLE_ID「M_TEST001」、「M_TEST002」、「M_TEST003」、「M_TEST004」を特定する。
【００７３】
次に、実行権限判定部２５０は、取得部２１０により取得された抽出すべきデータを抽出するのに必要なテーブルを特定する（ステップＳ２２）。
【００７４】
具体的には、実行権限判定部２５０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応するテーブルの情報を、データセット詳細情報２４６ａを参照して特定する。例えば、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤが、DATASET_ID「D000000001」であった場合、実行権限判定部２５０は、図１１（ａ）に示すデータセット詳細情報２４６ａを参照して、DATASET_ID「D000000001」に対応するTABLE_ID「MTEST_001」、「MTEST_002」を特定する。
【００７５】
次に、実行権限判定部２５０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応するテーブルに対して、論理接続可能か否かを判定する（ステップＳ２３）。実行権限判定部２５０は、論理接続可能でないと判定した場合（ステップＳ２３；Ｎｏ）、データ抽出処理を終了する。
【００７６】
例えば、実行権限判定部２５０は、ステップＳ２１において、CONNECT_ID「CON0000001」に対応するTABLE_ID「M_TEST001」〜「M_TEST004」が特定され、また、ステップＳ２２において、DATASET_ID「D000000001」に対応するTABLE_ID「MTEST_001」、「MTEST_002」が特定されたとする。この場合、実行権限判定部２５０は、ステップＳ２１において特定されたTABLE_ID「M_TEST001」〜「M_TEST004」の中に、ステップＳ２２において特定されたTABLE_ID「MTEST_001」、「MTEST_002」が含まれると判定する。このように、抽出対象であるデータを抽出するために必要なテーブルが、抽出要求情報を送信したユーザが論理接続可能なテーブルか否かを判定することにより、当該ユーザに、当該ユーザが所望するデータを参照ＤＢ３００から抽出する権限があるか否かが判定される。
【００７７】
実行権限判定部２５０はステップＳ２２において特定されたテーブルが、ステップ２１において特定されたテーブルに含まれていると判定した場合（ステップＳ２３；Ｙｅｓ）、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応するデータセット詳細情報２４６ａを取得する（ステップＳ２４）。
【００７８】
例えば、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤとして、DATASET_ID「D000000001」を取得したとする。この場合、図１１（ａ）に一例として示すようなDATASET_ID「D000000001」に対応するデータセット詳細情報２４６ａを取得する。
【００７９】
次に、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応するテーブル項目条件情報２４６ｂを取得する（ステップＳ２５）。
【００８０】
例えば、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤとして、DATASET_ID「D000000001」を取得したとする。この場合、図１１（ｂ）に一例として示すようなDATASET_ID「D000000001」に対応するテーブル項目条件情報２４６ｂを取得する。
【００８１】
次に、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応するマスク設定情報２４６ｃを取得する（ステップＳ２６）。
【００８２】
例えば、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤとしてDATASET_ID「D000000001」を取得したとする。この場合、図１１（ｃ）に一例として示すようなDATASET_ID「D000000001」に対応するマスク設定情報２４６ｃを取得する。
【００８３】
次に、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応するテーブル結合情報２４６ｄを取得する（ステップＳ２７）。
【００８４】
例えば、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤとしてDATASET_ID「D000000001」を取得したとする。この場合、図１１（ｄ）に一例として示すようなDATASET_ID「D000000001」に対応するテーブル結合情報２４６ｄを取得する。
【００８５】
次に、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤに対応する昇順設定情報２４６ｅを取得する（ステップＳ２８）。
【００８６】
例えば、ＳＱＬ文生成部２６０は、取得部２１０により取得された抽出すべきデータを表す情報であるデータセットＩＤとしてDATASET_ID「D000000001」を取得したとする。この場合、図１１（ｅ）に一例として示すようなDATASET_ID「D000000001」に対応する昇順設定情報２４６ｅを取得する。
【００８７】
次に、ＳＱＬ文生成部２６０は、ステップＳ２４〜Ｓ２８において取得した各種情報に基づいて、ＳＱＬ文を生成する（ステップＳ２９）。
【００８８】
次に、ＳＱＬ文実行部２７０は、ステップＳ２９において生成されたＳＱＬ文の実行を開始する（ステップＳ３０）。
【００８９】
そして、実行監視部２８０は、入力部２０５を介して、実行中のＳＱＬ文の実行停止を示す操作入力を受け付けたか否かを判定する（ステップＳ３１）。実行停止を示す操作入力を受け付けたと判定した場合（ステップＳ３１；Ｙｅｓ）、ＳＱＬ実行部２７０は、ＳＱＬ文の実行を停止し、データ抽出処理を終了する。
【００９０】
また、実行監視部２８０は、実行中のＳＱＬ文の実行を開始してから、所定時間が経過したか否かを判定する（ステップＳ３２）。実行中のＳＱＬ文の実行を開始してから、所定時間が経過したと判定した場合（ステップＳ３２；Ｙｅｓ）、ＳＱＬ実行部２７０は、ＳＱＬ文の実行を停止し、データ抽出処理を終了する。
【００９１】
ＳＱＬ文実行部２７０は、ＳＱＬ文の実行が終了したか否かを判定する（ステップＳ３３）。ＳＱＬ文の実行が終了していないと判定した場合（ステップＳ３３；Ｎｏ）、ステップＳ３０の処理に戻る。
【００９２】
ＳＱＬ文の実行が終了したと判定した場合（ステップＳ３３；Ｙｅｓ）、出力部２９０は、ＳＱＬ文を実行した結果として、抽出されたデータを端末装置１００に送信する（ステップＳ３４）。そして、データ抽出処理を終了する。
【００９３】
以上説明したように、本実施形態に係るデータベース処理装置２００では、設定情報記憶部２４０が、ユーザを表す情報と、そのユーザが参照可能なデータの条件を表すデータセット情報２４６とを対応付けて記憶する。従って、抽出要求情報を送信したユーザに応じたデータセット情報２４６を設定情報記憶部２４０から取得し、取得したデータセット情報に基づいてＳＱＬ文を生成し、実行することにより、当該ユーザは、データベースに関する専門的な知識を持たなくても、当該ユーザに応じたデータの抽出を容易に行うことができる。
【００９４】
また、データセット情報は、設定情報記憶部２４０に記憶されているため、ユーザに応じたデータの抽出条件設定の変更に対し、容易に対応することができる。そのため、データベースのセキュリティ設定を柔軟に変更することができる。
【００９５】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態によって限定されるものではない。
【００９６】
また、本発明に係るデータベース処理装置２００は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、ネットワークに接続されているコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読み取り可能な記録媒体（ＣＤ−ＲＯＭ、ＭＯ等）に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行するデータベース処理装置２００を構成してもよい。
【００９７】
また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線の掲示板（ＢＢＳ）にアップロードされ、通信回線を介してコンピュータに配信されてもよい。また、プログラムは、プログラムを表す信号により搬送波を変調した変調波により伝送され、この変調波を受信した装置が変調波を復調してプログラムを復元するようにしてもよい。そして、コンピュータは、このプログラムを起動して、ＯＳの制御のもと、他のアプリケーションと同様に実行する。これにより、コンピュータは、上述の処理を実行するデータベース処理装置２００として機能する。
【符号の説明】
【００９８】
１      データベース処理システム
１００  端末装置
２００  データベース処理装置
２０１  通信部
２０２  補助記憶部
２０３  主記憶部
２０４  制御部
２０５  入力部
２０６  出力部
２１０  取得部
２２０  認証部
２３０  セッション判定部
２４０  設定情報記憶部
２４１  ユーザ権限情報
２４２  ユーザグループ情報
２４３  論理接続情報
２４４  ＤＢ接続権限情報
２４５  論理接続権限情報
２４６  データセット情報
２４６ａ  データセット詳細情報
２４６ｂ  テーブル項目条件情報
２４６ｃ  マスク設定情報
２４６ｄ  テーブル結合情報
２４６ｅ  昇順設定情報
２５０  実行権限判定部
２６０  ＳＱＬ文生成部
２７０  ＳＱＬ文実行部
２８０  実行監視部
２９０  出力部
３００  参照ＤＢ
４００  ネットワーク
【図１】
2014078059.tif 000003
【図２】
2014078059.tif 000004
【図３】
2014078059.tif 000005
【図４】
2014078059.tif 000006
【図５】
2014078059.tif 000007
【図６】
2014078059.tif 000008
【図７】
2014078059.tif 000009
【図８】
2014078059.tif 000010
【図９】
2014078059.tif 000011
【図１０】
2014078059.tif 000012
【図１１】
2014078059.tif 000013