【文献】
渡辺 俊史,問い合わせ文記述の幅を広げる相関副問い合わせ,日経ソフトウエア,日本,日経BP社,2008年 5月24日,第11巻,第7号,p.140−147
(58)【調査した分野】(Int.Cl.,DB名)
前記出力部は、前記副問合せを前記ビューに置き換え、前記副問合せに対応するデータをキャッシュした場合に消費する記憶領域の量を示す資源コストが所定の制約を満たすように前記副問合せを前記ビューに置き換えることによって前記期待値が増加する前記副問合せを示す情報を出力する、
請求項1又は2に記載のデータベース管理装置。
前記作成部は、前記ビューを作成する指示を前記ユーザ端末から受け付けると、当該ビューに対応するキャッシュを生成するか否かの指示を前記ユーザ端末からさらに受け付け、当該キャッシュを生成する指示を受け付けたことに応じて、当該キャッシュを生成する、
請求項1から3のいずれか1項に記載のデータベース管理装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の問合せの最適化では、自動的に複数の問合せ間で共通の中間結果が共有されるので、共有する中間結果をユーザが定義する必要がない。このため、どのように中間結果を共有すると最適化されるかをユーザが認識しないことがある。この場合、ユーザは、自身が作成した問合せの中のどの部分が冗長であり、計算コストが高いのか認識することができず、自発的に問合せを改善することが難しくなるという問題が発生する。
【0006】
例えば、特許文献1は、Hadoop(登録商標)やリレーショナルデータベースシステムといった複数のデータベースシステムにおいて、Hadoop上の中間生成物を用いて、どのデータベースシステムにどのデータを物理的に配置するかを問合せ処理効率の観点で制約付き最適化する技術を開示している。この場合、Hadoop上の中間生成物を用いているため、任意のデータベースシステムに拡張することはできない。
【0007】
また、計算コストが高い処理は、記述量が多くなる場合が多い。例えば、複数の問合せにおいて共通する処理に対応する記述を変更する場合に、当該記述の量が多いときには、ユーザが修正する範囲が大きくなり、ユーザの修正作業が煩雑になるという問題がある。そこで、ユーザに問合せ文の計算コストを把握させ、自発的に問合せを改善できるようにすることが求められている。
【0008】
そこで、本発明はこれらの点に鑑みてなされたものであり、データベースに対応する問合せをユーザに自発的に改善させることができるデータベース管理装置、データベース管理方法、及びデータベース管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の第1の態様に係るデータベース管理装置は、データベースに対応する複数の問合せ文を取得する取得部と、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部と、特定された前記副問合せの計算コストを算出する算出部と、算出された前記計算コストを示す情報を出力する出力部と、を備える。
【0010】
前記算出部は、特定された前記副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとを算出し、前記出力部は、算出された前記副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとに基づいて、前記ビューに置き換えることによって計算コストの低下量の期待値が増加する前記副問合せを示す情報を出力してもよい。
【0011】
前記出力部は、前記ビューに置き換えることによる前記計算コストの低下量の期待値が大きい順に前記副問合せを示す情報を出力してもよい。
前記出力部は、前記副問合せを前記ビューに置き換え、前記副問合せに対応するデータをキャッシュした場合に消費する記憶領域の量を示す資源コストが所定の制約を満たすように前記副問合せを前記ビューに置き換えることによって計算コストの低下量の期待値が増加する前記副問合せを示す情報を出力してもよい。
前記計算コストの低下量の期待値が増加する前記副問合せに対応するビューを作成する作成部をさらに備えてもよい。
【0012】
前記作成部は、前記計算コストの低下量の期待値が増加する前記副問合せに対応するビューを作成するか否かの指示をユーザ端末から受け付け、当該ビューを作成する指示を受け付けたことに応じて、当該ビューを作成してもよい。
【0013】
前記作成部は、前記ビューを作成する指示を前記ユーザ端末から受け付けると、当該ビューに対応するキャッシュを生成するか否かの指示を前記ユーザ端末からさらに受け付け、当該キャッシュを生成する指示を受け付けたことに応じて、当該キャッシュを生成してもよい。
【0014】
前記データベース管理装置は、前記ユーザ端末から前記問合せ文を取得する第2取得部と、前記第2取得部が取得した前記問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する実行部をさらに備えてもよい。
【0015】
前記実行部は、前記副問合せを前記ビューに置き換える指示を前記ユーザ端末から受け付けたことに応じて、当該副問合せを当該ビューに置き換えて前記問合せ文を実行してもよい。
【0016】
前記取得部は、前記複数の問合せ文のそれぞれに対応する処理を木構造で示す実行計画を取得し、前記特定部は、取得された前記実行計画の少なくとも一部の実行計画に共通に含まれる部分木を特定し、当該部分木に対応する前記副問合せを特定してもよい。
【0017】
本発明の第2の態様に係るデータベース管理方法は、コンピュータが実行する、データベースに対応する複数の問合せ文を取得するステップと、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定するステップと、特定された前記副問合せの計算コストを算出するステップと、算出された前記計算コストを示す情報を出力するステップと、を備える。
【0018】
本発明の第3の態様に係るデータベース管理プログラムは、コンピュータを、データベースに対応する複数の問合せ文を取得する取得部、取得された複数の前記問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する特定部、特定された前記副問合せの計算コストを算出する算出部、及び、算出された前記計算コストを示す情報を出力する出力部、として機能させる。
【発明の効果】
【0019】
本発明によれば、データベースに対応する問合せをユーザに自発的に改善させることができるという効果を奏する。
【発明を実施するための形態】
【0021】
<第1実施形態>
[データベース管理システムSの概要]
図1は、第1実施形態に係るデータベース管理システムSの概要を示す図である。データベース管理システムSは、データベース管理装置1と、データベースシステム2と、ユーザ端末3とを備え、データベースシステム2において実行される問合せ文を管理するシステムである。
【0022】
データベース管理装置1は、データベースシステム2及びユーザ端末3と、LANやインターネット等の通信ネットワークを介して通信可能に接続されている。データベース管理装置1は、データベースシステム2において実行された複数の問合せ文をデータベースシステム2から取得する(
図1の(1))。
【0023】
データベース管理装置1は、取得した複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定する(
図1の(2))。データベース管理装置1は、特定した副問合せの計算コストを算出するとともに、当該副問合せをビューに置き換えた場合の計算コストを算出する(
図1の(3)、(4))。データベース管理装置1は、算出した計算コストを示す計算コスト情報をユーザ端末3に送信する(
図1の(5))。これにより、データベース管理装置1は、計算コスト情報をユーザに確認させて、データベースに対応する問合せをユーザに自発的に改善させることができる。
【0024】
ユーザ端末3は、ユーザから、ビューの作成指示を受け付けると、ビューの作成を指示する作成指示情報をデータベース管理装置1に送信する(
図1の(6))。データベース管理装置1は、作成指示情報を受信するとビューを作成する(
図1の(7))。
【0025】
このように、データベース管理装置1は、ユーザ端末3から受信した作成指示情報に基づいてビューを作成することにより、作成対象のビューの計算コストが副問合せの計算コストよりも低い場合に、計算コストを削減することができる。
以下、データベース管理装置1の構成について説明する。
【0026】
[データベース管理装置1の構成例]
図2は、第1実施形態に係るデータベース管理装置1の構成を示す図である。
データベース管理装置1は、記憶部11と、制御部12とを備える。
【0027】
記憶部11は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)等である。記憶部11は、データベース管理装置1を機能させるための各種プログラムを記憶する。記憶部11は、データベース管理装置1の制御部12を、後述する取得部121、特定部122、算出部123、出力部124、及び作成部125として機能させるデータベース管理プログラムを記憶する。また、記憶部11は、副問合せと、当該副問合せに対応して作成されたビューとの対応関係を示す対応関係情報を記憶する。
【0028】
制御部12は、例えばCPU(Central Processing Unit)である。制御部12は、記憶部11に記憶されている各種プログラムを実行することにより、データベース管理装置1に係る機能を制御する。制御部12は、データベース管理プログラムを実行することにより、取得部121、特定部122、算出部123、出力部124、及び作成部125として機能する。
【0029】
取得部121は、データベースに対応する複数の問合せ文をデータベースシステム2から取得する。具体的には、取得部121は、データベースシステム2から、複数の問合せ文として、SQL(Structured Query Language)で記述された命令文を取得する。また、取得部121は、複数の問合せ文のそれぞれに対応する処理を木構造で示す実行計画を取得する。取得部121は、取得した複数の問合せ文と実行計画とを関連付けて記憶部11に記憶させる。
【0030】
図3は、本実施形態に係る問合せ文の一例を示す図である。
図4は、
図3に示す問合せ文に対応する実行計画を示す図である。
図4に示されるように、実行計画は木構造であることが確認できる。また、
図4に示されるように、楕円内には、問合せ文によって実行される処理の種類が記載されている。また、処理の種類がテーブルのスキャンである場合には、処理の後にスキャン対象となるテーブル名(例えば、customerやorders)が示されている。なお、
図4に示される実行計画では、テーブルから選択するカラムの指定や、テーブルから行を選択する条件といった処理の内容については記載を省略している。
【0031】
特定部122は、取得された複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを1以上特定する。具体的には、特定部122は、取得された複数の実行計画の少なくとも一部の実行計画に共通に含まれる共通部分木を特定し、当該共通部分木に対応する副問合せを特定する。
【0032】
より具体的には、特定部122は、取得された複数の実行計画を参照し、処理の種類、スキャン対象となるテーブル名、及び木構造が共通する部分木を共通部分木として特定する。ここで、特定部122は、特定した部分木において、処理の内容が異なる場合、処理の内容の共通部分を抽出し、共通部分木の処理内容としてもよい。
【0033】
特定部122は、例えば、処理の種類が選択の場合には、カラムの和集合を共通部分として抽出し、処理の種類が射影の場合には、行の選択条件の論理和を共通部分として抽出する。なお、特定部122は、共通部分木が1つのテーブルからの選択に対応するとともに、行の選択条件の論理和が「any」となる共通部分については、抽出しないようにしてもよい。
【0034】
その後、特定部122は、実行計画から特定した共通部分木と、当該実行計画に対応する問合せ文とに基づいて、共通部分木に対応する副問合せを特定する。
【0035】
算出部123は、特定された副問合せのそれぞれの計算コストを算出する。例えば、算出部123は、特定された副問合せが参照するテーブルのレコード数に所定の係数を乗算することにより、副問合せの計算コストを算出する。
【0036】
また、算出部123は、特定された1以上の副問合せのそれぞれをビューに置き換えた場合の、当該ビューの計算コストを算出する。例えば、算出部123は、副問合せに対応するビューをデータベースシステム2に生成させて、当該ビューをデータベースシステム2に実行させることにより、ビューの実行にかかる計算コストを取得する。ここで、問合せ文に含まれる副問合せをビューに置き換えて実行する場合には、副問合せをビューに置き換える処理が発生する。そこで、算出部123は、問合せ文に含まれる副問合せをビューに置き換える処理に対応する計算コストと、ビューの実行にかかる計算コストとの合算値をビューの計算コストとしてもよい。
【0037】
算出部123は、算出された副問合せの計算コストと、当該副問合せをビューに置き換えた場合の当該ビューの計算コストとに基づいて、ビューに置き換えることによって計算コストが低下する副問合せを特定する。
【0038】
また、n個の問合せ文から特定された副問合せの個数がkであり、j番目の副問合せをビューに置き換える処理に対応する計算コストをd(j)とする。
【0039】
また、i番目の問合せ文にj番目の副問合せが含まれるか否かを示すデルタ関数(含まれる場合1、含まれない場合0)をa(i,j)とする。
【0040】
ここで、i番目の問合せ文にj番目の副問合せが含まれる個数を示す関数をa(i,j)としてもよい。これは、i番目の問合せ文にj番目の副問合せが複数個含まれる場合を考慮したものである。
【0041】
また、j番目の副問合せをビューに置き換えるか否かを示す関数をx(j)とする。ここで、x(j)は、0又は1をとる。0は、副問合せをビューに置き換えないことを示し、1は、副問合せをビューに置き換えることを示す。そして、複数の副問合せのそれぞれをビューに置き換えるか否かを以下の式(1)で表現する。
【0042】
また、i番目の問合せ文に含まれるj番目の副問合せをビューに置き換えた後の、i番目の問合せ文の計算コストの低下量をc’(i,j)とする。
【0043】
複数の問合せ文の少なくともいずれかに含まれる副問合せをビューに置き換えた場合の計算コストの低下量は、以下の式(2)で表現することができる。
【0044】
さらに、a(i,j)を、i番目の問合せ文が実行される頻度に、i番目の問合せ文にj番目の副問合せが含まれるか否かを示すデルタ関数(含まれる場合1、含まれない場合0)を乗算したものとしてもよい。これにより、(2)式は複数の問合せ文の少なくともいずれかに含まれる副問合せをビューに置き換えた場合の計算コストの期待値となる。i番目の問合せ文が実行される頻度をすべて1とみなすと、a(i,j)は、i番目の問合せ文にj番目の副問合せが含まれるか否かを示すデルタ関数となり、各問合せ文が1回ずつ実行された場合の計算コストの低下量の期待値となる。
【0045】
さらに、a(i,j)を、i番目の問合せ文が実行される頻度に、i番目の問合せ文にj番目の副問合せが含まれる個数を乗算したものとしてもよい。これにより、(2)式は、i番目の問合せ文にj番目の副問合せが複数個含まれる場合を考慮し、さらに、複数の問合せ文の少なくともいずれかに含まれる副問合せをビューに置き換えた場合の計算コストの期待値となる。i番目の問合せ文が実行される頻度をすべて1とみなすと、a(i,j)は、i番目の問合せ文にj番目の副問合せが含まれる個数を示すこととなり、これは各問合せ文が1回ずつ実行された場合の計算コストの低下量の期待値となる。
【0046】
算出部123は、式(1)のXに含まれるx(1)〜x(k)の値を変化させながら、式(2)の値が最大となるx(1)〜x(k)の組み合わせを特定する。これにより、算出部123は、ビューに置き換えることによって計算コストが低下する全ての副問合せを特定することができる。
【0047】
さらに、組み合わせを特定する際、式(2)に制約をかけてもよい。具体的には、j番目の副問合せに対応するキャッシュ(マテリアライズド・ビュー)を生成した場合のストレージ等の記憶領域の資源コストをr(j)、資源コストの総量をSとし、式(2)の制約を以下の式(3)で表現する。
【0048】
算出部123は、式(1)のXに含まれるx(1)〜x(k)の値を変化させながら、式(3)の制約下で式(2)の値が最大となるx(1)〜x(k)の組み合わせを特定する。これにより、算出部123は、式(3)の制約下でビューに置き換えることによって計算コストが低下する全ての副問合せを特定することができる。
【0049】
出力部124は、算出部123によって算出された副問合せの計算コストを示す情報を出力する。また、出力部は、算出部123によって算出された、副問合せをビューに置き換えた場合の当該ビューの計算コストを示す情報をユーザ端末3に出力する。
【0050】
ここで、出力部124は、算出部123によって特定された副問合せ、すなわち、ビューに置き換えることによって計算コストの低下量の期待値が増加する副問合せを示す情報をユーザ端末3に出力してもよい。このようにすることで、ユーザ端末3のユーザは、計算コストの低下量の期待値が増加する副問合せを認識し、ビューに置き換えたり、副問合せの見直しを行ったりすることができる。
【0051】
また、出力部124は、ビューに置き換えることによる計算コストの低下量の期待値が大きい順に副問合せを示す情報をユーザ端末3に出力してもよい。このようにすることで、ユーザ端末3のユーザは、計算コストの低下量の期待値が大きく、見直すことによる改善効果が大きい副問合せを認識することができる。
【0052】
作成部125は、計算コストの低下量の期待値が増加する副問合せに対応するビューを作成する。具体的には、作成部125は、出力部124が副問合せを示す情報をユーザ端末3に出力した後、ユーザ端末3から、副問合せに対応するビューを作成するか否かの指示をユーザ端末3から受け付ける。例えば、ユーザ端末3は、自身の表示部に計算コストの低下量の期待値が増加する1以上の副問合せを示す情報を表示させ、ユーザから、ビューに置き換える副問合せの選択を受け付ける。
【0053】
ユーザ端末3は、副問合せが選択されたことに応じて、選択された副問合せに対応するビューを作成する指示を示す作成指示情報をデータベース管理装置1に送信する。作成部125は、ユーザ端末3から作成指示情報を受信すると、当該作成指示情報に基づいて、データベースシステム2にビューを作成させる。ここで、作成部125は、記憶部11に記憶されている作成済みのビューと、当該ビューに対応する副問合せとの関係を示す対応関係情報を参照し、作成指示情報が示すビューが既に作成されているか否かを判定する。そして、作成部125は、作成指示情報が示すビューが作成されていない場合に、データベースシステム2に当該ビューを作成させる。
【0054】
作成部125は、ビューを作成する指示をユーザ端末3から受け付けると、当該ビューに対応するキャッシュ(マテリアライズド・ビュー)を生成するか否かの指示をユーザ端末3からさらに受け付けてもよい。そして、作成部125は、当該キャッシュを生成する指示を受け付けたことに応じて、当該キャッシュを生成してもよい。
【0055】
また、作成部125は、取得部121がデータベースシステム2から取得した問合せ文に基づいて、ビューに対応する副問合せ文が、キャッシュの生成に適しているか否かを判定してもよい。例えば、作成部125は、データベースシステム2から取得した問合せ文に基づいて、副問合せ文に対応するテーブルに格納されるデータの更新頻度を算出してもよい。そして、作成部125は、更新頻度が所定の閾値以下である場合に、キャッシュの生成に適していると判定してもよい。作成部125は、ビューに対応する副問合せ文が、キャッシュの生成に適していると判定し、さらに、ビューを作成する指示をユーザ端末3から受け付けると、当該ビューに対応するキャッシュを生成してもよい。
【0056】
作成部125は、ビューを作成すると、当該ビューを示す情報と、当該ビューに対応する副問合せを示す情報との対応関係を示す対応関係情報を記憶部11に記憶させる。
【0057】
[データベース管理装置1における処理の流れ]
続いて、データベース管理装置1における処理の流れについて説明する。
図5は、第1実施形態に係るデータベース管理装置1における処理の流れを示すフローチャートである。
【0058】
まず、取得部121は、データベースシステム2から、問合せ文と実行計画とを取得し(S10)、問合せ文と実行計画とを記憶部11に記憶させる。
続いて、特定部122は、実行計画に基づいて、複数の問合せ文に共通に含まれる副問合せを特定する(S20)。
【0059】
続いて、算出部123は、特定した副問合せの計算コストを算出する(S30)。また、算出部123は、特定した副問合せをビューに置き換えた場合の当該ビューの計算コストを算出する(S40)。
【0060】
続いて、出力部124は、算出部123によって算出された副問合せの計算コストを示す情報と、当該副問合せに対応するビューの計算コストを示す情報とをユーザ端末3に出力する(S50)。
【0061】
続いて、作成部125は、S50において計算コストを示す情報をユーザ端末3に出力してから所定時間以内にユーザ端末3においてビューの作成指示が行われたか否かを判定する(S60)。作成部125は、ビューの作成指示が行われたと判定すると、S70に処理を移し、ビューを作成する。また、作成部125は、ビューの作成指示が行われていないと判定すると、本フローチャートに係る処理を終了する。
作成部125は、ビューを作成すると、当該ビューを示す情報と、当該ビューに対応する副問合せを示す情報との対応関係を示す対応関係情報を記憶部11に記憶させる(S80)。
【0062】
[第1実施形態における効果]
以上のとおり、第1実施形態に係るデータベース管理装置1は、複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せを特定し、特定された副問合せの計算コストを算出し、ユーザ端末3に出力する。このようにすることで、ユーザ端末3のユーザは、複数の問合せ文の少なくとも一部の問合せ文に共通に含まれる副問合せの計算コストを認識することができる。これにより、データベース管理装置1は、ユーザに、問合せ文の中で、どの部分が冗長であるかを認識させ、自発的に問合せ文を改善させることができる。
【0063】
また、ユーザが自発的に問合せ文を改善することにより、ユーザが作成する問合せ文が簡潔な記載となる。これにより、データの定義の一部が変更された場合、又は問合せの対象となるテーブルの変更が行われた場合に、ユーザによる問合せ文の修正範囲を少なくすることができる。
【0064】
また、ユーザ又は管理者は、データベースシステム2において頻繁に実行される共通の中間処理である副問合せをビューという形式で認識することができ、データ分析の計画やシステムの増設等の計画にも利用することができる。
【0065】
<第2実施形態>
[問合せ文に含まれる副問合せをビューに置き換える入力を受け付ける]
続いて、第2実施形態について説明する。第1実施形態に係るデータベース管理装置1は、ユーザ端末3からの指示情報を受信したことに応じてビューを作成したが、ユーザが新たに問合せ文を作成する場合に、作成されたビューを使用せず、副問合せを使用する場合がある。これに対して、第2実施形態に係るデータベース管理装置1は、新たに作成された問合せ文に、作成されたビューに対応する副問合せが含まれている場合に、当該副問合せを当該ビューに置き換える。以下に、第2実施形態に係るデータベース管理装置1について説明する。なお、第1実施形態と同じ部分については適宜説明を省略する。
【0066】
図6は、第2実施形態に係るデータベース管理装置1の構成を示す図である。第2実施形態に係るデータベース管理装置1の制御部12は、記憶部11に記憶されているデータベース管理プログラムを実行することにより第2取得部126及び実行部127としてさらに機能する。
【0067】
第2取得部126は、ユーザ端末3から、新たにデータベースシステム2において実行される問合せ文を取得する。
実行部127は、第2取得部126が問合せ文を取得すると、当該問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する。
【0068】
具体的には、実行部127は、第2取得部126が取得した問合せ文を解析し、記憶部11に記憶されている対応関係情報を構成する副問合せ文が含まれているか否かを判定する。実行部127は、問合せ文に、対応関係情報を構成する副問合せ文が含まれていると判定すると、対応関係情報を参照し、当該副問合せに関連付けられているビューを示す情報を特定する。
【0069】
実行部127は、問合せ文に含まれている、特定した副問合せ文を、特定したビューに置き換える。ここで、実行部127は、問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せをビューに置き換えるか否かをユーザ端末3から受け付けてもよい。そして、実行部127は、副問合せをビューに置き換える指示をユーザ端末3から受け付けたことに応じて、当該副問合せを当該ビューに置き換えてもよい。
その後、実行部127は、ビューに置き換えた後の問合せ文をデータベースシステム2に送信することにより、当該問合せ文をデータベースシステム2に実行させる。
【0070】
[第2実施形態における効果]
以上のとおり、第2実施形態に係るデータベース管理装置1は、ユーザ端末3から取得した問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せを当該ビューに置き換えることにより当該問合せ文を実行する。このようにすることで、データベース管理装置1は、ユーザ端末3から取得した問合せ文の計算コストを低減することができる。
【0071】
また、データベース管理装置1は、ユーザ端末3から取得した問合せ文に含まれる副問合せに対応するビューが作成されている場合に、当該副問合せをビューに置き換えるか否かをユーザ端末3から受け付け、副問合せをビューに置き換える指示をユーザ端末3から受け付けたことに応じて、当該副問合せを当該ビューに置き換える。このようにすることで、データベース管理装置1は、ユーザ端末3から取得した問合せ文に含まれる副問合せをビューに置き換えることにより、当該問合せ文の計算コストを低減できることをユーザに認識させることができる。
【0072】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上述の複数の実施形態を組み合わせてもよい。また、特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。