(57)【特許請求の範囲】
【請求項１】
複数企業に共通するデータを格納する共通メインテーブル並びに前記複数企業毎の拡張データを格納する拡張テーブルとを記憶したデータベースと、
前記共通データ及び拡張データの企業毎の組合せを定義した定義ファイル情報並びに前記共通データ及び拡張データとを前記定義に応じて結合した仮想テーブルとを記憶する仮想テーブル記憶部と、
入力情報を基に仮想テーブル記憶部を制御するアクセス制御部とを備えるデータベースシステムであって、
該アクセス制御部が、
前記複数企業毎に設定された企業ＩＤと該企業ＩＤに設定されたユーザＩＤとの対応を格納した企業ＩＤ管理部と、
前記企業ＩＤと該企業ＩＤの定義ファイル情報との対応を格納した定義ファイル情報管理部とを備え、
前記入力情報が企業ＩＤのとき、該企業ＩＤの定義ファイル情報が前記定義ファイル情報管理部に格納されているか否かを判定する第１工程と、
該第１工程により前記定義ファイル情報が格納されていると判定したとき、該格納されている定義ファイル情報を参照して仮想テーブル記憶部に格納されている仮想テーブルをアクセス先と決定する第２工程と、
前記第１工程により前記定義ファイル情報が格納されていないと判定したとき、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得する第３工程と、
該第３工程により取得した定義ファイル情報を前記定義ファイル情報管理部に格納する第４工程と、
前記第３工程により取得した定義ファイル情報を基に前記データベースに格納した共通データ及び拡張データとを抽出し、該抽出した共通データ及び拡張データを結合した仮想データを仮想テーブル記憶部に格納する第５工程と、
前記第５工程により仮想テーブル記憶部に格納した仮想テーブルをアクセス先と決定する第６工程とを行うデータベースシステム。
【請求項２】
前記アクセス制御部が、前記入力情報がユーザＩＤ及び該ユーザＩＤを入力したデータ登録のとき、
前記入力されたユーザＩＤに対応した企業ＩＤを企業ＩＤ管理部から取得する第７工程と、
前記入力されたデータを、前記第７工程により取得した企業ＩＤのデータとしてデータベースに格納する第８工程とを行う請求項１記載のデータベースシステム。
【請求項３】
前記アクセス制御部が、前記入力データに企業ＩＤが含まれているとき、
前記入力データに含まれる企業ＩＤを、前記第７工程により企業ＩＤ管理部から取得した企業ＩＤに置換する請求項２記載のデータベースシステム。
【請求項４】
前記アクセス制御部が、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得するとき、企業ＩＤを基に前記企業ＩＤの定義ファイルが記憶されている記憶領域を特定し、該特定した記憶領域から前記定義ファイル情報を取得する請求項１から３何れかに記載のデータベースシステム。
【請求項５】
複数企業に共通するデータを格納する共通メインテーブル並びに前記複数企業毎の拡張データを格納する拡張テーブルとを記憶したデータベースと、前記共通データ及び拡張データの企業毎の組合せを定義した定義ファイル情報並びに前記共通データ及び拡張データとを前記定義に応じて結合した仮想テーブルとを記憶する仮想テーブル記憶部と、入力情報を基に仮想テーブル記憶部を制御するアクセス制御部とを備え、前記アクセス制御部が、前記複数企業毎に設定された企業ＩＤと該企業ＩＤに設定されたユーザＩＤとの対応を格納した企業ＩＤ管理部と、前記企業ＩＤと該企業ＩＤの定義ファイル情報との対応を格納した定義ファイル情報管理部とを有するデータベースシステムの制御方法であって、
該アクセス制御部が、
前記入力情報が企業ＩＤのとき、該企業ＩＤの定義ファイル情報が前記定義ファイル情報管理部に格納されているか否かを判定する第１工程と、
該第１工程により前記定義ファイル情報が格納されていると判定したとき、該格納されている定義ファイル情報を参照して仮想テーブル記憶部に格納されている仮想テーブルをアクセス先と決定する第２工程と、
前記第１工程により前記定義ファイル情報が格納されていないと判定したとき、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得する第３工程と、
該第３工程により取得した定義ファイル情報を前記定義ファイル情報管理部に格納する第４工程と、
前記第３工程により取得した定義ファイル情報を基に前記データベースに格納した共通データ及び拡張データとを抽出し、該抽出した共通データ及び拡張データを結合した仮想データを仮想テーブル記憶部に格納する第５工程と、
前記第５工程により仮想テーブル記憶部に格納した仮想テーブルをアクセス先と決定する第６工程とを行うデータベースシステムの制御方法。
【請求項６】
前記アクセス制御部が、前記入力情報がユーザＩＤ及び該ユーザＩＤを入力したデータ登録のとき、
前記入力されたユーザＩＤに対応した企業ＩＤを企業ＩＤ管理部から取得する第７工程と、
前記入力されたデータを、前記第７工程により取得した企業ＩＤのデータとしてデータベースに格納する第８工程とを行う請求項５記載のデータベースシステムの制御方法。
【請求項７】
前記アクセス制御部が、前記入力データに企業ＩＤが含まれているとき、
前記入力データに含まれる企業ＩＤを、前記第７工程により企業ＩＤ管理部から取得した企業ＩＤに置換する請求項６記載のデータベースシステムの制御方法。
【請求項８】
前記アクセス制御部が、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得するとき、企業ＩＤを基に前記企業ＩＤの定義ファイルが記憶されている記憶領域を特定し、該特定した記憶領域から前記定義ファイル情報を取得する請求項５から７何れかに記載のデータベースシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数ユーザに提供する複数のデータベースを同一のデータベース内で共有するマルチテナント型のデータベースシステム及びデータべースシステムの制御方法に係り、特にマルチテナント型データベースシステムのテナント毎のデータアクセスを容易にすると共にデータ誤登録を防止することができるデータベースシステム及びデータべースシステムの制御方法に関する。
【背景技術】
【０００２】
一般にデータベースシステムは、個々のユーザ（テナントと呼ぶ）のデータを個々のデータベースに分離して格納する分離型データベースシステムと、同一のデータベース内に複数のテナントのデータを格納するマルチテナント型のデータベースシステムとが採用されている。
【０００３】
このマルチテナント型のデータベースシステムは、複数のテナント毎にデータセット（アプリケーションで使用するためにデータを一時的に格納できるデータテーブルを含むオブジェクト）を用意し、このデータセットにテナント毎に使用されるデータをスキーマ（データベースの仕様の定義）を参照してテナント毎のデータを格納することによってデータベースを構築している。
【０００４】
このようなベンダー側のセンターコンピュータ上に準備されたマルチテナント型のデータベースシステムをユーザがネットワーク経由で利用するシステムにおいては、顧客の要望に柔軟に対応するためのマルチテナント型データベースシステムのユーザによるカスタマイズ機能が必要となる。
【０００５】
特に複数のユーザ(企業)で同一のサーバ環境を利用しながら、それぞれのユーザが自由にデータベースのフィールドを修正できるようにするためには、特殊なデータベース構成を持つ必要があり、下記特許文献１記載の如く、予めカスタマイズ用の汎用的なフィールドを持つテーブルを用意しておく方法が提案されている。
【特許文献１】米国特許出願公開第２００５／０２２３０２２Ａ１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述の特許文献１記載の技術は、ユーザがデータベースのフィールドを修正することができるものの、多数（２５０個）のカスタマイズ用のフィールドを持つテーブルを予め用意し、この多数テーブルにデータが全て文字列型により格納されていることを前提としているため、ユーザが必要とするテーブルを予め多数用意しておかなければならないと共に、文字列しか格納することができないために日付型や数値型などの実際にアプリケーションで利用される型へと変換するためのシステムが別途必要となると言う不具合があった。さらに前記技術は、ユーザが誤って他ユーザのデータを誤登録することを考慮していないと共に、１つのユーザが２５０個ものフィールドを追加することは現実的にほとんどないため、実際には使用されないフィールドが多く存在し、ハードウェア資源の無駄を招く可能性があると言う不具合もあった。
【０００７】
本発明の目的は、マルチテナント型のデータベースシステムのテナント毎のデータアクセスを容易にすると共にユーザカスタマイズの際のデータ誤登録を防止することができるデータベースシステム及びデータべースシステムの制御方法を提供することである。
【課題を解決するための手段】
【０００８】
前記目的を達成するために本発明は、複数企業に共通するデータを格納する共通メインテーブル並びに前記複数企業毎の拡張データを格納する拡張テーブルとを記憶したデータベースと、前記共通データ及び拡張データの企業毎の組合せを定義した定義ファイル情報並びに前記共通データ及び拡張データとを前記定義に応じて結合した仮想テーブルとを記憶する仮想テーブル記憶部と、入力情報を基に仮想テーブル記憶部を制御するアクセス制御部とを備えるデータベースシステムであって、
該アクセス制御部が、前記複数企業毎に設定された企業ＩＤと該企業ＩＤに設定されたユーザＩＤとの対応を格納した企業ＩＤ管理部と、前記企業ＩＤと該企業ＩＤの定義ファイル情報との対応を格納した定義ファイル情報管理部とを備え、
前記入力情報が企業ＩＤのとき、該企業ＩＤの定義ファイル情報が前記定義ファイル情報管理部に格納されているか否かを判定する第１工程と、該第１工程により前記定義ファイル情報が格納されていると判定したとき、該格納されている定義ファイル情報を参照して仮想テーブル記憶部に格納されている仮想テーブルをアクセス先と決定する第２工程と、前記第１工程により前記定義ファイル情報が格納されていないと判定したとき、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得する第３工程と、該第３工程により取得した定義ファイル情報を前記定義ファイル情報管理部に格納する第４工程と、前記第３工程により取得した定義ファイル情報を基に前記データベースに格納した共通データ及び拡張データとを抽出し、該抽出した共通データ及び拡張データを結合した仮想データを仮想テーブル記憶部に格納する第５工程と、前記第５工程により仮想テーブル記憶部に格納した仮想テーブルをアクセス先と決定する第６工程とを行うことを第１の特徴とする。
【０００９】
また本発明は、前記第１の特徴のデータベースシステムにおいて、前記アクセス制御部が、前記入力情報がユーザＩＤ及び該ユーザＩＤを入力したデータ登録のとき、前記入力されたユーザＩＤに対応した企業ＩＤを企業ＩＤ管理部から取得する第７工程と、前記入力されたデータを、前記第７工程により取得した企業ＩＤのデータとしてデータベースに格納する第８工程とを行うことを第２の特徴とする。
【００１０】
また本発明は、前記第２の特徴のデータベースシステムにおいて、前記アクセス制御部が、前記入力データに企業ＩＤが含まれているとき、前記入力データに含まれる企業ＩＤを、前記第７工程により企業ＩＤ管理部から取得した企業ＩＤに置換することを第３の特徴とする。
【００１１】
また本発明は、前記何れかの特徴のデータベースシステムにおいて、前記アクセス制御部が、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得するとき、企業ＩＤを基に前記企業ＩＤの定義ファイルが記憶されている記憶領域を特定し、該特定した記憶領域から前記定義ファイル情報を取得することを第４の特徴とする。
【００１２】
更に本発明は、複数企業に共通するデータを格納する共通メインテーブル並びに前記複数企業毎の拡張データを格納する拡張テーブルとを記憶したデータベースと、前記共通データ及び拡張データの企業毎の組合せを定義した定義ファイル情報並びに前記共通データ及び拡張データとを前記定義に応じて結合した仮想テーブルとを記憶する仮想テーブル記憶部と、入力情報を基に仮想テーブル記憶部を制御するアクセス制御部とを備え、前記アクセス制御部が、前記複数企業毎に設定された企業ＩＤと該企業ＩＤに設定されたユーザＩＤとの対応を格納した企業ＩＤ管理部と、前記企業ＩＤと該企業ＩＤの定義ファイル情報との対応を格納した定義ファイル情報管理部とを有するデータベースシステムの制御方法であって、
該アクセス制御部が、前記入力情報が企業ＩＤのとき、該企業ＩＤの定義ファイル情報が前記定義ファイル情報管理部に格納されているか否かを判定する第１工程と、該第１工程により前記定義ファイル情報が格納されていると判定したとき、該格納されている定義ファイル情報を参照して仮想テーブル記憶部に格納されている仮想テーブルをアクセス先と決定する第２工程と、前記第１工程により前記定義ファイル情報が格納されていないと判定したとき、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得する第３工程と、該第３工程により取得した定義ファイル情報を前記定義ファイル情報管理部に格納する第４工程と、前記第３工程により取得した定義ファイル情報を基に前記データベースに格納した共通データ及び拡張データとを抽出し、該抽出した共通データ及び拡張データを結合した仮想データを仮想テーブル記憶部に格納する第５工程と、該第５工程により仮想テーブル記憶部に格納した仮想テーブルをアクセス先と決定する第６工程とを行うことを第５の特徴とする。
【００１３】
また本発明は、前記第５の特徴の制御方法において、前記アクセス制御部が、前記入力情報がユーザＩＤ及び該ユーザＩＤを入力したデータ登録のとき、前記入力されたユーザＩＤに対応した企業ＩＤを企業ＩＤ管理部から取得する第７工程と、前記入力されたデータを、前記第７工程により取得した企業ＩＤのデータとしてデータベースに格納する第８工程とを行うことを第６の特徴とする。
【００１４】
また本発明は、前記第６の特徴の制御方法において、前記アクセス制御部が、前記入力データに企業ＩＤが含まれているとき、前記入力データに含まれる企業ＩＤを、前記第７工程により企業ＩＤ管理部から取得した企業ＩＤに置換することを第７の特徴とする。
【００１５】
また本発明は、前記何れかの特徴のデータベースシステムの制御方法において、前記アクセス制御部が、前記企業ＩＤをキーとして前記仮想テーブル記憶部に格納されている定義ファイル情報を取得するとき、企業ＩＤを基に前記企業ＩＤの定義ファイルが記憶されている記憶領域を特定し、該特定した記憶領域から前記定義ファイル情報を取得することを第８の特徴とする。
【発明の効果】
【００１６】
本発明によるデータベースシステム及びデータべースシステムの制御方法は、入力情報が企業ＩＤのとき、この企業ＩＤの定義ファイル情報が定義ファイル情報管理部に格納されているか否かを判定し、格納されているとき、該格納されている定義ファイル情報を参照して仮想テーブル記憶部に格納されている仮想テーブルをアクセス先と決定し、格納されていないと判定したとき、企業ＩＤをキーとして仮想テーブル記憶部に格納されている定義ファイル情報を取得して定義ファイル情報管理部に格納すると共に該格納した定義に従って共通データ及び拡張データとを結合した仮想データを仮想テーブル記憶部に格納してアクセス先と決定することによって、仮想テーブル記憶部のアクセスを容易にすることができる。
【００１７】
更に本発明は、データ登録のとき、入力されたユーザＩＤに対応した企業ＩＤを企業ＩＤ管理部から取得し、入力されたデータを、前記取得した企業ＩＤのデータとしてデータベースに格納することによって、データ登録のメンテナンスを容易にすることができ、更にデータに含まれる企業ＩＤを企業ＩＤ管理部から取得した企業ＩＤに置換することによって、誤ったデータ登録を防止することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明による制御方法を適用したデータベースシステムを図面を参照して詳細に説明する。図１は本発明の一実施形態による制御方法を適用したデータベースシステムの全体構成図、図２は本実施形態のデータベースに格納するテーブル例を示す図、図３は本実施形態による各仮想テーブル例を示す図、図４は本実施形態による仮想テーブル作成の概念図、図５は本実施形態による仮想テーブルを作成するための定義ファイル例を示す図、図６は本実施形態による企業ＩＤ管理部で保持する情報例を示す図、図７は本実施形態による定義ファイル情報管理部で保持する情報例を示す図、図８は本実施形態によるデータアクセス時の処理を説明するための図、図９は本実施形態によるデータアクセス先を決定するためのデータアクセスクラスのフローチャート、図１０は本実施形態によるデータ登録時の処理例を説明するための図、図１１はデータ登録時のインターセプタのフローチャートである。
【００１９】
［構成］
本実施形態によるデータベースシステムは、図１に示す如く、複数の企業に使用されるデータを格納するマルチテナント型データベース１００と、複数の企業１ａ〜１ｃに接続され、アクセスした企業からの要求に応じて前記データベース１００から各企業用のデータセットである仮想テーブルを生成し、各企業からのアクセスに対応するデータアクセス装置２００とから構成される。
【００２０】
［データベース１００］
前記データベース１００は、全企業に共通な業務のデフォルト項目を格納したメインテーブル１０１と、企業毎にカスタマイズを行った導入企業の拡張テーブル１０２及び１０３とを備える。尚、本例においては、符号１ａで示す企業Ａは、データベースのカスタマイズを要せず、拡張テーブルを必要としないものとする。
【００２１】
このデータベース１００に格納される各テーブルは、例えば図２に示す如く、メインテーブル１０１が、ＩＤと企業毎に付与された企業ＩＤと複数の共通項目との各欄とから構成され、拡張テーブル１０２及び１０３が、企業毎に付与された連携ＩＤ(メインテーブルと連携するためのＩＤ)と企業毎の複数のカスタマイズ項目の各欄とから構成され、各欄に該当するデータを格納している。この拡張テーブルは、例えば企業Ｂがある業務に対してカスタマイズを行い、カスタマイズＢ１という項目を追加した場合、その時点でその業務用の企業Ｂ用の拡張テーブル１０２が自動的に追加され、更にカスタマイズが行われ、カスタマイズＢ２という項目が追加された場合は、この企業Ｂ拡張テーブル１０２に新たなカスタマイズＢ２項目を追加する様に更新される。前記企業毎に付与された連携ＩＤは、カスタマイズによって追加された項目と、メインテーブル１０１のデータと関連付けるためのものであり、データアクセスの際には、このＩＤをキーとしてメインテーブル１０１と各拡張テーブル１０２又は１０３からのデータを結合した仮想テーブルがアクセス先として決定される。
【００２２】
［データアクセス装置２００］
前記データアクセス装置２００は、各企業１ａ〜１ｃからのアクセスによるユーザ名を基に該当企業の企業ＩＤ及び企業毎の定義ファイル情報（スキーマ）とを用いてデータベース１００から各企業用の仮想テーブルを生成するアクセス制御部２２０と、該アクセス制御部２２０の制御によって企業毎の定義ファイル情報を用いて生成した仮想テーブルを格納する仮想テーブル（記憶）部２１０と、これらを制御する制御部（図示せず）とから構成される。
【００２３】
前記仮想テーブル（記憶）部２１０は、企業１ａ〜１ｃ毎にカスタマイズされた定義情報を格納する定義ファイル１０４〜１０６と、該定義ファイル１０４〜１０６の定義内容に従ってデータを結合した各企業用の仮想テーブル１０７〜１０９とを記憶している。
【００２４】
前記各企業用の仮想テーブルは、データアクセス時の結合処理の手間を省くために各企業用のメインテーブルの共通データ及び拡張テーブルの拡張データとを予め結合したデータを格納したものであって、図３に示す如く、企業Ａ用の仮想テーブル１０７が、シリアル番号が付与された連携ＩＤと、企業毎に付与された企業ＩＤと、カスタマイズがないために複数の共通項目の項目の各欄から構成され、企業Ｂ及びＣ用の仮想テーブル１０８及び１０９が、前記連携ＩＤと企業毎に付与された企業ＩＤと複数の共通項目と各企業用にカスタマイズ（追加）されたカスタマイズ項目の各欄から構成され、各欄に該当するデータを格納するものである。
【００２５】
前記定義ファイル１０４〜１０６の具体例は、例えば図５に示す如く、枠で囲った"ｄ０００＿ｕｓｅｒ"という名前のメインテーブル１０１の共通データと、枠で囲った"ｄ００１＿ｕｓｅｒ"という名前のカスタマイズ用の拡張テーブルのデータを結合して、"ｕｓｅｒ"という名前の仮想テーブルを作成することを定義している。
【００２６】
この仮想テーブルは、図４に示す如く、各企業用の定義ファイルに定義された共通データ項目とカスタマイズ項目の定義情報を基に、データベース１００のメインテーブル１０１から前記共通データ項目により定義されたデータ及び拡張テーブル１０２から前記カスタマイズ項目のデータを取得し、これらを結合することによって生成される。
【００２７】
前記アクセス制御部２２０は、複数の企業ＩＤを管理する企業ＩＤ管理部１１０と、各ユーザのデータアクセス先を決定するデータアクセスクラス１１１と、不正な企業ＩＤの登録を防止するためのインターセプタ１１２と、一度データアクセスを行った企業の定義ファイルの情報を保持する定義ファイル情報管理部１１３とから構成される。
【００２８】
前記企業ＩＤ管理部１１０は、図６に示す如く、連携ＩＤと、該ＩＤに対応したユーザＩＤと、該ユーザＩＤに対応したユーザ名と、該ユーザが所属する企業の企業ＩＤの各欄とから構成され、各欄に該当するデータを格納するものである。
【００２９】
前記定義ファイル情報管理部１１３は、図７に示す如く、企業ＩＤと、該企業ＩＤに対応して設定された仮想テーブル名と、メインテーブル名と、拡張テーブル名と、Ｒｏｏｔ（ルート）フォルダ名との各項目欄から構成され、例えば、企業Ｂは、企業ＩＤに「Ｂ」、仮想テーブル名に「ｕｓｅｒ」、メインテーブル名に「ｍａｉｎ＿ｕｓｅｒ」、拡張テーブル名に「ｅｘＢ＿ｕｓｅｒ」、Ｒｏｏｔフォルダ名に「Ｃ：￥ｔｅｍｐ￥Ｂ￥ｄｂ」の如く格納されている。尚、Ｒｏｏｔフォルダ名の「Ｃ：￥ｔｅｍｐ￥Ｂ￥ｄｂ」は、ハードディスクのドライブ番号Ｃのディレクトリ「￥ｔｅｍｐ￥Ｂ￥ｄｂ」がＲｏｏｔフォルダ名であることを表し、前記ディスクドライブ番号やサブディレクトリ名を基にした所定の規則に従って作成している。尚、前記各ファイル及びテーブルは、データを不揮発性に記憶する磁気ディスク装置等やキャッシュメモリ等の一時的な記憶手段としても表すことができる。
【００３０】
［動作］
［通常アクセス動作］
次に前記のように構成されたデータベースシステムの動作を図８及び図９を参照して説明する。本実施形態によるデータベースシステムは、例えば企業Ａに所属するユーザ１ａがユーザＩＤを入力してアクセスしたとき（図８の符号ａ）、アクセス制御部２２０のデータアクセスクラス１１１が、入力されたユーザＩＤをキーとして企業ＩＤ管理部１１０を検索して企業ＩＤ「Ａ」を取得するステップＳ９０１（図８の符号ｂ）と、定義ファイル情報管理部１１３に前記企業ＩＤ「Ａ」と仮想テーブル名をキーとする値（図７の仮想テーブル名他の内容情報）があるか否かを判定し、値があると判定したときに定義ファイル情報の仮想テーブル名やメインテーブル名等を取得するステップＳ９０４に移行するステップＳＳ９０２と、該ステップＳ９０２において値がないと判定したとき、前記「企業ＩＤ」を基に前記ディスクドライブ番号やサブディレクトリ名を用いてルートフォルダ名を生成するステップＳ９０３とを実行する。
【００３１】
次いで本システムは、前記ステップＳ９０３により生成したルートフォルダ名が既に存在するか否かを判定し、存在しない場合にエラー処理に移行するステップＳ９０５と、該ステップＳ９０５においてルートフォルダ名が既に存在していると判定したとき、該ルートフォルダ（仮想テーブル部２１０内）に定義ファイル１０４が存在しているか否かを判定し、存在していないと判定したときエラー処理に移行するステップＳ９０６と、該ステップＳ９０６において定義ファイル１０４が存在していると判定したとき、前記ルートフォルダ名により記憶領域（データベース１００を記憶したハードディスクドライブのサブディレクトリ）を特定した仮想テーブル部２１０の定義ファイル１０４から該当企業の定義ファイル情報を取得するステップＳ９０７（図８の符号ｃ）と、該取得した定義ファイル情報を定義ファイル情報管理部１１３に次回のアクセス時に参照可能にするために登録するステップＳ９０８と、該登録した企業の仮想テーブルを生成して仮想テーブル部２１０に登録するステップＳ９０９と、該登録した仮想テーブルをアクセス先と決定するステップＳ９１０（図８の符号ｄ）とを実行する。
【００３２】
このような処理によって本システムは、アクセスした企業用の仮想テーブルが既に仮想テーブル部２１０に格納している場合は定義ファイル情報管理部１１３を参照してアクセス先の仮想テーブル及び該仮想テーブルの記憶領域を決定し、仮想テーブル部２１０に格納していない場合は、企業ＩＤから所定の規則に従ったルートフォルダ名を生成し、該ルートフォルダ名を基に前記記憶領域を特定した仮想テーブル部２１０から企業用の定義ファイル情報を読み出して定義ファイル情報管理部１１３に登録すると共にアクセス先の仮想テーブル及び該仮想テーブルの記憶領域を決定することができる。
【００３３】
特に本実施形態においては、定義ファイル情報を格納するフォルダ名を、「Ｃ：￥ｔｅｍｐ￥Ａ￥ｄｂ」の如く企業ＩＤを用いた一定の規則に従った名前にしておくことによって、企業ＩＤからフォルダ名及び記憶領域を生成することができ、更にアクセス対象の定義ファイル情報を次回のアクセス時にすぐ参照できるように定義ファイル情報管理部１１３に登録しておくことによって、それぞれのユーザが適切な仮想テーブルに対してアクセスすることができる。
【００３４】
［誤動作防止動作］
さて、本実施形態によるデータベースシステムは、例えば企業Ａのユーザがデータ中の企業名を誤り、他社のデータを誤って登録又は更新することも防止することができ、この動作を、図１０及び１１を参照して次に説明する。本例においては、図１０右端に示す企業Ａのユーザ１ａが企業名をＢ社と誤記（企業ＩＤ：Ｂ）した右下データをデータベース１００に登録する場合を例にとって説明する。
【００３５】
本システムは、ユーザ１ａが自己のユーザＩＤを用いてデータ登録のアクセスを行った場合、データアクセスクラス１１１がこのデータ登録のイベントをキャッチするステップＳ１１０と、入力された図１０右下データに企業ＩＤが存在するか否かを判定し、存在しない場合は前記ステップＳ１１０に戻るステップＳ１１１と、該ステップＳ１１１において企業ＩＤが存在すると判定したとき、ユーザがアクセスしたセッション情報に含まれるユーザＩＤをキーとしてユーザを特定するステップＳ１１２と、該特定したユーザＩＤをキーとして企業ＩＤ管理部１１０を参照し、該当の企業ＩＤを取得するステップＳ１１３と、該取得した企業ＩＤを前記入力されたデータの企業ＩＤ列にセット（変更）するステップＳ１１４と、該企業ＩＤを変更したデータをデータベース１００に登録するステップＳ１１５とを実行することによって、アクセスしたユーザＩＤから企業ＩＤを取得し、この取得した企業ＩＤをデータに含まれる企業ＩＤに変換する様に動作する。尚、データに正規の企業ＩＤが登録されている場合も同一の企業ＩＤの置換が行われる。
【００３６】
一般にマルチテナント型のシステムでは、複数の導入企業が同一のサーバ環境を使用するため、他企業のデータに対する不正なアクセスが行われる危険性があり、このためセキュリティに対する十分な考慮が必要となる。特に業務毎のメインテーブル１０１に格納する企業ＩＤは、各データがどの導入企業のものかを識別するための重要な情報であるため、外部から変更などの操作ができないようにする必要がある。
【００３７】
これに対して本実施形態によるデータベースシステムは、インターセプタ１１２がデータ登録時にユーザＩＤを基に企業ＩＤを自動的にセットしてデータ登録を行うことによって、マルチテナント型におけるデータの誤書込を防止し、セキュリティを向上することができる。
【００３８】
尚、前記実施形態においてはステップＳ１１１においてデータに企業ＩＤが含まれないと判定したときにデータ登録のイベントをキャッチする処理に戻る例を説明したが、本発明はこれに限られるものではなく、例えばステップＳ１１１においてデータに企業ＩＤが含まれないと判定したとき、ユーザＩＤを基に企業ＩＤを企業ＩＤ管理部１１０から取得し、この取得した企業ＩＤの拡張テーブルにデータを自動的に追加する処理を行っても良く、この場合は、データ登録時に企業ＩＤをセットする必要をなくすことができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態による制御方法を適用したデータベースシステムの全体構成図。
【図２】本実施形態のデータベースに格納するテーブル例を示す図。
【図３】本実施形態による各仮想テーブル例を示す図。
【図４】本実施形態による仮想テーブル作成の概念図。
【図５】本実施形態による仮想テーブルを作成するための定義ファイルを示す図。
【図６】本実施形態による企業ＩＤ管理部で保持する情報例を示す図。
【図７】本実施形態による定義ファイル情報管理部で保持する情報例を示す図。
【図８】本実施形態によるデータアクセス時の処理を示す図。
【図９】本実施形態によるデータアクセス先決定処理を示すフローチャート。
【図１０】本実施形態によるデータ登録時の処理例を説明するための図。
【図１１】本実施形態によるデータ登録時の処理例を示すフローチャート。
【符号の説明】
【００４０】
１００：データベース、１０１：メインテーブル、１０２：拡張テーブル、１０４：定義ファイル、１０７〜１０９：仮想テーブル、１１０：企業ＩＤ管理部、１１１：データアクセスクラス、１１２：インターセプタ、１１３：定義ファイル情報管理部、２００：データアクセス装置、２１０：仮想テーブル（記憶）部、２２０：アクセス制御部。
【図１】
0004778500.tif 000002
【図２】
0004778500.tif 000003
【図３】
0004778500.tif 000004
【図４】
0004778500.tif 000005
【図５】
0004778500.tif 000006
【図６】
0004778500.tif 000007
【図７】
0004778500.tif 000008
【図８】
0004778500.tif 000009
【図９】
0004778500.tif 000010
【図１０】
0004778500.tif 000011
【図１１】
0004778500.tif 000012