(57)【要約】【課題】  階層構造データを高速で検索することができるデータ管理装置およびデータ管理方法を提供する。【解決手段】  本発明におけるデータ管理装置１は、階層構造を定義する複数の構造データ１５を格納する構造格納部１４と、前記各構造データ１５に対応する複数の値データ１３を格納するデータ格納部１２と、ユーザが入力した検索対象および検索条件に対応する前記値データ１３を検索する木検索部１７とを備え、前記値データ１３は、前記構造データ１５により定義された階層構造において、相互に親子の関係を有し、前記データ格納部１２は、前記複数の値データ１３に含まれる２以上の世代間において親子の関係を有するデータを一つの木として識別するための木ＩＤ１００３を格納し、前記木検索部１７は、木ＩＤ１００３を用い検索を行う。【選択図】      図８
2007079872.tif 000002
【特許請求の範囲】
【請求項１】
階層構造を定義する複数の構造データを格納する構造格納手段と、
前記各構造データに対応する複数の値データを格納するデータ格納手段と、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索手段とを備え、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記データ格納手段は、前記複数の値データに含まれる２以上の世代間において親子の関係を有するデータを一つの木として識別するための木ＩＤを格納し、
前記データ検索手段は、前記木ＩＤを用い検索を行う
ことを特徴とするデータ管理装置。
【請求項２】
前記複数の構造データは、
前記各構造データを一意に決定する構造ＩＤと、
前記各構造データの親データの構造ＩＤを示す親構造ＩＤとを有する
ことを特徴とする請求項１記載のデータ管理装置。
【請求項３】
前記複数の値データは、
前記各値データを一意に決定するデータＩＤと、
前記各値データの親データのデータＩＤを示す親データＩＤと、
前記各値データに対応する構造データが有する構造ＩＤとを有する
ことを特徴とする請求項２記載のデータ管理装置。
【請求項４】
前記データ検索手段は、
前記検索対象に対応する値データを取得し、
取得した各値データの木ＩＤを取得し、
取得した各木ＩＤを有する値データを絞り込み、
絞り込んだ値データに対し、前記検索条件で検索し、
前記検索された各値データの木ＩＤを有する値データを検索結果として出力する
ことを特徴とする請求項３記載のデータ管理装置。
【請求項５】
前記データ管理装置は、さらに、
ユーザが指定した情報を前記構造データおよび前記値データから照会するデータ照会手段を備え、
前記データ照会手段は、
前記ユーザが指定した情報に対応する第一の値データを取得し、
第一の値データの構造ＩＤを親構造ＩＤに持つ構造データを取得し、
前記取得した構造データの構造ＩＤを持つ１以上の値データを取得し、
第一の値データおよび前記１以上の値データから階層構造データを作成し、
前記作成された階層構造データを表示する
ことを特徴とする請求項３または４記載のデータ管理装置。
【請求項６】
同一の親データＩＤを有する値データは、同一の木ＩＤを有する
ことを特徴とする請求項５記載のデータ管理装置。
【請求項７】
前記データ管理装置は、さらに、
前記値データおよび前記構造データを編集する編集手段と、
前記編集手段により第一のユーザがデータの編集を行っている場合に、第二のユーザが編集を行えないように排他制御を行う排他制御手段とを備え、
前記排他制御手段は、排他制御をデータＩＤ単位で行う
ことを特徴とする請求項３、４、５または６記載のデータ管理装置。
【請求項８】
前記複数の値データには、他の値データの木ＩＤをデータ値とする値データが含まれ、
前記照会手段は、前記他の値データの木ＩＤをデータ値とする値データの照会結果として、前記木ＩＤを持つ値データのデータ値を参照し、出力する
ことを特徴とする請求項５または６記載のデータ管理装置。
【請求項９】
前記複数の構造データには、他の構造データとの関係を定義し、対応する値データをデータ格納部に有しない仮想型データが含まれ、
前記照会手段は、前記仮想型データの他の構造データとの関係の定義に従い、照会結果を出力する
ことを特徴とする請求項８記載のデータ管理装置。
【請求項１０】
前記仮想型データには、値データが他の値データから参照されている情報を定義する仮想型データが含まれ、
前記照会手段は、前記参照された値データが、前記参照した値データから参照されている情報を照会結果として出力する
ことを特徴とする請求項９記載のデータ管理装置。
【請求項１１】
階層構造を定義する複数の構造データを格納する構造格納ステップと、
前記各構造データに対応する複数の値データを格納するデータ格納ステップと、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索ステップとを備え、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記データ格納ステップは、前記複数の値データに含まれる２以上の世代間において親子の関係を有するデータを一つの木として識別するための木ＩＤを格納し、
前記データ検索ステップは、前記木ＩＤを用い検索を行う
ことを特徴とするデータ管理方法。
【請求項１２】
階層構造を定義する複数の構造データを格納する構造格納ステップと、
前記各構造データに対応する複数の値データを格納するデータ格納ステップと、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索ステップとを備え、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記データ格納ステップは、前記複数の値データに含まれる２以上の世代間において親子の関係を有するデータを一つの木として識別するための木ＩＤを格納し、
前記データ検索ステップは、前記木ＩＤを用い検索を行う
データ管理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１３】
データ管理方法のプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記プログラムは、
階層構造を定義する複数の構造データを格納する構造格納ステップと、
前記各構造データに対応する複数の値データを格納するデータ格納ステップと、
ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索ステップとを備え、
前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、
前記データ格納ステップは、前記複数の値データに含まれる２以上の世代間において親子の関係を有するデータを一つの木として識別するための木ＩＤを格納し、
前記データ検索ステップは、前記木ＩＤを用い検索を行う
ことを特徴とするコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理装置に関し、特に、データの階層構造を有するデータ管理装置および方法に関する。
【背景技術】
【０００２】
階層構造を有するデータの管理方法として、Ｅｘｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（ＸＭＬ）などで記述された階層構造データを管理する方法が知られている。例えば、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）およびＯＯＤＢ（Ｏｂｊｅｃｔ  Ｏｒｉｅｎｔｅｄ  Ｄａｔａｂａｓｅ）で管理する方法がある。
【０００３】
図３３は、階層構造データにおけるデータ構造の一例を示す図である。
同図において、各データは親と子の関係を有する。例えば、売上管理２２０１を親とすると、商品２２０２、顧客２２０３および売上２２０４が子となる。また、商品２２０２を親とすると、商品名２２０５および商品価格２２０６が子となる。さらに、売上管理２２０１を親とすると子である商品２２０２の子にあたる商品名２２０５および商品価格２２０６は孫となる。また、親と子との間は枝とよばれる線で結ばれる。
【０００４】
図３４は、図３３に示すデータ構造における商品２２０２、商品名２２０５および商品価格２２０６に対し、配置されるデータの値の一例を示した図である。図３４に示すように、商品２２０２に対し４つのデータである商品Ａ２３０１、商品Ｂ２３０２、商品Ｃ２３０３および商品Ｄ２３０４が設定される。商品Ａ２３０１の子データには、商品２２０２の子構造となる商品名２２０５に「ＡＡＡ」２３０５が設定され、商品価格２２０６に「３００００」２３０９が設定される。同様に、商品Ｂ２３０２の子データとして「ＢＢＢ」２３０６および「６００００」２３１０が設定される。商品Ｃ２３０３の子データとして「ＣＣＣ」２３０７および「２００００」２３１１が設定される。商品Ｄ２３０４の子データとして「ＡＢＣ」２３０８および「７００００」２３１２が設定される。このように、図３３に示す各データの構造に対し、図３４に示すように複数のデータが設定される。
【０００５】
このような階層データの管理方法として、階層データの階層構造の関係をテーブルとして表現する方法がある（例えば、特許文献１）。
【特許文献１】特開平１０−２４０７４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の階層データ管理方法では、複数の条件に対するデータの検索を行う場合に、最初の条件に対する検索結果から、次の検索を行う途中経過において、階層データの階層構造の関係を格納したテーブルから、毎回、対応するデータの関係を確認しなくてはならず、検索に時間がかかるという問題がある。
【０００７】
図３５は、従来の階層データ管理方法の検索動作のフローチャートである。例えば、図３３に示す階層構造データのデータ構造および図３４に示すデータの値において、１．商品名２２０５に「Ａ」がつき、２．商品価格２２０６が５００００円以上という二つの条件にあてはまる商品２２０２を検索する場合について説明する。
【０００８】
まず、上記検索条件１．および２．が入力される（Ｓ２１）。次に、商品名２２０５に該当する全てのデータを取得する（Ｓ２２）。すなわち、データ２３０５〜２３０８が取得される。取得されたデータ２３０５〜２３０８の中から「Ａ」のつくデータを取得する（Ｓ２３）。すなわち、「ＡＡＡ」２３０５および「ＡＢＣ」２３０８が取得される。さらに、検索条件２．で検索を行うために（Ｓ２４でＮｏ）、検索条件１．で絞り込まれたデータに対応する商品価格２２０６の構造に対応するデータを取得する（Ｓ２２）。すなわち、データ２３０９および２３１２が取得される。このとき、従来のデータ管理方法では、階層構造の関係を格納したテーブルと検索条件１．で絞り込まれたデータが持つ固有のＩＤとから対応する商品価格２２０６のデータを割り出す必要がある。次に、データ２３０９および２３１２からデータの値が５００００以上のデータを取得する（Ｓ２３）。すなわち、データの値が「７００００」であるデータ２３１２が取得される。前記二つの検索条件による検索が終了したので（Ｓ２４でＹｅｓ）、検索結果として、データ２３１２の親データである商品Ａ２３０１を表示する（Ｓ２５）。このときも、データ２３１２から商品Ａ２３０１を割り出すために、階層構造の関係を示すテーブルを用いる必要がある。このように、従来の階層データ管理方法は、検索を行う途中経過において、階層データの階層構造の関係を格納したテーブルから、対応するデータの関係を確認しなくてはならず、検索に時間がかかるという問題がある。
【０００９】
そこで、本発明は、階層構造データを高速で検索することができるデータ管理装置およびデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係るデータ管理装置は、階層構造を定義する複数の構造データを格納する構造格納手段と、前記各構造データに対応する複数の値データを格納するデータ格納手段と、ユーザが入力した検索対象および検索条件に対応する前記値データを検索するデータ検索手段とを備え、前記値データは、前記構造データにより定義された階層構造において、相互に親子の関係を有し、前記データ格納手段は、前記複数の値データに含まれる２以上の世代間において親子の関係を有するデータを一つの木として識別するための木ＩＤを格納し、前記データ検索手段は、前記木ＩＤを用い検索を行う。
【００１１】
これにより、木ＩＤをデータの検索に用いることで、前記値データのみから、ユーザの入力した検索対象および検索条件に対応したデータを高速に検索することができる。
【００１２】
また、前記複数の構造データは、前記各構造データを一意に決定する構造ＩＤと、前記各構造データの親データの構造ＩＤを示す親構造ＩＤとを有する。
【００１３】
また、前記階層値データは、前記複数の値データは、前記各値データを一意に決定するデータＩＤと、前記各値データの親データのデータＩＤを示す親データＩＤと、前記各値データに対応する構造データが有する構造ＩＤとを有する。
【００１４】
これにより、前記構造データを変更するだけで簡単にデータの構造を変更することができる。よって、前記データ管理装置は、特定のデータ構造を持つデータ管理にのみ用いるのでなく、汎用的に、広い用途のデータ管理に使用することができる。また、値データに構造ＩＤ９０１が含まれることにより、値データに対応する構造データの情報が含まれる。これにより、値データは、構造データにより定義される構造に対応するデータであることが保障される。すなわち、ユーザが誤って構造に対応しないデータを配置することを防止することができる。
【００１５】
また、前記データ検索手段は、前記検索対象に対応する値データを取得し、取得した各値データの木ＩＤを取得し、取得した各木ＩＤを有する値データを絞り込み、絞り込んだ値データに対し、前記検索条件で検索し、前記検索された各値データの木ＩＤを有する値データを検索結果として出力する。
【００１６】
これにより、木ＩＤ単位で検索結果を出力するので、検索結果から、直ちに有効な情報を含むデータの一覧を出力することができる。
【００１７】
また、前記データ管理装置は、さらに、ユーザが指定した情報を前記構造データおよび値データから照会するデータ照会手段を備え、前記データ照会手段は、前記ユーザが指定した情報に対応する値データに含まれる第一の値データを取得し、第一の値データの構造ＩＤを親構造ＩＤに持つ構造データを取得し、前記取得した構造データの構造ＩＤを持つ１以上の値データを取得し、第一の値データおよび前記１以上の値データから階層構造データを作成し、前記作成された階層構造データを表示する。
【００１８】
また、同一の親データＩＤを有する値データは、同一の木ＩＤを有する。
これにより、同じ親をもつ値データは、同一の木ＩＤが設定されるので、前記データ照会手段は、親データから子データを照会する時に、木ＩＤの変化を監視せずに、構造ＩＤの変化のみを監視すればよい。よって、データ照会部の処理量は減少し、照会動作が高速に処理できる。
【００１９】
また、前記データ管理装置は、さらに、前記値データおよび前記構造データを編集する編集手段と、前記編集手段により第一のユーザがデータの編集を行っている場合に、第二のユーザが編集を行えないように排他制御を行う排他制御手段とを備え、前記排他制御手段は、排他制御をデータＩＤ単位で行う。
【００２０】
また、前記複数の値データには、他の値データの木ＩＤをデータ値とする値データが含まれ、前記照会手段は、前記他の値データの木ＩＤをデータ値とする値データの照会結果として、前記木ＩＤを持つ値データのデータ値を参照し、出力する。
【００２１】
これにより、木ＩＤを用いることで、従来のように複数のテーブルまたは結合文を用いなくても、簡単に他のデータを参照することができる。
【００２２】
また、前記複数の構造データには、他の構造データとの関係を定義し、対応する値データをデータ格納部に有しない仮想型データが含まれ、前記照会手段は、前記仮想型データの他の構造データとの関係の定義に従い、照会結果を出力する。
【００２３】
これにより、データ格納部には実際に格納していない情報を表示することができ、格納するデータの削減をすることができる。
【００２４】
また、前記仮想型データには、値データが他の値データから参照されている情報を定義する仮想型データが含まれ、前記照会手段は、前記参照された値データが、前記参照した値データから参照されている情報を照会結果として出力する。
【００２５】
これにより、データ格納部には実際に格納していない、データが他のデータから参照されている情報を表示することができ、格納するデータの削減をすることができる。
【００２６】
なお、本発明は、このようなデータ管理装置として実現することができるだけでなく、データ管理装置に含まれる特徴的な手段をステップとするデータ管理方法として実現したり、そのような特徴的なステップをコンピュータに実行さえるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００２７】
本発明は、階層構造データを高速で検索するデータ管理装置および方法を提供することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係るデータ管理装置の実施の形態について、図面を参照しながら詳細に説明する。
【００２９】
（実施の形態１）
まず、本実施の形態におけるデータ管理装置の構成を説明する。
【００３０】
図１は、本実施の形態におけるデータ管理装置を含むデータ管理システムの構成を示す図である。
【００３１】
図１に示すデータ管理システム５は、階層構造データのデータ管理を行うシステムであり、データ管理装置１と、ユーザ端末２および３と、ネットワーク４とを備える。
【００３２】
データ管理装置１は、ネットワーク４を介し、ユーザ端末２および３と接続される。
複数のユーザ端末２および３より、データ管理装置１にアクセスが行われる。
【００３３】
図２は、データ管理装置１のブロック構成を示す図である。
データ管理装置１は、階層構造データの照会、検索および編集等を行う装置であり、ＩＯ制御部１０と、ユーザ認証部１１と、データ格納部１２と、構造格納部１４と、データ照会部１６と、木検索部１７と、データ編集部１８と、構造編集部１９と、排他制御部２０とを備える。
【００３４】
ＩＯ制御部１０は、ネットワーク５を介してユーザ端末２より行われるアクセスの制御、および、ネットワーク５を介してユーザ端末２へのデータの出力を制御する通信インターフェイス等である。
【００３５】
ユーザ認証部１１は、データ管理装置１にアクセスしてきたユーザの認証を行う。
データ格納部１２は、階層構造データのデータ値を定義する値データ１３を格納するハードディスク等である。
【００３６】
構造格納部１４は、階層構造データの構造を定義する構造データ１５を格納するハードディスク等である。
【００３７】
データ照会部１６は、データ格納部１２および構造格納部１４に格納されている値データ１３および構造データ１５から、階層構造データを形成し、ＩＯ制御部１０に出力する。
【００３８】
木検索部１７は、データ格納部１２および構造格納部１４に格納されている値データ１３および構造データ１５から、特定のデータを検索し、データ照会部１６に出力する。
【００３９】
データ編集部１８は、データ格納部１２に格納されている値データ１３を編集する。
構造編集部１９は、構造格納部１４に格納されている構造データ１５を編集する。
【００４０】
排他制御部２０は、データ編集部１８および構造編集部１９で値データ１３および構造データ１５の編集が行われているか否かを監視する。また、値データ１３および構造データ１５の編集が行われている場合には、排他制御部２０は、編集を行っているユーザとは別のユーザが、編集が行われているデータの編集を行えないようにする。
【００４１】
次に本実施の形態におけるデータ管理装置１の格納する階層構造データのデータ形式について説明する。
【００４２】
図３は、構造データ１５における親と子との関係の一例を示す図である。
図３に示すように、例えば、親である売上３０の下の階層に、売上日付３１、顧客３２および合計金額３３の３つの子が構成されている。以下、図３に示すような階層構造データにおける親と子からなるデータ構成を木構造定義と呼ぶ。
【００４３】
図４は、図３に示した木構造定義に従い、格納される実際の情報を示した図である。
図４に示すように、例えば、図３で示した売上３０の値として「売上Ａ」４１が設定され、売上日付３１の値として「２００５／７／１０」４２が設定され、顧客３２の値として「山本太郎」４３が設定され、合計金額３２の値として「５００００」４４が設定されている。以下、図４に示すような、木構造定義に従い格納される実際の情報を木構造データと呼ぶ。
【００４４】
木構造データは、一つの木構造定義に対して複数個設定できる。図５は、図３に示した木構造定義に従い、３つの木構造データが設定された例を示す図である。以下、図５に示すような一つの木構造定義に従い設定された、複数の情報を林構造データと呼ぶ。すなわち、林構造データは、木構造データの集合である。
【００４５】
図６は、構造データ１５におけるデータ構造の一例を示す図である。
図６に示すように、一つの根（ｒｏｏｔ）である売上管理６０に対し、商品６１、顧客６２および売上６３が子として設定されている。また、商品６１を親とすると、商品名６４および商品価格６５が子として設定されている。ここで、商品６１、商品名６４および商品価格６５は、木構造定義７７を形成している。同様に、顧客６２、顧客名６６、顧客住所６７および売上履歴６８は、木構造定義７８を形成している。このように、複数の木構造定義の集まりとして階層構造が形成される。以下、図６に示すような、木構造定義の集まりを森構造定義と呼ぶ。
【００４６】
図７は、図６に示す森構造定義に従い、格納される実際の情報を示した図である。
図７に示すように、各木構造に従い、林構造データが設定される。例えば、図６に示す木構造定義７７の商品６１に対し「ＳＨ−００Ａ」が設定され、商品名６４に対し「商品Ａ」が設定され、商品価格６５に対し「５０００００」が設定されている。以下、図７に示すように、森構造定義に従い、格納される情報を森構造データと呼ぶ。
【００４７】
データ管理装置１は、森構造定義および森構造データを格納することで、階層構造データを管理する。森構造定義は、構造格納部１４の構造データ１５として格納される。森構造データはデータ格納部１２の値データ１３として格納される。
【００４８】
以下、構造格納部１４に格納される構造データ１５のデータ形式について説明する。
図９は、構造データ１５の一例を示す図である。
【００４９】
構造データ１５は、構造ＩＤ９０１と、親構造ＩＤ９０２と、構造名９０３と、構造型９０４と、構造区分９０５と、定義情報９０６とを有する。
【００５０】
構造ＩＤ９０１は、各データの構造を一意に特定するＩＤであり、各データの構造ごとに個別の構造ＩＤ９０１が設定される。
【００５１】
親構造ＩＤ９０２は、各データの構造の親にあたるデータの構造の構造ＩＤ９０１である。親構造ＩＤ９０２には、既に構造格納部１４に構造データ１５として格納されている構造ＩＤ９０１を指定しなければならない。また、最上層のデータの構造は、親構造ＩＤ９０２を持たない。
【００５２】
構造名９０３は、各データの構造の名前が設定される。
構造型９０４は、各データの構造の型を示し、以下に示す３つの構造型９０４に分類される。
【００５３】
１．木構造の親にあたるデータの構造の型であり、対応する情報はデータ格納部１２に
値データ１３として格納される（以下、「林型」と呼ぶ。）。
２．対応する情報はデータ格納部１２に値データ１３として格納されず、データ照会部
１６において作成される（以下、「仮想型」と呼ぶ。）。例えば、数式および他の
データから参照されている情報など。
３．上記１．および２．以外の型で、対応する情報はデータ格納部１２に値データ１３
として格納される（以下、「値型」と呼ぶ。）。例えば、テキストおよび数値など
。
【００５４】
構造区分９０５は、構造型９０４の構造の区分を示す。構造型９０４が「値型」の構造は以下の４つの構造区分９０５に分類される。
【００５５】
１．「ルート」：森構造データの最上階層のデータ構造（一番上の根部分）であり、構
造およびデータは１つしか存在しない。また、構造区分９０５が「ルート」の構造
は、親構造を持たない。構造区分９０５が「ルート」の構造は、構造型９０４が「
値型」、「林型」および「仮想型」の子構造を設定することができる。
２．「フィールド」：子構造を設定できる。構成区分９０５が「フィールド」の構造に
対応するデータは、親データに対し複数のデータを設定することができる。
３．「レコードリンク」：他の構造に対応するデータの参照を設定できる。構造区分９
０５が「レコードリンク」の構造は、参照する構造の構造ＩＤ９０２を設定する。
また、子構造を設定できない。
４．「ディレクトリ」：構造型９０４が「値型」および「仮想型」の子構造を設定でき
る。構成区分が「ディレクトリ」の構造に対応するデータは、１個のみ設定できる
。
【００５６】
また、構造型９０４が「林型」の構造は以下の構造区分９０５が設定される。
【００５７】
１．「レコード」：構造型９０４が「値型」、「林型」および「仮想型」の子構造を設
定できる。構造区分９０５が「レコード」の構造に対応するデータは、親データに
対し複数のデータを設定することができる。
【００５８】
また、構造型９０４が「仮想型」の構造は以下の３つの構造区分９０５に分類される。
【００５９】
１．「被レコードリンク」：構造区分９０５が「レコードリンク」の構造より、参照さ
れていることを設定する。自身の構造に対応するデータを参照している構造の構造
ＩＤ９０１が設定される。
２．「祖先データ」：自身の祖先データ（親データ、および、親データの親データ等）
を表示することができる。構造区分９０５が「祖先データ」の構造は、祖先構造の
構造ＩＤ９０１が設定される。
３．「計算フィールド」：設定された計算式の計算結果を表示する。計算式には数値デ
ータをデータとして設定されている構造の構造ＩＤが設定される。
【００６０】
定義情報９０６は、親データに対する、最小発生回数、最大発生回数、データ種類（例えば、文字、数値、日付、画像等のバイナリファイル。）、仮想型の表示内容（例えば、数式および他のデータからの参照。）およびセキュリティ情報等の関連情報が設定される。
【００６１】
定義情報９０６に設定される最小発生回数および最大発生回数は、親データに設定される子データの数が定義される。すなわち、最小発生回数は、そのデータ構造を持つ値データ１３が、親データに対して存在しなければならない最小の数が定義される。最大発生回数は、そのデータ構造を持つ値データ１３が、親データに対して存在しなければならない最大の数が定義される。例えば、図１０に示す木構造では、「名前」８２に最小発生回数＝１、最大発生回数＝１が定義されている。これにより、「顧客」８１にデータが設定された場合、必ず名前８２にデータを設定しなくてはならない。また、２個以上のデータを設定してもいけない。また、拠点８３に最小発生回数＝０、最大発生回数＝３が設定されている。これにより、「顧客」８１にデータが設定された場合でも、拠点８３に対応するデータを設定しなくともよい。また、拠点８３に対応するデータを３個まで設定してもよい。図１１は、示す図１０に示す木構造に対応する木構造データの一例を示す図である。例えば、図１１に示す木構造データ９１では、「名前」８２に「山本太郎」が設定され、「拠点」８３にデータが設定されていない。木構造データ９２では、「名前」８２に「山本太郎」が設定され、「拠点」８３に「自宅」が設定されている。木構造データ９３では、「名前」８２に「山本太郎」が設定され、「拠点」８３に二つのデータ「自宅」および「勤務先」が設定されている。このように、定義情報９０６に最小発生回数および最大発生回数を設定することで、ユーザが誤って構造に合わないデータを設定してしまうことを防止することができる。
【００６２】
次に、データ格納部１２に格納される値データ１３のデータ形式について説明する。
図１２は、値データ１３の一例を示す図である。
【００６３】
値データ１３は、データＩＤ１００１と、親データＩＤ１００２と、構造ＩＤ９０１と、木ＩＤ１００３と、値１００４とを有する。
【００６４】
データＩＤ１００１は、各データを一意に特定するＩＤであり、各データに個別のデータＩＤ１００１が設定される。
【００６５】
親データＩＤ１００２は、各データの親にあたるデータのデータＩＤ１００１である。親データＩＤ１００２には、既にデータ納部１２の値データ１３として格納されているデータのデータＩＤ１００１を指定しなければならない。また、最上層のデータは、親データＩＤ１００２をもたない。
【００６６】
構造ＩＤ９０１は、構造格納部１４に格納されている構造データ１５の構造ＩＤ９０１である。ここでは、各データに対応する構造の構造ＩＤ９０１が設定される。値データ１３の構造ＩＤ９０１には、構造型９０４が仮想型の構造の構造ＩＤ９０１は指定できない。
【００６７】
木ＩＤ１００３は、２以上の世代間において親子の関係を有するデータを一つの木として識別するためのＩＤである。すなわち、親データ、子データ、孫データおよび子孫にあたるデータのうち特定の世代のデータを一つの木として認識するためのＩＤである。木ＩＤ１００３は、各データの構造の構造型９０４が林型である場合は、データ格納部１２の値データ１３に既に設定されていない新しいＩＤが設定される。各データの構造の構造型９０４が林型以外である場合は、木ＩＤ１００３に親データの木ＩＤ１００３が設定される。すなわち、子構造を有する構造の構造型９０４を値型または林型に設定することで、同一の木ＩＤ１００３が設定されるデータの範囲を設定することができる。例えば、図８に示すように、階層構造データに木ＩＤ１００３が設定される。図中の数字は各データに設定された木ＩＤ１００３を示す。
【００６８】
値１００４は、各データに格納される実際のデータ値である。値１００４には、文字、数値、日付、画像等のバイナリファイルおよび他のデータの木ＩＤ１００３等が設定される。
【００６９】
このように、本実施の形態におけるデータ管理装置１は、値データ１３および構造データ１５の二つのデータを持つ。これにより、構造データ１５を変更するだけで簡単にデータの構造を変更することができる。従来のデータ管理装置では、情報の形態が変化した場合には、関係するデータベースの格納定義情報を変更しなくてはならない。すなわち、関連する列定義情報を示すテーブルを書き換える必要がある。一方、本実施の形態におけるデータ管理装置１では、図９に示す構造データ１５に、データを一行付け足すだけで、データの構造を付け足すことができる。すなわち、簡単にデータの構造を変更することができる。これにより、本実施の形態におけるデータ管理装置１は、特定のデータ構造を持つデータ管理にのみ用いるのでなく、汎用的に、広い用途のデータ管理に使用することができる。
【００７０】
また、値データ１３には、構造ＩＤ９０１が含まれる。すなわち、値データ１３には、対応する構造データ１５の情報が含まれる。これにより、値データ１３は、構造データ１５により定義される構造に対応するデータであることが保障される。従来のデータ管理装置では、意図しないデータが格納されてしまうことがある。例えば、図３４に示すように、商品Ａ２３０１の子データとしてデータの構造である商品名２２０５に対応する「ＡＡＡ」２３０５が配置されている。従来のデータ管理装置は、商品名２２０５に対応するデータとして、例えば、顧客名Ａといった関係のないデータが配置されてしまう可能性がある。一方、本実施の形態におけるデータ管理装置１は、値データ１３に対応する構造データ１５の情報が含まれるので、構造に対応しないデータが配置されない。すなわち、ユーザが誤って構造に対応しないデータを配置することを防止することができる。
【００７１】
また、同時に多数のユーザが情報の修正を行う場合、あるユーザがデータの一部を修正中には、他のユーザがそのデータの修正をできないように、排他制御を行う必要がある。値データ１３の各データは、データＩＤ１００１、構造ＩＤ９０１および木ＩＤ１００３の３つのＩＤを持つ。これにより、排他制御部２０は、データＩＤ１００１単位、構造ＩＤ９０１単位および木ＩＤ単位１００３で排他制御を行うことができる。つまり、目的にあった単位で排他制御を行うことができる。よって、従来に比べ排他制御を容易に行うことができる。
【００７２】
次に本実施の形態におけるデータ管理装置１による階層データの照会動作について説明する。
【００７３】
図１３は、データ管理装置１に格納されている階層データの照会動作のフローチャートである。
【００７４】
まず、ユーザ端末２からネットワーク５を介してデータ管理装置１のＩＯ制御部１０にアクセスが行われる（Ｓ１）。
【００７５】
ユーザのアクセスに対し、ユーザ認証部１１によりユーザの認証が行われる（Ｓ２）。例えば、入力されたユーザＩＤおよびパスワードとユーザ認証部１１が格納しているユーザデータとを比較することで、ユーザの認証を行う。また、ユーザ認証部１１は、ユーザデータより、ユーザの属するグループを判定し、ユーザが照会または編集可能なデータの情報をデータ照会部１６、データ編集部１８および構造編集部１９に送る。
【００７６】
図１４にユーザ認証部１１が格納しているユーザデータの一例を示す。ユーザデータは、ユーザ名１４０１と、パスワード１４０２と、グループ１４０３とを有する。例えば、図１４に示すように、ユーザデータ１４０４にはユーザ名１４０１として「ｔａｎａｋａ」、パスワード１４０２として「２１８１」が設定される。また、グループ１４０３として「システム管理者」が設定されており、例えば、ユーザ「ｔａｎａｋａ」には、全データの照会および編集が許可される。また、ユーザデータ１４０５のグループ１４０３は「グループＡユーザ」が設定されており、例えば、グループＡに属するデータの照会および値データ１３の編集が許可される。ユーザデータ１４０６のグループ１４０３には、「グループＢ管理者」が設定されており、例えば、グループＢに属するデータの照会、値データ１３の編集および構造データ１５の編集が許可される。また、どのグループ１４０３に属するユーザがどの値データ１３および構造データ１５を照会または編集できるかは、構造データ１５の定義情報９０６にセキュリティ情報として格納される。
【００７７】
正規のユーザでない場合（Ｓ２でＮｏ）、アクセスは拒否される。
正しいユーザＩＤおよびパスワードが入力されると（Ｓ２でＹｅｓ）、アクセスが許可される。図１５は、データ管理装置１のトップページ画面の一例を示す図である。
【００７８】
ユーザにより照会されるデータのデータＩＤ１００１が入力される（Ｓ３）。例えば、データＩＤ１００１の入力は、Ｗｅｂページ上で、対応する項目をクリックすることで入力される。ここでは、データＩＤ＝１４−５が入力された場合について説明する。また、図１２に示す値データ１３が、データ格納部１２に格納されているとする。図９に示す構造データが、構造格納部１４に格納されているとする。この場合、例えば、図１５に示すトップページ画面において、受注１２０１がクリックされる。
【００７９】
データ照会部１６は、入力されたデータＩＤ＝１４−５に対応するデータ１００５をデータ格納部１２から取得する（Ｓ４）。
【００８０】
データ照会部１６は、データ１００５の構造ＩＤ９０１がＳ１４であるので、親構造ＩＤ９０３がＳ１４となるデータの構造９０７、９０８および９０９を構造格納部１４から取得する（Ｓ５）。
【００８１】
データ照会部１６は、取得したデータの構造９０７、９０８および９０９の構造型９０４が仮想型であるか否かを判定する（Ｓ６）。
【００８２】
取得したデータの構造９０７および９０８の構造型９０４は値型であり、データの構造９０９の構造型９０４は林型であるので（Ｓ６でＮｏ）、データ照会部１６は、構造９０７、９０８および９０９の各構造ＩＤ９０１に対応するデータをデータ格納部１２から取得する。すなわち、データ照会部１６は、構造９０７の構造ＩＤ９０１がＳ１４１なので、構造ＩＤ９０１にＳ１４１をもつデータ１００６をデータ格納部１２から取得する。また、データ照会部１６は、構造９０８の構造ＩＤ９０１がＳ１４２なので、構造ＩＤ９０１にＳ１４２をもつデータ１００７をデータ格納部１２から取得する。また、データ照会部１６は、構造９０９の構造ＩＤ９０１がＳ１４３なので、構造ＩＤ９０１にＳ１４３をもつデータ１００８および１００９を取得する（Ｓ７）。
【００８３】
データ照会部１６は、ステップＳ４で取得したデータ１００５の一階層下に、ステップＳ７で取得したデータ１００６、１００７、１００８および１００９を配置する。これにより、図１６に示す階層構造データが作成される（Ｓ８）。
【００８４】
次に階層構造データの全データが取得されたか否かを判定する（Ｓ９）。データ１００８および１００９は、子データを持っているので（Ｓ９でＮｏ）、データ照会部１６は、データ１００８のデータＩＤ１００１＝１４３−６を入力データＩＤとしてステップＳ３〜Ｓ５の処理を行う。データ照会部１６は、ステップＳ５においてデータ１００８の構造ＩＤ９０１＝Ｓ１４３を親構造ＩＤ９０２にもつデータの構造９１０、９１１、９１２および９１３を取得する。
【００８５】
取得されたデータの構造９１０、９１１および９１２の構造型９０４は値型であるので（Ｓ６でＮｏ）、データ照会部１６は、データの構造９１０、９１１および９１２の構造ＩＤ９０１であるＳ１４３２、Ｓ１４３３、Ｓ１４３４と同一の構造ＩＤ９０１をもつデータ１０１０〜１０１５を取得する。
【００８６】
ここで、データの構造９０８は、構造区分９０５が「レコードリンク」であり、定義情報９０６として「Ｓ１３の木ＩＤ」が設定されている。また、データの構造９０８に対応するデータ１００７の値１００４は「Ｔ３」が設定されている。このように、他のデータの木ＩＤ１００３を値１００４に設定することで、他のデータを参照することができる。すなわち、データ１００７にはデータ１０１６の値１００４である「ＫＫ−００Ａ」が参照される。また、木ＩＤ１００３＝Ｔ３であり、データ１０１６の一下層に配置されているデータ１０１７および１０１８も、データ１００７から参照することができる。同様に、データの構造１４３１は、構造区分９０５が「レコードリンク」であり、定義情報９０６として「Ｓ１２の木ＩＤ」が設定されている。また、データの構造１４３１に対応するデータ１０１０および１０１３の値１００４は「Ｔ１」および「Ｔ２」である。よって、データ１０１０には、木ＩＤ１００３＝Ｔ１であるデータ１０１９〜１０２１が参照される。データ１０１３には、木ＩＤ１００３＝Ｔ２であるデータ１０２２〜１０２４が参照される。このように、データ管理装置１は、木ＩＤ１００３を用いることで、従来のように複数のテーブルまたは結合文を用いなくても、簡単に他のデータを参照することができる。
【００８７】
ステップＳ５で取得されたデータの構造９１３の構造型９０４は仮想型であるので（Ｓ６でＹｅｓ）、データ照会部１６は、データの構造９１３の定義情報に従いデータを作成する。データ照会部１６は、構造９１３の構造区分９０５が「計算フィールド」であるので、定義情報９０６に設定された数式の計算結果を出力する。すなわち、データ照会部１６は、データの構造９１３の定義情報９０６であるＳ１４３２×Ｓ１４３３に、構造ＩＤ９０１＝Ｓ１４３２をもつデータ１０１１の値１００４＝３、および、構造ＩＤ９０１＝Ｓ１４３３をもつデータ１０１２の値１００４＝４５００００を代入する。これにより、データ照会部１６は、データの構造９１３の値１００４＝３×４５００００＝１３５００００を作成する。同様に、データの構成９１３の定義情報であるＳ１４３２×Ｓ１４３３に、構造ＩＤ９０１＝Ｓ１４３２をもつデータ１０１４の値１００４＝４、および、構造ＩＤ９０１＝Ｓ１４３３をもつデータ１０１５の値１００４＝３０００００を代入する。これにより、データ照会部１６は、データの構造９１３の値１００４＝３×４５００００＝１２０００００を作成する（Ｓ１０）。このように、構造型９０４が仮想型であり、構造区分９０５が「計算フィールド」のデータの構造を用いることで、データ格納部１２に格納される値データ１３にデータを格納しなくても、構造データ１５に数式を設定するだけで、照会時には数式の算出結果として値を表示することができる。これにより、データ格納部１２に格納される値データ１３のデータ量を削減することができる。
【００８８】
データ照会部１６は、ステップＳ５で取得したデータの構造９１０〜９１３にＳ７で取得したデータ１０１０〜１０１５、および、Ｓ１０で作成した仮想型データの値を配置する。これにより、図１７に示す階層構造が作成される（Ｓ８）。
【００８９】
階層構造データの全てのデータが配置されたので（Ｓ９でＹｅｓ）、処理を終了する。ステップＳ８で作成された階層構造データは、ＩＯ制御部１０およびネットワーク５を介してユーザ端末２に照会結果として表示される。例えば図１８に示すようなＷｅｂページの画面が表示される。
【００９０】
上記照会動作の説明において、仮想型のデータとして、データの構造９１３のように数式が定義されているデータを説明したが、これ以外に、データが他のデータから参照されていることを示す仮想型のデータがある。例えば、図９に示すデータの構造９１４は、構造型９０４が仮想型で構造区分９０５が「被レコードリンク」であり、定義情報９０６に「Ｓ１４２が自身を示すもの」と設定されている。構造ＩＤ９０１＝Ｓ１４２であるデータの構造９０８は、構造区分９０５が「レコードリンク」であり、定義情報に「Ｓ１３の木ＩＤ」が設定されている。また、データの構造９１４の親構造であるデータの構造９１５は、構造ＩＤ９０１＝Ｓ１３である。すなわち、構造区分９０５が「被レコードリンク」であるデータの構造９１４の親構造にあたるデータの構造９１５は、データの構造９０８から参照されている。よって、データの構造９１４は、親構造９１５を参照しているデータの構造９０８に対応するデータ１００７の情報から、親構造９１５がどのデータから参照されているかを判定することができる。例えば、データ１００６の木ＩＤ１００３＝Ｔ５であるので、自身の木ＩＤ１００３＝Ｔ３が、木ＩＤ１００３＝Ｔ５から参照されていることが分かる。このように構造型９０４が仮想型で構造区分９０５が「被レコードリンク」のデータの構造を用いることにより、自身の親データおよび自身の親データと同一の木ＩＤ１００３を持つデータがどのデータから参照されているかを表示することができる。これにより、データ格納部１２に格納されている値データ１３にデータを作成しなくても、構造データ１５にどの構造から参照されているかを設定することで、自身の親データおよび自身の親データと同一の木ＩＤ１００３を持つデータがどのデータから参照されているかを表示することができる。これにより、データ格納部１２に格納される値データ１３のデータ量を削減することができる。
【００９１】
次に、本実施の形態におけるデータ管理装置１の検索動作について説明する。
図１９は、本実施の形態におけるデータ管理装置１の検索動作のフローチャートである。
【００９２】
本実施の形態におけるデータ管理装置１の検索動作は、データ格納部１２に対し検索対象および検索条件に一致するデータの木ＩＤ１００３を取得する。これにより、木検索部１７は、データ格納部１２に対し単純な検索命令の組み合わせで処理することができるので、検索を高速で行うことができる。
【００９３】
図２０は、データ格納部１２に格納される値データ１３の一例を示す図である。
以下、図２０に示す値データ１３の検索について説明する。なお、図９に示す構造データ１５が、構造格納部１４に格納されているとする。
【００９４】
ユーザにより、検索対象および検索条件が入力される（Ｓ１１）。例えば、検索対象は商品とする。また、検索条件は、商品価格が４０００００以上、および、商品名に「Ａ」が含まれるとする。
【００９５】
木検索部１７は、図２０に示す値データ１３から、検索対象である商品のデータを取得する（Ｓ１２）。すなわち、商品の構造ＩＤ９０１＝Ｓ１２であるので、図２１に示すように構造ＩＤ９０１＝Ｓ１２であるデータ１７０１、１７０４、１７０７、１７１０、１７１３、１７１６、１７１９および１７２２を取得する。
【００９６】
木検索部１７は、取得したデータ１７０１、１７０４、１７０７、１７１０、１７１３、１７１６、１７１９および１７２２の木ＩＤ１００３＝Ｔ１〜Ｔ８を取得する。木検索部１７は、図２０の値データ１３に対し、取得した木ＩＤ１００３＝Ｔ１〜Ｔ８に対応したデータ１７０１〜１７２４を取得する（Ｓ１３）。
【００９７】
木検索部１７は、取得したデータ１７０１〜１７２４のなかで、検索条件である値＝４０００００以上の商品価格のデータを取得する（Ｓ１４）。すなわち、木検索部１７は、商品価格の構造ＩＤ９０１＝Ｓ１２２であるので、構造ＩＤ９０１＝Ｓ１２２であるデータ１７０３、１７０６、１７０９、１７１２、１７１５、１７１８、１７２１および１７２４を取得する。さらに、木検索部１７は、図２２に示すように、データ１７０３、１７０６、１７０９、１７１２、１７１５、１７１８、１７２１および１７２４のなかで、値が４０００００以上のデータ１７０３、１７０９、１７１８および１７２１を取得する。
【００９８】
木検索部１７は、Ｓ１１で入力された検索条件に対し全ての条件で検索が行われたか否かを判定する（Ｓ１５）。この場合（Ｓ１５でＮｏ）、続いて商品名に「Ａ」が含まれる商品という検索条件で検索がおこなわれる。
【００９９】
木検索部１７は、商品価格が４０００００以上の条件で絞り込まれた図２２に示すデータ１７０３、１７０９、１７１８および１７２１の木ＩＤ１００３であるＴ１、Ｔ３、Ｔ６およびＴ７を取得する。木検索部１７は、図２０に示す値データ１３に対し、取得した木ＩＤ１００３であるＴ１、Ｔ３、Ｔ６およびＴ７に対応したデータ１７０１〜１７０３、１７０７〜１７０９および１７１６〜１７２１を取得する（Ｓ１３）。
【０１００】
木検索部１７は、取得したデータ１７０１〜１７０３、１７０７〜１７０９および１７１６〜１７２１のなかで、商品名の構造ＩＤ９０１＝Ｓ１２１と同じ構造ＩＤ９０１であるデータ１７０２、１７０８、１７１７および１７２１を取得する。さらに、木検索部１７は、図２３に示すように、データ１７０２、１７０８、１７１７および１７２１のなかで、値に「Ａ」を含むデータ１７０２および１７２０を取得する（Ｓ１４）。
【０１０１】
このように、木検索部１７は、ステップＳ１３において、木ＩＤ１００３による絞込みを行った後に、ステップＳ１４で検索条件での検索を行う。これにより、一度目の検索で絞り込まれたデータに対応する二度目の検索条件の構造をもつデータを、木ＩＤ１００３および構造ＩＤ９０１から簡単に絞り込むことができる。よって、木検索部１７は、複数の検索条件に対し高速で検索を行うことができる。また、上述した検索動作の例では、検索条件は２種類であるが、検索条件の項目数が増えれば、データ管理装置１は、より効果的に検索を行うことができる。
【０１０２】
ステップＳ１１で入力された検索条件の全てに対しデータ絞込みが終了したので（Ｓ１５でＹｅｓ）、木検索部１７は、検索結果をデータ照会部１６に出力する。データ照会部１６は、検索結果に対応するデータを照会し、ＩＯ制御部１０およびネットワーク５を介し、ユーザ端末２に出力する（Ｓ１６）。図２４は、データ管理装置１の検索結果の出力表示画面の一例を示した図である。図２４に示すように、検索結果は、図２３に示すデータ１７０２および１７２０の木ＩＤ１００３であるＴ１およびＴ７の商品として表示される。すなわち、木ＩＤ１００３単位で、データ１７０１および１７１９と、データ１７０１およびデータ１７１９の各子データ１７０２、１７０３、１７２０および１７２１とが表示される。このように木検索部１７は、木ＩＤ１００３単位で検索結果を出力するので、検索結果から、直ちに有効な情報を含むデータの一覧を出力することができる。
【０１０３】
上述した説明では、検索結果として出力されたデータは、２世代の親子関係を有する（親データと子データとのみからなる）データに同一の木ＩＤ１００３が設定されている。しかし、データの種類によっては、親データと子データのみを検索結果として出力しても十分な情報を出力できない場合がある。
【０１０４】
図２５および図２６は、構造データ１５の一例を示す図である。また、図２７は、図２５に示す構造データ１５に対応する値データ１３を示す図である。図２８は、図２６に示す構造データ１５に対応する値データ１３を示す図である。
【０１０５】
図２５に示す構造データ１５では構造２４０１の構造型９０４が林型であるのに対し、図２６に示す構造データ１５はで構造２５０１の構造型９０４が値型となっている。これにより、図２７に示すデータ２６０１および２６０２の木ＩＤ１００３にはＴ３が設定され、データ２６０３〜２６０５の木ＩＤ１００３にはＴ４が設定される。一方、図２８に示すデータ２７０１〜２７０５の木ＩＤ１００３にはＴ３が設定される。すなわち、親データの構造型９０４を林型または値型に設定することにより、同一の木ＩＤ１００３を持つデータの木の範囲が変更される。また、図２７および図２８に示す値データ１３は、共に図２９に示すデータとして配置される。
【０１０６】
例えば、図２７および図２８の値データ１３に対し、電話番号の条件で検索を行った場合を説明する。図２７の値データ１３では、電話番号に対応するデータ２６０５より、木ＩＤ１００３＝Ｔ４が取得される。これにより、検索結果として、図３０に示すように、木ＩＤ１００３＝Ｔ４のデータ２６０３〜２６０５が表示される。しかしながら、ユーザが電話番号から顧客の名前を知りたい場合には、この情報では不十分である。一方、図２８の値データ１３では、電話番号に対応するデータ２７０５より、木ＩＤ１００３＝Ｔ３が取得される。これにより、検索結果として、図２９に示すように、木ＩＤ１００３＝Ｔ３のデータ２７０１〜２７０５が表示される。よって、ユーザは必要な情報を直ちに得ることができる。このように、構造型９０４を変更することで、任意の木のデータに対し一つの木ＩＤ１００３を設定することができる。これにより、検索結果として、必要なデータ群を直ちに出力することができる。
【０１０７】
以上のように、本実施の形態におけるデータ管理装置１は、階層構造データの検索動作において、木ＩＤ１００３によるデータの絞込みを行う。これにより、複数の条件での検索がある場合でも、検索範囲を容易に絞り込むことができ、高速に検索を行うことができる。また、本実施の形態におけるデータ管理装置１は、木ＩＤ１００３単位で検索結果を出力するので、検索結果から、直ちに有効な情報を含むデータの一覧を出力することができる。また、本実施の形態におけるデータ管理装置１は、木ＩＤを用いることで、従来のように複数のテーブルまたは結合文を用いなくても、簡単に他のデータを参照することができる。また、構造型９０４が仮想型のデータをもちいることで、データ格納部１２には実際に格納していない情報を表示することができる。これにより、データ格納部１２に格納される値データ１３のデータ量を削減することができる。また、本実施の形態におけるデータ管理装置１は、値データ１３および構造データ１５の二つのデータを持つ。これにより、構造データを変更するだけで簡単にデータの構造を変更することができる。よって、本実施の形態におけるデータ管理装置１は、特定のデータ構造を持つデータ管理にのみ用いるのでなく、汎用的に、広い用途のデータ管理に使用することができる。また、値データ１３には、対応する構造データ１５の情報が含まれる。これにより、値データ１３は、構造データ１５により定義される構造に対応するデータであることが保障される。すなわち、ユーザが誤って構造に対応しないデータを配置することを防止することができる。さらに、本実施の形態におけるデータ管理装置１は、木ＩＤ１００３を用いることで、木単位で排他制御が行え、簡単に排他制御を行うことができる。
【０１０８】
以上、本発明の実施の形態に係るデータ管理装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【０１０９】
例えば、図１では、ネットワークに２つのユーザ端末が接続されているが、ユーザ端末の数はこれにかぎらない。
【０１１０】
また、上記実施の形態は、ネットワークを介してユーザがＷｅｂページにアクセスし、データ管理装置を使用する方法を用いているが、ソフトウェアとして、端末のハードディスクに保存する、または、ＣＤ−ＲＯＭ等の情報記録媒体を介して使用してもよい。
【０１１１】
（実施の形態２）
実施の形態１におけるデータ管理装置１の値データ１３では、親データに対し複数の子データが設定された場合、各子データの間で構造ＩＤ９０１および木ＩＤ１００３が両方異なる場合がある。例えば、図１２に示す値データ１３において、データ１００７は、構造ＩＤ９０１＝Ｓ１４２であり木ＩＤ１００３＝Ｔ５である。データ１００８は、構造ＩＤ９０１＝Ｓ１４３であり木ＩＤ１００３＝Ｔ６である。このように、同じ親をもつデータの構造ＩＤ９０１および木ＩＤ１００３が両方異なる場合があると、次のような問題が生じる。データ照会部１６による照会動作において、親データの複数の子データを参照する時に、構造ＩＤ９０１および木ＩＤ１００３の両方を常に監視する必要がある。これにより、データ照会部１６の処理量が増え、照会動作が高速に処理できないという問題がある。
【０１１２】
実施の形態２では、同じ親をもつデータの構造ＩＤ９０１および木ＩＤ１００３が両方異なる場合がなく、照会動作を高速に処理できるデータ管理装置１について説明する。なお、実施の形態１と同様の構成および動作に関しては説明を省略する。
【０１１３】
実施の形態１では、構造型９０４が「値型」の構造の構造区分９０５として４個の分類を示したが、実施の形態２では以下に示す５個目の分類が追加される。
【０１１４】
５．「テーブル」：構造型９０４が「林型」の子構造を１個のみ設定できる。構成区分
が「テーブル」の構造に対応するデータは、１個のみ設定できる。
【０１１５】
また、実施の形態２では、構造型が「林型」の構造の構造区分９０５である「レコード」の定義が以下のように変更される。
【０１１６】
１．「レコード」：構造型９０４が「値型」および「仮想型」の子構造を設定できる。
構造区分９０５が「レコード」の構造に対応するデータは、親データに対し複数の
データを設定することができる。
【０１１７】
さらに、実施の形態２では、構造区分９０５の「ルート」の定義が以下のように変更される。
【０１１８】
１．「ルート」：森構造データの最上階層のデータ構造（一番上の根部分）であり、構
造およびデータは１つしか存在しない。また、構造区分９０５が「ルート」の構造
は、親構造を持たない。構造区分９０５が「ルート」の構造は、構造型９０４が「
値型」および「仮想型」の子構造を設定することができる。
【０１１９】
図３１は、実施の形態２における構造データ１５の一例を示す図である。
図９に示す実施の形態１において構造９０９の構造型９０４に林型が設定されている。図３１に示す構造３１０１および構造３１０２が、構造９０９に対応する。構造３１０１の構造型９０４に「値型」が設定され、構造区分９０５に「テーブル」が設定される。また、構造３１０２の構造型９０４に「林型」が設定され、構造区分９０５に「レコード」が設定される。このように、実施の形態２では、実施の形態１で構造型９０４に「林型」が設定されていた構造に対し、構造型９０４が「値型」であり構造区分９０５が「テーブル」の構造が設定され、構造区分９０５が「テーブル」の構造３１０１の子構造として、構造型９０４が「林型」の構造３１０２が設定される。
【０１２０】
図３２は、図３１に示す構造データ１５に対応する値データ１３を示す図である。
図３２に示すように、構造区分９０５が「テーブル」の構造３１０１に対応するデータ３２０１は木ＩＤ１００３＝Ｔ５となり、同じ親データ３２０２を親にもつデータ３２０３および３２０４と同一の木ＩＤ１００３が設定される。このように、同じ親をもつデータは、同一の木ＩＤ１００３が設定されるので、データ照会部１６は、親データから子データを照会する時に、木ＩＤ１００３の変化を監視せずに、構造ＩＤ９０４の変化のみを監視すればよい。よって、データ照会部１６の処理量は減少し、照会動作が高速に処理できる。
【産業上の利用可能性】
【０１２１】
本発明は、データ管理装置および方法に適用でき、特に階層構造データを備えるデータ管理装置および方法に適用できる。
【図面の簡単な説明】
【０１２２】
【図１】本実施の形態におけるデータ管理装置を含むデータ管理システムの構成を示す図である。
【図２】データ管理装置１のブロック構成を示す図である。
【図３】木構造定義の一例を示す図である。
【図４】木構造データの一例を示す図である。
【図５】林構造データの一例を示す図である。
【図６】森構造定義の一例を示す図である。
【図７】森構造データの一例を示す図である。
【図８】木ＩＤの設定例を示す図である。
【図９】構造データ１５の一例を示す図である。
【図１０】木構造定義の一例を示す図である。
【図１１】木構造データの一例を示す図である。
【図１２】値データ１３の一例を示す図である。
【図１３】データ管理装置１の照会動作のフローチャートである。
【図１４】ユーザデータの一例を示す図である。
【図１５】データ管理装置１のトップページの画面の一例を示す図である。
【図１６】照会動作により配置された階層構造データを示す図である。
【図１７】照会動作により配置された階層構造データを示す図である。
【図１８】照会動作により配置された階層構造データを表示する画面の一例を示す図である。
【図１９】データ管理装置１の検索動作のフローチャートである。
【図２０】値データ１３の一例を示す図である。
【図２１】検索動作により絞り込まれた値データ１３を示す図である。
【図２２】検索動作により絞り込まれた値データ１３を示す図である。
【図２３】検索動作により絞り込まれた値データ１３を示す図である。
【図２４】検索結果を表示する画面の一例を示す図である。
【図２５】構造データ１５の一例を示す図である。
【図２６】構造データ１５の一例を示す図である。
【図２７】図２５の構造データ１５に対応する値データ１３を示す図である。
【図２８】図２６の構造データ１５に対応する値データ１３を示す図である。
【図２９】図２７および図２８の値データ１３に対応する階層構造データを示す図である。
【図３０】図２７の値データ１３に対する検索結果を示す図である。
【図３１】実施の形態２における構造データ１５の一例を示す図である。
【図３２】実施の形態２における値データ１３の一例を示す図である。
【図３３】従来の階層構造データの構造を示す図である。
【図３４】従来の階層構造データのデータを示す図である。
【図３５】従来のデータ管理装置の検索動作のフローチャートである。
【符号の説明】
【０１２３】
１    データ管理装置
２、３    ユーザ端末
４    ネットワーク
５    データ管理システム
１０    ＩＯ制御部
１１    ユーザ認証部
１２    データ格納部
１３    値データ
１４    構造格納部
１５    構造データ
１６    データ照会部
１７    木検索部
１８    データ編集部
１９    構造編集部
２０    排他制御部
３０〜３３、６０〜７５、８１〜８３、９０６〜９１５、２２０１〜２２０８、２４０１、２５０１、３１０１〜３１０３    構造
４１〜４４、１００５〜１０２４、１７０１〜１７２４、２３０１〜２３１２、２６０１〜２６０５、２７０１〜２７０５、３２０１〜３２０４    データ
７７、７８    木構造定義
９１〜９３    木構造データ
９０１    構造ＩＤ
９０２    親構造ＩＤ
９０３    構造名
９０４    構造型
９０５    構造区分
９０６    定義情報
１００１    データＩＤ
１００２    親データＩＤ
１００３    木ＩＤ
１００４    値
１４０１    ユーザ名
１４０２    パスワード
１４０３    グループ
１４０４〜１４０６    ユーザデータ
【図１】
2007079872.tif 000003
【図２】
2007079872.tif 000004
【図３】
2007079872.tif 000005
【図４】
2007079872.tif 000006
【図５】
2007079872.tif 000007
【図６】
2007079872.tif 000008
【図７】
2007079872.tif 000009
【図８】
2007079872.tif 000010
【図９】
2007079872.tif 000011
【図１０】
2007079872.tif 000012
【図１１】
2007079872.tif 000013
【図１２】
2007079872.tif 000014
【図１３】
2007079872.tif 000015
【図１４】
2007079872.tif 000016
【図１５】
2007079872.tif 000017
【図１６】
2007079872.tif 000018
【図１７】
2007079872.tif 000019
【図１８】
2007079872.tif 000020
【図１９】
2007079872.tif 000021
【図２０】
2007079872.tif 000022
【図２１】
2007079872.tif 000023
【図２２】
2007079872.tif 000024
【図２３】
2007079872.tif 000025
【図２４】
2007079872.tif 000026
【図２５】
2007079872.tif 000027
【図２６】
2007079872.tif 000028
【図２７】
2007079872.tif 000029
【図２８】
2007079872.tif 000030
【図２９】
2007079872.tif 000031
【図３０】
2007079872.tif 000032
【図３１】
2007079872.tif 000033
【図３２】
2007079872.tif 000034
【図３３】
2007079872.tif 000035
【図３４】
2007079872.tif 000036
【図３５】
2007079872.tif 000037