(57)【特許請求の範囲】
【請求項１】
テーブル形式のデータを管理するリレーショナルデータベース管理装置において，
リレーショナルデータベースにおけるテーブル間の関係を示すリンク情報を持つ中間リンクテーブルであって，該中間リンクテーブルの各レコードが，リンク元となる第１のテーブルの名称である元テーブル名と，リンク先となる第２のテーブルの名称である先テーブル名と，前記第１のテーブルと前記第２のテーブルとの間に介在して，これらを関係づける１または複数の中間のテーブルの名称であるリンクテーブル名と，前記第１のテーブルと前記第２のテーブルとを直接結び付けるフィールドの関係情報，または前記第１のテーブルと前記中間のテーブルと前記第２のテーブルとを連鎖的に結び付けるフィールドの関係情報を示すリンク条件とによって構成される中間リンクテーブルを，前記第１のテーブルと前記第２のテーブル間，または前記第１のテーブルと前記中間のテーブル間および該中間のテーブルと前記第２のテーブル間に同名かつ同属性のフィールドがあるかを調べることによって自動作成する中間リンクテーブル作成手段と，
作成された中間リンクテーブルを記憶し保存する中間リンクテーブル記憶手段と，
前記中間リンクテーブルを用いてリレーショナルデータベースに対する検索を処理する手段とを備えた
ことを特徴とするリレーショナルデータベース管理装置。
【請求項２】
請求項１記載のリレーショナルデータベース管理装置において，
リレーショナルデータベースの照会処理のための選択情報が入力された場合に，入力された選択情報をもとに前記中間リンクテーブルに記憶されたリンク情報を参照し，照会に必要となるテーブル名およびリンク条件を前記中間リンクテーブルから抽出して照会文を自動生成する照会文生成処理手段を備えた
ことを特徴とするリレーショナルデータベース管理装置。
【請求項３】
請求項１記載のリレーショナルデータベース管理装置において，
リレーショナルデータベースの照会文が入力された場合に，入力された照会文に照会に必要となるテーブル名またはリンク条件が不足しているかどうかを判別し，不足している場合には，前記中間リンクテーブルのリンク情報を参照し，照会に必要となるテーブル名またはリンク条件の補足により照会結果を得ることができる照会文となるように照会文を自動修正する照会文補足処理手段を備えた
ことを特徴とするリレーショナルデータベース管理装置。
【請求項４】
請求項１，請求項２または請求項３記載のリレーショナルデータベース管理装置において，
前記中間リンクテーブルのリンク情報を条件に含む照会文の実行時に，その照会文の実行応答時間を計測し，所定の時間を超える場合にはその照会文の応答に関する情報を監視ログに記録する照会文応答監視手段と，
前記監視ログに記録された照会文における照会の条件中に記述されたリンク条件の左辺と右辺とを置き換えた照会文を実行し，その応答時間が所定の時間内または前記監視ログに記録した応答時間より短い場合には，前記中間リンクテーブルにおけるリンク情報中の前記リンク条件に該当するリンク条件の左辺と右辺とを置き換える更新を行う照会文試行処理手段とを備えた
ことを特徴とするリレーショナルデータベース管理装置。
【請求項５】
リレーショナルデータベースにおけるテーブル間の関係を示すリンク情報を持つ中間リンクテーブルであって，該中間リンクテーブルの各レコードが，リンク元となる第１のテーブルの名称である元テーブル名と，リンク先となる第２のテーブルの名称である先テーブル名と，前記第１のテーブルと前記第２のテーブルとの間に介在して，これらを関係づける１または複数の中間のテーブルの名称であるリンクテーブル名と，前記第１のテーブルと前記第２のテーブルとを直接結び付けるフィールドの関係情報，または前記第１のテーブルと前記中間のテーブルと前記第２のテーブルとを連鎖的に結び付けるフィールドの関係情報を示すリンク条件とによって構成される中間リンクテーブルを自動作成する方法であって，
前記リレーショナルデータベースの各テーブルを，それぞれ前記第１のテーブルとし，当該第１のテーブルの他のテーブルのそれぞれを前記第２のテーブルとして当該第１のテーブルと組み合わせ，前記各第１のテーブルについて，該第１のテーブルを起点にして，対応する第２のテーブルに該第１のテーブルと同名かつ同属性のフィールドがあるかを調べ，ある場合には，前記中間リンクテーブルのレコードの元テーブル名に該第１のテーブルの名称，先テーブル名に該第２のテーブルの名称，およびリンク条件に同名かつ同属性のフィールドの関係情報を定義し，同名かつ同属性のフィールドがない場合に，前記中間リンクテーブルのレコードの元テーブル名に該第１のテーブルの名称，先テーブル名に該第２のテーブルの名称，およびリンク条件に同名かつ同属性のフィールドがないことを示す直接リンク不可の情報を定義する処理を，すべての前記各第１のテーブルについて繰り返すステップと，
前記中間リンクテーブル中のレコードに，リンク条件が直接リンク不可のレコードがあるかを調べ，ある場合に該レコードの元テーブル名に設定された第１のテーブルと，先テーブル名に設定された第２のテーブルとをリンクできる二つのレコードがあるかを調べ，二つのレコードがある場合に，該二つのレコードに含まれる前記第１と前記第２のテーブル以外のテーブルの名称を，当該レコードのリンクテーブル名に設定し，当該レコードのリンク条件に前記二つのレコードのリンク条件を設定する処理を，直接リンク不可のレコードがなくなるか，所定の繰り返し回数分終了するまで繰り返すステップとを実行することにより，
中間リンクテーブルを自動作成することを特徴とする中間リンクテーブル自動作成処理方法。
【請求項６】
テーブル形式のデータを管理するリレーショナルデータベース管理装置で用いる，リレーショナルデータベースにおけるテーブル間の関係を示すリンク情報を持つ中間リンクテーブルであって，該中間リンクテーブルの各レコードが，リンク元となる第１のテーブルの名称である元テーブル名と，リンク先となる第２のテーブルの名称である先テーブル名と，前記第１のテーブルと前記第２のテーブルとの間に介在して，これらを関係づける１または複数の中間のテーブルの名称であるリンクテーブル名と，前記第１のテーブルと前記第２のテーブルとを直接結び付けるフィールドの関係情報，または前記第１のテーブルと前記中間のテーブルと前記第２のテーブルとを連鎖的に結び付けるフィールドの関係情報を示すリンク条件とによって構成される中間リンクテーブルを自動作成するためのプログラムを格納した計算機読み取り可能な記憶媒体であって，
前記リレーショナルデータベースの各テーブルを，それぞれ前記第１のテーブルとし，当該第１のテーブルの他のテーブルのそれぞれを前記第２のテーブルとして当該第１のテーブルと組み合わせ，前記各第１のテーブルについて，該第１のテーブルを起点にして，対応する第２のテーブルに該第１のテーブルと同名かつ同属性のフィールドがあるかを調べ，ある場合には，前記中間リンクテーブルのレコードの元テーブル名に該第１のテーブルの名称，先テーブル名に該第２のテーブルの名称，およびリンク条件に同名かつ同属性のフィールドの関係情報を定義し，同名かつ同属性のフィールドがない場合に，前記中間リンクテーブルのレコードの元テーブル名に該第１のテーブルの名称，先テーブル名に該第２のテーブルの名称，およびリンク条件に同名かつ同属性のフィールドがないことを示す直接リンク不可の情報を定義する処理を，すべての前記各第１のテーブルについて繰り返すステップと，
前記中間リンクテーブル中のレコードに，リンク条件が直接リンク不可のレコードがあるかを調べ，ある場合に該レコードの元テーブル名に設定された第１のテーブルと，先テーブル名に設定された第２のテーブルとをリンクできる二つのレコードがあるかを調べ，二つのレコードがある場合に，該二つのレコードに含まれる前記第１と前記第２のテーブル以外のテーブルの名称を，当該レコードのリンクテーブル名に設定し，当該レコードのリンク条件に前記二つのレコードのリンク条件を設定する処理を，直接リンク不可のレコードがなくなるか，所定の繰り返し回数分終了するまで繰り返すステップとを，
計算機に実行させるためのプログラムを格納したことを特徴とするプログラム記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，リレーショナルデータベースのテーブル間のリンク情報を持つ中間リンクテーブルを自動作成するリレーショナルデータベース管理装置，中間リンクテーブル自動作成処理方法およびプログラム記憶媒体に関する。
【０００２】
【従来の技術】
従来のリレーショナルデータベース（ＲＤＢ）の検索方法を図１８を用いて説明する。
【０００３】
図１８において，３１はリレーショナルデータベースの基本テーブル，８０はリレーショナルデータベースを管理するＲＤＢサーバ，８１はリレーショナルデータベースに対する基本的な処理機能を提供するＲＤＢ基本処理部，８２はリレーショナルデータベースに対する照会文であるＳＱＬ文を実行するＳＱＬ実行部，８３はリレーショナルデータベースを記憶する記憶装置，９０はリレーショナルデータベースを利用するＲＤＢクライアント，９１はリレーショナルデータベースに対するアクセスのためのグラフィカル・ユーザ・インタフェース（ＧＵＩ）を提供するＧＵＩ処理部を表す。
【０００４】
あるリレーショナルデータベースのテーブルとして〈テーブル名：ＴＥＣＴ〉，〈テーブル名：ＩＰＰＡＮＴ〉，〈テーブル名：ＳＯＵＲＣＥＴ〉の３つのテーブル３１があったとする。この例では，テーブルＴＥＣＴは，テクノロジーに関するテーブルであり，図番のフィールドＺＵＢ，分類のフィールドＢＵＮ，名称のフィールドＭＥＩ等を持つ。テーブルＩＰＰＡＮＴは，一般記号に関するテーブルであり，回路記号のフィールドＫＡＩ，図番のフィールドＺＵＢ，登録年月日に関するフィールドＴＮＥＮ等を持つ。テーブルＳＯＵＲＣＥＴは，回路記号ごとの製品情報のテーブルであり，回路記号のフィールドＫＡＩ，基盤ランクのフィールドＫＲＡＮ，手配仕様番号のフィールドＴＥＨ等を持つ。
【０００５】
テーブルＴＥＣＴとテーブルＩＰＰＡＮＴとは，フィールド名がＺＵＢのフィールドによってリンク関係があり，テーブルＩＰＰＡＮＴとテーブルＳＯＵＲＣＥＴとは，フィールド名がＫＡＩのフィールドによってリンク関係がある。テーブルＴＥＣＴとテーブルＳＯＵＲＣＥＴとは，共通のフィールドを持たず，直接的なリンク関係はない。
【０００６】
ユーザが，例えばテーブルＳＯＵＲＣＥＴのフィールドＴＥＨ（手配仕様番号）の値“ＴＥＨ−０１”をキーに，テーブルＴＥＣＴのフィールドＢＵＮ（分類）の情報を抽出したい場合，次のようなＳＱＬ文を作成して，ＳＱＬ実行部８２により実行させる。
【０００７】
0003779431.tif 000002
ここで，「SELECT」は抽出項目を指定する記述であり，「FROM」は関連するテーブル名を指定する記述であり，「WHERE 」は検索条件を指定する記述である。このような照会文では，テーブルＴＥＣＴとテーブルＳＯＵＲＣＥＴとが直接のリンク条件を持たないことから，中間テーブルとしてテーブルＩＰＰＡＮＴを経由しないと情報を抽出することができない。
【０００８】
しかし，一般のすべてのユーザが，リレーショナルデータベースにおけるすべてのテーブル間のリンク関係を常に把握しているとは限らず，データのＴＥＨ−０１（手配仕様番号）しか知らないこともある。このように，ユーザが関係するすべてのテーブル間の関係を知らない場合，適切なＳＱＬ文を記述することはできない。
【０００９】
このため，リレーショナルデータベースに精通していないユーザにも，簡易にリレーショナルデータベースの検索をできるようにすることを目的として，ＲＤＢクライアント９０におけるＧＵＩ処理部９１により，メニューなどによって処理対象の項目を入力するだけで，ＧＵＩ処理部９１があらかじめ用意したいくつかの標準的なＳＱＬ文のひな型に処理対象の項目を埋め込んで，ＲＤＢサーバ８０に対してＳＱＬ文の実行を要求するものが提供されている。
【００１０】
しかし，従来のこのようなＧＵＩ処理部９１のメニュー等によって提供する検索機能は，抽出項目や検索条件の指定項目があらかじめ固定的に決められているものであり，ユーザが抽出項目や検索条件を任意に指定することはできなかった。もし，ＧＵＩ処理部９１が任意の抽出項目と検索条件とに対応できるようにするためには，これらのすべての組み合わせについてのＳＱＬ文のひな型をあらかじめＧＵＩ処理部９１の処理ロジックの中に組み込んでおかなければならず，現実的な対処はできなかった。
【００１１】
ＧＵＩ処理部９１の機能にある程度の柔軟性を持たせたとしても，本質的には，固定されたＳＱＬ文に任意の照会条件を与えるというものであり，ユーザは，複数のテーブルにまたがるデータの検索を行う場合には，中間テーブルの存在を知って，これを条件として与える必要があった。
【００１２】
【発明が解決しようとする課題】
以上のように，従来，中間テーブルを意識したＳＱＬ文を適切に生成するためには，ユーザは，リレーショナルデータベースのテーブル構造ならびにフィールド情報を理解し，それぞれのテーブル，フィールド情報がどのようにリンクされているのかを理解していなければならないという問題があった。
【００１３】
さらに，新たにテーブルが追加されてリンク条件が変更されると，既存のＳＱＬ文もこれに伴い変更する必要があり，また既存のＧＵＩ処理部９１も関係する部分を変更しなければならないという問題があった。
【００１４】
また，構文的には適切なＳＱＬ文であっても，別なリンク条件による同一情報の取得方法があったり，時間とデータ増加に伴う処理応答（レスポンス）の悪化を途中で知ることが困難であった。
【００１５】
本発明は上記問題点の解決を図り，ユーザがリレーショナルデータベースのテーブル構造ならびにフィールド情報を詳しく理解していない場合でも，必要なリレーショナルデータベースの検索を行うことができるようにする手段を提供することを目的とする。また，リンク条件の指定が不足しているような照会文を自動修正するための手段を提供することを目的とする。さらに，実行応答性能のよい検索条件を指定できるようにすることを目的とする。
【００１６】
【課題を解決するための手段】
図１は，本発明の構成例を示すブロック構成図である。図１において，１はリレーショナルデータベースを管理するサーバ，１１はリレーショナルデータベースに対する基本的な処理機能を提供するＲＤＢ基本処理部，１２はＳＱＬ文を実行するＳＱＬ実行部，１３はテーブル間の関係を示すリンク情報を持つ中間リンクテーブルを作成する中間リンクテーブル作成部，１４はＳＱＬ文の実行応答性能を監視するＳＱＬレスポンス監視部，１５はＳＱＬ文における検索条件を同一結果が得られる範囲で変更して試行するＳＱＬレスポンストライアル部，２はリレーショナルデータベース（ＲＤＢ）を利用するクライアント，２１はリレーショナルデータベースに対するアクセスのためのグラフィカル・ユーザ・インタフェースを提供するＧＵＩ処理部，２２はＳＱＬ文を自動生成するＳＱＬ生成処理部，２３はＳＱＬ文中の検索条件の記述が不足している場合に，その記述を補足するＳＱＬ補足処理部，３はディスク装置または半導体記憶装置などの記憶装置，３１はリレーショナルデータベースにおいて検索対象となる基本テーブル，３２はテーブル間の関係を示すリンク情報を持つ中間リンクテーブル，３３はＳＱＬ文の実行応答性能に関する情報を記憶するＳＱＬレスポンス監視ログファイルを表す。
【００１７】
サーバ１，クライアント２，２は，それぞれネットワークで接続されたＣＰＵおよびメモリなどからなる処理装置上で動作する。
ＲＤＢ基本処理部１１は，リレーショナルデータベース（ＲＤＢ）の管理を行う手段である。ＳＱＬ実行部１２は，ＲＤＢの標準照会言語（ＳＱＬ）によって記述された照会文を実行する手段である。これらは，従来の処理手段と同様である。
【００１８】
中間リンクテーブル作成部１３は，すべての基本テーブル３１について，あるテーブルと他のテーブルとが直接またはその他の１または複数のテーブルを介して共通するフィールドにより関係づけられているとき，それらのテーブル間の関係を示すリンク情報を持つテーブルを自動作成し，それを中間リンクテーブル３２として記憶装置３に格納する手段である。
【００１９】
ＳＱＬレスポンス監視部１４は，ＳＱＬ実行部１２によるＳＱＬ文の実行時に，実行したＳＱＬ文の応答時間を計測し，応答時間がシステム側であらかじめ設定した所定の基準時間を超える場合には，そのＳＱＬ文と発行日時と応答時間の情報をＳＱＬレスポンス監視ログファイル３３に記録する手段である。
【００２０】
ＳＱＬレスポンストライアル部１５は，ＳＱＬレスポンス監視ログファイル３３に記憶されているＳＱＬ文における照会の条件を同じ照会結果が得られる範囲で他の表現に変更して実行させ，その応答時間が所定の時間内またはＳＱＬレスポンス監視ログファイル３３に記録した応答時間より短い場合には，そのＳＱＬ文において用いている中間リンクテーブル３２におけるリンク情報中の該当する条件を，応答時間のよい前記他の表現に更新する処理手段である。ＳＱＬ文における照会の条件の変更によるＳＱＬ文の発行テストは，同一結果が得られる組み合わせ可能なすべてのリンク条件について行う。
【００２１】
ＧＵＩ処理部２１は，ＳＱＬ文を生成するための選択情報をユーザから入力する手段である。特に，本システムにおけるＧＵＩ処理部２１では，テーブル，フィールド，条件についての必要最小限の選択情報を入力するだけでよい。
【００２２】
ＳＱＬ生成処理部２２は，ＧＵＩ処理部２１から入力された選択情報をもとに，サーバ１の中間リンクテーブル作成部１３が作成した中間リンクテーブル３２のリンク情報を参照し，正常なＳＱＬ文を生成し，サーバ１にその実行を要求する手段である。
【００２３】
ＳＱＬ補足処理部２３は，ユーザが入力したＳＱＬ文について，ＲＤＢ基本処理部１１から，ＳＱＬ文が正常でないとの通知を受けた場合に，中間リンクテーブル３２のリンク情報を参照し，正常なＳＱＬ文に修正する手段である。
【００２４】
本発明は，以下のように作用する。
中間リンクテーブル作成部１３は，基本テーブル３１の増減等の変更等を契機に，すべての基本テーブル３１について，テーブル間の関係をチェックし，基本テーブル３１中のテーブル名，フィールド名をもとにリンク条件を生成または更新し，リンク条件を含むリンク情報を中間リンクテーブル３２へ記憶する。
【００２５】
ＧＵＩ処理部２１からＳＱＬ文生成のための選択情報が入力されると，ＳＱＬ生成処理部２２は，中間リンクテーブル３２のリンク情報を参照して，必要なリンク情報を取得し，必要なテーブル名，リンク条件を記述したＳＱＬ文を生成してサーバ１へ発行する。発行したＳＱＬ文は，ＲＤＢ基本処理部１１を介してＳＱＬ実行部１２へ渡され実行される。
【００２６】
また，ＧＵＩ処理部２１または他のクライアントプロセスからＳＱＬ文が入力され，サーバ１に対して送られると，入力されたＳＱＬ文はＲＤＢ基本処理部１１によりチェックされる。その結果，ＳＱＬ文が不完全である旨の通知があるときには，ＳＱＬ補足処理部２３は，中間リンクテーブル３２のリンク情報を参照することにより必要なリンク情報を補足して，新たなＳＱＬ文を発行し，ＲＤＢ基本処理部１１へ返す。
【００２７】
このように，本発明によれば，中間リンクテーブル３２を利用することにより，より正確で，かつ完全なＳＱＬ文の発行が可能になる。
また，生成したＳＱＬ文について，ＳＱＬレスポンス監視部１４，ＳＱＬレスポンストライアル部１５により，ＳＱＬ文の実行時のレスポンスが調べられ，その結果，レスポンスが向上するように中間リンクテーブル３２におけるリンク条件を更新する。これにより，中間リンクテーブル３２におけるリンク条件を用いて作成または修正したＳＱＬ文の実行性能が向上することになる。
【００２８】
【発明の実施の形態】
以下，本発明の実施の形態を図面を用いて説明する。
図２は，本発明の実施の形態を説明するために用いるリレーショナルデータベースの基本テーブルのリンク関係の例を示す図である。
【００２９】
図２に示すテーブルＴＥＣＴは，テクノロジーに関するテーブルであり，図番のフィールドＺＵＢ，分類のフィールドＢＵＮ，名称のフィールドＭＥＩ等を持つ。テーブルＩＰＰＡＮＴは，一般記号に関するテーブルであり，回路記号のフィールドＫＡＩ，図番のフィールドＺＵＢ，登録年月日に関するフィールドＴＮＥＮ等を持つ。テーブルＳＯＵＲＣＥＴは，回路記号ごとの製品情報のテーブルであり，回路記号のフィールドＫＡＩ，基盤ランクのフィールドＫＲＡＮ，手配仕様番号の追番のフィールドＴＥＨＳ，手配仕様番号のフィールドＴＥＨ，外部からの購入品であるかどうかを示すフィールドＧＡＩ，品番の追番のフィールドＨＩＮＳ，メーカ略号のフィールドＭＡＫ等を持つ。また，テーブルＭＡＫＥＲは，製品の製造会社に関するテーブルであり，メーカ略号のフィールドＭＡＫ，英文字表記のメーカ名のフィールドＭＡＫＭ，漢字表記のメーカ名のフィールドＭＡＫＫ，登録者名のフィールドＭＴＯＵ等を持つ。
【００３０】
ここでは，各テーブル間で同じ対象を管理するフィールドには，同じフィールド名が付与されている。テーブルＴＥＣＴとテーブルＩＰＰＡＮＴとは，共通するフィールドＺＵＢを持ち，テーブルＩＰＰＡＮＴとテーブルＳＯＵＲＣＥＴとは共通するフィールドＫＡＩを持ち，テーブルＳＯＵＲＣＥＴとテーブルＭＡＫＥＲとは共通するフィールドＭＡＫを持つ。このように，２つのテーブルが共通するフィールドを持つ場合の関係を，ここでは１次リンク関係という。
【００３１】
テーブルＴＥＣＴとテーブルＳＯＵＲＣＥＴとは，共通するフィールドを持たないので１次リンク関係はないが，テーブルＴＥＣＴとテーブルＩＰＰＡＮＴとは，共通するフィールドＺＵＢによって１次リンク関係があり，また，テーブルＩＰＰＡＮＴとテーブルＳＯＵＲＣＥＴとは，共通するフィールドＫＡＩによって１次リンク関係を持つ。したがって，テーブルＴＥＣＴとテーブルＳＯＵＲＣＥＴとは，テーブルＩＰＰＡＮＴを介してリンク関係を持つことになる。これを２次リンク関係という。
【００３２】
同様に，テーブルＩＰＰＡＮＴとテーブルＭＡＫＥＲとは，２次リンク関係にある。
さらに，テーブルＴＥＣＴとテーブルＭＡＫＥＲとは，テーブルＩＰＰＡＮＴとテーブルＳＯＵＲＣＥＴとを介してリンク関係にあり，これを３次リンク関係という。
【００３３】
〔１〕中間リンクテーブル作成処理
図３は，中間リンクテーブル作成部により作成される中間リンクテーブルの例を示す図である。
【００３４】
中間リンクテーブル作成部１３は，図２に示すようなリレーショナルデータベースの基本テーブルがあるとき，図３に示すような中間リンクテーブルを自動作成する。中間リンクテーブルは，各エントリ（レコード）ごとに，元テーブル名，先テーブル名，リンクテーブル名，リンク条件を記憶する。
【００３５】
元テーブル名はリンク関係の起点となる基本テーブル（元テーブル）のテーブル名，先テーブルはリンク先となる基本テーブル（先テーブル）のテーブル名を示す。リンクテーブル名は，元テーブルと先テーブルが１次リンク関係を持たない場合に，これらのテーブルを連鎖的に共通するフィールドによって関係づける基本テーブル（リンクテーブル）のテーブル名を示す。
【００３６】
リンク条件は，元テーブルと先テーブルとのリンク関係を定義するものであり，テーブル間の１次リンク関係を示す情報およびその組み合わせからなる。ここで，１次リンク関係を示す情報は，元テーブルのテーブル名，先テーブルのテーブル名，１次リンク関係のキーとなる共通するフィールド名を用いて定義される。
【００３７】
図３において，テーブル中に示すリンク条件（ａ）のTECT.ZUB = IPPANT.ZUB は，テーブルＴＥＣＴとテーブルＩＰＰＡＮＴとが共通するフィールドＺＵＢによりリンクされていることを表している。
【００３８】
リンク条件（ｂ）のTECT.ZUB = IPPANT.ZUB ，IPPANT.KAI = SOURCET.KAIは，テーブルＴＥＣＴとテーブルＳＯＵＲＣＥＴとは直接１次リンク関係を持たず，テーブルＩＰＰＡＮＴを介してリンクされていることを示す。このリンク条件は，ＴＥＣＴとＩＰＰＡＮＴとの１次リンク関係を示すリンク条件（ＴＥＣＴとＩＰＰＡＮＴの間はＺＵＢによりリンク）と，ＩＰＰＡＮＴとＳＯＵＲＣＥＴとの１次リンク関係を示すリンク条件（ＩＰＰＡＮＴとＳＯＵＲＣＥＴとの間はＫＡＩによりリンク）との組み合わせからなる。
【００３９】
以下，図３に示すような中間リンクテーブルの作成方法について具体的に説明する。
図４は，１次リンク関係の例を示す。
【００４０】
基本テーブル〈ＴＥＣＴ〉，〈ＩＰＰＡＮＴ〉，〈ＳＯＵＲＣＥＴ〉，〈ＭＡＫＥＲ〉間には，図４（Ａ）に▲１▼で示すような１次リンク関係がある。図４（Ｂ）は，１次リンク関係を直観的に把握できるように図示したものであり，〈ＴＥＣＴ〉と〈ＩＰＰＡＮＴ〉，〈ＩＰＰＡＮＴ〉と〈ＳＯＵＲＣＥＴ〉，〈ＳＯＵＲＣＥＴ〉と〈ＭＡＫＥＲ〉とは１次リンク関係を持ち，〈ＴＥＣＴ〉と〈ＳＯＵＲＣＥＴ〉，また〈ＩＰＰＡＮＴ〉と〈ＭＡＫＥＲ〉とは１次リンク関係を持たないことを示す。
【００４１】
図５は，１次リンク関係を定義した後の中間リンクテーブルの例を示す図であり，図５中に示す▲１▼は，そのテーブルの組み合わせが１次リンク関係を持つことを表している。
【００４２】
図５に示す中間リンクテーブルを作成するために，中間リンクテーブル作成部１３は，まず，各基本テーブル３１の組み合わせを抽出する。次に，中間リンクテーブル作成部１３は，各テーブルについて，自テーブルを起点（元テーブル）として，１次リンク関係でリンクされたテーブル（先テーブル）がある場合には，リンク条件を定義する。すなわち，元テーブルおよび先テーブルに共通するフィールドがある場合には，それぞれのテーブル名およびその共通するフィールド名を用いてリンク条件を生成する。１次リンクのリンク条件を定義できない元テーブルと先テーブルの組み合わせについては，リンク条件の欄に“直接リンク不可”を設定する。
【００４３】
さらに，中間リンクテーブル作成部１３は，１次リンク条件を持ち，かつ，自テーブルのリンク先テーブルをリンクの起点のテーブルとする２つの１次リンク関係から，新たなリンク関係を定義する。
【００４４】
図６は，２つの１次リンク関係から生成される２次リンク関係の例を示す。
図６に示すように，ＴＥＣＴ−ＩＰＰＡＮＴ，ＩＰＰＡＮＴ−ＳＯＵＲＣＥＴ，ＳＯＵＲＣＥＴ−ＭＡＫＥＲが，それぞれ１次リンク関係（図中▲１▼）を持つ場合に，ＴＥＣＴ−ＳＯＵＲＣＥＴについても，ＩＰＰＡＮＴを介することで新たにリンク関係を定義することができ，ＩＰＰＡＮＴ−ＭＡＫＥＲについても，ＳＯＵＲＣＥＴを介することで新たにリンク関係を定義することができる。
【００４５】
図７は，図６に示す２次リンク関係を定義した後の中間リンクテーブルの例を示す図である。
具体的には，中間リンクテーブルのリンク条件から，ＴＥＣＴ−ＩＰＰＡＮＴのリンク条件“TECT.ZUB = IPPANT.ZUB ”, ＩＰＰＡＮＴ−ＳＯＵＲＣＥＴのリンク条件“IPPANT.KAI = SOURCET.KAI”を得て，これらのリンク条件から，ＴＥＣＴ−ＳＯＵＲＣＥＴのリンク条件“TECT.ZUB = IPPANT.ZUB, IPPANT.KAI = SOURCET.KAI ”を定義する。ＩＰＰＡＮＴ−ＭＡＫＥＲのリンク条件についても，同様に，“IPPANT.KAI = SOURCET.KAI, SOURCET.MAK = MAKER.MAK ”と定義できる。このようにして，他のテーブル間についても，新たに２次リンク関係を定義できる場合には，中間リンクテーブルにそれぞれのリンク条件を記憶する。
【００４６】
中間リンクテーブルにおけるリンクテーブル名の欄には，中間に介在した基本テーブルのテーブル名を設定する。
図８は，１次リンク関係と２次リンクから生成される３次リンク関係の例を示している。図８に示すように，ＴＥＣＴ−ＳＯＵＲＣＥＴの２次リンク関係と，ＳＯＵＲＣＥＴ−ＭＡＫＥＲの１次リンク関係を用いて，共通するＳＯＵＲＣＥＴを介するＴＥＣＴ−ＭＡＫＥＲのリンク条件を定義することができる。これを３次リンク関係という（図中▲３▼で示す）。処理の内容は，図６において説明した処理と同様である。
【００４７】
図９は，３次リンク関係を定義した後の中間リンクテーブルの例を示している。
中間リンクテーブルから，ＴＥＣＴ−ＳＯＵＲＣＥＴのリンク条件“TECT.ZUB = IPPANT.ZUB, IPPANT.KAI = SOURCET.KAI ”と，ＳＯＵＲＣＥＴ−ＭＡＫＥＲのリンク条件“SOURCET.MAK = MAKER.MAK ”とを得て，ＴＥＣＴ−ＭＡＫＥＲのリンク条件“TECT.ZUB = IPPANT.ZUB, IPPANT.KAI = SOURCET.KAI, SOURCET.MAK = MAKER.MAK”を定義する。ＭＡＫＥＲ（元テーブル）−ＴＥＣＴ（先テーブル）についても同様にリンク条件を定義する。
【００４８】
図１０は，中間リンクテーブル作成処理の処理フローチャートである。
中間リンクテーブル作成部１３は，新しいリレーショナルデータベースの基本テーブル３１が作成されたとき，または既存のリレーショナルデータベースにおける基本テーブル３１の構成に変更があった場合に，図１０に示す処理を実行する。
【００４９】
ステップＳ１〜ステップＳ４は，１次リンク関係の情報を設定する処理である。ステップＳ１では，リレーショナルデータベースで管理するすべての基本テーブルの各々について，自テーブルを起点にして，他のテーブルに自テーブルと同名かつ同属性のフィールドがあるかどうかを判断する。自テーブルと同名かつ同属性のフィールドがある場合にはステップＳ２へ進み，中間リンクテーブルに，元テーブル名（自テーブル），先テーブル名（他のテーブル），リンク条件を設定し，定義する。
【００５０】
自テーブルと同名かつ同属性のフィールドがない場合にはステップＳ３へ進み，中間リンクテーブルに，元テーブル名（自テーブル），先テーブル名（他のテーブル），リンク条件として“直接リンク不可”を設定し，定義する。
【００５１】
ステップＳ４で，すべてのテーブルについて１次リンク関係の処理が終了したかどうかを判断し，終了するまでステップＳ１〜Ｓ３の処理を繰り返す。
次に，Ｎ次リンク関係（Ｎ≧２）の処理へ移る。
【００５２】
ステップＳ５では，Ｎ＝２を設定する。
ステップＳ６では，中間リンクテーブル中でリンク条件が“直接リンク不可”のレコード（中間リンクテーブルのエントリ）を順次探し，“直接リンク不可”のレコードがあればステップＳ７へ進む。リンク条件が“直接リンク不可”のレコードが一つもなくなったならば，中間リンクテーブルの作成を終了する。
【００５３】
ステップＳ７では，リンク条件が“直接リンク不可”のレコード（本レコード）の元テーブルと先テーブルとをリンクできる２つのレコードがあるかどうかをチェックする。例えば，図５に示す〈元テーブル名：ＴＥＣＴ〉−〈先テーブル名：ＳＯＵＲＣＥＴ〉のレコードは，リンク条件が“直接リンク不可”であるが，〈元テーブル名：ＴＥＣＴ〉−〈先テーブル名：ＩＰＰＡＮＴ〉のレコードと，〈元テーブル名：ＩＰＰＡＮＴ〉−〈先テーブル名：ＳＯＵＣＥＴ〉の２つのレコードのリンク条件を用いればリンクできる。このように着目している本レコードが２つのレコードによってリンクできる場合には，ステップＳ８へ進み，リンクできない場合には，ステップＳ９へ進む。
【００５４】
ステップＳ８では，本レコードのリンクテーブル名の欄に，先テーブルと元テーブルを関係づける中間のテーブル名（前述の例ではＩＰＰＡＮＴ）を設定し，リンク条件の欄に，２つのレコードから抽出したリンク条件を設定する。
【００５５】
ステップＳ９では，中間リンクテーブルの全レコードについてＮ次リンク処理が終了したかどうかを判定し，未処理レコードがあれば，ステップＳ６へ戻って同様に処理を繰り返す。
【００５６】
Ｎ次リンク処理が終了したならば，ステップＳ１０で全リンク処理が終了したかどうかを判断する。リンク条件が“直接リンク不可”のレコードが残っていない場合および新しいリンク関係を設定できなくなった場合には，全リンク処理終了と判断し，中間リンクテーブルの作成を終了する。
【００５７】
まだ，新しいリンク関係を設定できる可能性がある場合には，ステップＳ１１によりＮに１を加算し，ステップＳ６へ戻って，Ｎ次リンク関係の処理を同様に繰り返す。
【００５８】
〔２〕ＳＱＬ自動生成処理
ユーザは，クライアント２のＧＵＩ処理部２１を用いて，検索項目，条件項目等の最小限必要な選択情報を入力するだけで，リレーショナルデータベースのテーブル構造等を知らなくても適正なＳＱＬによる検索を行うことができる。
【００５９】
図１１は，ＳＱＬ生成処理の処理フローチャートである。図１２〜図１４は，ＧＵＩ処理部の入力画面の例を示す図であり，特に図１２は検索項目を選択入力する画面の例，図１３は検索条件を選択入力する画面の例，図１４は検索条件のフィールドのデータ値を入力する画面の例を示している。
【００６０】
リレーショナルデータベースの検索要求に対し，ＧＵＩ処理部２１は，図１２に示すような検索のための画面を表示する。図１２に示す画面において，テーブルグループの入力フィールドでは，リレーショナルデータベースで検索しようとするあらかじめ分類されたテーブル群を指定する。編集項目の指定フィールドにおける「検索」，「条件」，「ＳＯＲＴ」は，それぞれ検索項目の入力，検索条件の入力，またはデータの並べ替えを行うかどうかを指定する。「ＳＯＲＴ」を指定した場合，さらに「昇順」に並べ替えるか「降順」に並べ替えるかを指定することができる。
【００６１】
検索項目の指定では，「テーブルＬＩＳＴ」と「フィールドＬＩＳＴ」により何を検索するかを１以上指定することができる。
以下，テーブルＳＯＵＲＣＥＴのフィールドＴＥＨ（手配仕様番号）の値“ＸＸ”をキーに，テーブルＴＥＣＴのフィールドＺＵＢ（図番）とフィールドＢＵＮ（分類）の情報を検索することをユーザが指定する場合の例について，処理の流れを説明する。
【００６２】
まず，図１１のステップＳ５１では，ＧＵＩ処理部２１により図１２〜図１４に示す入力画面を表示し，ユーザからの検索項目および条件項目の選択情報を入力する。
【００６３】
図１２の例では，検索項目として，対象テーブルグループをＰＡＲＥＴと指定し，対象テーブル名：ＴＥＣＴ，対象フィールド名：ＺＵＢ，ＢＵＮを選択している。最下行の「確定」ボタンを押すと，「選択ＬＩＳＴ」の領域に選択した検索項目情報の一覧が表示される。
【００６４】
続いて，ユーザが編集項目の「条件」をクリックすると，検索条件の指定が可能になる。図１３では，条件項目として「テーブルＬＩＳＴ」および「フィールドＬＩＳＴ」から，テーブル名：ＳＯＵＲＣＥＴ，フィールド名：ＴＥＨを指定している。ここで「確定」ボタンを押すと，図１４に「オートマチック検索指示」として示すようなダイアログボックスが表示され，フィールドＴＥＨの検索値の入力が可能になる。ここでは“ＸＸ”が入力されている。必要であれば出力テーブルの指定も可能である。「検索実行」のボタンの押下により，次のステップへ進む。
【００６５】
図１１のステップ５２では，ＧＵＩ処理部２１からＳＱＬ生成処理部２２へ，検索項目選択情報として“TECT.ZUB, TECT.BUN”，条件項目選択情報として“SOURCET.TEH = 'XX'”の情報が渡される。ＳＱＬ生成処理部２２は，サーバ１から中間リンクテーブル３２の情報をもらい，これを参照してユーザの要求に応えるＳＱＬ文を自動生成する。
【００６６】
具体的には，ＳＱＬ生成処理部２２は，ＧＵＩ処理部２１からの検索項目選択情報をもとに，“SELECT  TECT.ZUB,TECT.BUN ”のＳＥＬＥＣＴ句を生成し，条件項目選択情報から，“WHERE  SOURCET.TEH = 'XX' ”のＷＨＥＲＥ（検索条件）句を生成する。これだけではＳＱＬ文として不十分であるので，中間リンクテーブル３２から検索（抽出) 項目のテーブルＴＥＣＴと条件項目のテーブルＳＯＵＲＣＥＴとをリンクする情報を探し出し，“FROM  TECT,IPPANT,SOURCET ”の関連テーブル名を指定する記述と，リンク条件として，“TECT.ZUB = IPPANT.ZUB AND IPPANT.KAI = SOURCET.KAI”の記述を生成し，最終的に，
0003779431.tif 000003
という適正なＳＱＬ文を自動生成する。
【００６７】
従来の固定的な検索機能を提供するＧＵＩ処理部との大きな違いは，従来技術では，あらかじめＧＵＩ処理部がＳＱＬ文のひな型で用意している特定の検索項目および特定の条件項目についてだけ検索できるのに対し，本発明では，テーブル構造およびフィールド情報によらずに，任意の検索項目，任意の条件項目について柔軟に検索できることである。
【００６８】
また，比較的柔軟性のある検索を可能とした従来のＧＵＩ処理部との大きな違いは，従来技術では，上記の例におけるＩＰＰＡＮＴのように検索項目と条件項目とを結び付けるすべてのリンク関係のテーブルと，リンク条件とを正確にユーザが指定する必要があったのに対し，本発明では，中間リンクテーブル３２を利用するので，それらを指定する必要がないことである。すなわち，ユーザは，リレーショナルデータベースのテーブル，フィールドの関係について熟知していなくても，必要最小限の知識でリレーショナルデータベースを利用することができるようになる。
【００６９】
ステップＳ５３では，生成したＳＱＬ文をサーバ１へ送り，ＳＱＬ実行部１２によってＳＱＬ文を実行する。ＳＱＬ文の実行結果は，ＧＵＩ処理部２１を介してユーザに提示される。
【００７０】
ステップＳ５４では，ＳＱＬレスポンスト監視部１４により，ＳＱＬ文の実行処理開始から終了までの時間を計測し，応答時間を計算する。
ステップＳ５５では，ステップＳ５４で計算した応答時間が，例えば１秒というような所定の基準値を超えたかどうかを判断し，所定の基準値を超えた場合には，ステップＳ５６によって，実行したＳＱＬ文と発行日時と応答時間を，ＳＱＬレスポンス監視ログファイル３３に記憶する。これは，以下に説明するＳＱＬレスポンストライアル処理によって，ＳＱＬ文の実行性能を向上させるためである。
【００７１】
図１５は，ＳＱＬレスポンス監視ログファイルの構成例を示す図であり，これにはＳＱＬ文，その発行日時，応答時間，トライアルの有無等が記憶される。
本実施の形態におけるＧＵＩ処理部２１は，図１２〜図１４に示すような画面を特定のリレーショナルデータベースに対して専用に作成するのではなく，任意のリレーショナルデータベースに対して汎用的に作成することができる。換言すれば，リレーショナルデータベースを新たに開発した場合，またリレーショナルデータベースの構造を変更した場合にも，ＧＵＩ処理部２１を変更することなく，リレーショナルデータベースにおけるテーブル名，フィールド名の情報から，ユーザに対してリレーショナルデータベースの任意の検索機能を提供することができる。
【００７２】
〔３〕ＳＱＬレスポンストライアル処理
例えば，上述したＳＱＬ文の例で，検索条件として“WHERE  TECT.ZUB = IPPANT.ZUB，…”と指定しても，“WHERE  IPPANT.ZUB = TECT.ZUB，…”というように，リンク条件の左辺と右辺を入れ替えて指定しても，検索結果は同じである。しかし，検索の応答時間は，テーブルの構造および実際のデータ数などによって大きく異なることがある。このため，応答性能のよいＳＱＬ文を自動生成できるようにするため，ＳＱＬレスポンストライアル部１５によって，中間リンクテーブル３２におけるリンク条件の最適化を行う。
【００７３】
図１６は，ＳＱＬレスポンストライアル処理の処理フローチャートである。
ステップＳ６１では，ＲＤＢ基本処理部１１でデータベース利用ユーザ状況を確認し，適当な時期に以下の処理を行う。
【００７４】
ステップＳ６２では，データベース利用ユーザのＳＱＬレスポンス監視ログファイル３３があるかどうかを判断し，ＳＱＬレスポンス監視ログファイル３３があればステップＳ６３の処理へ進み，なければ処理を終了する。
【００７５】
ステップＳ６３では，ＳＱＬレスポンス監視ログファイル３３に記憶されているＳＱＬ文のすべてのパターンについて，ステップＳ６４からステップＳ６７の処理を繰り返す。
【００７６】
ステップＳ６４では，該当するログのＳＱＬ文における検索条件中のリンク条件の左辺／右辺を置き換えて，再度ＳＱＬ文の発行処理を行う。
ステップＳ６５では，応答時間が例えば１秒というような所定の基準値内かどうかを判定する。処理の応答時間が基準値内であればステップＳ６６へ進み，基準値を超える場合にはステップＳ６７へ進む。ここで，応答時間が所定の基準値内かどうかを判定する代わりに，例えばＳＱＬレスポンス監視ログファイル３３に記憶されている応答時間との大小を比較して，リンク条件の左辺／右辺を置き換えたときの応答時間が置き換える前よりも小さければステップＳ６６へ進み，大きければステップＳ６７へ進むようにしてもよい。
【００７７】
ステップＳ６６では，ステップＳ６７で実行したＳＱＬ文のリンク条件と同様になるように，中間リンクテーブル３２中の該当するリンク条件における左辺と右辺を置き換える処理を行い，その後，ＳＱＬレスポンス監視ログファイル３３を削除する。
【００７８】
ステップＳ６７では，ＳＱＬレスポンス監視ログファイル３３の該当エントリに“済”情報を記録する。
〔４〕ユーザ作成ＳＱＬチェックおよび補足処理
ＧＵＩ処理部２１によって入力した選択情報をもとに，ＳＱＬ生成処理部２２によりＳＱＬ文を自動生成するだけではなく，ユーザが作成したＳＱＬ文または既存のＳＱＬ文のチェックおよび修正が必要な場合には，ＳＱＬ補足処理部２３によってＳＱＬ文のチェックおよび修正を行うことができる。
【００７９】
図１７は，ユーザが作成したＳＱＬ文を検査し補足して適正なＳＱＬ文に直すユーザ作成ＳＱＬチェックおよび補足処理の処理フローチャートである。
ステップＳ７１では，ＧＵＩ処理部２１からユーザの作成したＳＱＬの照会文を入力する。ここでは，例えば図１７の（Ａ）に示すようなＳＱＬ文が入力されたとする。
【００８０】
ステップＳ７２では，入力したＳＱＬ文を発行する。ＲＤＢ基本処理部１１によりこのＳＱＬ文が正しいかどうか判別される。
ステップＳ７３では，ＲＤＢ基本処理部１１の検査結果によりＳＱＬ文が正常な文かどうかを判定し，正常なＳＱＬ文でなければステップＳ７４へ進み，正常なＳＱＬ文であれば処理を終了する。
【００８１】
ステップＳ７４では，ＳＱＬ補足処理部２３は，ＲＤＢ基本処理部１１からのエラー情報（ＥＲＲ）を調べ，ＥＲＲがＷＨＥＲＥ句のテーブルがＦＲＯＭ句に記述されていないものであるというような場合に，以下の処理を行う。
【００８２】
ステップＳ７５で，ＳＥＬＥＣＴ文に記述されたテーブル名（ＴＥＣＴ）と，ＷＨＥＲＥ句に記述されたテーブル名（ＳＯＵＲＣＥＴ）と，対象リンクテーブルとを中間リンクテーブル３２から求める。
【００８３】
ステップＳ７６では，中間リンクテーブル３２から求めたリンクテーブルと，そのリンク条件の情報とから，ユーザが作成したＳＱＬの補足を行って，新たなＳＱＬを作成する。この例では，記述として不足しているＦＲＯＭ句に“IPPANT”のテーブル名が追加され，ＷＨＥＲＥ句に“AND IPPAN.KAI = SOURCE.KAI”の条件が追加される。
【００８４】
ステップＳ７７では，ＧＵＩ処理部２１によりＳＱＬ判別処理結果を画面に表示する。ユーザは，必要に応じて新しいＳＱＬ文を保存することも，さらに修正することも，サーバ１に実行を要求することも可能である。
【００８５】
以上のようにユーザがＳＱＬ文を作った場合に，リンク条件等の記述が不足していると，従来技術では，実行時に単にエラーメッセージが出力されるだけであったのに対し，本発明では，正しいＳＱＬ文がユーザに提示され，ユーザは正しいＳＱＬ文による検索が可能になるとともに，テーブル間の関係などを把握することができるようになる。
【００８６】
【発明の効果】
以上説明したように，本発明によれば，ＳＱＬ文やリレーショナルデータベースのテーブル関係を熟知していないような利用者に対しても，汎用的で柔軟性のある最適な検索手段を提供することが可能になる。
【００８７】
テーブルの利用者は，自分が必要とする情報と検索条件の情報がどのテーブルにあるかという最低限の知識があれば，テーブル間にどのようなリンク関係があるか，またＳＱＬの正確な記述のしかたを知らなくても，必要な情報を簡単に取得することができるようになる。
【図面の簡単な説明】
【図１】本発明のブロック構成図である。
【図２】基本テーブルのリンク関係の例を示す図である。
【図３】中間リンクテーブルの例を示す図である。
【図４】１次リンク関係の例を示す図である。
【図５】中間リンクテーブルの例を示す図である。
【図６】２次リンク関係の例を示す図である。
【図７】中間リンクテーブルの例を示す図である。
【図８】３次リンク関係の例を示す図である。
【図９】中間リンクテーブルの例を示す図である。
【図１０】中間リンクテーブル作成処理の処理フローチャートである。
【図１１】ＳＱＬ生成処理の処理フローチャートである。
【図１２】ＧＵＩ処理部の入力画面の例を示す図である。
【図１３】ＧＵＩ処理部の入力画面の例を示す図である。
【図１４】ＧＵＩ処理部の入力画面の例を示す図である。
【図１５】ＳＱＬレスポンス監視ログファイルの構成例を示す図である。
【図１６】ＳＱＬレスポンストライアル処理の処理フローチャートである。
【図１７】ユーザ作成ＳＱＬチェックおよび補足処理の処理フローチャートである。
【図１８】従来の検索方法の例を説明するための図である。
【符号の説明】
１    サーバ
１１  ＲＤＢ基本処理部
１２  ＳＱＬ実行部
１３  中間リンクテーブル作成部
１４  ＳＱＬレスポンス監視部
１５  ＳＱＬレスポンストライアル部
２    クライアント
２１  ＧＵＩ処理部
２２  ＳＱＬ生成処理部
２３  ＳＱＬ補足処理部
３    記憶装置
３１  基本テーブル
３２  中間リンクテーブル
３３  ＳＱＬレスポンス監視ログファイル
【図１】
0003779431.tif 000004
【図２】
0003779431.tif 000005
【図３】
0003779431.tif 000006
【図４】
0003779431.tif 000007
【図５】
0003779431.tif 000008
【図６】
0003779431.tif 000009
【図７】
0003779431.tif 000010
【図８】
0003779431.tif 000011
【図９】
0003779431.tif 000012
【図１０】
0003779431.tif 000013
【図１１】
0003779431.tif 000014
【図１２】
0003779431.tif 000015
【図１３】
0003779431.tif 000016
【図１４】
0003779431.tif 000017
【図１５】
0003779431.tif 000018
【図１６】
0003779431.tif 000019
【図１７】
0003779431.tif 000020
【図１８】
0003779431.tif 000021