(57)【要約】【課題】スキーマ拡張により意図しない項目がスキーマに追加された場合であっても、意図しない項目を判別する。【解決手段】データ管理装置１は、複数の項目を有し、複数の項目それぞれが項目属性情報を有するデータベースを管理する。そして、データ管理装置１は、データベースに対する更新要求を受け付けた際に、更新要求で指定された項目が、複数の項目に含まれるか否かを判別するスキーマ検査部１２と、指定された項目が複数の項目に含まれない場合、複数の項目に指定された項目を追加するとともに、指定された項目の項目属性情報に含まれる定義設定フラグを、データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定するスキーマ拡張部１４とを有する。【選択図】図１
2015022575.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースを管理するコンピュータに、
前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別し、
前記指定された項目が前記複数の項目に含まれない場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する
処理を実行させることを特徴とするデータ管理プログラム。
【請求項２】
前記データベースの前記項目属性情報に対する照会要求を受け付けた際に、前記定義設定フラグが前記第２状態である項目を含んで照会する照会モードである場合、前記第１状態である項目に加えて前記第２状態である項目の項目属性情報を出力する
処理を実行させることを特徴とする請求項１に記載のデータ管理プログラム。
【請求項３】
所定の項目について、前記定義設定フラグに対する変更要求を受け付けた際に、変更要求に応じて、設定されている状態を、当該設定されている状態と異なる状態に変更する
処理を実行させることを特徴とする請求項１または請求項２に記載のデータ管理プログラム。
【請求項４】
複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースと、
前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別する判別部と、
前記判別部によって前記指定された項目が前記複数の項目に含まれないと判別された場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する設定部と、
を有することを特徴とするデータ管理装置。
【請求項５】
複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースのデータ管理方法であって、
コンピュータが、
前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別し、
前記指定された項目が前記複数の項目に含まれない場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する
処理を実行することを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理プログラム等に関する。
【背景技術】
【０００２】
データベース（ＤＢ）には、ＤＢの各項目について項目名やデータ型が予め定義されたスキーマを有する条件下で動作するＤＢ（例えば、スキーマフルＤＢという）が存在する。また、スキーマを有しない条件下で動作するＤＢ（例えば、スキーマレスＤＢという）が存在する。さらに、スキーマフルＤＢとスキーマレスＤＢとが混在した条件下で動作するＤＢ（例えば、ハイブリッドＤＢという）とが存在する。すなわち、ハイブリッドＤＢでは、テーブルを構成する項目が備えているべき共通的属性をスキーマに定義する一方で、一部の項目の属性をアドホックにスキーマに定義する。
【０００３】
ハイブリッドＤＢに関し、複数のデータソースをマージする場合に、スキーマを拡張する技術が開示されている（例えば、特許文献１）。例えば、所定のアプリケーションが、複数のデータソースをマージする場合に、各データソース中のフィールドをマッピングする。すなわち、最初のデータソースを初期データソースとして取り出し、取り出した後続の各データソースのフィールドを初期データソースのフィールドと関連付け、初期データソース中に出現しない後続のデータソース中のフィールドを追加する。各入力データソースからマッピングされたフィールドが、アドホックにスキーマに追加される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１０７４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、スキーマを拡張する技術では、意図しない項目がスキーマに追加された場合、意図しない項目を判別できないという問題がある。すなわち、スキーマ拡張によりスキーマに追加された項目は、項目名やデータ型等のチェックが行われないまま追加されるので、例えば項目名のスペルミス等により意図しない項目が追加されてしまう場合がある。このため、従来の所定のアプリケーションでは、追加された項目が意図する項目か意図しない項目かを判別できない。
【０００６】
１つの側面では、スキーマ拡張により意図しない項目がスキーマに追加された場合であっても、意図しない項目を判別できることを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、データ管理プログラムは、複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースを管理するコンピュータに、前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別し、前記指定された項目が前記複数の項目に含まれない場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する処理を実行させる。
【発明の効果】
【０００８】
１つの態様によれば、スキーマ拡張により意図しない項目がスキーマに追加された場合であっても、意図しない項目を判別できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例に係るデータ管理装置の構成を示すブロック図である。
【図２Ａ】図２Ａは、実施例に係るテーブル定義のデータ構造の一例を示す図である。
【図２Ｂ】図２Ｂは、実施例に係るテーブル定義の一例を示す図である。
【図３Ａ】図３Ａは、実施例に係る属性定義のデータ構造の一例を示す図である。
【図３Ｂ】図３Ｂは、実施例に係る属性定義の一例を示す図である。
【図４】図４は、データ追加・更新要求を受け付けた場合の処理のフローチャートを示す図である。
【図５】図５は、スキーマ照会要求を受け付けた場合の処理のフローチャートを示す図である。
【図６】図６は、宣言済フラグの変更要求を受け付けた場合の処理のフローチャートを示す図である。
【図７】図７は、データ管理プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するデータ管理プログラム、データ管理装置およびデータ管理方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１１】
［データ管理装置の構成］
図１は、実施例に係るデータ管理装置の構成を示すブロック図である。図１に示すように、データ管理装置１は、制御部１０および記憶部２０を有する。データ管理装置１は、データベースを管理する。データ管理装置１は、データベースの未定義の項目にデータを追加する場合、未定義の項目をスキーマに追加するとともに、スキーマに新たに設けられた宣言済フラグを、宣言されていない（定義されていない）項目であることを示す識別情報（例えば、「偽」）に設定し、スキーマ拡張を行う。一方、スキーマに既に定義された項目は、宣言済フラグを、宣言されている（定義されている）項目であることを示す識別情報（例えば、「真」）に設定される。実施例では、データベース（ＤＢ）は、スキーマを有するスキーマフルＤＢとスキーマを有さないスキーマレスＤＢとが混在した条件下で動作するハイブリッドＤＢであるものとする。すなわち、実施例に係るデータベースは、テーブルを構成する項目が備えているべき共通的属性をスキーマに定義する一方で、一部の項目の属性をアドホックにスキーマに定義する。なお、宣言済フラグは、定義設定フラグの一例である。
【００１２】
制御部１０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路の電子回路に対応する。または、制御部１０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。さらに、制御部１０は、要求・応答部１１、スキーマ検査部１２、データ追加・更新部１３、スキーマ拡張部１４およびスキーマ管理部１５を有する。スキーマ管理部１５は、スキーマ照会部１６およびスキーマ定義変更部１７を有する。
【００１３】
記憶部２０は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。また、記憶部２０は、例えばＲＡＭ（Random  Access  Memory）等の揮発性の半導体メモリ素子を利用した記憶装置に対応しても良い。この場合、記憶部２０は、不揮発性の半導体メモリ素子等の記憶装置からデータを適宜ロードするようにすれば良い。記憶部２０は、データ記憶部２１およびスキーマ定義体２２を有する。データ記憶部２１は、単数または複数の項目それぞれの属性に基づいて格納されたデータを記憶する。例えば、データ記憶部２１には、複数のテーブルが記憶され、各テーブルには、後述するスキーマ定義体２２によって定義された単数または複数の項目毎に、値（データ）が記憶される。スキーマ定義体２２は、複数の項目それぞれの属性を定義する。スキーマ定義体２２は、テーブル定義２２１および属性定義２２２を有する。
【００１４】
ここで、テーブル定義２２１のデータ構造について、図２Ａおよび図２Ｂを参照して説明する。図２Ａは、実施例に係るテーブル定義のデータ構造の一例を示す図である。図２Ｂは、実施例に係るテーブル定義の一例を示す図である。
【００１５】
図２Ａに示すように、テーブル定義２２１は、属性として、テーブルＩＤ２２１ａおよびテーブル名２２１ｂを有する。テーブルＩＤ２２１ａは、テーブルの管理に用いられる一意のＩＤ（identification）である。ここでは、テーブルＩＤ２２１ａは、主キー（Primary  Key）であることが示されている。テーブル名２２１ｂは、テーブルの名称である。
【００１６】
図２Ｂに示すように、テーブル定義２２１は、テーブル名２２１ｂをテーブルＩＤ２２１ａに対応付けて記憶する。一例として、テーブルＩＤ２２１ａが「１」である場合、テーブル名２２１ｂとして「商品」と記憶している。テーブルＩＤ２２１ａが「２」である場合、テーブル名２２１ｂとして「受注」と記憶している。
【００１７】
また、属性定義２２２のデータ構造について、図３Ａおよび図３Ｂを参照して説明する。図３Ａは、実施例に係る属性定義のデータ構造の一例を示す図である。図３Ｂは、実施例に係る属性定義の一例を示す図である。
【００１８】
図３Ａに示すように、属性定義２２２は、属性として、テーブルＩＤ２２２ａ、属性ＩＤ２２２ｂ、属性名２２２ｃ、属性型２２２ｄおよび宣言済フラグ２２２ｅを有する。テーブルＩＤ２２２ａは、テーブルの管理に用いられる一意のＩＤである。属性ＩＤ２２２ｂは、テーブルＩＤ２２２ａに対応するテーブル内の項目（属性名）を一意に表すＩＤである。属性名２２２ｃは、属性の名称である。なお、属性名２２２ｃに設定される属性名は、テーブル内の項目に対応するものである。属性型２２２ｄは、属性のデータの型である。例えば、属性のデータが数値である場合、属性型２２２ｄには、数値型であることを示す「数値」が設定される。属性のデータが文字列である場合、属性型２２２ｄには、文字列型であることを示す「文字列」が設定される。なお、属性型２２２ｄには、属性のデータがフラグである場合、真（例えば０）か偽（例えば１）であることを示す「真偽値」が設定されても良い。
【００１９】
宣言済フラグ２２２ｅは、属性が宣言されている（定義されている）かどうかを表す真偽値である。例えば、属性が宣言されている場合、宣言済フラグ２２２ｅには、宣言済みであることを示す「真」が設定される。属性が宣言されていない場合、宣言済フラグ２２２ｅには、宣言済みでないことを示す「偽」が設定される。すなわち、後述するスキーマ拡張部１４は、データを追加する項目が属性定義２２２の属性名２２２ｃに定義されていない場合、当該項目を属性定義２２２の属性名２２２ｃに追加するとともに、宣言済フラグ２２２ｅを「偽」に設定し、スキーマ拡張を行う。
【００２０】
図３Ｂに示すように、属性定義２２２は、テーブルＩＤ２２２ａと、属性ＩＤ２２２ｂと、属性名２２２ｃとを、属性型２２２ｄおよび宣言済フラグ２２２ｅに対応付けて記憶する。一例として、テーブルＩＤ２２２ａが「１」および属性ＩＤ２２２ｂが「１」である場合、属性名２２２ｃとして「商品ＩＤ」、属性型２２２ｄとして「数値」、宣言済フラグ２２２ｅとして「真」と記憶している。また、テーブルＩＤ２２２ａが「１」および属性ＩＤ２２２ｂが「４」である場合、属性名２２２ｃとして「担当部署コード」、属性型２２２ｄとして「数値」、宣言済フラグ２２２ｅとして「偽」と記憶している。すなわち、データを追加する項目が「担当部署コード」である場合に、「担当部署コード」が属性定義２２２の属性名２２２ｃに定義されていないので、宣言済フラグ２２２ｅが「偽」に設定されている。すなわち、「担当部署コード」に対応する属性が、スキーマ拡張されたものである。
【００２１】
図１に戻って、要求・応答部１１は、データベースに対して所定の要求を受け付け、受け付けた要求を振り分ける。また、要求・応答部１１は、要求に対する処理結果を要求元に応答する。なお、要求・応答部１１は、所定の要求をデータ管理装置１の外部の装置から受信しても良いし、データ管理装置１内の他の制御部から受け取っても良い。
【００２２】
一例として、要求・応答部１１は、データベースに対する追加要求または更新要求を受け付けた場合、受け付けた要求をスキーマ検査部１２に振り分ける。このとき、要求・応答部１１は、追加要求として、例えば、データが追加されるテーブルのテーブル名、データが追加される項目の項目名およびそのデータを含む要求を受け付ける。要求・応答部１１は、更新要求として、例えば、データが更新されるテーブルのテーブル名、データが更新される項目の項目名およびそのデータを含む要求を受け付ける。
【００２３】
別の一例として、要求・応答部１１は、データベースのスキーマに対する照会要求を受け付けた場合、受け付けた照会要求をスキーマ照会部１６に振り分ける。このとき、要求・応答部１１は、照会要求として、例えば、照会を所望するテーブルのテーブル名および照会モードを含む要求を受け付ける。ここでいう照会モードとは、宣言済フラグに「偽」が設定されている属性名に対応する属性情報を照会するか否かを示すモードである。宣言済フラグに「偽」が設定されている属性名に対応する属性情報を照会しないことを示すモードを「通常照会モード」という。宣言済フラグに「偽」が設定されている属性名に対応する属性情報も含めて照会することを示すモードを「拡張照会モード」という。一例として、宣言済フラグに「偽」が設定されている属性名に対応する属性情報も含めて照会する場合、照会モードとして「拡張照会モード」に対応する識別情報が設定される。また、要求・応答部１１は、照会要求に対する照会結果を要求元に応答する。
【００２４】
別の一例として、要求・応答部１１は、宣言済フラグの変更要求を受け付けた場合、受け付けた変更要求をスキーマ定義変更部１７に振り分ける。このとき、要求・応答部１１は、宣言済フラグの変更要求として、例えば、宣言済フラグが変更される属性名に対応する項目を有するテーブルのテーブル名、属性名および変更内容を含む要求を受け付ける。変更内容には、「偽」から「真」に変更する場合、例えば「真」が設定される。「真」から「偽」に変更する場合、例えば「偽」が設定される。
【００２５】
スキーマ検査部１２は、データベースに対する追加要求または更新要求について、スキーマ定義体２２に基づいて、スキーマチェックを行う。以降では、更新要求についてのスキーマチェックの例を説明するが、追加要求についてのスキーマチェックも同様であるので、その説明を省略する。
【００２６】
例えば、スキーマ検査部１２は、更新要求で指定された項目が、属性定義２２２に記憶された複数の項目（属性名）に含まれるか否かを判定する。スキーマ検査部１２は、指定された項目が、属性定義２２２に記憶された複数の項目（属性名）に含まれないと判定した場合、スキーマ拡張部１４にスキーマを拡張させる。
【００２７】
また、スキーマ検査部１２は、指定された項目が、属性定義２２２に記憶された複数の項目（属性名）に含まれると判定した場合、属性定義２２２に基づいて、指定された項目のデータが属性型２２２ｄに設定される型と不整合でないか否かを判定する。そして、スキーマ検査部１２は、指定された項目のデータが属性型２２２ｄに設定される型と不整合でないと判定した場合、データ追加・更新部１３にデータを追加または更新させる。また、スキーマ検査部１２は、指定された項目のデータが属性型２２２ｄに設定される型と不整合であると判定した場合、異常であることを要求・応答部１１に通知する。なお、スキーマ検査部１２は、項目のデータが型と不整合でないか否かを判定すると説明したが、これに限定されるものではなく、さらに、データがヌルでない等の制約違反でないか否かを判定しても良い。
【００２８】
スキーマ拡張部１４は、更新要求で指定された項目を、属性定義２２２の属性名２２２ｃに追加する。加えて、スキーマ拡張部１４は、追加した属性名２２２ｃに対応する宣言済フラグ２２２ｅを「偽」に設定する。すなわち、スキーマ拡張部１４は、属性定義２２２に追加された属性名２２２ｃに対応する宣言済フラグ２２２ｅを、まだ承認されていないことを示す「偽」に設定する。さらに、スキーマ拡張部１４は、指定された項目のデータに基づいて、属性型２２２ｄを設定する。一例として、指定された項目のデータが「１２３」である場合、属性型２２２ｄは「数値」に設定される。指定された項目のデータが「あいう」である場合、属性型２２２ｄは「文字列」に設定される。指定された項目のデータが「ＴＲＵＥ」や「ＦＡＬＳＥ」である場合、属性型２２２ｄは「真偽値」に設定される。これにより、スキーマ拡張部１４は、更新要求で指定された未定義の項目を、未定義の項目としてアドホックに属性定義２２２に追加し、スキーマを拡張することができる。
【００２９】
データ追加・更新部１３は、更新要求で指定された項目のデータをデータ記憶部２１に格納する。また、データ追加・更新部１３は、追加要求で指定された項目のデータをデータ記憶部２１に格納する。
【００３０】
スキーマ照会部１６は、データベースのスキーマ定義体２２に対する照会要求について、照会要求に含まれる照会モードに応じて属性定義２２２に記憶された内容を照会する。例えば、スキーマ照会部１６は、照会要求に含まれる照会モードが「拡張照会モード」であるか否かを判定する。スキーマ照会部１６は、照会モードが「拡張照会モード」であると判定した場合、属性定義２２２の宣言済フラグ２２２ｅが「真」である属性名に加えて「偽」である属性名に対応する属性情報を照会する。また、スキーマ照会部１６は、照会モードが「通常照会モード」であると判定した場合、属性定義２２２の宣言済フラグ２２２ｅが「真」である属性名に対応する属性情報を照会する。照会される属性情報には、一例として、要求されたテーブルのテーブルＩＤ２２２ａ、属性ＩＤ２２２ｂ、属性名２２２ｃ、属性型２２２ｄおよび宣言済フラグ２２２ｅが含まれる。これにより、スキーマ照会部１６は、テーブル中にどのような宣言されていない未定義の項目が設定されているのかを照会することができる。また、スキーマ照会部１６は、宣言されていない未定義の項目を照会することで、意図しない項目を判別させることができる。
【００３１】
スキーマ定義変更部１７は、宣言済フラグに対する変更要求について、変更要求に応じて、設定されている状態を、設定されている状態と異なる状態に変更する。例えば、スキーマ定義変更部１７は、変更要求に含まれる変更内容が「真」であるか否かを判定する。スキーマ定義変更部１７は、変更内容が「真」であると判定した場合、属性定義２２２に記憶される該当テーブルの属性名に対応する宣言済フラグ２２２ｅを「偽」から「真」に変更する。すなわち、スキーマ定義変更部１７は、宣言されていない未定義の項目を宣言済みの項目に変更する。また、スキーマ定義変更部１７は、変更内容が「偽」であると判定した場合、属性定義２２２に記憶される該当テーブルの属性名に対応する宣言済フラグ２２２ｅを「真」から「偽」に変更する。すなわち、スキーマ定義変更部１７は、宣言済みの項目を宣言されていない未定義の項目に変更する。これにより、スキーマ定義変更部１７は、データ記憶部２１のデータを移行しなくても、フラグの操作のみで、宣言されていない未定義の項目を宣言済みの項目に変更することができる。
【００３２】
［データ追加・更新要求を受け付けた場合の処理のフローチャート］
次に、図４を参照して、データ追加・更新要求を受け付けた場合の処理の手順を説明する。図４は、データ追加・更新要求を受け付けた場合の処理のフローチャートを示す図である。なお、図４の例では、要求・応答部１１が、データの更新要求を受け付けた場合について説明する。
【００３３】
図４に示すように、要求・応答部１１は、データの更新要求を受け付ける（ステップＳ１１）。例えば、要求・応答部１１は、データが更新されるテーブルのテーブル名、データが更新される項目の項目名およびそのデータを含む更新要求を受け付ける。すると、要求・応答部１１は、更新要求をスキーマ検査部１２に振り分ける。
【００３４】
そして、スキーマ検査部１２は、更新要求で指定された項目について、スキーマ情報を確認し（ステップＳ１２）、当該項目に、未定義の項目（属性）があるか否かを判定する（ステップＳ１３）。例えば、スキーマ検査部１２は、更新要求で指定された項目が、属性定義２２２に記憶された複数の項目（属性名）に含まれていないかどうかを判定する。
【００３５】
未定義の項目があると判定した場合（ステップＳ１３；Ｙｅｓ）、スキーマ拡張部１４は、未定義の項目全てについて、属性定義２２２に追加する。このとき、スキーマ拡張部１４は、未定義の項目全てについて、属性定義２２２の宣言済フラグ２２２ｅを「偽」に設定する（ステップＳ１４）。例えば、スキーマ拡張部１４は、未定義の項目の項目名を、属性定義２２２の属性名２２２ｃに追加する。加えて、スキーマ拡張部１４は、追加した属性名２２２ｃに対応する宣言済フラグ２２２ｅを「偽」に設定する。すなわち、追加された属性名について、まだ宣言されていない未定義の属性であることを示す「偽」が設定される。さらに、スキーマ拡張部１４は、未定義の項目のデータに基づいて、追加した属性名２２２ｃに対応する属性型２２２ｄを設定する。そして、スキーマ拡張部１４は、ステップＳ１５に移行する。
【００３６】
一方、未定義の項目がないと判定した場合（ステップＳ１３；Ｎｏ）、スキーマ検査部１２は、属性定義２２２に基づいて、指定された項目であって定義されている項目全てについて、項目のデータの型が不整合でないかどうかを判定する（ステップＳ１５）。定義されている項目全てについて、項目のデータの型が不整合でないと判定した場合（ステップＳ１５；Ｙｅｓ）、データ追加・更新部１３は、データ追加・更新処理を実行する（ステップＳ１６）。すなわち、データ追加・更新部１３は、更新要求で指定された項目のデータをデータ記憶部２１に格納する。
【００３７】
一方、定義されている項目のいずれかについて、項目のデータの型が不整合であると判定した場合（ステップＳ１５；Ｎｏ）、スキーマ検査部１２は、エラー応答をすべく、エラーであることを要求・応答部１１に通知する（ステップＳ１７）。
【００３８】
なお、スキーマ検査部１２は、指定された項目であって定義されていない項目全てについて、項目のデータが制約違反でないかどうかを判定するようにしても良い。この場合、属性定義２２２には、テーブルＩＤ２２２ａ、属性ＩＤ２２２ｂ、属性名２２２ｃ、属性型２２２ｄおよび宣言済フラグ２２２ｅに加えて属性の制約が追加されるようにする。そして、スキーマ検査部１２は、属性定義２２２に基づいて、指定された項目であって定義されている項目全てについて、項目のデータが制約違反でないかどうかを判定すれば良い。
【００３９】
［スキーマ照会要求を受け付けた場合の処理のフローチャート］
次に、図５を参照して、スキーマ照会要求を受け付けた場合の処理の手順を説明する。図５は、スキーマ照会要求を受け付けた場合の処理のフローチャートを示す図である。
【００４０】
図５に示すように、要求・応答部１１は、スキーマの照会要求を受け付ける（ステップＳ２１）。例えば、要求・応答部１１は、照会を所望するテーブルのテーブル名および照会モードを含む照会要求を受け付ける。すると、要求・応答部１１は、照会要求をスキーマ照会部１６に振り分ける。
【００４１】
そして、スキーマ照会部１６は、照会モードが拡張照会を示す「拡張照会モード」であるか否かを判定する（ステップＳ２２）。拡張照会モードであると判定した場合（ステップＳ２２；Ｙｅｓ）、スキーマ照会部１６は、属性定義２２２から、宣言済フラグ２２２ｅが「偽」の属性情報を含めて読み出す（ステップＳ２３）。例えば、スキーマ照会部１６は、属性定義２２２から、照会要求で指定されたテーブルに対応する属性情報であって、宣言済フラグ２２２ｅが「真」である属性情報に加えて「偽」である属性情報を読み出す。そして、スキーマ照会部１６は、ステップＳ２５に移行する。
【００４２】
一方、拡張照会モードでないと判定した場合（ステップＳ２２；Ｎｏ）、スキーマ照会部１６は、属性定義２２２から、宣言済フラグ２２２ｅが「偽」の属性情報を含めないで読み出す（ステップＳ２４）。例えば、スキーマ照会部１６は、属性定義２２２から、照会要求で指定されたテーブルに対応する属性情報であって、宣言済フラグ２２２ｅが「真」である属性情報を読み出す。そして、スキーマ照会部１６は、ステップＳ２５に移行する。
【００４３】
ステップＳ２５では、スキーマ照会部１６は、要求・応答部１１を介して、読み出した属性情報を要求元に返却する（ステップＳ２５）。例えば、スキーマ照会部１６は、属性情報として、テーブルＩＤ２２２ａ、属性ＩＤ２２２ｂ、属性名２２２ｃ、属性型２２２ｄおよび宣言済フラグ２２２ｅを要求元に返却する。
【００４４】
その後、要求元では、返却された属性情報を編集し、例えば、属性名２２２ｃ、属性型２２２ｄおよび宣言済フラグ２２２ｅを画面に表示しても良い。
これにより、要求元は、スキーマ拡張により意図しない項目がスキーマに追加された場合であっても、意図しない項目を判別することができる。
【００４５】
［宣言済フラグの変更要求を受け付けた場合の処理のフローチャート］
次に、図６を参照して、宣言済フラグの変更要求を受け付けた場合の処理の手順を説明する。図６は、宣言済フラグの変更要求を受け付けた場合の処理のフローチャートを示す図である。
【００４６】
図６に示すように、要求・応答部１１は、宣言済フラグの変更要求を受け付ける（ステップＳ３１）。例えば、要求・応答部１１は、宣言済フラグ２２２ｅが変更される属性名に対応する項目を有するテーブルのテーブル名、属性名および変更内容を含む変更要求を受け付ける。すると、要求・応答部１１は、変更要求をスキーマ定義変更部１７に振り分ける。
【００４７】
そして、スキーマ定義変更部１７は、変更内容が「真」であるか否かを判定する（ステップＳ３２）。変更内容が「真」であると判定した場合（ステップＳ３２；Ｙｅｓ）、スキーマ定義変更部１７は、属性定義２２２の、該当属性名に対応する宣言済フラグ２２２ｅを「偽」から「真」に変更する（ステップＳ３３）。そして、スキーマ定義変更部１７は、処理を終了する。
【００４８】
一方、変更内容が「真」でないと判定した場合（ステップＳ３２；Ｎｏ）、スキーマ定義変更部１７は、属性定義２２２の、該当属性名に対応する宣言済フラグ２２２ｅを「真」から「偽」に変更する（ステップＳ３４）。そして、スキーマ定義変更部１７は、処理を終了する。
【００４９】
これにより、スキーマ定義変更部１７は、データ記憶部２１のデータを移行しなくても、フラグの操作のみで、宣言されていない未定義の項目を宣言済みの項目に変更することができる。
【００５０】
なお、要求・応答部１１は、一例として、所定の要求をデータ管理装置１の外部の装置から受信すると説明した。この場合、要求・応答部１１は、ネットワークを介した通信端末から受信するものとしても良い。例えば、要求・応答部１１は、通信端末から送信されたデータベースに対する更新要求を受け付け、受け付けた更新要求をスキーマ検査部１２に振り分ける。そして、スキーマ検査部１２は、更新要求で指定された項目（例えば「担当部署コード」）が属性定義２２２に記憶されていない場合、スキーマ拡張部１４が、属性定義２２２の属性名２２２ｃに追加し、宣言済フラグ２２２ｅを「偽」に設定する。これにより、通信端末は、新たな項目を随時データベースに追加できる。さらに、要求・応答部１１は、同じ通信端末から送信された拡張照会モードの照会要求を受け付け、受け付けた照会要求をスキーマ照会部１６に振り分ける。そして、スキーマ照会部１６は、照会要求に基づいて、宣言済フラグ２２２ｅが「真」である項目および「偽」である項目に対応する属性情報を照会し、照会結果を要求元の通信端末に通知する。これにより、通信端末は、照会結果を用いて「偽」である項目と「真」である項目を区別して何らかのアプリケーションを実行したりすることができる。そして、要求・応答部１１は、同じ通信端末から送信された、「担当部署コード」の宣言済フラグ２２２ｅを「真」に変更する変更要求を受け付け、受け付けた変更要求をスキーマ定義変更部１７に振り分ける。そして、スキーマ定義変更部１７は、「担当部署コード」の宣言済フラグ２２２ｅを「偽」から「真」に変更する。これにより、通信端末は、アプリケーションを実行した結果、「担当部署コード」を必要な項目と判断すれば、正式に定義することができる。また、通信端末は、遠隔でデータベースを管理することができる。
【００５１】
［実施例の効果］
上記実施例によれば、データ管理装置１は、データベースに対する更新要求を受け付けた際に、更新要求で指定された項目が、属性定義２２２に記憶された複数の項目に含まれるか否かを判定する。そして、データ管理装置１は、指定された項目が複数の項目に含まれないと判定された場合、属性定義２２２に、指定された項目を追加する。そして、データ管理装置１は、指定された項目に対応する、属性定義２２２に含まれる宣言済フラグ２２２ｅを、データベースの項目として承認済みの項目に対応する宣言済フラグ２２２ｅに設定された第１状態と異なる第２状態に設定する。かかる構成によれば、データ管理装置１は、指定された項目が属性定義２２２に含まれていなくても、当該項目を属性定義２２２に追加し、宣言済フラグ２２２ｅに承認済みの項目と異なる状態を設定するので、追加した項目を承認済みの項目と区別できる。この結果、データ管理装置１は、指定された項目が意図しない項目であっても、当該項目を判別することが可能となる。
【００５２】
また、上記実施例によれば、データ管理装置１は、データベースの属性情報２２２に対する照会要求を受け付けた際、以下の処理を行う。すなわち、データ管理装置１は、宣言済フラグ２２２ｅが第２状態である項目を含んで照会する照会モードである場合、第１状態である項目に加えて第２状態である項目の項目属性情報を出力する。かかる構成によれば、データ管理装置１は、仮に意図しない項目を更新要求してしまっても、第２状態である項目の項目属性情報を照会することで、意図しない項目を確認することができる。
【００５３】
また、上記実施例によれば、データ管理装置１は、所定の項目について、宣言済フラグ２２２ｅに対する変更要求を受け付けた際に、変更要求に応じて、設定されている状態を、当該設定されている状態と異なる状態に変更する。かかる構成によれば、データ管理装置１は、所定の項目の宣言済フラグ２２２ｅに対する変更要求に応じて、設定されている状態を変更するので、所定の項目に紐付くデータを、変更された状態に応じた意味合いに簡単に変更できる。一例として、データ管理装置１は、所定の項目についての宣言済フラグ２２２ｅが第２状態から第１状態に変更されれば、所定の項目に紐付くデータを、承認済みのデータに、簡単に変更できる。すなわち、データ管理装置１は、データを移行しなくても、フラグの操作のみで、宣言されていない項目を宣言（承認）済みの項目に変更することができる。別の例として、データ管理装置１は、所定の項目についての宣言済フラグ２２２ｅが第１状態から第２状態に変更されれば、所定の項目に紐付くデータを、未承認のデータに、簡単に変更できる。すなわち、データ管理装置１は、データを移行しなくても、フラグの操作のみで、宣言されていた項目を未宣言の項目に変更することができる。
【００５４】
［その他］
なお、データ管理装置１は、既知のパーソナルコンピュータ、ワークステーション等の装置に、上記したスキーマ検査部１２、スキーマ拡張部１４、スキーマ照会部１６およびスキーマ定義変更部１７等の各機能を搭載することによって実現することができる。
【００５５】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、スキーマ検査部１２とデータ追加・更新部１３とスキーマ拡張部１４とをそれぞれ１個の部として統合しても良い。一方、要求・応答部１１を、要求部と応答部とに分散しても良い。データ追加・更新部１３を、データ追加部とデータ更新部とに分散しても良い。また、記憶部２０をデータ管理装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【００５６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１に示したデータ管理装置１と同様の機能を実現するデータ管理プログラムを実行するコンピュータの一例を説明する。図７は、データ管理プログラムを実行するコンピュータの一例を示す図である。
【００５７】
図７に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【００５８】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、データ管理プログラム２０５ａおよびデータ管理関連情報２０５ｂを記憶する。
【００５９】
ＣＰＵ２０３は、データ管理プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、データ管理装置１の各機能部に対応する。データ管理関連情報２０５ｂは、データ記憶部２１、スキーマ定義体２２に対応する。そして、例えばリムーバブルディスク２１１が、データ管理プログラム２０５ａ等の各情報を記憶する。
【００６０】
なお、データ管理プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからデータ管理プログラム２０５ａを読み出して実行するようにしても良い。
【００６１】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【００６２】
（付記１）複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースを管理するコンピュータに、
前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別し、
前記指定された項目が前記複数の項目に含まれない場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する
処理を実行させることを特徴とするデータ管理プログラム。
【００６３】
（付記２）前記データベースの前記項目属性情報に対する照会要求を受け付けた際に、前記定義設定フラグが第２状態である項目を含んで照会する照会モードである場合、前記第１状態である項目に加えて前記第２状態である項目の項目属性情報を出力する
処理を実行させることを特徴とする付記１に記載のデータ管理プログラム。
【００６４】
（付記３）所定の項目について、前記定義設定フラグに対する変更要求を受け付けた際に、変更要求に応じて、設定されている状態を、当該設定されている状態と異なる状態に変更する
処理を実行させることを特徴とする付記１または付記２に記載のデータ管理プログラム。
【００６５】
（付記４）所定の項目について、前記定義設定フラグを前記第１状態に変更する変更要求を受け付けた場合、設定されている前記第２状態を、前記第１状態に変更する
処理を実行させることを特徴とする付記３に記載のデータ管理プログラム。
【００６６】
（付記５）所定の項目について、前記定義設定フラグを前記第２状態に変更する変更要求を受け付けた場合、設定されている前記第１状態を、前記第２状態に変更する
処理を実行させることを特徴とする付記３に記載のデータ管理プログラム。
【００６７】
（付記６）複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースと、
前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別する判別部と、
前記判別部によって前記指定された項目が前記複数の項目に含まれないと判別された場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する設定部と、
を有することを特徴とするデータ管理装置。
【００６８】
（付記７）複数の項目を有し、前記複数の項目それぞれが項目属性情報を有するデータベースのデータ管理方法であって、
コンピュータが、
前記データベースに対する更新要求を受け付けた際に、前記更新要求で指定された項目が、前記複数の項目に含まれるか否かを判別し、
前記指定された項目が前記複数の項目に含まれない場合、前記複数の項目に前記指定された項目を追加するとともに、前記指定された項目の前記項目属性情報に含まれる定義設定フラグを、前記データベースの項目として承認済みの項目の項目属性情報に含まれる定義設定フラグに設定された第１状態と異なる第２状態に設定する
処理を実行することを特徴とするデータ管理方法。
【符号の説明】
【００６９】
１  データ管理装置
１０  制御部
１１  要求・応答部
１２  スキーマ検査部
１３  データ追加・更新部
１４  スキーマ拡張部
１５  スキーマ管理部
１６  スキーマ照会部
１７  スキーマ定義変更部
２０  記憶部
２１  データ記憶部
２２  スキーマ定義体
２２１  テーブル定義
２２２  属性定義
【図１】
2015022575.tif 000003
【図２Ａ】
2015022575.tif 000004
【図２Ｂ】
2015022575.tif 000005
【図３Ａ】
2015022575.tif 000006
【図３Ｂ】
2015022575.tif 000007
【図４】
2015022575.tif 000008
【図５】
2015022575.tif 000009
【図６】
2015022575.tif 000010
【図７】
2015022575.tif 000011