(57)【特許請求の範囲】
【請求項１】
複数の行と、第１の列及び前記第１の列に対応付けられた第２の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を１つずつ記憶する複数の記憶部と、複数の検索部とを備える表検索装置における表検索方法であって、
前記第１の列及び前記第２の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを受信し、
前記検索クエリーを前記複数の検索部に送信し、
前記検索部が、対応する前記記憶部に記憶された分解表において、前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、
含まれていると判定した前記検索部が、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力し、
前記複数の分解表の各々は、前記複数の分解表の各々を当該複数の記憶部のうちのいずれに割り当てるかを決定するためのインデックスを使わずに決定された前記複数の記憶部のうちのいずれかに割り当てられて記憶され、
前記複数の分解表は、前記複数の分解表の各々について、前記表データにおける前記第１の列及び前記第２の列のいずれか一方として選択された基準列に含まれる値が、前記分解表内の前記基準列内で唯１つとなるように生成されており、
前記複数の分解表は、前記表データに含まれていたデータのみから生成されている
表検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内に分散して記憶されている表データを検索する表検索装置、表検索方法、及び、表検索システムに関する。
【背景技術】
【０００２】
従来、行と列からなる表構造で表現されたデータ（以後、表データという）を高速に検索するための技術として、いわゆるデータベースが広く使われている。
【０００３】
こうしたデータベースでは、大量の表データを高速に検索するために、「インデックス」と呼ばれる、検索のためのデータを事前に生成する。データベースの検索エンジンは、表データを直接検索する代わりに、まずインデックスを検索することにより、検索対象であるデータの、データベース内における格納場所等を高速に知ることができる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２８２８１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、データベースにおいてインデックスを生成することには、主に次の２つの課題がある。
【０００６】
第１の課題として、インデックスの生成には、複雑な計算処理が必要であり、かつ、新しいデータがデータベースに追加される度にインデックスの再生成が必要となるため、その計算コストが大きいという点が挙げられる。
【０００７】
これは特に、データの更新が頻繁に発生する場合に、大きな問題となる。
【０００８】
また、第２の課題として、一般に、第１の課題を解決するために、データベースを実現する装置の大型化が避けられないという点が挙げられる。
【０００９】
例えば、キーバリューストア（ＫＶＳ）方式のデータベースは、インデックス情報だけを保持し扱うコンピュータと、検索対象のデータだけを保持し扱うコンピュータとの、２種類のコンピュータを備える。まず、前者のコンピュータで検索対象のデータを保持するコンピュータの検索を行い、その後、検索されたコンピュータでそのコンピュータ内のデータを検索することで、インデックス管理の負荷を分散させている。しかし、この方式では、複数台の計算機を備えることが必須であり、設置場所や費用、省電力化の観点から問題がある。
【００１０】
そこで、本発明は、インデックスを生成せずとも、インデックスを生成した場合と同程度に高速に表データの検索が可能な表検索方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のある局面に係る表検索装置は、複数の行と、第１の列及び前記第１の列に対応付けられた第２の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を１つずつ記憶している複数の受信処理部と、送信部と、前記第１の列及び前記第２の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを、前記送信部へ送信し、前記複数の受信処理部の各々から出力される出力値である検索出力値を受信し、かつ、受信した前記検索出力値を出力する制御部とを備えており、前記送信部は、前記制御部から受信した前記検索クエリーを、前記複数の受信処理部の全てに対して出力し、前記受信処理部は、取得した前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、含まれている場合には、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力し、前記複数の分解表の各々は、前記複数の分解表の各々を当該複数の受信処理部のうちのいずれに割り当てるかを決定するためのインデックスを使わずに決定された前記複数の受信処理部のうちのいずれかに割り当てられて記憶され、前記表検索装置は、さらに、前記表データから前記複数の分解表を生成する分割部を備えており、前記制御部は、前記分割部から前記複数の分解表を取得し、取得した前記分解表を前記複数の受信処理部の各々に１つずつ記憶させ、前記分割部は、前記表データについて前記第１の列及び前記第２の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、前記分解表内の前記基準列内で唯1つとなるように、前記複数の分解表を生成し、前記分割部は、前記表データに含まれていたデータのみから前記複数の分解表を生成する。
【００１２】
本発明のある局面に係る表検索方法は、複数の行と、第１の列及び前記第１の列に対応付けられた第２の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を１つずつ記憶する複数の記憶部と、複数の検索部とを備える表検索装置における表検索方法であって、前記第１の列及び前記第２の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを受信し、前記検索クエリーを前記複数の検索部に送信し、前記検索部が、対応する前記記憶部に記憶された分解表において、前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、含まれていると判定した前記検索部が、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力し、前記複数の分解表の各々は、前記複数の分解表の各々を当該複数の記憶部のうちのいずれに割り当てるかを決定するためのインデックスを使わずに決定された前記複数の記憶部のうちのいずれかに割り当てられて記憶され、前記複数の分解表は、前記複数の分解表の各々について、前記表データにおける前記第１の列及び前記第２の列のいずれか一方として選択された基準列に含まれる値が、前記分解表内の前記基準列内で唯１つとなるように生成されており、前記複数の分解表は、前記表データに含まれていたデータのみから生成されている。
【００１３】
これによると、表データは、複数の分解表の単位に細分化され、受信処理部に記憶されている。よって、表検索装置は、検索クエリーに含まれる列識別子によって特定される列に、検索クエリーに含まれる検索値が含まれているか否かを、表データ全体を検索する場合に比べて高速に検索することができる。
【００１４】
よって、インデックスを生成せずとも、インデックスを生成した場合と同程度に高速に表データの検索が可能な表検索装置を提供することができる。
【００１５】
また、前記表データから前記複数の分解表を生成する分割部をさらに備えており、前記制御部は、前記分割部から前記複数の分解表を取得し、取得した前記分解表を前記複数の受信処理部の各々に１つずつ記憶させるとしてもよい。
【００１６】
これによると、表検索装置は、新たな表データを取得し、これを分割部により分割することで、新たな表データに対応した分解表を生成することができる。よって、検索対象とする表データを更新することができる。
【００１７】
また、前記分割部は、前記表データについて前記第１の列及び前記第２の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、前記分解表内の前記基準列内で唯1つとなるように、前記複数の分解表を生成する。
【００１８】
これによると、各受信処理部が記憶している分解表の基準列に含まれる値は、その分解表の中では唯1つであることが保証される。よって、インデックスを生成せずとも、より高速に表データの検索が可能な表検索装置を提供することができる。
【００１９】
また、前記分割部は、前記表データについて前記第１の列及び前記第２の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、（Ａ）前記分解表内の前記基準列内で唯1つとなり、かつ、（Ｂ）前記複数の分解表の各々が前記基準列に含む値の中で唯1つとなるように前記複数の分解表を生成する。
【００２０】
これによると、各受信処理部が記憶している分解表の基準列に含まれる値は、その分解表で唯1つであり、かつ、他に、その値を含んでいる分解表がないことが、保証される。よって、さらに高速に、表データの検索が可能な表検索装置を提供することができる。
【００２１】
具体的には、前記制御部は、前記基準列を特定する識別子を前記列識別子とし、前記基準列に含まれているか否かを検索する値を前記検索値として、前記検索クエリーを前記送信部へ送信する。
【００２２】
又は、前記制御部は、前記第１の列及び前記第２の列の一方である前記基準列に対応付けられた他方の列である第３の列を特定する識別子を前記列識別子とし、前記第３の列に含まれているか否かを検索する値を前記検索値として、前記検索クエリーを前記送信部へ送信するとしてもよい。
【００２３】
本発明の他の局面に係る表検索装置においては、前記分割部は、前記表データを一行ごとに分割することにより、複数の前記分解表を生成する。
【００２４】
これによると、分割部の処理を簡易化することができ、表検索システムの小型化、省電力化、低価格化等を実現することができる。
【００２５】
本発明の他の局面に係る表検索装置においては、前記複数の受信処理部のうち２以上の受信処理部は、前記検索値が、前記列識別子によって特定される列に含まれているか否かを判定する処理部である１つの検索部を共有して備える。
【００２６】
これによると、検索部を共有することで、表検索装置を構成する部品点数を減少させることができる。その結果、表検索装置の小型化、省電力化、低価格化等を実現できる。
【００２７】
なお、本発明は、このような表検索装置として実現できるだけでなく、表検索装置に含まれる特徴的な手段をステップとする表検索方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのはいうまでもない。
【００２８】
また、本発明は、このような表検索装置の機能の一部又は全てを実現する半導体集積回路（ＬＳＩ）としても実現できる。
【００２９】
さらに、本発明は、このような表検索装置を含む表検索システムとして実現できる。
【発明の効果】
【００３０】
以上より、本発明は、インデックスを生成せずとも、インデックスを生成した場合と同程度に高速に表データの検索が可能な表検索方法を提供することができる。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明の実施の形態１に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。
【図２】図２は、本発明の実施の形態１〜４に係る表検索装置を含む表検索システムを実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【図３Ａ】図３Ａは、本発明の実施の形態１〜４に係る表検索装置に記録されている、表データを示す図である。
【図３Ｂ】図３Ｂは、図３Ａにより示される表データが示す、神経細胞の結合状態を示す図である。
【図４Ａ】図４Ａは、本発明の実施の形態１に係る表検索装置に格納されている第１の分解表を示す図である。
【図４Ｂ】図４Ｂは、本発明の実施の形態１に係る表検索装置に格納されている第２の分解表を示す図である。
【図５Ａ】図５Ａは、本発明の実施の形態１〜４に係る表検索システムにおける第１の検索クエリーを示す図である。
【図５Ｂ】図５Ｂは、本発明の実施の形態１〜４に係る表検索システムにおける第２の検索クエリーを示す図である。
【図６】図６は、本発明の実施の形態１〜４に係る表検索装置が図５Ｂに示される第２の検索クエリーの検索処理を示す図である。
【図７】図７は、本発明の実施の形態１〜４に係る表検索システムにおける処理の流れを示すフローチャートである。
【図８】図８は、本発明の実施の形態１〜４に係る受信処理部が行う検索処理の流れを示すフローチャートである。
【図９】図９は、本発明の実施の形態２に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。
【図１０Ａ】図１０Ａは、本発明の実施の形態２に係る表検索装置に格納されている第１の分解表を示す図である。
【図１０Ｂ】図１０Ｂは、本発明の実施の形態２に係る表検索装置に格納されている第２の分解表を示す図である。
【図１０Ｃ】図１０Ｃは、本発明の実施の形態２に係る表検索装置に格納されている第３の分解表を示す図である。
【図１１】図１１は、本発明の実施の形態３に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。
【図１２】図１２は、本発明の実施の形態４に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００３２】
以下、本発明に係る表検索装置の実施の形態について、図面を参照しながら詳細に説明する。
【００３３】
（実施の形態１）
図１は、本発明に係る表検索装置２００を含む表検索システム１００の全体構成を示すブロック図である。
【００３４】
図１に示されるように、表検索システム１００は、表検索装置２００と、クエリー装置３００とを備える。
【００３５】
表検索装置２００は、後述する分解表という単位に分割された検索対象である表データを記憶している。また、表検索装置２００は、クエリー装置３００から送信される検索処理の要求信号である検索クエリーに含まれる検索値を、表データから検索し、その検索結果を検索出力値としてクエリー装置３００へ送信する。
【００３６】
なお、表データにおいては、表データの行と列で指定されるマス目に値が格納される。より具体的には、表データ内では、第１の列の１つの値と第２の列の１つの値とが対応づけられ、対応づけられた第１の列の値と第２の列の値とが同じ行に配置される。
【００３７】
ここで、マス目に値が格納されていない場合、そのマス目の値は、ｎｕｌｌという値であるとする。また、表データの第１の列と第２の列のいずれかの、少なくとも一つのマス目に値が格納されていれば、表検索装置２００は検索を行うことができる。なお、表データにおいて、第１の列と第２の列のいずれのマス目にも、値が格納されていない場合であっても、表検索装置２００は検索を行うことは可能であるが、検索する意味はない。
【００３８】
表検索装置２００は、送信部２１０と、受信処理部２２０〜２２１と、制御部２３０と、第１の通信路２０２と、第２の通信路２０４とを備える。
【００３９】
送信部２１０は、クエリー装置３００から取得した検索クエリーを、表検索装置２００が備える複数の受信処理部の各々へ送信する処理部である。
【００４０】
送信部２１０は、送信バッファ２１２と、出力部２１３とを備える。
【００４１】
送信バッファ２１２は、１度に多数の検索クエリーを受信した場合に、それらを受信処理部へ送信するまでの間、一時的にバッファリングするバッファである。具体的には、ＤＲＡＭ（Dynamic Random Access Memory）や、ＳＲＡＭ（Static Random Access Memory）等で構成される。
【００４２】
出力部２１３は、受信した検索クエリーを、第１の通信路２０２に応じた信号種別に変換して出力する。例えば、第１の通信路２０２がＬＳＩ内部のバスや、イーサネット（登録商標）の有線ケーブルであれば、出力部２１３は検索クエリーを適切なフォーマットの電気信号として出力し、第１の通信路２０２が光ケーブルであれば、出力部２１３は検索クエリーを適切なフォーマットの光信号として出力する。
【００４３】
なお、出力部２１３は、前述のとおり、常に、表検索装置２００が有する全ての受信処理部に対して、検索クエリーを送信する。
【００４４】
受信処理部２２０〜２２１は、実質的に表検索処理を実行する受信処理部である。表検索装置２００が備える受信処理部の数は、少なくとも、後述する分解表の数だけ必要となる。ここでは説明のため、表検索装置２００は、受信処理部２２０及び受信処理部２２１の２つの受信処理部を備えているとして説明する。
【００４５】
受信処理部２２０は、取得部２３１と、記憶部２３２と、検索部２３３とを備える。また、受信処理部２２１は、取得部２３１と、記憶部２３４と、検索部２３３とを備える。
【００４６】
取得部２３１は、送信部２１０より送信された検索クエリーを、第１の通信路２０２を介して取得するための通信インタフェースである。
【００４７】
記憶部２３２及び記憶部２３４の各々は、制御部から送信された検索対象である表データの一部である分解表を記憶している。なお、１つの受信処理部は、１つの分解表のみを記憶する。記憶部は、具体的には、フラッシュメモリ等の不揮発性メモリ、ＤＲＡＭ、ＳＲＡＭ等で構成される。
【００４８】
検索部２３３は、取得部２３１が取得した検索クエリーに含まれる検索値が、記憶部に記憶されているか否か判定する検索処理を実行する。この検索処理により、検索クエリーに含まれる検索値が記憶部に記憶されていると検索部２３３が判定した場合には、検索部２３３は、検索結果を、検索出力値として第２の通信路２０４を介して制御部２３０へ出力する。
【００４９】
制御部２３０は、クエリー装置から複数の分解表を取得し、取得した分解表の各々を、クエリー装置によって分解表ごとに指定された受信処理部へ、第２の通信路２０４を介して送信する。また、制御部２３０は、クエリー装置から検索クエリーを取得し、取得した検索クエリーを第２の通信路２０４を介して送信部２１０へ送信する。さらに、制御部２３０は、受信処理部２２０〜２２１が備える検索部２３３が出力する検索出力値を第２の通信路２０４を介して取得し、クエリー装置３００へ出力する。
【００５０】
第１の通信路２０２は、送信部２１０が備える出力部２１３から、受信処理部２２０〜２２１の各々へ、検索クエリーを送信するための通信路である。第１の通信路２０２として、前述のように、集積回路の内部バス、イーサネットの有線ケーブル及び光通信用ケーブル等が使用されることが考えられる。
【００５１】
第２の通信路２０４は、制御部２３０から送信部２１０へ、検索クエリーを送信するための通信路である。第２の通信路２０４は、また、制御部２３０から各受信処理部へ分解表を送信し、各受信処理部から制御部２３０へ検索結果を送信するための通信路である。第１の通信路２０２と同様に、第２の通信路２０４としても、集積回路の内部バス、イーサネットの有線ケーブル及び光通信用ケーブル等が使用されることが考えられる。
【００５２】
クエリー装置３００は、分割部３０２と、クエリー部３０３とを備える。
【００５３】
分割部３０２は、検索対象である表データを、表検索装置２００に記憶させるための表を用いたデータ構造である複数の分解表の形に分割し、各分解表を、表検索装置２００が備える各受信処理部に１つずつ割り当てて記憶させる。
【００５４】
より具体的には、分割部３０２は、例えばクエリー装置３００が備えるＧＵＩ（Graphical User Interface、図示なし）等を用いてユーザが指定した表データを取得すると、後述するようなルールに従って、これを複数の分解表に分割する。
【００５５】
次に、分割部３０２は、表検索装置２００が有する固有の識別子であるネットワークアドレスと、表検索装置２００が備える複数の受信処理部の各々が有する固有の識別子である受信処理部アドレスの、２つのアドレスの組を、複数の分解表の各々について、その送信先として指定する。その後、分割部３０２は、制御部２３０に、指定した送信先に向けて各々の分解表を送信させる。
【００５６】
なお、各受信処理部への各分解表の割り当ては、分割部３０２が、現在どの受信処理部に分解表が割り当てられているかを示す管理テーブルを有していることを前提に、例えば、次のように行う。分割部３０２は、前述の管理テーブルの上から順（又は、下から順）に、現在分解表が割り当てられていない受信処理部を検索し、検索された受信処理部に対して、生成した分解表を１つずつ割り当てていけばよい。
【００５７】
クエリー部３０３は、受信処理部に格納されている分解表の各々を検索するための検索クエリーを、制御部２３０へ送信する。検索クエリーは、例えばクエリー装置３００が備えるＧＵＩによって、ユーザから取得した情報をもとに都度生成されてもよく、事前にＲＯＭ（Read Only Memory）等に記憶されている検索クエリーをクエリー部３０３が読み出してもよい。
【００５８】
さらに、クエリー装置３００は、送信した検索クエリーに対する検索結果を制御部２３０から取得する。クエリー装置３００が表示装置（図示なし）を備えている場合には、取得した検索結果を表示装置に表示してもよい。また、クエリー装置３００が印刷装置（図示なし）を備えている場合には、取得した検索結果を印刷装置から印刷してもよい。
【００５９】
図２は、本発明の実施の形態１に係る表検索装置２００を含む表検索システム１００を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【００６０】
実施の形態１に係る表検索システム１００を構成する表検索装置２００及びクエリー装置３００は、コンピュータにより実現することが可能である。図２は、表検索システム１００を構成する表検索装置２００及びクエリー装置３００を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
【００６１】
表検索システム１００を構成する表検索装置２００及びクエリー装置３００は、コンピュータ３４と、コンピュータ３４に指示を与えるためのキーボード３６及びマウス３８と、コンピュータ３４の演算結果等の情報を提示するためのディスプレイ３２と、コンピュータ３４で実行されるプログラムを読み取るためのＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）装置４０及び通信モデム（図示せず）とを含む。
【００６２】
表検索システム１００を構成する表検索装置２００及びクエリー装置３００が行う処理であるプログラムは、コンピュータで読み取可能な媒体であるＣＤ−ＲＯＭ４２に記憶され、ＣＤ−ＲＯＭ装置４０で読み取られる。又は、コンピュータネットワークを通じて通信モデム５２で読み取られる。
【００６３】
コンピュータ３４は、ＣＰＵ（Central Processing Unit）４４と、ＲＯＭ（Read Only Memory）４６と、ＲＡＭ（Random Access Memory）４８と、ハードディスク５０と、通信モデム５２と、バス５４とを含む。
【００６４】
ＣＰＵ４４は、ＣＤ−ＲＯＭ装置４０又は通信モデム５２を介して読み取られたプログラムを実行する。ＲＯＭ４６は、コンピュータ３４の動作に必要なプログラムやデータを記憶する。ＲＡＭ４８は、プログラム実行時のパラメタなどのデータを記憶する。ハードディスク５０は、プログラムやデータなどを記憶する。通信モデム５２は、コンピュータネットワークを介して他のコンピュータとの通信を行う。バス５４は、ＣＰＵ４４、ＲＯＭ４６、ＲＡＭ４８、ハードディスク５０、通信モデム５２、ディスプレイ３２、キーボード３６、マウス３８及びＣＤ−ＲＯＭ装置４０を相互に接続する。
【００６５】
さらに、上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integrated Circuit：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【００６６】
さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカード又はモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカード又はモジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【００６７】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
【００６８】
また、上記プログラムを上記媒体に記録して移送することにより、又は上記プログラムを、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【００６９】
図３Ａは、本発明の実施の形態１に係る表検索装置２００に記録されている、表データ２４０を示す図である。
【００７０】
図３Ａに示されるように、表データは、第１列２４１と、第１列２４１に対応付けられている第２列２４２とを有する。なお、表データはこれ以外の列を含んでいてもよい。また、図３Ａに示される表データは、１行目のヘッダ行を除き３行分のデータを含むが、より多くの行を含んでいてもよい。
【００７１】
なお、ここでは、図３Ａにより示されるデータは、神経細胞間の結合状態を示す表データとする。図３Ｂは、図３Ａにより示される、神経細胞の結合状態を、有向グラフを用いて示した図である。第１列２４１が、親ノードとなる神経細胞のノード番号（例えば、３０９８や、４００１）を示し、第２列２４２が、子ノードとなる神経細胞のノード番号（例えば、１４や１０７）を示す。なお、本実施の形態に係る表検索システム１００に記録されるデータは、これに限られず、第１列と、第１列に対応付けられた第２列と、を含む任意の表データであってもよい。
【００７２】
図４Ａは、本発明の実施の形態１に係る表検索装置が備える記憶部２３２に記憶されている第１の分解表を示す図である。また、図４Ｂは、本発明の実施の形態１に係る表検索装置が備える記憶部２３４に記憶されている第２の分解表を示す図である。
【００７３】
図４Ａ及び図４Ｂに示されるように、分解表は、第１列２４１と、第２列２４２とを有する。
【００７４】
分割部３０２は、次の条件を満たすように、表データ２４０を行方向に分割（及び結合）することで、複数の分解表を生成する。
【００７５】
まず、分割部３０２は、第１列２４１及び第２列２４２のいずれかを、「基準列」として選択する。ここでは、説明のため、第１列２４１が基準列に選択されたとする。
【００７６】
次に、分割部３０２は、複数の分解表の各々について、基準列である第１列２４１に含まれる値が、（Ａ）当該分解表内で唯1つとなり、かつ、（Ｂ）複数の分解表の各々が基準列である第１列２４１に含む値の中で唯1つとなるように、表データ２４０を行方向に分割する。
【００７７】
より具体的には、分割部３０２は、（１）表データ２４０に含まれる各行を、第１列２４１に含まれる値を基準に降順又は昇順に並べ替え、（２）第１列２４１に同じ値を含む全ての行のみが１つの分解表に含まれるよう、表データ２４０を行方向に分割すること等が考えられる。
【００７８】
その結果、表データ２４０は、図４Ａに示される第１の分解表と、図４Ｂに示される第２の分解表の２つに分割される。第１の分解表の第１列２４１には３０９８のみが含まれており、第２の分解表の第１列２４１には４００１のみが含まれている。また、３０９８という値を第１列２４１に含む分解表は、第１の分解表のみであり、４００１という値を第１列２４１に含む分解表は、第２の分解表のみである。
【００７９】
なお、分解表を生成する際に使用する基準列は、第２列でもよい。また、分解表の生成方法は他にも考えられるが、その詳細については後述する。
【００８０】
図５Ａは、本発明の実施の形態１に係る表検索システム１００が備える検索部２３３が処理する第１の検索クエリーを示す図である。また、図５Ｂは、本発明の実施の形態１に係る表検索システム１００が備える検索部２３３が処理する第２の検索クエリーを示す図である。
【００８１】
各検索クエリーは、例えば、検索クエリーであることを示す“ＳＥＬＥＣＴ”という文字列の後に、各分解表の第１列２４１と第２列２４２のどちらを検索するかを指定する列識別子４２０と、列識別子４２０で指定された列に含まれているか否かを検索する値である検索値４２２とを含む。
【００８２】
ここで、受信処理部２２０及び受信処理部２２１が送信部２１０から、図５Ａに示される第１の検索クエリーを取得した場合の処理について、具体的に説明する。
【００８３】
第１の検索クエリーでは、列識別子４２０として第１列２４１が指定され、検索値４２２として３０９８が指定されている。
【００８４】
したがって、受信処理部２２０が備える検索部２３３は、記憶部２３２に記憶されている第１の分解表の第１列２４１に３０９８が含まれているかを検索する。
【００８５】
ここで、分解表の生成方法から明らかなように、基準列である第１列２４１に含まれる値が唯1つであることが保証されている。よって、受信処理部２２０が備える検索部２３３は、第１列２４１の、ヘッダ行を除く１行目の値と、検索値である３０９８とを比較するだけで、第１の分解表の第１列２４１に３０９８が含まれているか否かを判断することができる。
【００８６】
ここでは、第１の分解表において、第１列２４１のヘッダ行を除く１行目の値が３０９８に一致するので、受信処理部２２０が備える検索部２３３は、第１列２４１に対応付けられている第２列２４２に含まれる値を全て出力する。すなわち、受信処理部２２０が備える検索部２３３は、１４と、１０７を、検索出力値として制御部２３０へ出力する。
【００８７】
なお、検索部２３３が、第１列２４１と第２列２４２の、いずれが基準列であるかを知る方法として、分割部３０２が分解表の各々について、第１列２４１と第２列２４２のどちらが基準列であるかを示す情報を含めておくことが考えられる。あるいは、分割部３０２は、分解表とは別に、第１列２４１と第２列２４２の、いずれが基準列であるかを示す情報を、制御部２３０へ送信し、制御部２３０は、その情報を、送信部２１０を介して全ての受信処理部に送信してもよい。
【００８８】
次に、同様にして、受信処理部２２１が備える検索部２３３は、記憶部２３４に記憶されている第２の分解表の第１列２４１の、ヘッダ行を除く１行目の値が３０９８であるか否かを判定する。ここでは、第２の分解表の第１列２４１の１行目の値は、４００１であるので、受信処理部２２１が備える検索部２３３は何も出力しない。
【００８９】
以上の、受信処理部２２０及び受信処理部２２１が備える各検索部２３３の処理により、表検索装置２００が備える制御部２３０は、表データ２４０において、基準列である第１列の値が３０９８である場合の、対応する第２列に含まれる全ての値（１４と、１０７）を、クエリー装置３００へ出力することができる。
【００９０】
次に、受信処理部２２０及び受信処理部２２１が送信部２１０から、図５Ｂに示される第２の検索クエリーを取得した場合の処理について、具体的に説明する。
【００９１】
第２の検索クエリーでは、列識別子４２０として第２列２４２が指定され、検索値４２２として１４が指定されている。
【００９２】
したがって、受信処理部２２０が備える検索部２３３は、記憶部２３２に記憶されている第１の分解表の第２列２４２に１４が含まれているかを検索し、見つかった場合には、第２列２４２に対応付けられている第１列２４１の値を全て、検索出力値として出力する。
【００９３】
この検索処理を、図６を参照してより詳細に説明する。
【００９４】
図６は、本発明の実施の形態１に係る表検索装置による、図５Ｂに示される第２の検索クエリーの処理を示す図である。
【００９５】
本実施の形態における分解表の生成方法から明らかなように、第１の分解表の第１列２４１に含まれる値は、３０９８のみである。よって、受信処理部２２０が備える検索部２３３は、検索値である１４が第２列２４２において最初に見つかった時点で、以後の第２列２４２における検索を打ち切り、第１列２４１に含まれる全ての値（３０９８）を出力することができる。すなわち、第１列２４１に含まれる値が唯1つであることを利用して、対応する第２列２４２の検索領域の枝刈りが可能となる。
【００９６】
ここでは、受信処理部２２０が備える検索部２３３は、第１の分解表の第２列２４２において、ヘッダ行を除く１行目の値が１４と一致すると判定した時点で、以後の検索を打ち切り、対応する第１列２４１に含まれる全ての値である３０９８を検索出力値として出力する。
【００９７】
同様にして、受信処理部２２１が備える検索部２３３は、記憶部２３４に記憶されている第２の分解表の第２列２４２に１４が含まれているかを検索する。ここでは、第２の分解表の第２列２４２における１行目の値が１４と一致するため、受信処理部２２１が備える検索部２３３は、対応する第１列２４１に含まれる全ての値である４００１を検索出力値として出力する。
【００９８】
以上の、受信処理部２２０及び受信処理部２２１が備える各検索部２３３の処理により、表検索装置２００が備える制御部２３０は、表データ２４０における第２列２４２の値が１４である場合の、対応する第１列２４１に含まれる全ての値（３０９８と、４００１）を、クエリー装置３００へ出力することができる。
【００９９】
なお、図５Ａ及び図５Ｂに示される検索クエリーは一例であって、必ずしもこれらと同一のフォーマットである必要はない。検索クエリーは、少なくとも、列識別子と、検索値を含んでいればよい。
【０１００】
以上述べた表検索システム１００における各処理部の処理の流れを、図７を参照してまとめる。
【０１０１】
図７は、本発明の実施の形態１に係る表検索システム１００における処理の流れを示すフローチャートである。
【０１０２】
まず、分割部３０２は、検索対象である表データを、複数の分解表に分割する（Ｓ５００）。
【０１０３】
次に、分割部３０２は、複数の分解表の各々を、表検索装置２００が備える複数の受信処理部の各々に１つずつ対応付けて割り当てる（Ｓ５０２）。
【０１０４】
次に、クエリー部３０３は、検索クエリーを制御部２３０へ送信する。検索クエリーは、少なくとも列識別子４２０と検索値４２２とを含む。
【０１０５】
次に、制御部２３０は、受信した検索クエリーを、送信部２１０へ送信する。また、送信部２１０は、取得した検索クエリーを、常に、表検索装置２００が備える全ての受信処理部に対して送信する（Ｓ５０４）。
【０１０６】
次に、検索クエリーを取得した受信処理部の各々は、検索部２３３において検索処理を実行し（Ｓ５０６）、その結果を制御部２３０へ出力する。
【０１０７】
最後に、制御部２３０は、各々の受信処理部から取得した検索結果を必要に応じて集計し、最終的な検索結果をクエリー装置３００へ出力する（Ｓ５０８）。
【０１０８】
図８は、本発明の実施の形態１に係る受信処理部が備える検索部２３３が行う検索処理の流れを示すフローチャートである。
【０１０９】
まず、検索部２３３は、検索クエリーを取得したか否かを判定する（Ｓ５２０）。ここで、送信部２１０からまだ検索クエリーを受信していない場合（Ｓ５２０でＮｏ）、検索部２３３は、再度検索クエリーを待ち受ける。
【０１１０】
一方、検索クエリーを取得した場合（Ｓ５２０でＹｅｓ）、検索部２３３は、検索クエリーに含まれる、列識別子と検索値とを取得する。次に、検索部２３３は、記憶部に記憶されている列のうち、列識別子で指定された列（第１列２４１、又は、第２列２４２）の、検索対象行の値が、検索値と一致するか否かを判定する（Ｓ５２２）。ここで、検索対象行には、例えば、記憶部に記憶されている分解表のヘッダを除いた１行目が指定される。なお、本実施の形態に係る検索部２３３が検索対象とする記憶部は、「自身を備える受信処理部」が備える１つの記憶部に限られる。
【０１１１】
ここで、先頭行の値と検索値とが一致しない場合には（Ｓ５２２でＮｏ）、検索部２３３は、列識別子で指定された列が、基準列であるか否かを判定する（Ｓ５２３）。列識別子で指定された列が基準列である場合には（Ｓ５２３でＹｅｓ）、これ以上検索しても無駄であることが明らかなので、検索処理を終了する。一方、列識別子で指定された列が基準列ではない場合には（Ｓ５２３でＮｏ）、検索部２３３は、次の行を検索対象行として指定し（Ｓ５２４）、同じ列で検索対象行の値が、検索値と一致するか否かを判定する（Ｓ５２２）。
【０１１２】
一方、先頭行の値と検索値とが一致した場合には（Ｓ５２２でＹｅｓ）、検索部２３３は、列識別子で指定された列に対応付けられた列が含む全ての値を検索出力値として出力する（Ｓ５２６）。例えば、列識別子で第１列２４１が指定されていた場合には、第２列２４２に含まれる全ての値を出力する。
【０１１３】
以上述べた本実施の形態に係る表検索装置２００によれば、各受信処理部が１つずつ、検索対象である表データを事前に分割して得られる分解表を記憶している。ここで、表データは、第１列と第２列を含む。また、各々の分解表は、第１列及び第２列のいずれかである基準列に含まれる値が、複数の分解表全て中で唯1つとなるように、生成されている。
【０１１４】
したがって、表検索装置２００は、以下の（１）及び（２）の問い合わせに対して、インデックスを事前に作成せずとも、インデックスを生成した場合と同程度に高速に、検索結果を出力することができる。
（１）表データに含まれる各行について、第１列が検索値であるような、第２列の値を全て出力せよ。
（２）表データに含まれる各行について、第２列が検索値であるような、第１列の値を全て出力せよ。
【０１１５】
以上まとめると、本実施の形態に係る表検索装置２００は、（１）複数の行と、第１の列及び第１の列に対応付けられた第２の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を１つずつ記憶している複数の受信処理部と、（２）送信部２１０と、（３）第１の列及び第２の列のいずれか一方を特定するための識別子である列識別子及び検索値を含む検索クエリーを、送信部２１０へ送信し、複数の受信処理部の各々から出力される出力値である検索出力値を受信し、かつ、受信した検索出力値を出力する制御部２３０とを備えている。
【０１１６】
ここで、送信部２１０は、制御部２３０から受信した検索クエリーを、複数の受信処理部の全てに対して出力する。また、受信処理部は、取得した検索クエリーに含まれる列識別子によって特定される列に、検索クエリーに含まれる検索値が含まれているか否かを判定し、含まれている場合には、列識別子によって特定される列に対応付けられた列に含まれる値を検索出力値として出力する。
【０１１７】
また、本実施の形態に係る表検索装置２００は、さらに、表データから複数の分解表を生成する分割部３０２を備えてもよい。このとき、制御部２３０は、分割部３０２から複数の分解表を取得し、取得した分解表を複数の受信処理部の各々に１つずつ記憶させる。
【０１１８】
なお、分割部３０２は、表データについて第１の列及び第２の列のいずれか一方を基準列として選択し、複数の分解表の各々について、基準列に含まれる値が、分解表内の基準列内で唯1つとなるように、複数の分解表を生成する。
【０１１９】
また、分割部３０２は、表データについて第１の列及び第２の列のいずれか一方を基準列として選択し、複数の分解表の各々について、基準列に含まれる値が、（Ａ）分解表内の基準列内で唯1つとなり、かつ、（Ｂ）複数の分解表の各々が基準列に含む値の中で唯1つとなるように複数の分解表を生成してもよい。
【０１２０】
また、制御部２３０は、基準列を特定する識別子を列識別子とし、基準列に含まれているか否かを検索する値を検索値として、検索クエリーを送信部２１０へ送信する。
【０１２１】
また、制御部２３０は、第１の列及び第２の列の一方である基準列に対応付けられた他方の列である第３の列を特定する識別子を列識別子とし、第３の列に含まれているか否かを検索する値を検索値として、検索クエリーを送信部２１０へ送信してもよい。
【０１２２】
（実施の形態２）
次に、実施の形態２に係る表検索システム１００及び表検索装置２００について説明する。本実施の形態では、各受信処理部に記憶されている分解表の生成のされ方が、実施の形態１と異なる。
【０１２３】
図９は、本発明の実施の形態２に係る表検索装置２００を含む表検索システム１００の全体構成を示すブロック図である。
【０１２４】
本実施の形態に係る表検索装置２００は、３つの受信処理部（受信処理部２２０〜受信処理部２２２）を備える他は、実施の形態１に係る表検索装置２００と同一の構成である。
【０１２５】
本実施の形態では、表データ２４０に含まれる複数の行は、各々１つの相異なる受信処理部に対応付けられて記憶される。これを、図１０を用いてより詳細に説明する。
【０１２６】
図１０Ａは、本発明の実施の形態２に係る表検索装置２００に格納されている第１の分解表を示す図である。また、図１０Ｂは、本発明の実施の形態２に係る表検索装置２００に格納されている第２の分解表を示す図である。また、図１０Ｃは、本発明の実施の形態２に係る表検索装置２００に格納されている第３の分解表を示す図である。
【０１２７】
第１の分解表〜第３の分解表は、表データ２４０の各行にそれぞれ対応する。すなわち、分割部３０２は、表データ２４０を１行ごとに分割することで、各行に対応する複数の分解表を生成する。具体的には、表データ２４０の第１行が第１の分解表に対応し、表データ２４０の第２行が第２の分解表に対応し、表データ２４０の第３行が第３の分解表に対応する。
【０１２８】
以下、実施の形態１と同様に、分割部３０２は第１列２４１を基準列と選択したものとして説明する。
【０１２９】
まず、分割部３０２は、生成した複数の分解表を、各々１つの相異なる受信処理部に記憶させる。本実施の形態では、第１の分解表を受信処理部２２０が備える記憶部２３２へ、第２の分解表を受信処理部２２１が備える記憶部２３４へ、第３の分解表を受信処理部２２２が備える記憶部２３５へ、それぞれ記憶させる。なお、分割部３０２が、分解表を記憶させる受信処理部を指定する方法は、実施の形態１と同様である。
【０１３０】
このように、ヘッダ行を除いて１行のみの分解表を記憶部に記憶している受信処理部の各々に対して、送信部２１０は、取得した検索クエリーを送信する。
【０１３１】
以下、受信処理部２２０を例に挙げて、検索クエリーを取得した受信処理部の処理を説明するが、処理の内容は、他の受信処理部においても同様である。
【０１３２】
受信処理部２２０が備える検索部２３３は、検索クエリーから列識別子４２０と検索値４２２とを取得する。次に、検索部２３３は、記憶部２３２に記憶されている第１の分解表について、列識別子４２０で指定された列の値が検索値４２２と一致するか否かを判定する。この判定処理は、第１の分解表が、１行しか含んでいないことから、必ず１度の比較処理で終了する。
【０１３３】
例えば、図５Ａを参照して、受信処理部２２０が第１の検索クエリーを取得した場合、検索部２３３は、列識別子４２０として指定された第１列２４１の値が、３０９８に一致するか判定する。判定の結果、第１列２４１の値は３０９８に一致するため、検索部２３３は、他方の列である第２列２４２に含まれる全ての値（１４）を制御部２３０へ出力する。
【０１３４】
このように、全ての受信処理部が備える検索部２３３から出力された値を制御部２３０が取得することで、表検索装置２００は、表データ２４０に対して第１の検索クエリーで指定された検索を実行することができる。
【０１３５】
なお、受信処理部２２０が第２の検索クエリーを取得した場合には、検索部２３３は、列識別子４２０として指定された第２列２４２に含まれる値が１４に一致するか否かを判定する他は、第１の検索クエリーを取得した場合と同様の処理を行う。
【０１３６】
すなわち、本実施の形態に係る表検索装置２００が備える分割部３０２は、表データを一行ごとに分割することにより、複数の分解表を生成する。
【０１３７】
以上述べた、実施の形態２に係る表検索システム１００によると、表データ２４０の各行は、相異なる１つの受信処理部に対応付けられて、各受信処理部が備える記憶部に記憶されている。その結果、各受信処理部は、取得した検索クエリーに対して１度の比較処理を行うだけで、検索結果を出力することができる。こうして出力された、各受信処理部からの出力を制御部２３０が集めることで、表検索装置２００は、インデックスを生成せずとも、実施の形態１と比較してもさらに高速に表データの検索が可能となる。
【０１３８】
（実施の形態３）
図１１は、本発明の実施の形態３に係る表検索装置２００を含む表検索システム１００の全体構成を示すブロック図である。
【０１３９】
本実施の形態が、実施の形態２と異なる点は、複数の受信処理部（受信処理部２２０〜受信処理部２２２）で、１つの検索部２３３を共有している点である。
【０１４０】
実施の形態２では、各受信処理部が備える記憶部には、表データ１行分に相当する分解表のみが記憶される。したがって、検索部２３３が行う検索処理も軽い処理で済む。よって、表検索装置２００が備える全ての受信処理部が検索部２３３を備える必要はなく、図１１に示されるように、一定数の受信処理部が検索部２３３を共有することができる。
【０１４１】
この構成によると、受信処理部２２１の構成を簡易なものとすることができ、表検索装置２００のコスト削減や、小型化、省電力化を実現することができる。
【０１４２】
（実施の形態４）
図１２は、本発明の実施の形態４に係る表検索装置２００を含む表検索システム１００の全体構成を示すブロック図である。
【０１４３】
本実施の形態では、表検索システム１００は、複数の表検索装置２００を備えている。
【０１４４】
表検索装置２００の構成は、例えば、実施の形態１〜３のいずれであってもよい。
【０１４５】
本実施の形態に係る表検索システム１００における検索時には、クエリー装置３００が備えるクエリー部３０３は、検索クエリーを、全ての表検索装置２００に同時に送信する。検索クエリーを取得した各々の表検索装置２００は、自身が備える全ての受信処理部に、取得した検索クエリーを送信する。以後、各々の受信処理部が行う検索処理は、実施の形態１〜３と同様の処理により、行うことができる。
【０１４６】
この構成は、例えば、表検索装置２００を集積回路等のハードウェアで実装した場合に、表検索システム１００のスケーラビリティを確保できる点で特に有効である。
【０１４７】
具体的には、表データ２４０のサイズが大きいため、これを分割して得られた分解表の数が、１つの表検索装置２００が備える受信処理部の数よりも大きい場合であっても、表検索装置２００をクエリー装置３００に対して必要な数だけ並列に接続することで、表検索システム１００が備える受信処理部の数を増やすことができる。その結果、表データ２４０の大きさに関わらず、検索可能な表検索システム１００を実現することができる。
【０１４８】
なお、実施の形態１〜４に係る表検索システム１００において、クエリー装置３００に代わり、表検索装置２００が備える制御部２３０が分割部３０２を備えてもよい。
【０１４９】
なお、実施の形態１〜４に係る表検索システム１００において、クエリー装置３００は、複数の表データを、１つの表検索装置２００の中に記憶してもよい。
【０１５０】
この場合、具体的には、
（１）クエリー装置３００は、表データに対して、その表を一意に識別する表識別子を割り当て、
（２）分割部３０２は、表データを分割して生成する分解表の各々に、表データに付加されている表識別子を含め、
（３）記憶部は、表識別子を含む分解表を保持し、
（４）クエリー部３０３は、検索対象である表データの表識別子を含むクエリーを生成して、制御部２３０に送信し、
（５）検索部２３３は、表識別子及び検索値が一致するか否かを判断する、
という手順となる。
【０１５１】
これにより、表検索装置２００が備える受信処理部の数に比べて、表データのデータサイズが小さい場合には、複数の表データを１つの表検索装置２００に記憶させることができ、表検索装置２００の利用効率を向上させることができる。
【０１５２】
なお、実施の形態１〜４に係る表検索システム１００が備える検索部２３３は、1つの値ではなく、範囲指定された値のうち、いずれかの値が記憶部に含まれているか否かを判定してもよい。例えば、第1列が３０４０〜３０９０のうち、いずれかの値であれば、セルの値が検索値と一致と判定し（ステップＳ５２２）てもよい。
【０１５３】
なお、本発明は、上記実施の形態１〜４に限定されるものではない。例えば、上記実施の形態１〜４をそれぞれ組み合わせるとしてもよい。
【０１５４】
また、今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【産業上の利用可能性】
【０１５５】
本発明は、表検索装置に適用でき、特に、ネットワーク内に分散させて保持された表を検索する表検索装置等に適用できる。
【符号の説明】
【０１５６】
３２  ディスプレイ
３４  コンピュータ
３６  キーボード
３８  マウス
４０  ＣＤ−ＲＯＭ装置
４２  ＣＤ−ＲＯＭ
４４  ＣＰＵ
４６  ＲＯＭ
４８  ＲＡＭ
５０  ハードディスク
５２  通信モデム
５４  バス
１００  表検索システム
２００  表検索装置
２０２  第１の通信路
２０４  第２の通信路
２１０  送信部
２１２  送信バッファ
２１３  出力部
２２０、２２１、２２２  受信処理部
２３０  制御部
２３１  取得部
２３２、２３４、２３５  記憶部
２３３  検索部
２４０  表データ
２４１  第１列
２４２  第２列
３００  クエリー装置
３０２  分割部
３０３  クエリー部
４２０  列識別子
４２２  検索値
【図１】
0005466257.tif 000002
【図２】
0005466257.tif 000003
【図３Ａ】
0005466257.tif 000004
【図３Ｂ】
0005466257.tif 000005
【図４Ａ】
0005466257.tif 000006
【図４Ｂ】
0005466257.tif 000007
【図５Ａ】
0005466257.tif 000008
【図５Ｂ】
0005466257.tif 000009
【図６】
0005466257.tif 000010
【図７】
0005466257.tif 000011
【図８】
0005466257.tif 000012
【図９】
0005466257.tif 000013
【図１０Ａ】
0005466257.tif 000014
【図１０Ｂ】
0005466257.tif 000015
【図１０Ｃ】
0005466257.tif 000016
【図１１】
0005466257.tif 000017
【図１２】
0005466257.tif 000018