(57)【要約】【課題】センサデータを効率的に操作すること。【解決手段】一実施形態に係るデータベース管理システムは、複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御する少なくとも一つのプロセッサを備える。複数の末端データベースのそれぞれはセンサデータを記憶する。主データベースは仮想データテーブルを提供する。少なくとも一つのプロセッサは、センサデータに基づく中間結果と、主データベースと末端データベースとを結ぶ経路を一意に特定する経路ＩＤとの組合せを含む結果セットを得るための検索指示を末端データベースに向けて送信し、結果セットを受信し、該結果セットに基づく検索結果を仮想データテーブルによって表現し出力する。【選択図】図８
2020177569.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御する少なくとも一つのプロセッサを備え、
前記複数の末端データベースのそれぞれが、前記センサからの信号に基づくセンサデータを記憶し、
前記主データベースが、前記センサデータに基づく検索結果を表現する仮想データテーブルを提供し、
前記少なくとも一つのプロセッサが、
前記検索結果を得るためのクエリを取得するステップと、
前記クエリに対応する検索指示を前記複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、前記センサデータに基づく中間結果と、前記主データベースと前記末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、
前記少なくとも一つの末端データベースに対応する少なくとも一つの前記結果セットを受信するステップと、
前記少なくとも一つの結果セットに基づく前記検索結果を前記仮想データテーブルによって表現するステップと、
前記仮想データテーブルによって表現された前記検索結果を出力するステップと
を実行する、
データベース管理システム。
【請求項２】
前記経路ＩＤが、少なくとも前記末端データベースのデータベースＩＤを用いて構成される文字列である、
請求項１に記載のデータベース管理システム。
【請求項３】
前記階層化データベースが、前記主データベースから前記末端データベースまでの経路上に位置する中間データベースをさらに備える、
請求項１または２に記載のデータベース管理システム。
【請求項４】
前記経路上に少なくとも一つの前記中間データベースが位置する場合には、前記経路ＩＤが、前記末端データベースのデータベースＩＤと、該少なくとも一つの前記中間データベースのそれぞれのデータベースＩＤとを用いて構成される文字列である、
請求項３に記載のデータベース管理システム。
【請求項５】
前記経路ＩＤが、前記末端データベースのデータベースＩＤと、前記少なくとも一つの前記中間データベースのそれぞれのデータベースＩＤとを、前記経路上のデータベースの並びに従って連結することで生成される文字列である、
請求項４に記載のデータベース管理システム。
【請求項６】
前記主データベース、前記複数の末端データベース、および前記中間データベースのすべてが、前記階層化データベースの制御に必要な情報を記憶する共通マスタテーブルを備え、
前記共通マスタテーブルが、前記主データベース、前記複数の末端データベース、および前記中間データベースの間で同一であり、
前記共通マスタテーブルが、テーブルの変更の段階を示すバージョン番号と関連付けられる、
請求項３〜５のいずれか一項に記載のデータベース管理システム。
【請求項７】
前記複数の末端データベースのそれぞれが、サイクリックテーブルを用いて前記センサデータを記憶する、
請求項１〜６のいずれか一項に記載のデータベース管理システム。
【請求項８】
それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御するデータベース管理システムによって実行されるデータベース管理方法であって、
前記複数の末端データベースのそれぞれが、前記センサからの信号に基づくセンサデータを記憶し、
前記主データベースが、前記センサデータに基づく検索結果を表現する仮想データテーブルを提供し、
前記方法が、
前記検索結果を得るためのクエリを取得するステップと、
前記クエリに対応する検索指示を前記複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、前記センサデータに基づく中間結果と、前記主データベースと前記末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、
前記少なくとも一つの末端データベースに対応する少なくとも一つの前記結果セットを受信するステップと、
前記少なくとも一つの結果セットに基づく前記検索結果を前記仮想データテーブルによって表現するステップと、
前記仮想データテーブルによって表現された前記検索結果を出力するステップと
を含む、
データベース管理方法。
【請求項９】
それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御するデータベース管理システムとしてコンピュータを機能させるデータベース管理プログラムであって、
前記複数の末端データベースのそれぞれが、前記センサからの信号に基づくセンサデータを記憶し、
前記主データベースが、前記センサデータに基づく検索結果を表現する仮想データテーブルを提供し、
前記プログラムが、
前記検索結果を得るためのクエリを取得するステップと、
前記クエリに対応する検索指示を前記複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、前記センサデータに基づく中間結果と、前記主データベースと前記末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、
前記少なくとも一つの末端データベースに対応する少なくとも一つの前記結果セットを受信するステップと、
前記少なくとも一つの結果セットに基づく前記検索結果を前記仮想データテーブルによって表現するステップと、
前記仮想データテーブルによって表現された前記検索結果を出力するステップと
を前記コンピュータに実行させる、
データベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の一側面はデータベース管理システム、データベース管理方法、およびデータベース管理プログラムに関する。
【背景技術】
【０００２】
センサから得られたデータ（センサデータ）を記憶する複数のデータベースを備える階層化データベースが知られている。例えば、特許文献１には、コグニティブラジオを行う無線通信システムのための周波数利用状況管理用のデータベース装置をネットワーク化して階層化する技術を用いたコグニティブ通信システムが記載されている。このコグニティブ通信システムは、周囲の電波の周波数の利用状況を検出する検出装置と、該検出装置において検出された周波数の利用状況を保存する第１のデータベース装置とから構成される無線通信システムと、第１のデータベース装置を１つ以上統合する第２のデータベース装置とを備える。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１８４８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
センサデータを記憶するデータベースの個数が膨大なものになる場合があり、大量のセンサデータを解析するとなるとデータベース管理システムの処理量が膨れ上がる可能性がある。そのためセンサデータを効率的に操作することが可能なデータベース管理システムが望まれている。
【課題を解決するための手段】
【０００５】
本開示の一側面に係るデータベース管理システムは、それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御する少なくとも一つのプロセッサを備える。複数の末端データベースのそれぞれは、センサからの信号に基づくセンサデータを記憶する。主データベースは、センサデータに基づく検索結果を表現する仮想データテーブルを提供する。少なくとも一つのプロセッサは、検索結果を得るためのクエリを取得するステップと、クエリに対応する検索指示を複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、センサデータに基づく中間結果と、主データベースと末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、少なくとも一つの末端データベースに対応する少なくとも一つの結果セットを受信するステップと、少なくとも一つの結果セットに基づく検索結果を仮想データテーブルによって表現するステップと、仮想データテーブルによって表現された検索結果を出力するステップとを実行する。
【０００６】
このような側面においては、クエリに対応するセンサデータが、主データベースと末端データベースとを結ぶ経路を示す経路ＩＤと共に主データベースに集められ、その集められたセンサデータに基づく検索結果が仮想データテーブルによって表現され、そして出力される。センサデータそのものは末端データベースにのみ格納され、主データベースは仮想データテーブルによって検索結果を表現するので、センサデータそのものを記憶するための記憶領域を階層化データベースの全体として抑えることができる。加えて、センサデータの出所、すなわち情報源を経路ＩＤによって特定できる。このような仕組みによって、センサデータを効率的に操作することが可能になる。
【発明の効果】
【０００７】
本開示の一側面によれば、センサデータを効率的に操作することができる。
【図面の簡単な説明】
【０００８】
【図１】階層化データベースの構造の一例を示す図である。
【図２】階層化データベースの構造の別の例を示す図である。
【図３】階層化データベースにおけるテーブル構成の一例を示す図である。
【図４】センサデータの例を示す図である。
【図５】階層化データベースの構築方法の一例を示す図である。
【図６】主データベースまたは中間データベースを構成するコンピュータの一般的なハードウェア構成の一例を示す図である。
【図７】末端データベースを構成するコンピュータの一般的なハードウェア構成の一例を示す図である。
【図８】各データベースの機能構成の一例を示す図である。
【図９】データベースの追加の一例を示すシーケンス図である。
【図１０】データベースの追加の具体例を示す図である。
【図１１】図１０の例に対応するシステムの動作の一例を示すシーケンス図である。
【図１２】主データベースでのテーブル更新の一例を示すフローチャートである。
【図１３】中間データベースでのテーブル更新の一例を示すフローチャートである。
【図１４】末端データベースでのテーブル更新の一例を示すフローチャートである。
【図１５】テーブルの更新の具体例を示すシーケンス図である。
【図１６】主データベースでの検索処理の一例を示すフローチャートである。
【図１７】中間データベースでの検索処理の一例を示すフローチャートである。
【図１８】末端データベースでの検索処理の一例を示すフローチャートである。
【図１９】階層化データベースにおける検索の具体例を示す図である。
【図２０】階層化データベースにおける検索の別の具体例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【００１０】
［システムの概要］
実施形態に係るデータベース管理システム１は階層化データベースを制御するコンピュータシステムである。階層化データベースとは、複数のデータベースをツリー構造によって階層化することによって形成されるデータベース構成のことをいう。本実施形態では、階層化データベースは、それぞれがセンサに接続された複数の末端データベース（末端ＤＢ）と一つの主データベース（主ＤＢ）とを少なくとも含む。階層化データベースはツリー構造において主データベースと末端データベースとの間に位置する１以上の中間データベース（中間ＤＢ）をさらに備えてもよい。主データベースは最上位層に位置し、末端データベースは最下位層に位置し、中間データベースは中間層に位置する。
【００１１】
データベース管理システム１は、１以上のセンサのそれぞれからの信号に基づくセンサデータを処理することができる。センサとは、実世界での現象を検知して、その検知された現象を、コンピュータが処理可能な信号に置き換える素子または装置のことをいう。センサで検知される現象の種類は何ら限定されない。例えば、その現象は、任意の自然現象でもよいし、任意の人工物で生ずる任意の現象でもよい。したがって、データベース管理システム１によって管理されるセンサの種類は何ら限定されない。センサデータとは信号に基づいて生成される電子データのことをいう。センサの種類が何ら限定されないことに対応して、センサデータによって示される情報の内容も何ら限定されない。データベース管理システム１は階層化データベースに記憶されているセンサデータに対して検索などのデータ操作を実行することができる。また、データベース管理システム１は階層化データベースを管理するための処理も実行することができる。
【００１２】
［階層化データベース］
図１は階層化データベース２の構造の一例を示す図である。この例では、階層化データベース２は、主データベース１０が末端データベース３０に直接に接続された部分（２層の部分）と、主データベース１０が少なくとも一つの中間データベース２０を挟んで末端データベース３０に接続された部分（３層または４層の部分）とを備える。このように、主データベース１０は末端データベース３０に直接に接続されてもよいし、１以上の中間データベース２０を挟んで間接に接続されてもよい。主データベース１０と或る一つの末端データベース３０との間に介在する中間データベース２０の個数は限定されない。このように、階層化データベース２の階層は柔軟に設定されてもよい。
【００１３】
図２は階層化データベース２の構造の別の例を示す図である。この例では、主データベース１０と複数の末端データベース３０のそれぞれとは一つの中間データベース２０を挟んで接続され、したがって、階層化データベース２の全体が３階層であるということができる。このように、階層化データベース２の階層は固定されてもよい。
【００１４】
階層化データベース２の階層を柔軟に設定するかまたは固定するかにかかわらず、主データベース１０に直接に接続されるデータベース（中間データベース２０または末端データベース３０）の個数は限定されない。一つの中間データベース２０に接続される１階層下のデータベース（中間データベース２０または末端データベース３０）の個数も限定されない。一つの末端データベース３０に接続されるセンサ９０の個数も限定されない。
【００１５】
主データベース１０は、センサデータに基づく最終的な検索結果を提供するデータベースである。中間データベース２０は、その検索のために末端データベース３０と主データベース１０とを結ぶ経路上に位置するデータベースである。経路とは、主データベース１０と一つの末端データベース３０との間を折り返すことなく結ぶデータの通り道のことをいう。個々の経路は、経路ＩＤという識別子によって一意に特定される。中間データベース２０は検索の中間結果を主データベース１０に提供する。末端データベース３０は、センサデータを記憶するデータベースである。末端データベース３０は１以上のセンサと接続され、センサから提供される情報をセンサデータとして永続的に記憶する。一つの末端データベース３０には、１種類のセンサのみが接続されてもよいし、複数種類のセンサが接続されてもよい。主データベース１０および中間データベース２０はいずれもセンサデータを永続的に記憶しない。
【００１６】
図３は階層化データベース２におけるテーブル構成の一例を示す図である。主データベース１０および中間データベース２０はいずれも、少なくとも一つの共通マスタテーブル４０と少なくとも一つの仮想データテーブル５０とを備える。末端データベース３０は少なくとも一つの共通マスタテーブル４０と少なくとも一つの実データテーブル６０とを備える。
【００１７】
共通マスタテーブル４０は、階層化データベース２の制御に必要な情報を記憶する記憶領域である。共通マスタテーブル４０に格納される情報であるマスタデータの内容は限定されず、任意に設定されてよい。例えば、マスタデータは、センサに関する情報（例えば、識別子、名称、メーカ名など）を示してもよいし、センサから得られた数値を別の数値に変換するためのルールを示してもよい。それぞれの共通マスタテーブル４０は階層化データベース２内のすべてのデータベースで同一である。共通マスタテーブル４０に対する操作（新規作成、更新、削除）は主データベース１０の主導で実行される。それぞれの共通マスタテーブル４０は、このテーブルの変更の段階を示すバージョン番号と関連付けられた上でそれぞれのデータベースに実装される。
【００１８】
仮想データテーブル５０は、センサデータに基づく検索結果を表現する仮想的な記憶領域である。仮想データテーブル５０はデータそのもの記憶せず、したがって、ビュー（ｖｉｅｗ）ということもできる。仮想データテーブル５０は、１階層下に位置する１以上のデータベースのデータの集合をあたかも単一のテーブルのように見せる。それぞれの仮想データテーブル５０のテーブル構造（レコードの構成、各カラムのデータ型、最大レコード数など）は階層化データベース２内のすべてのデータベースで同一である。仮想データテーブル５０のデータ構造は限定されず、任意に設計されてよい。仮想データテーブル５０の個々のレコードは経路ＩＤを含んでもよい。この経路ＩＤはユーザが認識可能なカラムでもよいし、ユーザには認識されない内部処理用のカラムでもよい。仮想データテーブル５０に対する操作（新規作成、更新、削除）は主データベース１０の主導で実行される。
【００１９】
実データテーブル６０は、センサデータを永続的に記憶する記憶領域である。実データテーブル６０のデータ構造は限定されず、任意に設計されてよい。それぞれの実データテーブル６０のテーブル構造（レコードの構成、各カラムのデータ型、最大レコード数など）は、対応する仮想データテーブル５０と同一である。実データテーブル６０の個々のレコードは経路ＩＤを含む。仮想データテーブル５０に対応して、経路ＩＤはユーザに認識可能でもよいし、内部処理用のものであってもよい。実データテーブル６０に対する操作（新規作成、更新、削除）は主データベース１０の主導で実行される。実データテーブル６０内のセンサデータは末端データベース３０によって追加、更新、または削除される。
【００２０】
仮想データテーブル５０および実データテーブル６０はサイクリックテーブル（ｃｙｃｌｉｃ  ｔａｂｌｅ）でもよい。サイクリックテーブルとは、格納できるレコード数があらかじめ決められたテーブルのことをいう。サイクリックテーブルではデータがＦＩＦＯ（先入れ先出し）、ＬＩＦＯ（後入れ先出し）などのルールによって管理される。すなわち、最大レコード数を越える場合には、ルールに基づいて、特定の１レコードが追加されるレコードによって上書きされる。サイクリックテーブル内のカラムは固定長に設定されてもよい。このようにカラムを設定することで、個々のレコードの合計データサイズが同一になるので、メモリ配置のずれに起因するメモリの断片化を防ぐことができる。
【００２１】
互いに対応する仮想データテーブル５０および実データテーブル６０は共通のＳＱＬによって生成することができる。例えば、「ＣＲＥＡＴＥ  ＣＹＣＬＩＣ  ＴＡＢＬＥ  Ｖ＿ＴＢＬ  値  ＩＮＴ  ＬＩＭＩＴ＿ＲＥＣＯＲＤＳ  １０００」というＳＱＬによって、最大で１０００レコードを保持可能なサイクリックテーブルであり、且つ“Ｖ＿ＴＢＬ”という名前の仮想データテーブル５０を主データベース１０および中間データベース２０上に生成し、同じテーブル構造を有する実データテーブル６０を末端データベース３０上に生成することができる。ただし、実データテーブル６０はセンサデータを永続的に記憶するのに対して、仮想データテーブル５０はセンサデータを一時的に表現するものであって、センサデータを永続的に記憶するものではない。
【００２２】
図４はセンサデータの例を示す図である。センサデータ９１のレコードは、テーブル内のレコードを一意に特定するための識別子であるレコードＩＤと、レコードが記録された日時と、１以上のセンサ（センサＡ、センサＢ、スイッチＣなど）に対応する１以上の値とを含む。センサデータ９２のレコードは、レコードＩＤと、統計期間と、該統計期間におけるセンサデータ９１に関する統計値（最大値、最小値、合計値、二乗和など）とを含む。図４の例では、センサデータ９２についてはセンサＡに関するカラムのみを示す。センサデータ９１，９２の最大レコード数が共に６０００であり、センサデータ９１が１秒ごとに記録されるとすると、センサデータ９１は直近の１００分間にわたる履歴を示す。末端データベース３０に実装されたストアドプロシージャによってその１００分間の履歴が１００分毎に統計処理される場合には、センサデータ９２は４００日分以上の統計値を示す。
【００２３】
図５は階層化データベース２の構築方法の一例を示す図である。この例では、必要に応じて個々のデータベースを（Ａ），（Ｂ）などのアルファベットによって区別する。
【００２４】
まず主データベース（Ａ）が用意される。この主データベース（Ａ）に一つの中間データベース（Ｂ）が接続され、この中間データベース（Ｂ）にデータベースＩＤ「０００１」が付与される。本開示におけるデータベースＩＤとは、中間データベース２０および末端データベース３０に付与されるデータベースの識別子のことをいい、主データベース１０から末端データベース３０までの経路を一意に特定することができるように決定される。データベースＩＤの具体的な値の設定方法は限定されず、データベースＩＤは任意の方針で設定されてよい。例えば、データベースＩＤは、２バイトの数字を１６進数表記による４バイト文字列で表すことで得られる値によって設定されてもよい。この場合には、主データベース１０または或る一つの中間データベース２０の１階層下に最大で６５５３６（＝２１６）個のデータベースを接続することができる。
【００２５】
続いて主データベース（Ａ）に中間データベース（Ｃ）が接続され、この中間データベース（Ｃ）にデータベースＩＤ「０００２」が付与される。続いて主データベース（Ａ）に末端データベース（Ｄ）が接続され、この末端データベース（Ｄ）にデータベースＩＤ「０００３」が付与される。この例のように、データベースＩＤは中間データベース２０と末端データベース３０とを区別することなく連続的に付与されてよい。
【００２６】
さらに下位のデータベースを接続する際にも、それぞれのデータベースにデータベースＩＤが同様の方法で付与される。図５の例では、中間データベース（Ｂ）に末端データベース（Ｅ），（Ｆ）が接続され、末端データベース（Ｅ）にデータベースＩＤ「０００１」が付与され、末端データベース（Ｆ）にデータベースＩＤ「０００２」が付与される。中間データベース（Ｃ）には中間データベース（Ｇ）が接続され、中間データベース（Ｇ）にデータベースＩＤ「０００１」が付与される。中間データベース（Ｇ）には末端データベース（Ｈ）が接続され、末端データベース（Ｈ）にはデータベースＩＤ「０００１」が付与される。
【００２７】
図５に示すように、或る一つの上位データベースの１階層下に位置する１以上のデータベースの間でデータベースＩＤが重複しない限り、階層化データベース２内において複数のデータベースが同じデータベースＩＤを有してもよい。この場合でも主データベース１０と末端データベース３０とを結ぶ経路を一意に特定することができる。しかし、データベースＩＤを付与する方法は図５の例に限定されず、例えば、個々のデータベースＩＤが階層化データベース２内において一意であってもよい。
【００２８】
［システムの構成］
データベース管理システム１は主データベース１０を少なくとも備え、中間データベース２０および末端データベース３０のうちの少なくとも一方をさらに備えてもよい。
【００２９】
図６は主データベース１０または中間データベース２０を構成するコンピュータ１００の一般的なハードウェア構成の一例を示す図である。例えば、コンピュータ１００はプロセッサ１０１、主記憶部１０２、補助記憶部１０３、通信制御部１０４、入力装置１０５、および出力装置１０６を備える。プロセッサ１０１はオペレーティングシステムおよびアプリケーション・プログラムを実行する。主記憶部１０２は例えばＲＯＭおよびＲＡＭで構成される。補助記憶部１０３は例えばハードディスクまたはフラッシュメモリで構成され、一般に主記憶部１０２よりも大量のデータを記憶する。各種のテーブルは補助記憶部１０３上に構築される。補助記憶部１０３は、コンピュータ１００を主データベース１０または中間データベース２０として機能させるためのプログラムを記憶する。通信制御部１０４は例えばネットワークカードまたは無線通信モジュールで構成され、主データベース１０、中間データベース２０、または末端データベース３０とのデータ通信のために用いられる。入力装置１０５は例えばキーボード、マウス、タッチパネルなどで構成される。出力装置１０６は例えばモニタおよびスピーカで構成される。
【００３０】
主データベース１０または中間データベース２０の各機能要素は、補助記憶部１０３に予め記憶されるプログラムにより実現される。具体的には、各機能要素は、プロセッサ１０１または主記憶部１０２にプログラムを読み込ませてプロセッサ１０１にそのプログラムを実行させることで実現される。プロセッサ１０１はそのプログラムに従って、通信制御部１０４、入力装置１０５、または出力装置１０６を動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出しおよび書き込みを行う。
【００３１】
図７は末端データベース３０を構成するコンピュータ２００の一般的なハードウェア構成の一例を示す図である。例えば、コンピュータ２００はプロセッサ２０１、主記憶部２０２、補助記憶部２０３、通信制御部２０４、および入力インタフェース２０５を備える。プロセッサ２０１はオペレーティングシステムおよびアプリケーション・プログラムを実行する。主記憶部２０２は例えばＲＯＭおよびＲＡＭで構成される。補助記憶部２０３は例えばハードディスクまたはフラッシュメモリで構成され、一般に主記憶部２０２よりも大量のデータを記憶する。各種のテーブルは補助記憶部２０３上に構築される。補助記憶部２０３は、コンピュータ２００を末端データベース３０として機能させるためのプログラムを記憶する。通信制御部２０４は例えばネットワークカードまたは無線通信モジュールで構成され、主データベース１０または中間データベース２０とのデータ通信のために用いられる。入力インタフェース２０５は入力端子または無線通信モジュールで構成され、センサ９０から信号またはデータを得るために用いられる。
【００３２】
末端データベース３０の各機能要素は、補助記憶部２０３に予め記憶されるプログラムにより実現される。具体的には、各機能要素は、プロセッサ２０１または主記憶部２０２にそのプログラムを読み込ませてプロセッサ２０１にそのプログラムを実行させることで実現される。プロセッサ２０１はそのプログラムに従って通信制御部２０４または入力インタフェース２０５を動作させ、主記憶部２０２または補助記憶部２０３におけるデータの読み出しおよび書き込みを行う。
【００３３】
データベースを構成するコンピュータのハードウェア構成はこれらの例に限定されない。例えば、主データベース１０、中間データベース２０、および末端データベース３０は同一のハードウェア構成を備えてもよいし、互いに異なるハードウェア構成を備えてもよい。
【００３４】
主データベース１０、中間データベース２０、末端データベース３０としてコンピュータを機能させるためのプログラムは、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、そのプログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００３５】
個々のデータベースは１台のコンピュータ１００または２００で構成されてもよいし、複数台のコンピュータ１００または２００で構成されてもよい。複数台のコンピュータ１００または２００を用いる場合には、これらのコンピュータ１００または２００がインターネットやイントラネットなどの通信ネットワークを介して接続されることで、論理的に一つのデータベースが構築される。
【００３６】
図８は各データベースの機能構成の一例を示す図である。以下では必要に応じて、主データベース１０、中間データベース２０、および末端データベース３０の間で、共通マスタテーブル４０および仮想データテーブル５０に付す参照符号を図８に示すように区別する。
【００３７】
主データベース１０は機能要素としてテーブル管理部１１および検索部１２を備える。テーブル管理部１１は階層化データベース２内のテーブルを管理する機能要素である。検索部１２はクエリに従ってセンサデータを検索し、検索結果を仮想データテーブル５１上に出力する機能要素である。
【００３８】
中間データベース２０はテーブル管理部２１およびデータ中継部２２を備える。テーブル管理部２１は中間データベース２０内のテーブルを管理する機能要素である。データ中継部２２は検索のために１階層下のデータベースからデータを取得し、その取得したデータを仮想データテーブル５２を用いて１階層上のデータベースに出力する機能要素である。
【００３９】
末端データベース３０はテーブル管理部３１およびデータ抽出部３２を備える。テーブル管理部３１は末端データベース３０内のテーブルを管理する機能要素である。データ抽出部３２は検索条件に基づいてセンサデータを抽出し、抽出されたデータを実データテーブル６０を用いて１階層上のデータベースに出力する機能要素である。
【００４０】
［システムの動作］
図９を参照しながら、階層化データベース２に新たなデータベースを追加する際のデータベース管理システム１の動作の一例を説明する。図９はデータベースの追加の一例を処理フローＳ１として示すシーケンス図である。図９では、新たに追加されるデータベースを「下位データベース」といい、この下位データベースに接続されるデータベースを「上位データベース」という。上位データベースは下位データベースの１階層上に位置する。上位データベースは主データベース１０または中間データベース２０である。下位データベースは中間データベース２０または末端データベース３０である。
【００４１】
ステップＳ１１では、下位データベースが上位データベースに接続される。
【００４２】
ステップＳ１２では、上位データベースのテーブル管理部がその接続に応答して生成通知を下位データベースに送信する。そのテーブル管理部は、下位データベースに割り当てるデータベースＩＤと、上位データベースに実装されているすべての共通マスタテーブル４０およびすべての仮想データテーブル５０についての情報とを示す生成通知を生成する。共通マスタテーブルについての情報は、テーブル構造、バージョン番号、およびマスタデータを含む。仮想データテーブルついての情報はテーブル構造を含む。そのテーブル管理部は生成通知を下位データベースに送信する。
【００４３】
ステップＳ１３では、下位データベースのテーブル管理部がその生成通知に基づいて、下位データベースにデータベースＩＤを設定し、テーブルを下位データベース内に生成する。そのテーブル管理部は、上位データベースのものと同一の１以上の共通マスタテーブルと、上位データベースのものとデータ構造が同一の１以上のデータテーブルとを下位データベース内に生成する。下位データベースが中間データベース２０であれば仮想データテーブル５０が生成され。下位データベースが末端データベース３０であれば実データテーブル６０が生成される。
【００４４】
図１０および図１１を参照しながら、新たなデータベースの追加の具体例について説明する。図１０はデータベースの追加の具体例を示す図である。図１１はその追加に対応するデータベース管理システム１の動作の一例を処理フローＳ２として示すシーケンス図である。図１０に示すように、この例では、まず主データベース（Ａ）に中間データベース（Ｂ）が接続され、続いて中間データベース（Ｂ）に末端データベース（Ｃ）が接続され、続いて主データベース（Ａ）に末端データベース（Ｄ）が接続される。
【００４５】
この一連の接続に対応する処理フローＳ２は以下のように実行される。ステップＳ２１では、主データベース（Ａ）と中間データベース（Ｂ）との間で処理フローＳ１が実行される。この結果、中間データベース（Ｂ）は、主データベース（Ａ）のものと同一の１以上の共通マスタテーブル４０と、主データベース（Ａ）のものとデータ構造が同一の１以上の仮想データテーブル５０とを備える。
【００４６】
ステップＳ２２では、中間データベース（Ｂ）と末端データベース（Ｃ）との間で処理フローＳ１が実行される。この結果、末端データベース（Ｃ）は、中間データベース（Ｂ）のものと同一の１以上の共通マスタテーブル４０と、中間データベース（Ｂ）のものとデータ構造が同一の１以上の実データテーブル６０とを備える。
【００４７】
ステップＳ２３では、主データベース（Ａ）と末端データベース（Ｄ）との間で処理フローＳ１が実行される。この結果、末端データベース（Ｄ）は、主データベース（Ａ）のものと同一の１以上の共通マスタテーブル４０と、主データベース（Ａ）のものとデータ構造が同一の１以上の実データテーブル６０とを備える。
【００４８】
処理フローＳ２で示すように、階層化データベース２に新たなデータベース（下位データベース）が追加されると、１階層上のデータベース（上位データベース）はその追加に応答して生成通知を下位データベースに送信する。下位データベースはその生成通知に基づいて、上位データベースのものに対応する共通マスタテーブル４０およびデータテーブル（仮想データテーブル５０または実データテーブル６０）を生成する。
【００４９】
新たなデータベースの追加の一例として、前に階層化データベース２の一構成要素であったデータベースを再び階層化データベース２に接続する処理があり得る。この場合、上位データベースのテーブル管理部はその接続に応答して、追加された下位データベースに生成通知を送信する。下位データベースのテーブル管理部は、接続前に保持している共通マスタテーブルおよびデータテーブルと、生成通知で示される共通マスタテーブルおよびデータテーブルとを比較する。そして、下位データベースのテーブル管理部は、接続前の構成と生成通知で示される現在の構成とが異なるテーブルを生成通知に基づいて再生成し、現在の構成では存在しないテーブルを削除する。この一連の処理によって、下位データベースは再び階層化データベース２の一構成要素として機能することができる。
【００５０】
図１２〜図１４を参照しながら、データベース管理システム１におけるテーブル更新の処理の一例を説明する。図１２は主データベース１０の動作を処理フローＳ３として示すフローチャートである。図１３は中間データベース２０の動作を処理フローＳ４示すフローチャートである。図１４は末端データベース３０の動作を処理フローＳ５として示すフローチャートである。
【００５１】
主データベース１０の動作は以下の通りである。ステップＳ３１では、テーブル管理部１１が少なくとも一つのテーブルを更新する。この処理は、共通マスタテーブル４１の更新と仮想データテーブル５１の更新とのうちの少なくとも一つを含む。共通マスタテーブルの更新とは、テーブル構造およびマスタデータのうちの少なくとも一方を変更することをいう。１以上の共通マスタテーブル４１を更新する場合には、テーブル管理部１１は、更新したそれぞれの共通マスタテーブル４１のバージョン番号を、過去に使われていない新たな番号に変更する。仮想データテーブルの更新とは、テーブル構造を変更することをいう。ステップＳ３２では、テーブル管理部１１は１階層下のすべてのデータベースに更新通知を送信する。テーブル管理部１１は、更新された少なくとも一つのテーブルについての情報を示す更新通知を生成し、その更新通知を送信する。共通マスタテーブル４１を更新した場合には、更新通知は、更新された共通マスタテーブル４１のテーブル構造、バージョン番号、およびマスタデータを示す。仮想データテーブル５１を更新した場合には、更新通知は、更新された仮想データテーブル５１のテーブル構造を示す。
【００５２】
中間データベース２０の動作は以下の通りである。ステップＳ４１では、テーブル管理部２１が１階層上のデータベース（主データベース１０または中間データベース２０）から更新通知を受信する。ステップＳ４２では、テーブル管理部２１がその更新通知に基づいて少なくとも一つのテーブルを更新することで、中間データベース２０内のすべての共通マスタテーブル４２およびすべての仮想データテーブル５２について１階層上のデータベースとの同一性を維持する。ステップＳ４３では、テーブル管理部２１は１階層下のすべてのデータベースに更新通知を送信する。この更新通知はステップＳ４１で受信したものに対応するので、この送信は更新通知の転送であるということもできる。
【００５３】
末端データベース３０の動作は以下の通りである。ステップＳ５１では、テーブル管理部３１が１階層上のデータベース（主データベース１０または中間データベース２０）から更新通知を受信する。ステップＳ５２では、テーブル管理部３１がその更新通知に基づいて少なくとも一つのテーブルを更新することで、末端データベース３０内のすべての共通マスタテーブル４３およびすべての実データテーブル６０について１階層上のデータベースとの同一性を維持する。
【００５４】
図１０および図１５を参照しながら、テーブルの更新の具体例について説明する。図１５は、図１０に示す四つのデータベースで構成される階層化データベース２におけるテーブルの更新の具体例を処理フローＳ６として示すシーケンス図である。
【００５５】
ステップＳ６１では、主データベース（Ａ）のテーブル管理部１１がテーブル（共通マスタテーブル４１および仮想データテーブル５１の少なくとも一方）を更新する。ステップＳ６２では、テーブル管理部１１が更新通知を１階層下のすべてのデータベース、すなわち中間データベース（Ｂ）および末端データベース（Ｄ）に送信する。ステップＳ６１，Ｓ６２は処理フローＳ３に対応する。
【００５６】
ステップＳ６３では、中間データベース（Ｂ）のテーブル管理部２１がその更新通知に基づいて１以上のテーブル（共通マスタテーブル４２および仮想データテーブル５２の少なくとも一方）を更新する。ステップＳ６３はステップＳ４２に対応する。
【００５７】
ステップＳ６４では、末端データベース（Ｄ）のテーブル管理部３１がその更新通知に基づいて１以上のテーブル（共通マスタテーブル４３および実データテーブル６０の少なくとも一方）を更新する。ステップＳ６４はステップＳ５２に対応する。
【００５８】
ステップＳ６５では、中間データベース（Ｂ）のテーブル管理部２１が更新通知を末端データベース（Ｃ）に送信（転送）する。ステップＳ６５はステップＳ４３に対応する。
【００５９】
ステップＳ６６では、末端データベース（Ｃ）のテーブル管理部３１がその更新通知に基づいて１以上のテーブル（共通マスタテーブル４３および実データテーブル６０の少なくとも一方）を更新する。ステップＳ６６はステップＳ５２に対応する。
【００６０】
処理フローＳ６で示すように、主データベース１０で少なくとも一つのテーブルが更新されると、更新通知がそれぞれの末端データベース３０に向かって転送されながらそれぞれのデータベースでその更新が反映される。この処理によって、階層化データベース２内の共通マスタテーブル４０、仮想データテーブル５０、および実データテーブル６０のそれぞれについて同一性が維持される。
【００６１】
テーブルの削除はテーブルの更新と同様の手順によって実行することができる。主データベース（Ａ）のテーブル管理部１１が少なくとも一つのテーブル（共通マスタテーブル４１および仮想データテーブル５１の少なくとも一方）を削除し、その削除を示す削除通知を１階層下のデータベース（下位データベース）に送信する。下位データベースが中間データベース２０である場合には、テーブル管理部２１がその削除通知で示される少なくとも一つのテーブルを削除し、その削除通知を１階層下のデータベースに送信する。下位データベースが末端データベース３０である場合には、テーブル管理部３１がその削除通知で示される少なくとも一つのテーブルを削除する。
【００６２】
図１６〜図１８を参照しながら、データベース管理システム１における検索処理の一例を説明する。図１６は主データベース１０の動作を処理フローＳ７として示すフローチャートである。図１７は中間データベース２０の動作を処理フローＳ８示すフローチャートである。図１８は末端データベース３０の動作を処理フローＳ９として示すフローチャートである。
【００６３】
主データベース１０の動作は以下の通りである。ステップＳ７１では、検索部１２がクエリを取得する。クエリとは、データベースに対するデータ操作の要求のことをいい、典型的にはＳＱＬなどの言語による文字列で表現される。ここでは、クエリはデータの検索を要求するものである。クエリの取得方法は限定されない。例えば、検索部１２はユーザによって入力されたクエリを受け付けてもよいし、他のコンピュータからクエリを受信してもよいし、補助記憶部２０３などの記憶部に予め記憶されているクエリを読み出してもよい。
【００６４】
ステップＳ７２では、検索部１２が１階層下のすべてのデータベースに検索指示を送信する。検索指示は、センサデータに基づく中間結果と経路ＩＤとの組合せを含む結果セットを得るための指示信号である。中間結果とは、１階層下のデータベースにおける検索結果のことをいう。経路ＩＤは、経路上の１以上のデータベースに対応する１以上のデータベースＩＤを用いて表現される。
【００６５】
ステップＳ７３では、検索部１２が１階層下のすべてのデータベースから結果セットを受信する。１階層下の各データベースは、検索指示に対応する結果セットを主データベース１０に送ってくる。すなわち、結果セットは検索指示に対する応答信号であるといえる。検索指示を送信してから所与の時間内に、１階層下の少なくとも一つのデータベースから結果セットを受信できなかった場合には、検索部１２は受信待ちを強制的に終了し、該結果セットが無いものとして後続の処理を実行してもよい。
【００６６】
ステップＳ７４では、検索部１２が、受信した結果セットに基づく検索結果を仮想データテーブル５１によって表現する。これは、その検索結果が仮想データテーブル５１のデータとして表現されることを意味する。検索結果を表現する際に、検索部１２は共通マスタテーブル４１を参照して結果セットとマスタデータとを結合してもよい。
【００６７】
ステップＳ７５では、検索部１２がその検索結果、すなわち、仮想データテーブル５１によって表現された検索結果を出力する。検索結果の出力方法は限定されない。例えば、検索部１２は検索結果を、モニタ上に表示してもよいし、他のコンピュータに送信してもよいし、記憶装置に格納してもよいし、後続の処理のために用いてもよい。
【００６８】
中間データベース２０の動作は以下の通りである。ステップＳ８１では、データ中継部２２が１階層上のデータベース（主データベース１０または中間データベース２０）から検索指示を受信する。ステップＳ８２では、データ中継部２２が１階層下のすべてのデータベース（中間データベース２０または末端データベース３０）にその検索指示を送信する。すなわち、データ中継部２２は上位データベースからの検索指示を下位データベースに転送する。
【００６９】
ステップＳ８３では、データ中継部２２が１階層下のすべてのデータベースから結果セットを受信する。１階層下の各データベースは、検索指示に対応する結果セットを中間データベース２０に送ってくる。すなわち、結果セットは検索指示に対する応答信号であるといえる。検索指示を送信してから所与の時間内に、１階層下の少なくとも一つのデータベースから結果セットを受信できなかった場合には、データ中継部２２は受信待ちを強制的に終了し、該結果セットが無いものとして後続の処理を実行してもよい。
【００７０】
ステップＳ８４では、データ中継部２２がそれぞれの結果セットの経路ＩＤを、中間データベース２０に割り当てられたデータベースＩＤを用いて編集する。それぞれの経路ＩＤは、一つの末端データベース３０から自装置までの一つの経路上における１以上の下位データベースのデータベースＩＤを用いて表現される。一例では、経路ＩＤは、１以上のデータベースＩＤを、経路上のデータベースの並びに従って連結することで生成される文字列として表現される。一例では、データ中継部２２は割り当てられたデータベースＩＤを結果セットの経路ＩＤに連結することでその経路ＩＤを編集する。例えば、中間データベース２０のデータベースＩＤが「００１０」であるとし、１階層下にデータベースＩＤ「０００３」を持つ中間データベース２０が存在し、そのさらに１階層下にデータベースＩＤ「０００２」を持つ末端データベース３０があるとする。この場合、結果セットの経路ＩＤは「０００３０００２」または「０００２０００３」であり得る。経路ＩＤが「０００３０００２」であれば、データ中継部２２はこの文字列の前に「００１０」を連結して経路ＩＤを「００１００００３０００２」に変更する。経路ＩＤが「０００２０００３」であれば、データ中継部２２はこの文字列の後ろに「００１０」を連結して経路ＩＤを「０００２０００３００１０」に変更する。このように、データ中継部２２は経路上のデータベースの並びに従って、割り当てられたデータベースＩＤを結果セットの経路ＩＤに連結することで、該経路ＩＤを編集してもよい。
【００７１】
ステップＳ８５では、データ中継部２２が１以上の結果セットを統合し、その統合された結果セットを仮想データテーブル５１によって表現する。結果セットの統合とは、１以上の結果セットの集合に基づいて一つの結果セットを生成する処理のことをいう。統合された結果セットは中間結果として仮想データテーブル５２によって表現される。統合された結果セットは編集された経路ＩＤを含む。検索結果を表現する際に、データ中継部２２は共通マスタテーブル４２を参照して結果セットとマスタデータとを結合してもよい。
【００７２】
ステップＳ８６では、データ中継部２２が統合された結果セットを１階層上のデータベースに送信する。この送信は、ステップＳ８１で受信した検索指示に対する応答信号であるといえる。
【００７３】
末端データベース３０の動作は以下の通りである。ステップＳ９１では、データ抽出部３２が１階層上のデータベース（主データベース１０または中間データベース２０）から検索指示を受信する。
【００７４】
ステップＳ９２では、データ抽出部３２がその検索指示に基づいてセンサデータを検索する。
【００７５】
ステップＳ９３では、データ抽出部３２が、末端データベース３０に割り当てられたデータベースＩＤを用いて経路ＩＤを設定する。一例では、データ抽出部３２はそのデータベースＩＤをそのまま経路ＩＤとして設定する。
【００７６】
ステップＳ９４では、データ抽出部３２が、抽出されたセンサデータ（すなわち検索結果）と経路ＩＤとの組合せを含む結果セットを実データテーブル６０によって表現する。検索結果を表現する際に、データ抽出部３２は共通マスタテーブル４３を参照して結果セットとマスタデータとを結合してもよい。
【００７７】
ステップＳ９５では、データ抽出部３２はその結果セットを１階層上のデータベースに送信する。この送信は、ステップＳ９１で受信した検索指示に対する応答信号であるといえる。
【００７８】
図１９を参照しながら検索の具体例について説明する。図１９はデータベース管理システム１による検索の具体例を示す図である。この例では、主データベース（Ａ）の１階層下に中間データベース（Ｂ）、中間データベース（Ｃ）、および末端データベース（Ｄ）が接続されている。中間データベース（Ｂ）の１階層下には末端データベース（Ｅ）および末端データベース（Ｆ）が接続されている。中間データベース（Ｃ）の１階層下には中間データベース（Ｇ）が接続されており、中間データベース（Ｇ）の１階層下には末端データベース（Ｈ）および末端データベース（Ｉ）が接続されている。図１９では、それぞれのデータベースＩＤを括弧書きで示す（“（０００１）”、“（０００２）”など）。
【００７９】
図１９に示すように個々の末端データベースにセンサデータが格納されている状況で、主データベース（Ａ）の検索部１２が「ＳＥＬＥＣＴ  Ｒ＿ＩＤ，値  ＦＲＯＭ  Ｖ＿ＴＢＬ」というクエリを取得したとする。文字列“Ｒ＿ＩＤ”は経路ＩＤを示し、文字列“Ｖ＿ＴＢＬ”は仮想データテーブル５１の名称を示す。このクエリに応答して、主データベース（Ａ）から各末端データベース３０に向かって経路に沿って検索指示が伝わり、結果セットが各末端データベース３０から主データベース（Ａ）に向かって伝わる。この例では、中間データベース２０は割り当てられたデータベースＩＤを経路ＩＤの前に連結することで該経路ＩＤを編集する。最終的に、検索部１２は１０レコードで構成される最終的な検索結果を仮想データテーブル５１によって表現し、この検索結果を出力する。
【００８０】
図２０を参照しながら検索の別の具体例について説明する。図２０はデータベース管理システム１による検索の別の具体例を示す図である。階層化データベース２の階層構造は図１９に示すものと同じである。図２０に示すように個々の末端データベースにセンサデータが格納されている状況で、主データベース（Ａ）の検索部１２が「ＳＥＬＥＣＴ  Ｒ＿ＩＤ，値  ＦＲＯＭ  Ｖ＿ＴＢＬ  ＯＲＤＥＲ  ＢＹ  値  ＤＥＳＣ  ＬＩＭＩＴ  ２」というクエリを取得したとする。文字列“Ｖ＿ＴＢＬ”は仮想データテーブル５１の名称である。このクエリは、降順に並べた場合に上位二つまでに入る値を抽出する操作を意味する。このクエリに応答して、主データベース（Ａ）から各末端データベース３０に向かって経路に沿って検索指示が伝わり、結果セットが各末端データベース３０から主データベース（Ａ）に向かって伝わる。この例では、検索部１２は一部の末端データベース３０のみに対応する結果セットを１階層下のデータベースから受信する可能性がある。経路ＩＤの編集方法は図１９の例と同じである。図２０は、１階層上のデータベースに渡されるレコードを網掛けで示す。検索部１２は、階層化データベース２内で上位２個の値に対応する２レコードで構成される最終的な検索結果を仮想データテーブル５１によって表現し、この検索結果を出力する。上位データベースには必要なデータのみが送信されるので、階層化データベース２における通信量および処理負荷を全体として抑えることができる。
【００８１】
図１９および図２０のいずれも、主データベース１０の仮想データテーブル５１によって表現された検索結果と、中間データベース２０の仮想データテーブル５２によって表現された結果セット（中間結果）と、末端データベース３０の実データテーブル６０によって表現された結果セットとを示す。図１９および図２０のいずれの例においても、主データベース（Ａ）は、経路ＩＤを参照することで、それぞれのレコードがどこで生成されてどのような経路を介して送られてきたのかを特定することができる。例えば、図２０の例では、階層化データベース２における上位二つの値が末端ＤＢ（Ｄ）および末端ＤＢ（Ｉ）から得られたことが分かる。
【００８２】
図１９および図２０の例では個々のレコードが経路ＩＤを含むが、経路ＩＤを検索結果または中間結果と関連付ける方法は限定されない。したがって、結果セットのデータ構造および表現方法は限定されない。例えば、経路ＩＤは検索結果または中間結果のレコードとは別のデータ構造によって表現されてもよい。
【００８３】
［効果］
以上説明したように、本開示の一側面に係るデータベース管理システムは、それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御する少なくとも一つのプロセッサを備える。複数の末端データベースのそれぞれは、センサからの信号に基づくセンサデータを記憶する。主データベースは、センサデータに基づく検索結果を表現する仮想データテーブルを提供する。少なくとも一つのプロセッサは、検索結果を得るためのクエリを取得するステップと、クエリに対応する検索指示を複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、センサデータに基づく中間結果と、主データベースと末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、少なくとも一つの末端データベースに対応する少なくとも一つの結果セットを受信するステップと、少なくとも一つの結果セットに基づく検索結果を仮想データテーブルによって表現するステップと、仮想データテーブルによって表現された検索結果を出力するステップとを実行する。
【００８４】
本開示の一側面に係るデータベース管理方法は、それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御するデータベース管理システムによって実行される。複数の末端データベースのそれぞれは、センサからの信号に基づくセンサデータを記憶する。主データベースは、センサデータに基づく検索結果を表現する仮想データテーブルを提供する。データベース管理方法は、検索結果を得るためのクエリを取得するステップと、クエリに対応する検索指示を複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、センサデータに基づく中間結果と、主データベースと末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、少なくとも一つの末端データベースに対応する少なくとも一つの結果セットを受信するステップと、少なくとも一つの結果セットに基づく検索結果を仮想データテーブルによって表現するステップと、仮想データテーブルによって表現された検索結果を出力するステップとを含む。
【００８５】
本開示の一側面に係るデータベース管理プログラムは、それぞれがセンサに接続された複数の末端データベースと、該複数の末端データベースと直接にまたは間接に接続された主データベースとを備える階層化データベースを制御するデータベース管理システムとしてコンピュータを機能させる。複数の末端データベースのそれぞれは、センサからの信号に基づくセンサデータを記憶する。主データベースは、センサデータに基づく検索結果を表現する仮想データテーブルを提供する。データベース管理プログラムは、検索結果を得るためのクエリを取得するステップと、クエリに対応する検索指示を複数の末端データベースのうちの少なくとも一つの末端データベースに向けて送信するステップであって、該検索指示が、センサデータに基づく中間結果と、主データベースと末端データベースとを結ぶ経路を一意に特定する識別子である経路ＩＤとの組合せを含む結果セットを得るための指示信号である、該ステップと、少なくとも一つの末端データベースに対応する少なくとも一つの結果セットを受信するステップと、少なくとも一つの結果セットに基づく検索結果を仮想データテーブルによって表現するステップと、仮想データテーブルによって表現された検索結果を出力するステップとをコンピュータに実行させる。
【００８６】
このような側面においては、クエリに対応するセンサデータが、主データベースと末端データベースとを結ぶ経路を示す経路ＩＤと共に主データベースに集められ、その集められたセンサデータに基づく検索結果が仮想データテーブルによって表現され、そして出力される。センサデータそのものは末端データベースにのみ格納され、主データベースは仮想データテーブルによって検索結果を表現するので、センサデータそのものを記憶するための記憶領域を階層化データベースの全体として抑えることができる。加えて、センサデータの出所、すなわち情報源を経路ＩＤによって特定できる。このような仕組みによって、センサデータを効率的に操作することが可能になる。
【００８７】
他の側面に係るデータベース管理システムでは、経路ＩＤが、少なくとも末端データベースのデータベースＩＤを用いて構成される文字列であってもよい。既に存在するデータベースＩＤを用いることで一意の経路ＩＤを容易に生成することができる。
【００８８】
他の側面に係るデータベース管理システムでは、階層化データベースが、主データベースから末端データベースまでの経路上に位置する中間データベースをさらに備えてもよい。中間データベースを設けることで階層化データベースを柔軟に構成することができる。また、中間データベースと主データベースとの間で処理が分散されるので、主データベースに掛かる処理の負荷を下げることができる。
【００８９】
他の側面に係るデータベース管理システムでは、経路上に少なくとも一つの中間データベースが位置する場合には、経路ＩＤが、末端データベースのデータベースＩＤと、該少なくとも一つの中間データベースのそれぞれのデータベースＩＤとを用いて構成される文字列であってもよい。既に存在するデータベースＩＤを用いることで一意の経路ＩＤを容易に生成することができる。
【００９０】
他の側面に係るデータベース管理システムでは、経路ＩＤが、末端データベースのデータベースＩＤと、少なくとも一つの中間データベースのそれぞれのデータベースＩＤとを、経路上のデータベースの並びに従って連結することで生成される文字列であってもよい。既に存在するデータベースＩＤを階層化データベースのツリー構造に従って連結することで一意の経路ＩＤを容易に生成することができる。
【００９１】
他の側面に係るデータベース管理システムでは、主データベース、複数の末端データベース、および中間データベースのすべてが、階層化データベースの制御に必要な情報を記憶する共通マスタテーブルを備えてもよい。共通マスタテーブルは、主データベース、複数の末端データベース、および中間データベースの間で同一であってもよい。共通マスタテーブルは、テーブルの変更の段階を示すバージョン番号と関連付けられてもよい。共通マスタテーブルにバージョン番号を関連付けることで、階層化データベース内のすべてのデータベースにおける共通マスタテーブルの同一性を確実に保証することができる。
【００９２】
他の側面に係るデータベース管理システムでは、複数の末端データベースのそれぞれが、サイクリックテーブルを用いてセンサデータを記憶してもよい。サイクリックテーブルを用いることで、末端データベースの記憶容量を抑えつつ、処理に必要なデータを効率的に記憶することができる。
【００９３】
［変形例］
以上、本開示での実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００９４】
上記実施形態では階層化データベース２内のすべてのデータベースが共通マスタテーブル４０を備える。しかし、共通マスタテーブルは必須の構成要素ではなく、省略されてもよい。
【００９５】
本開示において、「少なくとも一つのプロセッサが、第１の処理を実行し、第２の処理を実行し、…第ｎの処理を実行する。」との表現、またはこれに対応する表現は、第１の処理から第ｎの処理までのｎ個の処理の実行主体（すなわちプロセッサ）が途中で変わる場合を含む概念を示す。すなわち、この表現は、ｎ個の処理のすべてが同じプロセッサで実行される場合と、ｎ個の処理においてプロセッサが任意の方針で変わる場合との双方を含む概念を示す。
【００９６】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップの一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の２以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【００９７】
二つの数値の大小関係の比較では、「以上」および「よりも大きい」という二つの基準のどちらが用いられてもよく、「以下」および「未満」という二つの基準のうちのどちらが用いられてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
【符号の説明】
【００９８】
１…データベース管理システム、２…階層化データベース、１０…主データベース、１１…テーブル管理部、１２…検索部、２０…中間データベース、２１…テーブル管理部、２２…データ中継部、３０…末端データベース、３１…テーブル管理部、３２…データ抽出部、４０〜４３…共通マスタテーブル、５０〜５２…仮想データテーブル、６０…実データテーブル、９０…センサ、９１…センサデータ、９２…センサデータ。
【図１】
2020177569.tif 000003
【図２】
2020177569.tif 000004
【図３】
2020177569.tif 000005
【図４】
2020177569.tif 000006
【図５】
2020177569.tif 000007
【図６】
2020177569.tif 000008
【図７】
2020177569.tif 000009
【図８】
2020177569.tif 000010
【図９】
2020177569.tif 000011
【図１０】
2020177569.tif 000012
【図１１】
2020177569.tif 000013
【図１２】
2020177569.tif 000014
【図１３】
2020177569.tif 000015
【図１４】
2020177569.tif 000016
【図１５】
2020177569.tif 000017
【図１６】
2020177569.tif 000018
【図１７】
2020177569.tif 000019
【図１８】
2020177569.tif 000020
【図１９】
2020177569.tif 000021
【図２０】
2020177569.tif 000022