(57)【要約】      （修正有）【課題】構造化データの文書検索システムにおいて、構造化データの登録時間を増加させずに、データ検索を高速化する。【解決手段】データベース管理システム１０は、ＸＭＬデータ５２の入力を受け付けると、ＸＭＬデータ５２をインデクス６６に反映するための処理コストを算出する。この算出した処理コストが、所定の閾値を超えるとき、データベース管理システム１０は、このＸＭＬデータ５２に関する構造解析情報を構造解析情報記憶領域４０に格納する。そして、データベース管理システム１０は、ＸＭＬデータの検索要求５１を受け付けた場合において、この検索要求の対象であるＸＭＬデータがインデクス６６に反映されていないものであるとき構造解析情報記憶領域４０に格納された構造解析情報を取り出し、この構造解析情報から、検索要求の対象となるＸＭＬデータの範囲を特定し、この範囲を対象に検索を行う。【選択図】図４
2008176565.tif 000002
【特許請求の範囲】
【請求項１】
１以上の構造化データに関するインデクスを用いて前記構造化データの検索を行うコンピュータが、
前記構造化データの入力を受け付け、記憶部に格納し、
前記入力された構造化データの構造解析を行い、この構造化データを構成する各構造要素の名称と、前記各構造要素間の関係と、前記各構造要素の前記構造化データにおける出現位置とを含む構造解析情報を作成し、
前記作成した構造解析情報をもとに、前記入力された構造化データを前記インデクスに反映するための処理コストを算出し、
前記算出した処理コストが、所定の閾値を超えるか否かを判断し、
前記算出した処理コストが、所定の閾値を超えないとき、前記構造化データを前記インデクスに反映し、
前記算出した処理コストが、所定の閾値を超えるとき、前記構造化データを前記インデクスに反映せず、前記インデクスに反映しなかった構造化データのデータ識別子およびこの構造化データをもとに作成された構造解析情報へアクセスするためのポインタ情報を、前記記憶部の未反映データ管理情報として登録し、
前記構造化データの構造条件を含む、前記構造データの検索要求の入力を受け付けた場合において、この検索要求の対象である構造化データが前記インデクスに反映されていないものであるとき、
前記未反映データ管理情報を参照して、前記インデクスに反映されていない構造化データおよびその構造化データをもとに作成された構造解析情報を前記記憶部から読み出し、
前記読み出した構造解析情報から、前記構造条件を満たす構造解析情報を検索し、前記検索した構造解析情報から、前記構造条件に示される構造要素の、前記構造化データにおける出現位置を特定し、この特定した出現位置におけるデータを対象として、前記検索要求を満たすデータを検索することを特徴とするデータベース管理方法。
【請求項２】
前記処理コストは、前記入力された構造化データを前記インデクスに反映するのに要する登録処理時間、前記構造化データのデータサイズおよび前記構造化データに含まれる構造要素の数のいずれかであることを特徴とする請求項１に記載のデータベース管理方法。
【請求項３】
前記コンピュータが、
外部から、前記所定の閾値の入力を受け付けることを特徴とする請求項１に記載のデータベース管理方法。
【請求項４】
前記コンピュータが、
前記構造化データの入力を受け付け、前記記憶部に格納し、
前記入力された構造化データをすべて前記インデクスに反映するか否かの選択入力を促す画面を出力装置に表示し、
前記画面上から、前記入力された構造化データをすべて前記インデクスに反映する旨の指示入力がされたとき、
前記記憶部に格納された前記構造化データをすべて前記インデクスに反映することを特徴とする請求項１に記載のデータベース管理方法。
【請求項５】
前記コンピュータが、
前記未反映データ管理情報をもとに、作成された前記インデクスに未反映の構造化データのリストを含む、前記インデクスに反映する構造化データの選択入力を受け付ける画面を出力装置に表示し、
前記画面上から、前記インデクスに反映する構造化データの選択入力を受け付けたとき、
前記選択された構造化データを前記インデクスに反映することを特徴とする請求項１に記載のデータベース管理方法。
【請求項６】
前記コンピュータが、
前記画面上における前記インデクスに未反映の構造化データのリストを、前記構造化データの検索履歴、データサイズおよび構造要素の数のうち少なくともいずれか１つを基準として並べ替えることを特徴とする請求項５に記載のデータベース管理方法。
【請求項７】
１以上の構造化データに関するインデクスを用いて前記構造化データの検索を行うコンピュータが、
前記構造化データの入力を受け付け、記憶部に格納し、
前記入力された構造化データの構造解析を行い、この構造化データを構成する各構造要素の名称と、前記各構造要素間の関係と、前記各構造要素の前記構造化データにおける出現位置とを含む構造解析情報を作成し、
前記作成した構造解析情報を所定時間経過するまで、前記インデクスに反映する処理を継続し、
前記インデクスへの反映が完了しなかった構造化データのデータ識別子およびこの構造化データをもとに作成された構造解析情報へアクセスするためのポインタ情報を、前記記憶部の未反映データ管理情報として登録し、
前記構造化データの構造条件を含む、前記構造データの検索要求の入力を受け付けた場合において、この検索要求の対象である構造化データが前記インデクスへの反映が完了していないものであるとき、
前記未反映データ管理情報を参照して、前記インデクスへの反映が完了していない構造化データおよびその構造化データをもとに作成された構造解析情報を前記記憶部から読み出し、
この読み出した構造解析情報を参照して、前記構造条件を満たす構造要素の前記構造化データにおける出現位置を特定し、前記読み出した構造化データのうち、前記特定した出現位置のデータを対象として、前記検索要求を満たすデータを検索することを特徴とするデータベース管理方法。
【請求項８】
請求項１ないし請求項７のいずれか１項に記載のデータベース管理方法を、前記コンピュータに実行させることを特徴とするデータベース管理プログラム。
【請求項９】
１以上の構造化データに関するインデクスを用いて前記構造化データの検索を行うデータベース管理装置であって、
前記構造化データの入力を受け付け、記憶部に格納する入力処理部と、
前記入力された構造化データの構造解析を行い、この構造化データを構成する各構造要素の名称と、前記各構造要素間の関係と、前記各構造要素の前記構造化データにおける出現位置とを含む構造解析情報を作成し、前記作成した構造解析情報を前記記憶部に記憶し、前記作成した構造解析情報をもとに、前記入力された構造化データを前記インデクスに反映するための処理コストを算出し、前記算出した処理コストが、所定の閾値を超えるか否かを判断し、前記算出した処理コストが、所定の閾値を超えないとき、前記構造化データを前記インデクスに反映し、前記算出した処理コストが、所定の閾値を超えるとき、前記構造化データを前記インデクスに反映しないインデクス登録処理部と、
前記インデクスに反映しなかった構造化データのデータ識別子およびこの構造化データをもとに作成された構造解析情報へアクセスするためのポインタ情報を、前記記憶部の未反映データ管理情報として登録する構造解析情報管理部と、
前記構造化データの構造条件を含む、前記構造データの検索要求の入力を受け付けた場合において、この検索要求の対象である構造化データが前記インデクスに反映されていないものであるとき、
前記未反映データ管理情報を参照して、前記インデクスに反映されていない構造化データおよびその構造化データをもとに作成された構造解析情報を前記記憶部から読み出し、前記読み出した構造解析情報から、前記構造条件を満たす構造解析情報を検索し、前記検索した構造解析情報から、前記構造条件に示される構造要素の、前記構造化データにおける出現位置を特定し、この特定した出現位置におけるデータを対象として、前記検索要求を満たすデータを検索するインデクス検索処理部とを備えることを特徴とするデータベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化データの登録および検索技術に関する。
【背景技術】
【０００２】
近年、電子化された文書から必要とする情報を高速かつ確実に検索したいというニーズが高くなっている。そのようなニーズに応えるシステムとして全文検索システムがある。この全文検索システムでは、計算機システムが文書のデータベースから、指定された文字を含む文書を検索することができる。また、全文検索システムも高度化してきており、従来のフラットな文書に対する検索だけでなく、ＸＭＬ（Extensible Markup Language）データのような構造化された文書（構造化データ）に対し、構造を指定した検索が可能になっている（特許文献１参照）。例えば、ＸＭＬで記述された文書において、「＜書誌＞」から「＜／書誌＞」までの情報から、著者名「Ａ」を含む情報を検索する、というように文書の構造を指定した検索が可能になっている。
【０００３】
こうした全文検索を高速にする技術として、ｎ−ｇｒａｍインデクスを用いるものがある。このｎ−ｇｒａｍインデクスは、連接するｎ文字（ｎ−ｇｒａｍ）に対して、そのｎ文字が、どの文書のどの位置に出現するかをインデクスとして示したものである。このｎ−ｇｒａｍインデクスによれば、ＸＭＬデータのような構造化された文書においても、当該連接する文字が、そのＸＭＬデータのどの構造に出現するかを管理することができる。
【０００４】
なお、このｎ−ｇｒａｍインデクスを用いれば、計算機システムは、高速に情報を検索できるが、このインデクスの追加登録等、インデクス（全文検索インデクス）の更新処理に時間がかかるという問題があった。
【０００５】
そこで、全文検索インデクスの更新処理の時間をかけずに、文書の検索をできるようにするため、以下のような技術が提案されている。すなわち、コンピュータは、新規に文書を登録するときには、まず、この文書をそのまま更新用テキストバッファに格納しておく。そして、コンピュータが文書を検索するときには、この更新用テキストバッファに格納された文書と、全文検索インデクスのインデクスとの両方を検索する。つまり、コンピュータは、更新用テキストバッファに格納された文書に対してはテキストスキャンを行い、全文検索インデクスに対しては指定された文字列を含むインデクスの検索を行う。
【０００６】
そして、コンピュータは、この検索処理とは別個に（例えば、コンピュータが検索処理を行っていない時間等に）、更新用テキストバッファの文書をもとに、全文検索インデクスを更新する。なお、このときの全文検索インデクスの更新は、システム管理者からの指示入力があったときや、更新用テキストバッファに所定数を超える文書が蓄積されたことを契機として行われる（特許文献２参照）。
【特許文献１】特開平１０−２４０７５２号公報
【特許文献２】特開平１０−２４０７５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献２に記載の技術において、更新用テキストバッファに登録された文書数が増加すると、このバッファに格納された文書に対する検索処理時間が増加するという問題がある。つまり、更新用テキストバッファにまだインデクスが作成されていない文書が多数蓄積された状態で、コンピュータが、検索処理を実行すると時間がかかるという問題がある。この問題は、特許文献２に記載の技術において、特許文献１に記載の構造化データの検索技術を用いた場合も同様である。
【０００８】
本発明は、前記した課題を解決し、ＸＭＬデータ等、構造化されたデータの文書検索システムにおいて、構造化データの登録時間を増加させずに、データ検索を高速化することを目的とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、本発明は、インデクスを用いて構造化データの検索を行うコンピュータが、構造化データの入力を受け付けると、この入力された構造化データの構造解析を行う。つまり、この構造化データを構成する各構造要素の名称と、各構造要素間の関係と、各構造要素の構造化データにおける出現位置等を解析する。次に、コンピュータは、作成した構造解析情報をもとに、この構造化データをインデクスに反映するための処理コストを算出する。例えば、この構造化データをインデクスに反映するのに要する登録処理時間を算出する。そして、この算出した処理コストが、所定の閾値を超えるとき、コンピュータは、この構造化データに関する構造解析情報を記憶部に格納する。つまり、コンピュータは、構造解析情報を記憶部に格納するにとどめ、入力した構造化データのインデクス反映は行わない。そして、このコンピュータが、構造条件を含む検索要求の入力を受け付けた場合において、この検索要求の対象である構造化データが前記インデクスに反映されていないものであるときは以下のような検索処理を行う。まず、コンピュータは、記憶部に格納された構造解析情報から、構造条件を満たす構造要素について、その構造要素の構造化データにおける出現位置を読み出す。そして、コンピュータは、この読み出した出現位置におけるデータを対象として、この検索要求を満たすデータを検索する。例えば、テキストスキャンを行う。
【００１０】
このように、コンピュータは、インデクス反映（インデクス更新）に時間がかかる構造化データについては、構造解析情報を作成した段階で、記憶部に格納しておく。つまり、この構造解析情報に基づくインデクス更新は行わない。一方、インデクス更新にあまり時間がかからない構造化データについては、構造解析情報を作成後、この構造解析情報をもとにインデクス更新を行う。
【００１１】
そして、このコンピュータが、インデクス未反映の構造化データの検索を行うときには、この構造解析情報に示される情報（各構造要素の名称、各構造要素間の関係、各構造要素の構造化データにおける出現位置等の情報）から、インデクス未反映の構造化データのどの範囲を検索対象とすればよいか、検索範囲の絞り込みを行う。そして、コンピュータは、この絞り込みを行った範囲を対象に、検索要求を満たすデータを検索する。例えば、構造化データの所定範囲を対象に、検索要求で指定された文字列を含むデータを検索する。従って、コンピュータは、インデクス未反映の構造化データについて、そのすべてに対し文字列検索を行うよりも、高速に検索することができる。また、コンピュータは、インデクス反映済みの構造化データについても、インデクスを用いて高速に検索することができる。つまり、構造化データの登録時間を増加させずに、データ検索を高速化することができる。
【発明の効果】
【００１２】
本発明によれば、ＸＭＬデータ等、構造化データの文書検索システムにおいて、構造化データの登録時間を増加させずに、データ検索を高速化することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態（以下、実施の形態という）を、図面を参照しながら説明する。なお、以下の説明において、本システムの検索および登録の対象はＸＭＬデータとするが、構造化データであれば、これ以外のデータでもよい。
【００１４】
≪第１の実施の形態≫
図１は、第１の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。図１に示すように、システムは、端末装置２０４,２０５と、ネットワーク２０６と、コンピュータ（データベース管理装置）２０１と、ディスク装置２０７とを含んで構成される。
【００１５】
端末装置２０４,２０５はそれぞれ、アプリケーションプログラム２２１,２２２を備える。そして、このアプリケーションプログラム２２１,２２２により、コンピュータ２０１に対し、ＸＭＬデータの登録、検索等の各種演算処理の要求を行う。この端末装置２０４,２０５と、コンピュータ２０１とは、ネットワーク２０６により通信可能に接続される。なお、この端末装置２０４,２０５は、例えば、ＰＣ（Personal Computer）により実現され、図示しない入力装置（キーボードやマウス等）や、出力装置（液晶ディスプレイ等）が接続される。ネットワーク２０６は、例えば、インターネットや、ＬＡＮ（Local Area Network）等により実現される。
【００１６】
なお、以下の説明において、端末装置２０４は、主にＸＭＬデータを登録する端末装置であり、端末装置２０５は、主にＸＭＬデータを検索する端末装置として説明するがこれに限定されない。また、コンピュータ２０１に接続される端末装置の数は、図１に例示する台数に限定されない。
【００１７】
コンピュータ２０１は、ＸＭＬデータの登録、検索等の各種演算処理を行う。なお、コンピュータ２０１は、ネットワークインタフェース、入出力インタフェース等（図示省略）を備える。コンピュータ２０１は、このネットワークインタフェースによりネットワーク２０６経由で、端末装置２０４,２０５と通信を行う。また、コンピュータ２０１は、入出力インタフェース経由で、ディスク装置２０７のデータの読み出しおよび書き込みを行う。
【００１８】
ディスク装置２０７は、コンピュータ２０１に接続される記憶装置であり、ＸＭＬデータのデータベース６０を備える。このディスク装置２０７は、例えば、ＨＤＤ（Hard Disk Drive）や、フラッシュメモリ等により実現される。なお、図１において、ディスク装置２０７は、コンピュータ２０１の外部に設置されるものとしたが、コンピュータ２０１の内部に設置されていてもよい。
【００１９】
＜コンピュータ＞
コンピュータ２０１は、ＣＰＵ（Central Processing Unit）２０２と、主記憶部２０３とを含んで構成される。また、図示を省略しているが、コンピュータ２０１は、ネットワークインタフェース、入出力インタフェース等（図示省略）を備える。
【００２０】
このＣＰＵ２０２は、主記憶部（メインメモリ）２０３上にディスク装置２０７に格納されたプログラム（図示省略）を読み出して実行し、ＸＭＬデータの登録、検索等の各種演算処理を行う。
【００２１】
主記憶部２０３は、ＣＰＵ２０２が前記した各種演算処理を行う際に用いられる記憶装置である。この主記憶部２０３は、未反映データ管理情報３９を格納し、所定領域に構造解析情報記憶領域４０と、データベースバッファ４４用の領域を確保している。なお、この主記憶部２０３および前記したディスク装置２０７をまとめて記憶部とする。
【００２２】
未反映データ管理情報３９は、データベース管理システム１０に入力されたＸＭＬデータのうち、まだデータベース６０に反映されていないＸＭＬデータの識別子を示した情報である。例えば、図２に例示するように、未反映データ管理情報３９は、ＸＭＬデータのデータ識別子３０１と、このＸＭＬデータの構造解析情報へのアクセス情報３０２（ポインタ情報）とが記録される。
データベース管理システム１０は、この未反映データ管理情報３９を参照することで、インデクス未反映のＸＭＬデータのデータ識別子を知ることができる。また、データベース管理システム１０は、インデクス未反映のＸＭＬデータの構造解析情報の記憶領域を知ることができる。また、これらのＸＭＬデータから作成された構造解析情報３０６〜３０８へのアクセス情報３０２を知ることができる。
【００２３】
構造解析情報記憶領域４０（図１参照）は、入力されたＸＭＬデータの構造解析情報を記憶する領域である。この構造解析情報は、ＸＭＬデータにおいてタグ「＜  ＞」で表現された各構造の関係を木構造で表現したものである。
【００２４】
この構造解析情報を図３（ａ）および（ｂ）を用いて説明する。図３（ａ）は、構造解析の対象となるＸＭＬデータを例示した図である。図３（ｂ）は、（ａ）に示したＸＭＬデータの構造解析情報を例示した図である。
【００２５】
例えば、図３（ａ）に例示したＸＭＬデータにおいて、＜本＞という構造要素の下には、＜書誌＞および＜本文＞という構造要素が含まれ、この＜書誌＞という構造要素の下には＜著者＞および＜題名＞が含まれることを示す。このＸＭＬデータの構造要素を節（ノード）に置き換え、木構造として表現すると図３（ｂ）に例示するような構造解析情報となる。このような木構造により、各構造要素間の関係が表現される。なお、この構造化情報における各節には、各構造要素の名称（構造名）と、この構造要素のＸＭＬデータにおける位置情報とが示される。位置情報は、その構造要素のＸＭＬデータにおける出現位置を示した情報であり、開始位置と終了位置との組み合わせにより記述される。
【００２６】
例えば、図３（ｂ）に示す構造解析情報おいて、符号４３０に示す構造名「本」の構造の開始位置は「４」であり、終了位置は「１８４０」であることが示されている。また、符号４３１に示す構造名「書誌」の構造は、構造名「本」の下にあり、その開始位置は「１０」であり、終了位置は「４２」であることを示す。
【００２７】
図１の説明に戻る。このような構造解析情報は、インデクス検索処理部２１４（図１参照）がこの構造解析情報のもととなったＸＭＬデータ内のデータを検索する際に参照される。つまり、このような構造解析情報を参照することで、インデクス検索処理部２１４は、検索対象である文字列は、どのＸＭＬデータのどの位置に含まれるか知ることができる。すなわち、インデクス検索処理部２１４は、インデクス６６を参照しないでも、検索対象となるＸＭＬデータおよびそのＸＭＬデータにおける範囲の絞り込みをすることができる。
【００２８】
データベースバッファ４４は、データベース管理システム１０がデータベース６０からＸＭＬデータを読み出すときに用いられる記憶領域である。本実施の形態において、このデータベースバッファ４４上には主にインデクス未反映のＸＭＬデータが読み出される。
【００２９】
なお、図１において主記憶部２０３に、データベース管理システム１０がプログラムとしてロードされている状態を示している。なお、このプログラムは、ディスク装置２０７に格納され、主記憶部２０３にロードされ、ＣＰＵ２０２により実行される。
【００３０】
＜データベース管理システム＞
ここで、データベース管理システム１０の構成を説明する。データベース管理システム１０は、入力処理部２２０と、出力処理部２３０と、データベースアクセス制御部２１０とを含んで構成される。
【００３１】
入力処理部２２０は、コンピュータ２０１のネットワークインタフェースや入出力インタフェース経由で入力された情報を、データベースアクセス制御部２１０へ受け渡す。また、出力処理部２３０は、データベースアクセス制御部２１０で処理された結果を、ネットワークインタフェースや入出力インタフェース経由で出力する。
【００３２】
データベースアクセス制御部２１０は、データ管理部２１６と、構造解析情報管理部２１７と、インデクス管理部２１１とを含んで構成される。
【００３３】
このデータベースアクセス制御部２１０は、端末装置２０４からのＸＭＬデータの登録要求または端末装置２０５からのＸＭＬデータの検索要求の種類や条件に応じて、データ管理部２１６、構造解析情報管理部２１７およびインデクス管理部２１１を呼び出す。そして、データ管理部２１６、構造解析情報管理部２１７およびインデクス管理部２１１による演算処理結果を端末装置２０４,２０５へ送信する。
【００３４】
データ管理部２１６は、ディスク装置２０７に格納されているデータベース６０のデータの取り出し、更新、削除等を行う。
【００３５】
構造解析情報管理部２１７は、未反映データ管理情報３９と、構造解析情報記憶領域４０に格納される構造解析情報とを管理する。つまり、構造解析情報管理部２１７は、構造解析情報記憶領域４０の構造解析情報を追加したり、削除したりする。また、未反映データ管理情報３９にインデクス未反映のＸＭＬデータのエントリを追加したり、削除したりする。
【００３６】
インデクス管理部２１１は、インデクス登録処理部２１２と、インデクス検索処理部２１４とを備える。このインデクス管理部２１１は、端末装置２０４,２０５からの要求内容に応じてこれらの処理部を起動する。例えば、インデクス管理部２１１は、端末装置２０４から、ＸＭＬデータの登録要求を受け付けたとき、インデクス登録処理部２１２を起動する。また、端末装置２０５から、ＸＭＬデータの検索要求を受け付けたとき、インデクス管理部２１１は、インデクス検索処理部２１４を起動する。
【００３７】
インデクス登録処理部２１２は、ＸＭＬデータの構造解析情報をもとに、データベース６０のインデクス６６を更新する。
【００３８】
インデクス検索処理部２１４は、入力された検索条件（構造条件および文字列条件）をキーとして、インデクス６６、構造解析情報、データベースバッファ４４上のＸＭＬデータ等を検索する。
【００３９】
このデータベースアクセス制御部２１０の詳細は、後記する。
【００４０】
＜ディスク装置＞
ディスク装置２０７は、データベース６０を備える。このデータベース６０は、ＸＭＬデータを格納する表６２と、このＸＭＬデータのインデクス６６と、定義情報６１とを含んで構成される。
【００４１】
表６２は、ＸＭＬデータを格納する。表６２には、ＸＭＬデータのデータ識別子（データＩＤ）ごとに、この識別子に対応するＸＭＬデータが格納される。以下の表１に表６２を例示する。表「ＴＩ」には、データ識別子「１」および「２」のＸＭＬデータが格納されている。
【００４２】
【表１】
2008176565.tif 000003
【００４３】
なお、この表６２には、インデクス未反映のＸＭＬデータも格納される。また、この表６２は、ＸＭＬデータとは別に、このＸＭＬデータに関するメタデータ（例えば、ＸＭＬデータの登録年月日等）を含んでいてもよい。
【００４４】
インデクス６６は、表６２に格納されるＸＭＬデータのインデクスである。このインデクス６６は、表６２ごとに作成される。なお、このインデクス６６は、インデクス検索処理部２１４により検索される。
【００４５】
このインデクス６６は、例えば、ＸＭＬデータを、そのＸＭＬデータを構成する構造要素で辿って検索するための構造化インデクスと、ＸＭＬデータの文字列を検索するための文字列インデクスとを含んで構成される。構造化インデクスは、ＸＭＬデータのタグをノードとして木構造で示したインデクスである。文字列インデクスは、文字列ごとにその文字列を含むＸＭＬデータの文書番号や、そのＸＭＬデータにおける文字位置等を示したインデクスである。インデクス検索処理部２１４は、このインデクス６６を検索することで、検索条件に示された文字列を含むＸＭＬデータや、そのＸＭＬデータにおける当該文字列の文字位置等を得ることができる。
【００４６】
定義情報６１は、データベース６０の表６２ごとに、この表６２に格納されるＸＭＬデータのインデクス６６の識別情報を示した情報である。以下の表２に例示する定義情報６１は、表「Ｔ１」のインデクスは「Ｉｄｘ１」であることを示す。データベースアクセス制御部２１０は、この定義情報６１を参照することで、各表６２にどのようなインデクス６６が作成されているかを知ることができる。
【００４７】
【表２】
2008176565.tif 000004
【００４８】
次に、図１を参照しつつ、図４を用いて、本実施の形態のシステムの概要を説明する。図４は、図１のデータベース管理システムの概要を説明した図である。
【００４９】
＜登録処理の概要＞
まず、図１のデータベース管理システム１０の入力処理部２２０は、端末装置２０４のアプリケーションプログラム２２１から、ＸＭＬデータ５２と、このＸＭＬデータ５２の登録要求５０の入力を受け付ける。この登録要求は、このＸＭＬデータ５２の登録先である表６２の識別情報（例えば、「Ｔ１」）等を含む。
【００５０】
そして、データ管理部２１６は、データベース６０の定義情報６１を参照して、インデクス６６の更新を決定する（Ｓ１１）。例えば、ＸＭＬデータの登録先の表６２が「Ｔ１」であるとき、データ管理部２１６は、定義情報６１を参照して、この「Ｔ１」の表６２のインデクス６６を更新することを決定する。
【００５１】
次に、データ管理部２１６は、ＸＭＬデータ５２をデータベース６０に格納し、このＸＭＬデータ５２のデータ識別子３０を決定する（Ｓ１２）。例えば、ＸＭＬデータ５２をデータベース６０の表「Ｔ１」に格納し、このＸＭＬデータ５２のデータ識別子３０を決定する。
【００５２】
次に、インデクス登録処理部２１２は、入力されたＸＭＬデータ５２の構造解析を行い、構造解析情報を生成（作成）する。そして、この生成した構造解析情報３１を、構造解析情報記憶領域４０に格納する（Ｓ１３）。
【００５３】
また、インデクス登録処理部２１２は、構造解析情報３１の構造数から、インデクス６６を更新するか否かを判断する（Ｓ１４）。
【００５４】
例えば、インデクス登録処理部２１２は、構造解析情報３１のタグの数をもとに、構造数を計算し、計算した構造数が所定の閾値を超えるか否かを判断する。つまり、インデクス登録処理部２１２は、当該ＸＭＬデータが、インデクス更新に比較的時間がかかるＸＭＬデータか否かを判断する。
【００５５】
ここで、構造解析情報３１の構造数が所定の閾値を超える場合、構造解析情報管理部２１７は、未反映データ管理情報３９にエントリを登録する。つまり、構造解析情報管理部２１７は、Ｓ１３で作成した構造解析情報３１へのアクセス情報と、この構造解析情報３１のもととなったＸＭＬデータ５２のデータ識別子とを未反映データ管理情報３９に登録する。例えば、ＸＭＬデータ５２のデータ識別子「２」と、構造解析情報３１へのアクセス情報を登録する。なお、このとき、インデクス登録処理部２１２は、インデクス６６を更新しない。
【００５６】
一方、計算した構造数が所定の閾値以下の場合、インデクス登録処理部２１２は、構造解析情報を利用して、インデクス６６を更新する。つまり、インデクス登録処理部２１２は、Ｓ１３で作成した構造解析情報３１を利用して、ＸＭＬデータ５２の登録先である表６２のインデクス６６を更新する。
【００５７】
このように、データベース管理システム１０は、インデクス６６の更新時間が比較的短いＸＭＬデータについては、このＸＭＬデータの構造解析情報に基づきインデクス６６を更新する。一方、データベース管理システム１０は、インデクス６６の更新時間が比較的長いＸＭＬデータについては、構造解析情報を作成するにとどめ、インデクス６６を更新しない。作成した構造解析情報は、主記憶部２０３（図１参照）の構造解析情報記憶領域４０に格納しておく。
【００５８】
＜検索処理の概要＞
次に、前記した手順により登録されたＸＭＬデータの検索処理について説明する。ここでは、データベース管理システム１０が、まずインデクス６６を検索し、それから、未反映データ管理情報３９を検索する場合を例に説明するが、これに限定されるものではない。つまり、まず未反映データ管理情報３９を検索し、それから、インデクス６６を検索してもよい。
【００５９】
データベース管理システム１０の入力処理部２２０は、ＸＭＬデータの検索要求５１の入力を受け付ける。この検索要求５１は、検索対象であるＸＭＬデータの構造条件と文字列条件と（検索条件）を含む。
【００６０】
例えば、構造条件として「書誌／著者」、文字列条件として「○×」という指定を含んだ検索要求５１の入力を受け付ける。つまり、ＸＭＬデータにおいて、「書誌」の構造の直下にある「著者」の構造内に、文字列「○×」が出現するケースを検索せよという検索要求５１の入力を受け付ける。
【００６１】
次に、データ管理部２１６のインデクス検索処理部２１４は、データベース６０の定義情報６１を参照して、インデクス６６の利用を決定する（Ｓ１６）。つまり、インデクス検索処理部２１４は、定義情報６１を参照して、データベース６０のインデクス６６を読み出す。
【００６２】
そして、インデクス検索処理部２１４は、インデクス６６を検索し（Ｓ１７）、入力された検索要求５１に合致するＸＭＬデータの文書番号や文字位置等を取得する。そして、出力処理部２３０は、この検索結果を、端末装置２０５のアプリケーションプログラム２２２へ送信する。
【００６３】
次に、データ管理部２１６は、インデクス未反映のＸＭＬデータをデータベースバッファ４４上に読み出す（Ｓ１８）。つまり、データ管理部２１６は、未反映データ管理情報３９に登録されるデータ識別子に対応するＸＭＬデータを、表６２から、データベースバッファ４４上に読み出す。
【００６４】
そして、インデクス検索処理部２１４は、未反映データ管理情報３９に登録された各エントリに対し、以下の処理を実行する（Ｓ１９）。
・検索要求５１において指定された構造を含むＸＭＬデータをデータベースバッファ４４から取得する。
・この取得したＸＭＬデータから、検索要求５１において指定された文字列条件を満たすデータを検索する。
【００６５】
すなわち、まず、インデクス検索処理部２１４は、構造解析情報記憶領域４０に格納される構造解析情報から、検索要求５１において指定された構造を含む構造解析情報（図３（ｂ）参照）を取得する。そして、インデクス検索処理部２１４は、この構造解析情報から、指定された構造の開始位置および終了位置を読み出す。
【００６６】
例えば、検索要求における構造条件として「書誌／著者」が指定されていたとき、インデクス検索処理部２１４は、図３（ｂ）に例示する構造解析情報において、符号４３１に示す「書誌」の直下にある、符号４３２に示す「著者」の開始位置「１４」と終了位置「２２」とを読み出す。
【００６７】
次に、インデクス検索処理部２１４は、この構造解析情報に対応するＸＭＬデータをデータベースバッファ４４から取得する。そして、この取得したＸＭＬデータのうち、前記した開始位置から終了位置までのデータを対象として、検索要求５１において指定された文字列を検索する。そして、このときの検索結果は、出力処理部２３０が、端末装置２０５のアプリケーションプログラム２２２へ送信する。
【００６８】
このように、インデクス検索処理部２１４は、構造解析情報をもとに検索対象となるＸＭＬデータの範囲の絞り込みを行い、その後で、文字列に対するテキストスキャン（文字列検索）を行う。従って、インデクス検索処理部２１４は、インデクス反映前のＸＭＬデータを高速に検索することができる。
【００６９】
＜登録処理の詳細＞
次に、図１を参照しつつ、図５（ａ）および（ｂ）を用いて、ＸＭＬデータの登録処理の詳細を説明する。図５（ａ）は、図１のデータベース管理システムの動作手順を示したフローチャートであり、（ｂ）は、図１のインデクス登録処理部の動作手順を示したフローチャートである。
【００７０】
まず、図１のデータベース管理システム１０の入力処理部２２０は、端末装置２０４のアプリケーションプログラム２２１から、ＸＭＬデータの登録要求の入力を受け付けると（Ｓ５００）、データベースアクセス制御部２１０は、インデクス管理部２１１を呼び出す（Ｓ５０１）。なお、前記したとおり、このＸＭＬデータの登録要求は、登録の対象となるＸＭＬデータ、ＸＭＬデータの格納先（登録先）である表６２の識別情報等を含むものである。
【００７１】
続いて、インデクス管理部２１１は、インデクス登録処理部２１２を呼び出す。そして、インデクス登録処理部２１２は、ＸＭＬデータをＳ５０１で指定されたデータベース６０の表６２に格納し、このＸＭＬデータのデータ識別子を決定する（Ｓ５１０）。
【００７２】
次に、インデクス登録処理部２１２は、登録要求の対象であるＸＭＬデータの構造を解析し、構造解析情報（図３（ｂ）参照）を作成する（Ｓ５１１）。
【００７３】
そして、インデクス管理部２１１は、構造解析情報管理部２１７を呼び出す。そして、構造解析情報管理部２１７は、Ｓ５１１で作成した構造解析情報を構造解析情報記憶領域４０に格納する（Ｓ５１２）。
【００７４】
次に、インデクス登録処理部２１２は、Ｓ５１１で作成した構造解析情報に含まれる構造数を計算し（Ｓ５１３）、この計算した構造数が閾値より大きいか否かを判断する（Ｓ５１４）。
【００７５】
ここで、構造解析情報に含まれる構造数が閾値より大きいとき（Ｓ５１４のＹｅｓ）、構造解析情報管理部２１７は、未反映データ管理情報３９に、この構造解析情報のもととなったＸＭＬデータのデータ識別子と、この構造解析情報へのアクセス情報とを登録する（Ｓ５１５）。なお、ここで、インデクス登録処理部２１２は、インデクス６６を更新しない。
【００７６】
一方、構造解析情報に含まれる構造数が閾値以下のとき（Ｓ５１４のＮｏ）、インデクス登録処理部２１２は、この構造解析情報を利用してインデクス６６を更新する（Ｓ５１６）。つまり、構造解析情報をインデクス６６に反映する。この後、構造解析情報管理部２１７は、未反映データ管理情報３９からインデクス反映済みの構造解析情報のエントリを削除する。また、構造解析情報管理部２１７は、構造解析情報記憶領域４０からインデクス反映済みの構造解析情報を削除する方が好ましい。このようにすることで、主記憶部２０３の記憶領域を有効活用できる。
【００７７】
このようにして、インデクス登録処理部２１２は、ＸＭＬデータをデータベース６０に登録する。また、インデクス登録処理部２１２は、その構造数が少なく、インデクス更新に時間がかからないと推測されるＸＭＬデータについては、このＸＭＬデータに基づくインデクス更新を行う。一方、構造数が多く、インデクス更新に時間がかかると推測されるＸＭＬデータについては、構造解析情報のまま主記憶部２０３に保持しておく（以上のような処理を、高速登録処理と呼ぶ）。
【００７８】
そして、データベース管理システム１０がＸＭＬデータの検索要求を受け付けたとき、インデクス未反映のＸＭＬデータについては、インデクス６６を検索する。一方、インデクス未反映のＸＭＬデータについては、構造解析情報記憶領域４０の構造解析情報と、データベースバッファ４４上の読み出されたＸＭＬデータを用いて検索を行う。このようにすることで、データベース管理システム１０は、構造化データの登録時間を増加させずに、ＸＭＬデータを高速に検索できる。このときの検索処理の詳細は、図６を用いて後記する。
【００７９】
なお、インデクス登録処理部２１２は、構造解析情報における構造数をもとにインデクス更新を行うか否かを判断することとしたが、これに限定されない。例えば、インデクス登録処理部２１２は、この構造解析情報のもととなったＸＭＬデータの構造数やデータサイズをもとに、インデクス更新を行うか否かを判断するようにしてもよい。また、このＸＭＬデータのデータサイズや構造数等をもとに、このＸＭＬデータのインデクスをインデクス６６に反映する時間（登録処理時間）を予想し、この登録処理時間をもとに、インデクス更新を行うか否かを判断するようにしてもよい。この場合、図５（ｂ）のＳ５１４で用いる閾値は、登録処理時間の上限値（登録上限時間）とする。
【００８０】
＜検索処理の詳細＞
次に、図１を参照しつつ、図６を用いて、ＸＭＬデータの検索処理を説明する。図６は、図１のデータベース管理システムの動作手順を示したフローチャートである。
【００８１】
まず、図１のデータベース管理システム１０は、入力処理部２２０により、端末装置２０５のアプリケーションプログラム２２２から、ＸＭＬデータの検索要求の入力を受け付ける（Ｓ６２０）。そして、データベース管理システム１０は、Ｓ６００からＳ６０２までの処理（インデクス検索処理）と、Ｓ６１０からＳ６１６までの処理（インデクス未反映データ検索処理）とを並列して行う。
【００８２】
まず、Ｓ６００からＳ６０２までの処理（インデクス検索処理）を説明する。
【００８３】
データベースアクセス制御部２１０は、インデクス管理部２１１を呼び出し、インデクス管理部２１１は、インデクス検索処理部２１４を呼び出す。そして、インデクス検索処理部２１４は、インデクス６６を利用して、検索要求に示される検索条件に合致したＸＭＬデータの結果のリストを作成する（Ｓ６００）。例えば、インデクス検索処理部２１４は、インデクス６６を検索して、検索条件に示される構造条件および文字列条件を満たすＸＭＬデータ、あるいは、そのＸＭＬデータの文書番号、文字位置等の情報をリスト化する。
【００８４】
次に、インデクス検索処理部２１４は、このＸＭＬデータの結果のリストのデータを、出力処理部２３０経由で、検索要求の送信元である端末装置２０５のアプリケーションプログラム２２２へ送信する（Ｓ６０１）。
【００８５】
そして、インデクス検索処理部２１４は、Ｓ６００で作成した結果のリストのデータをすべて端末装置２０５のアプリケーションプログラム２２２へ送信すると（Ｓ６０２のＹｅｓ）、処理を終了する。一方、まだ結果のリストのデータをすべて端末装置２０５のアプリケーションプログラム２２２へ送信できていないときは、Ｓ６０１へ戻る。
【００８６】
次に、Ｓ６１０からＳ６１６までの処理（インデクス未反映データ検索処理）を説明する。
【００８７】
前記したインデクス検索処理と同様に、データベースアクセス制御部２１０は、インデクス管理部２１１を呼び出し、インデクス管理部２１１は、インデクス検索処理部２１４を呼び出しておく。そして、データ管理部２１６は、未反映データ管理情報３９に登録されたデータ識別子に対応するＸＭＬデータを、データベース６０から、データベースバッファ４４上に読み出す（Ｓ６１０）。
【００８８】
次に、インデクス検索処理部２１４は、未反映データ管理情報３９のエントリを１件取得する（Ｓ６１１）。そして、インデクス検索処理部２１４は、この取得したエントリに示される構造解析情報へのアクセス情報（図２の符号３０２参照）を参照して、構造解析情報記憶領域４０から構造解析情報を取得する。
【００８９】
そして、インデクス検索処理部２１４は、このエントリに対応する構造解析情報（処理対象の構造解析情報）に、問合わせが指定した構造（検索要求において指定された構造）が存在するか否かを判断する（Ｓ６１２）。例えば、検索要求における構造条件として「書誌／著者」が指定されていたとき、インデクス検索処理部２１４は、当該構造解析情報にこの構造が存在するか否かを判断する。
【００９０】
ここで、処理対象の構造解析情報に、検索要求において指定された構造が存在するとき（Ｓ６１２のＹｅｓ）、インデクス検索処理部２１４は、この構造解析情報を参照して、データベースバッファ４４に格納されるＸＭＬデータから、検索要求で指定された構造のデータを取得する（Ｓ６１３）。一方、構造解析情報に、検索要求において指定された構造が存在しないとき（Ｓ６１２のＮｏ）、Ｓ６１６へ進む。
【００９１】
すなわち、図３（ａ）および（ｂ）に示した例でいうと、インデクス検索処理部２１４は、構造解析情報記憶領域４０から、「書誌／著者」という構造を含む構造解析情報を発見すると、この構造解析情報のもととなったＸＭＬデータのデータ識別子、およびこのＸＭＬデータにおける「書誌／著者」という構造の位置情報（開始位置および終了位置）を取得する。なお、このＸＭＬデータのデータ識別子については、未反映データ管理情報３９を参照して取得する。そして、インデクス検索処理部２１４は、このＸＭＬデータのデータ識別子および当該構造の位置情報をもとに、データベースバッファ４４に格納されるＸＭＬデータから、検索要求で指定された構造条件を満たすデータを取得する。例えば、インデクス検索処理部２１４は、ＸＭＬデータから、構造解析情報に示される当該構造の開始位置から終了位置までのデータを取り出す。このＳ６１６の詳細については、後記する。
【００９２】
そして、インデクス検索処理部２１４は、Ｓ６１３で取得したデータが検索要求で指定された文字列条件を満たすか否かを判断する（Ｓ６１４）。例えば、インデクス検索処理部２１４は、Ｓ６１３で取得したデータから検索要求で指定された文字列を検索し、Ｓ６１３で取得したデータに当該文字列が存在するか否かを判断する。
【００９３】
ここで、Ｓ６１３で取得したデータが検索要求で指定された文字列条件を満たすとき（Ｓ６１４のＹｅｓ）、インデクス検索処理部２１４は、出力処理部２３０経由でこの検索結果を端末装置２０５のアプリケーションプログラム２２２へ送信する（Ｓ６１５）。一方、インデクス検索処理部２１４は、Ｓ６１３で取得したデータが、検索要求で指定された文字列条件を満たすものでなかったとき（Ｓ６１４のＮｏ）、Ｓ６１６へ進む。
【００９４】
そして、インデクス検索処理部２１４は、未反映データ管理情報３９に登録されたすべてのエントリについて、Ｓ６１１からＳ６１５までの処理を実行したか否かを判断し（Ｓ６１６）、まだＳ６１１からＳ６１５までの処理を実行していないエントリがあるときは（Ｓ６１６のＮｏ）、Ｓ６１１へ戻る。未反映データ管理情報３９に登録されたすべてのエントリについて、Ｓ６１１からＳ６１５までの処理を実行したとき（Ｓ６１６のＹｅｓ）、インデクス未反映データ検索処理を終了する。
【００９５】
そして、インデクス管理部２１１は、Ｓ６００からＳ６０２までの処理（インデクス検索処理）と、Ｓ６１０からＳ６１６までの処理（インデクス未反映データ検索処理）と両方の処理が終了したとき、インデクス検索処理部２１４の処理を終了させる。
【００９６】
このようにして、データベース管理システム１０は、データベース６０に格納されるＸＭＬデータから、検索要求に示される構造条件および文字列条件を満たすデータを検索する。
【００９７】
なお、前記した説明において、データベース管理システム１０は、インデクス検索処理と、インデクス未反映データ検索処理とを並列して行うものとしたが、これに限定されない。例えば、データベース管理システム１０は、まず、インデクス未反映データ検索処理を行った後、インデクス検索処理を行うようにしてもよいし、その逆であってもよい。
【００９８】
≪第２の実施の形態≫
次に、本発明の第２の実施の形態を説明する。図７は、第２の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。前記した第１の実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。
【００９９】
第２の実施の形態のデータベース管理システム１０Ａは、アプリケーションプログラム２２１から送信された登録上限値をもとに、当該ＸＭＬデータのインデクス更新を行うか否かを判断することを特徴とする。この登録上限値は、ＸＭＬデータを、インデクス６６に反映するのに要する時間の上限値、つまり登録処理時間の上限値である。
【０１００】
このようなデータベース管理システム１０Ａは、図７に示すように登録上限時間記憶領域４８を備える。また、入力処理部２２０Ａは、登録上限時間受付部２１８を備える。さらに、インデクス登録処理部２１２Ａは、登録処理時間予測部２１９を備える。
【０１０１】
登録上限時間記憶領域４８は、アプリケーションプログラム２２１から送信された登録上限時間を格納する領域である。
【０１０２】
登録上限時間受付部２１８は、アプリケーションプログラム２２１から送信された登録上限時間の入力を受け付ける。登録上限時間受付部２１８は、この受け付けた登録上限時間を、登録上限時間記憶領域４８に格納する。
【０１０３】
登録処理時間予測部２１９は、アプリケーションプログラム２２１から送信されたＸＭＬデータについて、このＸＭＬデータをもとにインデクス６６に反映するのに要する時間（登録処理時間）を予測する。なお、本実施の形態における登録処理時間は、データベース管理システム１０が、当該ＸＭＬデータの入力を受け付けてから、このＸＭＬデータに基づくインデクス更新を終了するまでの時間のことを指す。
【０１０４】
また、インデクス登録処理部２１２Ａは、この予測された登録処理時間と、登録上限時間記憶領域４８に格納された登録上限時間とを比較する。そして、この予測された登録処理時間が、前記した登録上限時間を超えないとき、インデクス登録処理部２１２Ａは、このＸＭＬデータをインデクス６６に反映する。つまり、インデクス登録処理部２１２Ａは、比較的短時間でインデクス６６への反映ができるＸＭＬデータについては、すぐにインデクス６６への反映を行う。
【０１０５】
一方、この予測された登録処理時間が、登録上限時間を超えるとき、インデクス登録処理部２１２Ａは、このＸＭＬデータのインデクスをインデクス６６に反映しない。そして、構造解析情報管理部２１７は、このＸＭＬデータの構造解析情報を、構造解析情報記憶領域４０に格納し、この構造解析情報に関する情報を未反映データ管理情報３９に登録する。
【０１０６】
＜登録処理の詳細＞
次に、図７を参照しつつ、図８（ａ）および（ｂ）を用いて、第２の実施の形態におけるＸＭＬデータの登録処理を説明する。
【０１０７】
図８（ａ）は、図７のデータベース管理システムの動作手順を示したフローチャートであり、（ｂ）は、図７のインデクス登録処理部の動作手順を示したフローチャートである。
【０１０８】
まず、図７のデータベース管理システム１０Ａの入力処理部２２０Ａは、前記した図５（ａ）のＳ５００と同様に、端末装置２０４のアプリケーションプログラム２２１から、ＸＭＬデータの登録要求の入力を受け付ける（Ｓ５００）。
【０１０９】
また、入力処理部２２０Ａは、登録上限時間受付部２１８により、アプリケーションプログラム２２１から、登録上限時間の入力を受け付け、登録上限時間記憶領域４８に格納する（Ｓ８０１）。なお、Ｓ５００におけるＸＭＬデータの登録要求と、Ｓ８０１の登録上限時間の入力は同時でもよいし、Ｓ８０１を先に行い、Ｓ５００を後に行うようにしてもよい。
【０１１０】
そして、前記した図５（ａ）のＳ５０１と同様に、データベースアクセス制御部２１０がインデクス管理部２１１を呼び出す（Ｓ５０１）。
【０１１１】
図８（ｂ）のＳ５１０およびＳ５１１は、図５（ｂ）のＳ５１０およびＳ５１１と同様なので説明を省略し、図８（ｂ）のＳ８１０を説明する。
【０１１２】
登録処理時間予測部２１９は、ＸＭＬデータのインデクスの登録処理時間を予測する（Ｓ８１０）。このときの登録処理時間の予測は、ＸＭＬデータの構造数（例えば、タグの数）や、データサイズに基づき行われる。
【０１１３】
この後、インデクス登録処理部２１２Ａは、Ｓ８１０で予測した登録処理時間が、登録上限時間を超えるか否かを判断する（Ｓ８１２）。ここで、Ｓ８１０で予測した登録処理時間が、登録上限時間を超えるとき（Ｓ８１２のＹｅｓ）、Ｓ５１５へ進む。一方、予測した登録処理時間が、登録上限時間以下であるとき（Ｓ８１２のＮｏ）、Ｓ５１６へ進む。図８（ｂ）のＳ５１５,Ｓ５１６は、図５（ｂ）のＳ５１５,Ｓ５１６と同様であるので説明を省略する。なお、Ｓ５１６において、インデクス登録処理部２１２Ａがインデクス６６を更新した後、構造解析情報管理部２１７は、未反映データ管理情報３９からインデクス反映済みの構造解析情報のエントリを削除する。また、構造解析情報管理部２１７は、構造解析情報記憶領域４０からも、インデクス反映済みの構造解析情報を削除する。
【０１１４】
このようなデータベース管理システム１０Ａによれば、当該ＸＭＬデータのインデクス更新の判断に用いる閾値を、任意の値に設定することができる。従って、データベース管理システム１０Ａは、様々なシステム要件に応じて閾値を変更でき、大変便利である。
【０１１５】
また、データベース管理システム１０Ａにおいて、アプリケーションプログラム２２１から登録上限時間の入力を受け付けるようにしたが、ＸＭＬデータの構造数やデータサイズの上限値の入力を受け付けるようにしてもよい。つまり、図８（ｂ）のＳ８１２において、インデクス登録処理部２１２Ａは、図５（ｂ）のＳ５１４と同様に、ＸＭＬデータの構造数（構造解析情報の構造数）やデータサイズを閾値として、インデクス更新をするか否かを判断するようにしてもよい。この場合、インデクス登録処理部２１２Ａは、登録処理時間予測部２１９を備える必要はない。なお、この登録処理時間、ＸＭＬデータのデータサイズ、この構造化データに含まれる構造数とをまとめて、当該ＸＭＬデータの処理コストとする。
【０１１６】
≪第３の実施の形態≫
次に、図９を用いて、本発明の第３の実施の形態を説明する。図９は、第３の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。前記した各実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。
【０１１７】
第３の実施の形態のデータベース管理システム１０Ｂは、ＸＭＬデータの登録処理時間が登録上限時間を超えるようなデータであっても、途中までインデクス６６に反映することを特徴とする。つまり、データベース管理システム１０Ｂは、比較的データサイズや構造数が大きく、登録処理時間が登録上限時間を超えるＸＭＬデータについて、登録上限時間内でできるだけインデクス更新を行うことを特徴とする。
【０１１８】
図１０を用いて、データベース管理システム１０Ｂにより処理された構造解析情報を説明する。図１０は、図９のデータベース管理システムにより処理された構造解析情報を例示した図である。
【０１１９】
図１０に示すように、構造解析情報における各節は、各構造要素の要素名（構造名）と、当該構造要素のＸＭＬデータにおける位置情報の他に、インデクス更新済フラグの値を含む。インデクス更新済フラグは、この構造がインデクス６６に反映済みか否かを示す値である。インデクス６６に反映済みの節には、インデクス更新済フラグ欄に「１」が設定される。一方、インデクス６６に未反映の節には、インデクス更新済フラグ欄に「０」が設定される。
【０１２０】
すなわち、図１０において、符号１０００に示す構造名「本」の構造要素、符号１００１に示す構造名「書誌」の構造要素、および符号１００２に示す構造名「著者」の構造要素が、インデクス６６に反映されていることを示す。一方、符号１００３に示す構造名「本文」の構造要素および符号１００４に示す構造名「題名」の構造要素はインデクス６６に未反映であることを示す。
【０１２１】
このように、データベース管理システム１０Ｂは構造解析情報を部分的にでもインデクス６６に反映する。
【０１２２】
図９の説明に戻る。インデクス登録処理部２１２Ｂは、前記した登録処理時間予測部２１９に代えて、登録処理時間計測部２２３を備える。また、構造解析情報管理部２１７Ｂは、構造解析情報の構造要素のうち、インデクス反映を行った構造要素にインデクス更新済フラグを立てる。
【０１２３】
登録処理時間計測部２２３は、データベース管理システム１０Ｂが登録対象のＸＭＬデータの入力を受け付けてから経過した時間（登録処理時間）を計測する。インデクス登録処理部２１２Ｂは、この登録処理時間計測部２２３により計測された登録処理時間が、登録上限時間以内の範囲で、このＸＭＬデータにより作成された構造解析情報をもとにインデクス６６の更新を行う。つまり、インデクス登録処理部２１２Ｂは、構造解析情報のインデクス６６への反映を開始し、登録上限時間が経過すると、この構造解析情報のインデクス６６への反映をストップする。
【０１２４】
次に、図９を参照しつつ、図１１を用いて、第３の実施の形態におけるＸＭＬデータの登録処理を説明する。図１１は、図９のインデクス登録処理部の動作手順を示したフローチャートである。
【０１２５】
端末装置２０４のアプリケーションプログラム２２１から、ＸＭＬデータの登録要求の入力を受け付けてから、データベースアクセス制御部２１０が、インデクス管理部２１１を呼び出すまでの処理は、図８（ａ）に示した処理手順と同様なので説明を省略し、図１１のＳ１０１０から説明する。
【０１２６】
データベースアクセス制御部２１０が呼び出されると、インデクス登録処理部２１２Ｂは登録処理時間計測部２２３を起動し、登録処理時間の計測を開始する（Ｓ１０１０）。この後の、Ｓ５１１およびＳ５１２は、前記した図５（ｂ）および図８（ｂ）のＳ５１１、Ｓ５１２と同様なので説明を省略する。
【０１２７】
Ｓ５１２の後、インデクス登録処理部２１２Ｂは、構造解析情報記憶領域４０Ｂから登録対象のＸＭＬデータの構造解析情報を読み出す。そして、この構造解析情報の構造（構造要素）のうち、未処理の構造を１つ取り出すと（Ｓ１０１１のＹｅｓ）、この取り出した構造に設定された構造名および位置情報をもとに、インデクス６６を更新する（Ｓ１０１２）。つまり、この構造に設定された情報をインデクス６６へ反映する。
【０１２８】
そして、構造解析情報管理部２１７Ｂは、構造解析情報のうち、Ｓ１０１２でインデクス６６の更新を行った構造のインデクス更新済フラグに「１」を設定する（Ｓ１０１３）。
【０１２９】
例えば、インデクス登録処理部２１２Ｂは、図１０に例示した構造解析情報のうち、符号１０００に示す節に設定された、構造名「本」、開始位置「４」、終了位置「１８４０」という情報を、インデクス６６へ反映する。また、構造解析情報管理部２１７Ｂは、この節のインデクス更新済フラグに「１」を設定する。
【０１３０】
そして、インデクス登録処理部２１２Ｂは、登録処理時間計測部２２３により計測された登録処理時間が、登録上限時間を超えるか否かを判断する（Ｓ１０１４）。ここで、計測された登録処理時間が、まだ、登録上限時間を超えなければ（Ｓ１０１４のＮｏ）、Ｓ１０１１へ戻る。つまり、インデクス登録処理部２１２Ｂは、構造解析情報の構造要素を１つインデクス６６に反映するたびに、登録上限時間を超えているか否かをチェックする。
【０１３１】
一方、登録処理時間が、登録上限時間を超えていれば（Ｓ１０１４のＹｅｓ）、構造解析情報管理部２１７Ｂは、図５（ｂ）のＳ５１５と同様に、この構造解析情報のもととなったＸＭＬデータのデータ識別子と、この構造解析情報へのアクセス情報とを未反映データ管理情報３９に登録する（Ｓ５１５）。つまり、まだすべての構造についてインデクス反映を完了していない構造解析情報について、未反映データ管理情報３９にエントリを登録する。そして、登録処理を終了する。
【０１３２】
なお、Ｓ１０１１において、インデクス登録処理部２１２Ｂは、構造解析情報から未処理の構造が取り出せなかった場合（Ｓ１０１１のＮｏ）、つまり、登録上限時間以内に、構造解析情報のすべての構造について処理を終了した場合、そのまま処理を終了する。
【０１３３】
このようにすることで、データベース管理システム１０Ｂは、ＸＭＬデータの登録処理時間の予想が困難な場合でも、登録上限時間以内にインデクス更新処理を行うことができる。また、データベース管理システム１０Ｂは、比較的データサイズや構造数が大きいＸＭＬデータ等についても、部分的にインデクス更新を行うことになる。つまり、比較的データサイズや構造数が大きいＸＭＬデータ等について、そのＸＭＬデータのインデクスが全く登録されないということがなくなる。従って、インデクス６６にはより多くの情報が登録されることになるので、データベース管理システム１０Ｂは、ＸＭＬデータの検索を高速に行うことができる。
【０１３４】
なお、第３の実施の形態において、登録処理時間の計測を開始するタイミングは、ＸＭＬデータが入力されたときとしたが、これに限定されない。例えば、このＸＭＬデータの構造解析情報を作成後、この構造解析情報の構造をインデクス６６に反映し始めたときに計測を開始するようにしてもよい。
【０１３５】
なお、前記した第１の実施の形態から第３の実施の形態に示したシステムにおいて、構造数や登録処理時間が所定の閾値を超えるＸＭＬデータは、インデクス６６に反映されず、データベース６０に残ることになる。このようなＸＭＬデータについて、前記したＸＭＬデータの登録要求を受け付けたときとは別のタイミング（例えば、別途指示入力を受け付けたとき）に、データベース管理システム１０がインデクス６６に反映するようにしてもよい。この場合のデータベース管理システムの処理手順を、以下の第４の実施の形態から第６の実施の形態として述べる。
【０１３６】
≪第４の実施の形態≫
次に、本発明の第４の実施の形態を説明する。図１２は、第４の実施の形態および第５の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。前記した各実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。なお、第５の実施の形態については、後記する。
【０１３７】
第４の実施の形態のデータベース管理システム１０Ｃは、端末装置２０４の管理プログラム２７０,２７１からの指示入力を受け付けると、これをトリガとして、データベース６０に蓄積されたインデクス未反映のＸＭＬデータをインデクス６６に反映することを特徴とする。
【０１３８】
図１２に示すように、本実施の形態の端末装置２０４,２０５は、管理プログラム２７０,２７１を備える。この管理プログラム２７０,２７１は、端末装置２０４,２０５に接続された入力装置経由で、ＸＭＬデータのインデクス６６への反映指示入力を受け付けると、この指示入力をコンピュータ２０１へ送信するプログラムである。
【０１３９】
また、データベース管理システム１０Ｃの入力処理部２２０Ｃは、管理プログラム２７０,２７１から送信された指示入力を受け付けるコマンド受付部２４０を備える。
【０１４０】
また、インデクス登録処理部２１２Ｃは、コマンド受付部２４０により出力された指示入力に基づき、インデクス未反映の構造解析情報をインデクス６６に反映するインデクス反映処理部２５０を備える。なお、破線で示した反映文書選択部２６０については、後記する第５の実施の形態の項で説明する。
【０１４１】
次に、図１２を参照しつつ、図１３（ａ）および（ｂ）を用いて、第４の実施の形態におけるＸＭＬデータの登録処理を説明する。図１３（ａ）は、図１２のデータベース管理システムの動作手順を示したフローチャートであり、（ｂ）は、図１２のインデクス登録処理部の動作手順を示したフローチャートである。ここでは、データベース管理システム１０Ｃが、端末装置２０４の管理プログラム２７０からインデクス更新の指示入力を受け付けた場合を例に説明する。
【０１４２】
図１２のデータベース管理システム１０Ｃのコマンド受付部２４０は、管理プログラム２７０からのインデクス更新の指示入力を受け付け、データベースアクセス制御部２１０を呼び出す（Ｓ１２０１）。
【０１４３】
データベースアクセス制御部２１０は、インデクス管理部２１１のインデクス登録処理部２１２Ｃによって、未反映データ管理情報３９に登録されたＸＭＬデータ（インデクス未反映のＸＭＬデータ）をインデクス６６に反映する（Ｓ１２０２）。つまり、未反映データ管理情報３９に登録されているデータ識別子に対応するＸＭＬデータをインデクス６６に反映する。
【０１４４】
このときのインデクス６６への反映処理の詳細を、図１３（ｂ）を用いて詳細に説明する。
【０１４５】
まず、図１２のインデクス反映処理部２５０は、未反映データ管理情報３９に登録された情報を取得して、リストを作成する（Ｓ１２１０）。作成したリストは主記憶部２０３に記憶しておく。なお、ここで作成されるリストは、例えば、インデクス更新を行うＸＭＬデータのデータ識別子を示した情報である。
【０１４６】
次に、インデクス反映処理部２５０は、リストの情報を１件取り出す。そして、インデクス反映処理部２５０は、データ管理部２１６に、この情報に示されるデータ識別子に対応するＸＭＬデータの読み出しを依頼し、データ管理部２１６は、表６２から読み込む（Ｓ１２１１）。
【０１４７】
そして、インデクス登録処理部２１２Ｃは、この読み出したＸＭＬデータをインデクス６６に反映する（Ｓ１２１２）。
【０１４８】
この後、構造解析情報管理部２１７は、未反映データ管理情報３９からインデクス反映済みのＸＭＬデータに関する構造解析情報のエントリを削除する（Ｓ１２１３）。また、構造解析情報記憶領域４０からも、インデクス反映済みのＸＭＬデータに関する構造解析情報を削除する。
【０１４９】
そして、インデクス反映処理部２５０は、リストにまだ未処理の情報が残っているか否かを判断し（Ｓ１２１４）、まだ未処理の情報が残っていれば（Ｓ１２１４のＹｅｓ）、Ｓ１２１１に戻る。一方、未処理の情報が残っていなければ（Ｓ１２１４のＮｏ）、処理を終了する。
【０１５０】
このようにすることで、データベース管理システム１０Ｃはインデクス未反映のＸＭＬデータをインデクス６６に反映させることができる。
【０１５１】
なお、前記した実施の形態において、データベース管理システム１０Ｃはインデクス未反映のＸＭＬデータをすべてインデクス６６に反映することとしたが、これに限定されない。例えば、インデクス未反映のＸＭＬデータの中から所定のＸＭＬデータを選択して、インデクス６６に反映するようにしてもよい。このときの実施の形態を、第５の実施の形態で述べる。
【０１５２】
≪第５の実施の形態≫
引き続き、図１２を参照して、本発明の第５の実施の形態を説明する。前記した実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。
【０１５３】
第５の実施の形態のデータベース管理システム１０Ｄは、管理プログラム２７０,２７１から、インデクス反映を行うＸＭＬデータの選択入力を受け付けることを特徴とする。
【０１５４】
図１２に示すように、データベース管理システム１０Ｄは、反映文書選択部２６０を備えることを特徴とする。
【０１５５】
この反映文書選択部２６０は、管理プログラム２７０,２７１から、インデクス反映を行うＸＭＬデータの選択入力を受け付ける。そして、インデクス反映処理部２５０は、インデクス未反映のＸＭＬデータのリストのうち、反映文書選択部２６０で選択入力を受け付けたＸＭＬデータをインデクス反映の対象とする。つまり、インデクス反映処理部２５０は、インデクス未反映のＸＭＬデータをすべてリストアップするが、このうち端末装置２０４の管理プログラム２７０,２７１により選択されなかったＸＭＬデータは、インデクス反映の対象外としてリストから削除する。
【０１５６】
次に、図１２を参照しつつ、図１４を用いて、第５の実施の形態におけるＸＭＬデータの登録処理を説明する。図１４は、図１２のデータベースアクセス制御部の動作手順を示したフローチャートである。
【０１５７】
なお、図１２のコマンド受付部２４０が、管理プログラム２７０からのインデクス更新の指示入力を受け付け、インデクス反映処理部２５０が、リストを作成するまでの手順は、前記した第４の実施の形態と同様であるので、図１４のＳ１５１０から説明する。
【０１５８】
まず、反映文書選択部２６０は、Ｓ１２１０でインデクス反映処理部２５０が作成したリストを端末装置２０４の管理プログラム２７０へ送信して、この管理プログラム２７０からの返信を待つ（Ｓ１５１０）。
【０１５９】
ここで、管理プログラム２７０は、反映文書選択部２６０が送信したリストを受信すると、端末装置２０４の出力装置（図示せず）に、インデクス反映を行うＸＭＬデータの選択入力画面を表示させる。このときの画面例については、図１５を用いて後記する。
【０１６０】
反映文書選択部２６０は、端末装置２０４の管理プログラム２７０からの返信を受信すると、これをインデクス反映処理部２５０へ出力する。インデクス反映処理部２５０は、この出力された返信に基づき、Ｓ１２１０で作成したリストを更新する（Ｓ１５２０）。つまり、インデクス反映処理部２５０は、反映文書選択部２６０からインデクス反映を行うＸＭＬデータの選択情報を受信すると、この選択情報に示されるＸＭＬデータをリストに残し、それ以外のＸＭＬデータはリストから削除する。
【０１６１】
この後のＳ１２１１からＳ１２１４までの処理は、前記した図１３（ｂ）のＳ１２１１からＳ１２１４までの処理と同様であるので、説明を省略する。
【０１６２】
このようにすることで、データベース管理システム１０Ｄは、端末装置２０４により選択されたＸＭＬデータをインデクス反映の対象とすることができる。例えば、データベース６０にインデクス未反映のＸＭＬデータが多数あるような場合、システムの管理者等が、優先的にインデクス６６に反映させたいＸＭＬデータを選択することができ、大変便利である。
【０１６３】
なお、図１５を用いて、反映文書選択部２６０が送信したリストに基づき、管理プログラム２７０が表示するインデクス反映対象のＸＭＬデータの選択入力画面を説明する。図１５は、第５の実施の形態におけるインデクス反映対象のＸＭＬデータの選択入力画面を例示した図である。この選択入力画面は、端末装置２０４の出力装置に表示される。
【０１６４】
インデクス反映対象のＸＭＬデータの選択入力画面は、例えば、図１５に示すように、ＸＭＬデータのデータＩＤ（データ識別子）ごとに、当該ＸＭＬデータにインデクス反映設定を行うか否かの選択入力欄と構造解析情報の表示欄とを含む構成となっている。これにより、システムの管理者等は構造解析情報を参照し、インデクス反映対象のＸＭＬデータを選択することが可能である。例えば、図１５に例示する画面において、データＩＤ「２,４」のＸＭＬデータに、インデクス反映設定がされている。つまり、データＩＤ「２,４」のＸＭＬデータは、インデクス反映対象として選択されている。
【０１６５】
システムの管理者は、このような画面を見ながら、端末装置２０４の入力装置経由で、インデクス反映の対象とするＸＭＬデータの選択入力を行い、実行ボタンの選択入力を行うと、管理プログラム２７０は、この画面上で選択された情報をネットワーク２０６経由で、データベース管理システム１０Ｄへ送信する。
【０１６６】
なお、この画面上には、インデクス反映対象のＸＭＬデータのデータＩＤと構造解析情報とを表示するようにしたが、これに限定されない。例えば、このＸＭＬデータの一部または全部やＸＭＬデータのデータサイズ等を表示するようにしてもよい。このような表示をすることで、システムの管理者等は、どのＸＭＬデータをインデクス反映の対象とするかを選択しやすくなる。
【０１６７】
≪第６の実施の形態≫
次に、本発明の第６の実施の形態を説明する。図１６は、第６の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。前記した各実施の形態と同様の構成要素は同じ符号を付して、説明を省略する。
【０１６８】
第６の実施の形態のデータベース管理システム１０Ｅは、インデクス未反映のＸＭＬデータについて、そのＸＭＬデータの検索履歴を記録する。そして、端末装置２０４の管理プログラム２７０が、インデクス反映対象のＸＭＬデータの選択入力画面を表示するとき、この検索履歴をもとにＸＭＬデータをソートした画面を表示したり、画面上にＸＭＬデータの検索履歴自体を表示したりすることを特徴とする。
【０１６９】
このデータベース管理システム１０Ｅは、前記した反映文書選択部２６０（図１２参照）に代えて、反映文書選択部２６０Ｅを備える。反映文書選択部２６０Ｅは、インデクス反映処理部２５０が検索履歴でソートしたリストを、管理プログラム２７０へ送信する。なお、このリストには、各ＸＭＬデータの検索履歴を含めるようにしてもよい。このようにすることで、管理プログラム２７０は、各ＸＭＬデータの検索履歴を含むＸＭＬデータの選択入力画面を表示することができる。
【０１７０】
また、インデクス検索処理部２１４Ｅは、検索履歴記録部２１５を備える。この検索履歴記録部２１５は、未反映のＸＭＬデータの検索履歴を未反映データ管理情報３９Ｅに記録する。
【０１７１】
この未反映データ管理情報３９Ｅは、インデクス未反映のＸＭＬデータのデータ識別子と、そのＸＭＬデータから作成された構造解析情報へのアクセス情報の他に、当該構造解析情報の検索履歴を含む。
【０１７２】
図１７は、第６の実施の形態の未反映データ管理情報を例示した図である。図１７に示すように、未反映データ管理情報３９Ｅは、インデクス未反映のＸＭＬデータのデータ識別子と、そのＸＭＬデータから作成された構造解析情報へのアクセス情報と、このＸＭＬデータの総検索回数、構造合致回数、条件合致回数等（以上、まとめて検索履歴）とを含む。
【０１７３】
このうち、総検索回数は、処理対象のＸＭＬデータの検索回数を示す。総検索回数の値は、このＸＭＬデータが検索要求で指定された条件を満たす否かにかかわらず加算される。また、構造回数は、処理対象のＸＭＬデータに検索要求で指定された構造が存在した回数を示す。さらに、条件合致回数は、処理対象のＸＭＬデータに検索要求で指定された構造が存在し、かつ、検索要求で指定された条件（例えば、文字列条件）に合致した回数を示す。
【０１７４】
図１７に示す未反映データ管理情報３９Ｅにおいて、データ識別子「２」、「３」、「４」のＸＭＬデータはインデクス未反映であり、このうちデータ識別子「２」のＸＭＬデータから作成された構造解析情報の総検索回数は「２」であり、構造合致回数は「１」であり、条件合致回数は「１」であることを示す。
【０１７５】
この未反映データ管理情報３９Ｅにおける検索履歴（総検索回数、構造合致回数、条件合致回数等）は、インデクス検索処理部２１４Ｅが検索を実行するたび、検索履歴記録部２１５により書き込まれる。なお、この検索履歴は、反映文書選択部２６０Ｅがインデクス反映対象のＸＭＬデータの選択入力画面を表示するときに参照される。
【０１７６】
図６、図１６および図１７を参照しつつ、図１８を用いて、第６の実施の形態におけるＸＭＬデータの検索履歴の記録手順を説明する。図１８は、ＸＭＬデータ検索時における図１６のデータベース管理システムの動作手順を示したフローチャートである。
【０１７７】
図１８のＳ６２０、Ｓ６００〜Ｓ６０２、Ｓ６１０〜Ｓ６１２の処理は、前記した図６のＳ６２０、Ｓ６００〜Ｓ６０２、Ｓ６１０〜Ｓ６１２の処理と同様なので説明を省略し、Ｓ１８０１から説明する。
【０１７８】
図１６のインデクス検索処理部２１４Ｅが、処理対象の構造解析情報に、検索要求において指定された構造が存在しないと判断すると（Ｓ６１２のＹｅｓ）、検索履歴記録部２１５は、未反映データ管理情報３９Ｅ（図１７参照）の当該構造解析情報に関する構造合致回数を加算する（Ｓ１８０１）。一方、インデクス検索処理部２１４Ｅは、処理対象の構造解析情報に、検索要求において指定された構造が存在しないと判断したとき（Ｓ６１２のＮｏ）、Ｓ１８０３へ進む。
【０１７９】
Ｓ１８０１の後、インデクス検索処理部２１４Ｅは、図６のＳ６１３と同様に、データベースバッファ４４に格納されるＸＭＬデータから、検索要求で指定された構造のデータを取得する（Ｓ６１３）。ここで取得したデータが検索要求で指定された文字列条件を満たすとき（Ｓ６１４のＹｅｓ）、検索履歴記録部２１５は、未反映データ管理情報３９Ｅの当該構造解析情報に関する条件合致回数を加算する（Ｓ１８０２）。一方、Ｓ６１３で取得したデータが検索要求で指定された文字列条件を満たさなかったとき（Ｓ６１４のＮｏ）、Ｓ１８０３へ進む。
【０１８０】
Ｓ１８０２の後、インデクス検索処理部２１４は、図６のＳ６１５と同様に、検索結果を端末装置２０５のアプリケーションプログラム２２２へ送信する（Ｓ６１５）。そして、検索履歴記録部２１５は、未反映データ管理情報３９Ｅの当該構造解析情報に関する総検索回数を加算する（Ｓ１８０３）。
【０１８１】
この後のＳ６１６の処理は、図６のＳ６１６の処理と同様なので説明を省略する。
【０１８２】
このようにして、検索履歴記録部２１５は、ＸＭＬデータの検索履歴を未反映データ管理情報３９Ｅに記録する。
【０１８３】
このような検索履歴を用いたＸＭＬデータの登録処理を説明する。図１９は、図１６のデータベース管理システムの動作手順を示したフローチャートである。
【０１８４】
前記した図１４のＳ１２１０と同様に、図１６のインデクス反映処理部２５０は、未反映データ管理情報３９Ｅに登録された情報を取得して、リスト（インデクス未反映のＸＭＬデータのリスト）を作成する（Ｓ１２１０）。そして、インデクス反映処理部２５０は、各ＸＭＬデータの総検索回数と、構造合致回数と、条件合致回数とに基づいて、リストのデータをソートする（Ｓ１９１０）。例えば、インデクス反映処理部２５０は、総検索回数と、構造合致回数と、条件合致回数とが多いＸＭＬデータの情報が上位になるよう、リストのデータをソートする。このときのソートは、ＸＭＬデータの総検索回数、構造合致回数および条件合致回数の少なくとも１つを用いて行う。
【０１８５】
そして、反映文書選択部２６０Ｅは、Ｓ１９１０でデータのソート済みのリストを端末装置２０４の管理プログラム２７０へ送信して、この管理プログラム２７０からの返信を待つ（Ｓ１５１０）。Ｓ１５１０の後の、Ｓ１５２０〜Ｓ１２１４の処理は、前記した図１４のＳ１５２０〜Ｓ１２１４の処理と同様であるので説明を省略する。
【０１８６】
なお、Ｓ１５１０において、管理プログラム２７０は、反映文書選択部２６０Ｅが送信したリストを受信すると、端末装置２０４の出力装置（図示せず）に、インデクス反映を行うＸＭＬデータの選択入力画面を表示させる。このときの画面を図２０に例示する。図２０は、第６の実施の形態におけるインデクス反映対象のＸＭＬデータの選択入力画面を例示した図である。
【０１８７】
図２０に例示するように、インデクス反映対象のＸＭＬデータの選択入力画面は、ＸＭＬデータのデータＩＤと、当該ＸＭＬデータにインデクス反映設定を行うか否かの選択入力欄のほかに、当該ＸＭＬデータの総検索回数と、構造合致回数と、条件合致回数（検索履歴）と、構造解析情報の表示欄とがあわせて表示される。なお、このＸＭＬデータのデータＩＤは、これらの検索履歴をもとにソートされて表示される。例えば、図２０に示す画面例でいうと、総検索回数、構造合致回数および条件合致回数の順に最も数値が大きいものから、データＩＤ「３」→「４」→「２」という順で表示される。
【０１８８】
データベース管理システム１０Ｅが、管理プログラム２７０に、このようなＸＭＬデータの検索履歴を含む画面あるいは検索履歴によりＸＭＬデータがソートされた画面を表示させることで、システムの管理者は、より優先的にインデクス反映対象としたいＸＭＬデータを見つけやすくなる。
【０１８９】
なお、インデクス反映処理部２５０は、Ｓ１９１０において、リストのデータをソートするとき、当該ＸＭＬデータのデータサイズ、構造数、登録日時をもとにソートするようにしてもよい。また、インデクス反映処理部２５０は、データベース管理システム１０ＥがＸＭＬデータに対する文字列検索等を行った後、後処理を必要とするデータがあるか否かや、そのＸＭＬデータにおける当該文字列の出現数等をもとにソートするようにしてもよい。
【０１９０】
このようにすることで、システムの管理者等が、インデクス反映対象のＸＭＬデータを選択しやすくなる。
【０１９１】
なお、ＸＭＬデータのインデクス反映は、端末装置２０４等から指示入力があったときに行うものとしたが、自動で行うようにしてもよい。つまり、所定の時刻になったときや、所定数のＸＭＬデータがデータベース６０に蓄積されたとき、管理システム１０,１０Ａ〜１０Ｅが、自動でこのＸＭＬデータをインデクス６６に反映するようにしてもよい。
【０１９２】
また、データベース管理システム１０,１０Ａ〜１０Ｅは、所定の設定入力がされたとき、ＸＭＬデータの処理コスト等に関係なく、すべてのＸＭＬデータを対象にインデクス更新を行うようにしてもよい。つまり、設定入力により、データベース管理システム１０,１０Ａ〜１０Ｅは前記したような高速登録処理を行うか、入力されたすべてのＸＭＬデータを対象にインデクス更新を行うかを切り替えるようにいてもよい。
【０１９３】
なお、このような切り替えの設定入力は、データベース管理システム１０,１０Ａ〜１０Ｅの設定処理部（図示せず）で受け付け、設定情報としてデータベース６０に記録しておく。そして、データベース管理システム１０,１０Ａ〜１０Ｅは、この設定情報をもとに、どちらの方法でインデクス反映を行うか判断する。
【０１９４】
なお、この設定情報は、インデクス更新に関する様々な情報を含んでいてもよい。例えば、データベースバッファ４４のサイズや、前記した高速登録処理における登録上限時間や、ＸＭＬデータをインデクス６６に反映するときのルール等の情報を含んでいてもよい。
【０１９５】
図２１は、本実施の形態の設定処理部が表示する設定画面例である。図２１に例示するように、設定画面は、高速登録（高速登録処理）を行うか否かを選択するラジオボタンを含む。そして、この設定画面は、高速登録が選択されたときの、データベースバッファサイズの入力欄や、登録上限時間（登録処理時間の上限値）の入力欄や、ＸＭＬデータを自動でインデクス６６に反映するときの使用ルールの選択欄を含む。例えば、図２１に示す設定画面において、高速登録「ＯＮ」が選択され、データベースバッファサイズは「３２ＧＢｙｔｅ」であり、登録上限時間は「１００ミリ秒」であり、使用ルールは「検索履歴ベース」が選択されていることを示す。
【０１９６】
この設定画面から入力された情報は、管理プログラム２７０等がデータベース管理システム１０,１０Ａ〜１０Ｅへ送信する。そして、データベース管理システム１０,１０Ａ〜１０Ｅの設定処理部が、送信された情報を設定情報に反映する。
【０１９７】
なお、前記した設定画面において、各使用ルールに用いるアルゴリズム（優先順決定アルゴリズム）の選択入力を受け付けるようにしてもよい。
【０１９８】
例えば、図２１に示す設定画面例において、使用ルールは「検索履歴ベース」が選択されているが、この使用ルールは「ヒット文書優先」という優先順決定アルゴリズムを用いることを示す。つまり、データベース管理システム１０,１０Ａ〜１０Ｅは、ＸＭＬデータの検索履歴として、当該ＸＭＬデータが検索条件に合致（ヒット）した回数を記録しておく。そして、データベース管理システム１０,１０Ａ〜１０Ｅは、そのヒット回数が多いＸＭＬデータを優先的にインデクス６６に反映することを示す。
【０１９９】
なお、図２１に例示する設定画面において、「容量ベース」という使用ルールは、「文書容量が大きい文書優先」という優先順決定アルゴリズムを用いることを示す。つまりデータベース管理システム１０,１０Ａ〜１０Ｅは、文書容量（データサイズ）が大きいＸＭＬデータを優先的にインデクス６６に反映することを示す。
【０２００】
このように、設定画面上から高速登録を行うか否か等、高速登録を行うときの様々な条件を設定できるようにすることで、本システムのシステム要件にあったインデクス更新を行うことができる。
【０２０１】
なお、本発明は前記した実施の形態に限定されず、変形可能である。
【０２０２】
例えば、前記した第３の実施の形態において、データベース管理システム１０Ｂは、構造解析情報に含まれる構造１つをインデクス６６に反映するたびに、登録処理時間が登録上限時間を超えていないか判断するようにしたが、これに限定されない。
【０２０３】
例えば、構造解析情報に含まれる構造をいくつかのグループに分け、それぞれのグループごとにインデクス反映を行う場合、このグループ１つをインデクス６６に反映を完了するたびに、登録処理時間が登録上限時間を超えていないか判断するようにしてもよい。
【０２０４】
さらに、構造解析情報は、図１０に例示するように、各構造（節）はそれらの節同士が隣接する関係にあることを示す枝（リンク）により接続される。そこで、データベース管理システム１０Ｂが、この枝１つをインデクス６６に含まれる構造化インデクスに反映するたびに登録処理時間が登録上限時間を超えていないか判断するようにしてもよい。つまり、図１０の符号１０００に示す節と符号１００１に示す節とを繋ぐ枝、符号１０００に示す節と符号１００３に示す節とを繋ぐ枝について、データベース管理システム１０Ｂがそれぞれの枝をインデクス６６に反映するたびに登録処理時間が登録上限時間を超えていないか判断するようにしてもよい。
【０２０５】
また、ディスク装置２０７の書込み速度が遅い場合、データベース管理システム１０Ｂは以下のようにインデクス６６を更新するようにしてもよい。例えば、データベース管理システム１０Ｂは、ディスク装置２０７に格納されたインデクス６６のデータを更新するとき、このインデクス６６のデータを、主記憶部２０３上に読み出し、この主記憶部２０３上のインデクス６６を更新する。そして、この更新したインデクス６６を、ディスク装置２０７に移し変えていく。このとき、更新したインデクス６６を、ディスク装置２０７に移し変える際のＩ／Ｏ（Input／Output）処理の度に、登録上限時間を超えていないか判断するようにしてもよい。つまり、データベース管理システム１０Ｂは、主記憶部２０３上でインデクス６６を更新した後、登録処理時間を超えるまで、この主記憶部２０３上の更新したインデクス６６を、ディスク装置２０７に移し変える。
【０２０６】
なお、主記憶部２０３上の更新したインデクス６６すべてをディスク装置２０７に移しかえることができなかった場合、この主記憶部２０３上に更新したインデクス６６が残ることになる。この状態で、インデクス６６の更新を行う必要が生じたときには、この主記憶部２０３上のインデクス６６を更新する。このような方法によっても、インデクス６６の更新を行うことができる。
【０２０７】
なお、前記した実施の形態において、ＸＭＬデータの検索要求は、検索対象であるＸＭＬデータの文字列条件を含む場合を例に説明したが、これに限定されない。例えば、検索対象のＸＭＬデータの登録日時等、文字列条件以外の条件を含んでいてもよい。
【０２０８】
また、前記した実施の形態においてＸＭＬデータの登録処理と検索処理とは同じコンピュータ２０１が行うこととしたが、これに限定されない。例えば、ＸＭＬデータの登録処理およびインデクス６６の更新と、ＸＭＬデータの検索とをそれぞれ別個のコンピュータで実行するようにしてもよい。
【０２０９】
本実施の形態に係るデータベース管理システム１０,１０Ａ〜１０Ｅは、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体（ＣＤ−ＲＯＭ等）に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワーク経由で提供することも可能である。
【図面の簡単な説明】
【０２１０】
【図１】第１の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。
【図２】図１の未反映データ管理情報を例示した図である。
【図３】（ａ）は、構造解析の対象となるＸＭＬデータを例示した図であり、（ｂ）は、（ａ）に示したＸＭＬデータの構造解析情報を例示した図である。
【図４】図１のデータベース管理システムの概要を説明した図である。
【図５】（ａ）は、図１のデータベース管理システムの動作手順を示したフローチャートであり、（ｂ）は、図１のインデク登録処理部の動作手順を示したフローチャートである。
【図６】図１のデータベース管理システムの動作手順を示したフローチャートである。
【図７】第２の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。
【図８】（ａ）は、図７のデータベース管理システムの動作手順を示したフローチャートであり、（ｂ）は、図７のインデクス登録処理部の動作手順を示したフローチャートである。
【図９】第３の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。
【図１０】図９のデータベース管理システムにより処理された構造解析情報を例示した図である。
【図１１】図９のインデクス登録処理部の動作手順を示したフローチャートである。
【図１２】第４の実施の形態および第５の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。
【図１３】（ａ）は、図１２のデータベース管理システムの動作手順を示したフローチャートであり、（ｂ）は、図１２のインデクス登録処理部の動作手順を示したフローチャートである。
【図１４】図１２のデータベースアクセス制御部の動作手順を示したフローチャートである。
【図１５】第５の実施の形態におけるインデクス反映対象のＸＭＬデータの選択入力画面を例示した図である。
【図１６】第６の実施の形態のデータベース管理システムを含むシステムの構成例を示した図である。
【図１７】第６の実施の形態の未反映データ管理情報を例示した図である。
【図１８】ＸＭＬデータ検索時における図１６のデータベース管理システムの動作手順を示したフローチャートである。
【図１９】図１６のデータベース管理システムの動作手順を示したフローチャートである。
【図２０】第６の実施の形態におけるインデクス反映対象のＸＭＬデータの選択入力画面を例示した図である。
【図２１】本実施の形態の設定処理部が表示する設定画面例である。
【符号の説明】
【０２１１】
１０,１０Ａ〜１０Ｅ  データベース管理システム
３０    データ識別子
３１    構造解析情報
３９, ３９Ｅ  未反映データ管理情報
４０,４０Ｂ  構造解析情報記憶領域
４４    データベースバッファ
４８    登録上限時間記憶領域
５１    検索要求
５２    ＸＭＬデータ（構造化データ）
６０    データベース
６１    定義情報
６６    インデクス
２０１  コンピュータ（データベース管理装置）
２０２  ＣＰＵ
２０３  主記憶部（記憶部）
２０４,２０５  端末装置
２０６  ネットワーク
２０７  ディスク装置（記憶部）
２１０  データベースアクセス制御部
２１１  インデクス管理部
２１２,２１２Ａ〜２１２Ｃ  インデクス登録処理部
２１４,２１４Ｅ  インデクス検索処理部
２１５  検索履歴記録部
２１６  データ管理部
２１７,２１７Ｂ  構造解析情報管理部
２１８  登録上限時間受付部
２１９  登録処理時間予測部
２２０,２２０Ａ,２２０Ｃ  入力処理部
２２１,２２２  アプリケーションプログラム
２３０  出力処理部
２４０  コマンド受付部
２５０  インデクス反映処理部
２６０,２６０Ｅ  反映文書選択部
２７０,２７１  管理プログラム
【図１】
2008176565.tif 000005
【図２】
2008176565.tif 000006
【図３】
2008176565.tif 000007
【図４】
2008176565.tif 000008
【図５】
2008176565.tif 000009
【図６】
2008176565.tif 000010
【図７】
2008176565.tif 000011
【図８】
2008176565.tif 000012
【図９】
2008176565.tif 000013
【図１０】
2008176565.tif 000014
【図１１】
2008176565.tif 000015
【図１２】
2008176565.tif 000016
【図１３】
2008176565.tif 000017
【図１４】
2008176565.tif 000018
【図１５】
2008176565.tif 000019
【図１６】
2008176565.tif 000020
【図１７】
2008176565.tif 000021
【図１８】
2008176565.tif 000022
【図１９】
2008176565.tif 000023
【図２０】
2008176565.tif 000024
【図２１】
2008176565.tif 000025