(57)【要約】【課題】更新後の文書のうち元の文書に対して変更が発生した箇所のデータに絞ってデータベースへの再登録を行うことで、索引作成のコストを削減する。【解決手段】差分抽出部５２は、データベース４２に登録されるべき文書に対応する元の文書が当該データベース４２に既に登録されている場合、登録されるべき文書のうち元の文書に対して変更が発生した箇所のデータを差分データとして抽出する。索引処理部５３は、変更が発生した箇所のみの索引を更新する。差分登録部５４１は、抽出された差分データのみをデータベース４２に登録する。リンク付け部５４２は、元の文書に、データベース４２に登録された差分データへのリンクを設定する。【選択図】      図２
2008197815.tif 000002
【特許請求の範囲】
【請求項１】
文書及び当該文書を検索するのに用いられる索引が格納されるデータベースを管理するデータベース管理システムにおいて、
前記データベースに登録されるべき文書に対応する元の文書が前記データベースに既に登録されている場合、前記登録されるべき文書のうち前記元の文書に対して変更が発生した箇所のデータを差分データとして抽出する差分抽出手段と、
前記変更が発生した箇所のみの索引を更新する索引更新手段と、
前記差分抽出手段によって抽出された差分データのみを前記データベースに登録する差分登録手段と、
前記元の文書に、前差分登録手段によって前記データベースに登録された差分データへのリンクを設定するリンク付け手段と
を具備することを特徴とするデータベース管理システム。
【請求項２】
前記索引更新手段は、前記元の文書における前記変更が発生した箇所のデータに基づいて作成された当該元の文書を指す索引を前記データベースから削除すると共に、前記差分データを含む前記登録されるべき文書を指す索引を作成して前記データベースに登録することを特徴とする請求項１記載のデータベース管理システム。
【請求項３】
前記登録されるべき文書を原文文書として前記データベースに登録する原文登録手段を更に具備し、
前記リンク付け手段は、前記元の文書が検索された場合に、当該元の文書に対応する前記データベースに登録された前記原文文書にアクセスするのに用いられる当該原文文書へのリンクを、当該元の文書に設定することを特徴とする請求項１記載のデータベース管理システム。
【請求項４】
前記差分抽出手段は、前記データベースに登録されている文書に対する部分更新が発生した場合、当該部分更新が発生した箇所の更新データをそのまま前記差分データとして用い、
前記原文登録手段は、前記部分更新が発生した文書とリンクされている原文文書を取り出して、当該原文文書に前記部分更新の内容を反映して、その部分更新の内容が反映された新たな原文文書を前記データベースに登録する
ことを特徴とする請求項３記載のデータベース管理システム。
【請求項５】
前記文書はタグを用いて階層的な構造が記述された構造化文書であり、
前記差分抽出手段は、前記変更が発生した箇所を、タグを含む要素単位に検出する
ことを特徴とする請求項１記載のデータベース管理システム。
【請求項６】
文書及び当該文書を検索するのに用いられる索引が格納されるデータベースを管理するデータベースサーバコンピュータに、
前記データベースに登録されるべき文書に対応する元の文書が前記データベースに既に登録されている場合、前記登録されるべき文書のうち前記元の文書に対して変更が発生した箇所のデータを差分データとして抽出するステップと、
前記変更が発生した箇所のみの索引を更新するステップと、
前記抽出された差分データのみを前記データベースに登録するステップと、
前記元の文書に、前差データベースに登録された差分データへのリンクを設定するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書（電子化文書）及び当該文書を検索するのに用いられる索引が格納されるデータベースを管理するデータベース管理システムに係り、特に当該データベースに登録されている文書の更新に伴って発生する文書再登録処理に好適なデータベース管理システム及びプログラムに関する。
【背景技術】
【０００２】
近年、例えばオフィスにおいては、当該オフィスで扱われる種々の文書（電子化文書）を情報検索の目的で検索が可能なデータベース（ＤＢ）に登録し管理するデータベース管理システム（ＤＢＭＳ）が構築されるようになってきている。このようなシステムでは、データベースに登録されている文書の内容が更新されると、更新された文書の当該データベースへの再登録が行われる。
【０００３】
オフィスで扱われる文書、例えばパーソナルコンピュータのワードプロセッシング・ソフトゥエアで作成した文書（オフィス文書）は、更新の単位が文書である。このため、データベースに登録されている文書の更新が発生した場合、データベースへの情報登録も文書単位の再登録となるのが一般的である。
【０００４】
ところで、データベースに登録された文書の例えば全文検索を可能とするには、当該文書に含まれる単語を抽出して、その抽出された単語を索引としてデータベースに登録する必要がある（例えば、特許文献１及び２参照）。このため、データベースに登録されている文書の更新が発生した場合には、次のような一連の操作
（１）既登録文書の削除
（２）削除文書の索引削除
（３）再登録文書の全文検索のための索引として用いられる単語の抽出（再登録文書のスキャン）
（４）索引の作成
（５）文書の登録
が必要となる。
【０００５】
また、文書の一部分の更新を行う場合、例えばＸＭＬ文書のような構造化文書の特定の構造のみを指定して更新を行う場合、その部分のみの更新（部分更新）が発生する。部分更新が発生した場合、文書全体の再登録ではなく、変更箇所のみの再登録となる。このため、文書の部分更新が増えると、データベース内の登録文書は複数の領域に分断される。
【特許文献１】特開２００４−２０６４７３号公報
【特許文献２】特開２００６−１７２２６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように、データベースに登録されている文書の更新に伴う当該データベースへの文書の再登録は文書単位に行われるのが一般的であり、その再登録のためには上記５つの操作が必要である。この再登録処理の中で最も時間を要する処理は、索引に関する処理（索引処理）であり、文書のサイズが大きいほど索引処理に時間がかかる。つまり、文書のサイズが大きいほど再登録処理に長時間を要する。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、更新後の文書のうち元の既登録文書に対して変更が発生した箇所のデータに絞ってデータベースへの登録を行うことにより、索引作成のコストを削減し、再登録処理に要する時間を短縮することができるデータベース管理システム及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、文書及び当該文書を検索するのに用いられる索引が格納されるデータベースを管理するデータベース管理システムが提供される。このシステムは、前記データベースに登録されるべき文書に対応する元の文書が前記データベースに既に登録されている場合、前記登録されるべき文書のうち前記元の文書に対して変更が発生した箇所のデータを差分データとして抽出する差分抽出手段と、前記変更が発生した箇所のみの索引を更新する索引更新手段と、前記差分抽出手段によって抽出された差分データのみを前記データベースに登録する差分登録手段と、前記元の文書に、前差分登録手段によって前記データベースに登録された差分データへのリンクを設定するリンク付け手段とを具備する。
【発明の効果】
【０００９】
本発明によれば、更新後の文書のうち元の既登録文書に対して変更が発生した箇所のデータに絞ってデータベースに登録することにより、索引作成のコストを削減し、再登録処理に要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るクライアント−サーバシステムのハードウェア構成を示すブロック図である。クライアント−サーバシステムは、主として、データベースサーバ（データベースサーバコンピュータ）１０と、複数のクライアント端末とから構成される。複数のクライアント端末はクライアント端末２０を含む。クライアント端末２０上では、データベースサーバ１０を利用するアプリケーション（アプリケーションプログラム）が動作する。クライアント端末２０を含む複数のクライアント端末は、ローカルエリアネットワーク（ＬＡＮ）のようなネットワーク３０を介してデータベースサーバ１０と接続されている。なお、図１にはクライアント端末２０以外のクライアント端末は省略されている。
【００１１】
データベースサーバ１０は、ハードディスクドライブのような外部記憶装置４０と接続されている。この外部記憶装置４０は、データベース管理プログラム４１及びデータベース４２を格納する。
【００１２】
データベース管理プログラム４１は、データベースサーバ１０によるデータベース４２の管理、及びクライアント端末からの検索要求に基づく検索処理に用いられる。データベース４２は検索の対象となる複数の文書を格納する文書部４２１と、当該文書部４２１に格納されている文書を検索するのに用いられる索引（索引データ）を格納する索引部４２２とを含む。
【００１３】
本実施形態では、データベースサーバ１０によってデータベース管理システム５０が実現される。図２はデータベース管理システム５０の主として機能構成を示すブロック図である。データベース管理システム５０は、検索部５１、差分抽出部５２、索引処理部５３、登録部５４及び文書検索部５５を含む。
【００１４】
検索部５１は、クライアント端末２０からデータベース管理システム５０（データベースサーバ１０）に対して文書登録要求が与えられた場合に、要求された文書に対応する既登録文書をデータベース４２（内の文書部４２１）から検索する。差分抽出部５２は、既登録文書がデータベース４２に存在する場合、つまり文書の再登録の場合、要求された文書と当該既登録文書とを比較して、差分（変更箇所）のデータ（差分データ）を抽出する。
【００１５】
索引処理部５３は、データベース４２内の索引部４２２を対象とする索引作成・更新処理を行う。索引処理部５３は、索引更新部５３１及び索引作成部５３２を含む。索引更新部５３１は、差分抽出部５２によって抽出された差分データを対象とする索引の更新を行う。索引作成部５３２は、要求された文書に対応する既登録文書がデータベース４２に存在しない場合、つまり新規文書の登録の場合、当該新規文書の索引をデータベース４２の索引部４２２内に作成する。
【００１６】
登録部５４は、要求された文書に関する登録処理を行う。登録部５４は、差分登録部５４１、リンク付け部５４２、原文登録部５４３及び文書登録部５４４を含む。  
差分登録部５４１は、上記抽出された差分データをデータベース４２の文書部４２１に登録する。リンク付け部５４２は、文書部４２１に登録される差分データと当該文書部４２１に既に登録されている文書（元文書）とのリンク付けを行う。リンク付け部５４２はまた、文書の再登録時に、要求された文書が原文文書として原文登録部５４３によって文書部４２１に登録された場合、差分データとのリンク付けがなされた元文書に当該原文文書へのリンク付けを行う。
【００１７】
原文登録部５４３は、既登録文書（元文書）との差分データが抽出された文書（要求された文書）を原文文書として文書部４２１に登録する。文書登録部５４４は、新規文書を文書部４２１に登録する。
【００１８】
文書検索部５５は、クライアント端末２０からデータベース管理システム５０（データベースサーバ１０）に対して文書検索要求が与えられた場合に、要求された検索条件に合致する文書をデータベース４２内の索引部４２２を利用して検索する。なお、検索部５１に文書検索部５５の機能を持たせても良い。
【００１９】
本実施形態において、検索部５１、差分抽出部５２、索引処理部５３、登録部５４及び文書検索部５５は、図１のデータベースサーバ１０が外部記憶装置４０に格納されているデータベース管理プログラム４１を当該サーバ１０内のメモリ（図示せず）に読み込んで実行することにより実現されるものとする。このプログラム４１は、コンパクトディスク、或いはＲＯＭのような、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム４１が、ネットワーク３０を介してデータベースサーバ１０にダウンロードされても構わない。
【００２０】
次に、上記実施形態で適用される文書登録処理について、図３のフローチャートを参照して説明する。  
まず、クライアント端末２０からデータベース管理システム５０（データベースサーバ１０）に対して、ネットワーク３０を介して文書登録が要求されたものとする。クライアント端末２０からデータベース管理システム５０に与えられる要求は、当該システム５０内の図示せぬ要求管理部で受け付けられる。この例のように、文書登録要求の場合、当該要求は検索部５１に渡される。
【００２１】
検索部５１は、クライアント端末２０からの文書登録要求を受け取ると、データベース４２内の文書部４２１に登録されている文書を検索する（ステップＳ１）。一般に、文書部４２１に登録される文書にはファイル名のようなＩＤが付されており、要求された文書のＩＤに一致するＩＤの文書が検索される。検索部５１は検索の結果に基づき、要求された文書と同一のＩＤの文書が既に文書部４２１に登録されているかを判定する（ステップＳ２）。
【００２２】
もし、要求された文書と同一のＩＤの文書が文書部４２１に登録されていないならば、検索部５１は新規文書の登録が要求されたものとして、索引処理部５３内の索引作成部５３２に制御を渡す。これを受けて索引作成部５３２は、要求された文書（登録対象文書）を形態素解析することにより、当該文書を検索するのに必要な索引（例えば単語索引）を作成してデータベース４２の索引部４２２に登録する（ステップＳ３）。登録された索引は、当該索引の作成に用いられた単語（語彙）を含む登録対象文書へのリンクを（表すリンク情報を）含む。ここでは説明の簡略化のために、単語索引が作成されるものとしているが、全文検索に適したＮ−グラム索引が作成されるものであっても構わない。
【００２３】
ステップＳ３において索引作成部５３２は、上記要求された文書から上記登録された索引へのリンク（逆リンク）を、当該文書に埋め込む（設定する）。すると文書登録部５４４は、登録された索引への逆リンクが埋め込まれた上記要求された文書を文書部４２１に登録する（ステップＳ４）。
【００２４】
この時点におけるデータベース４２内の文書部４２１及び索引部４２２の状態例を図４に示す。図４の例では、文書部４２１には、「高速検索ＤＢ処理システム」という内容の文書４００が登録されている。文書部４２１には文書４００以外の文書も登録されているが、図４では省略されている。一方、索引部４２２には、単語「高速」「検索」「ＤＢ」「処理」「システム」を含む各単語に関する索引、即ち「高速」「検索」「ＤＢ」「処理」「システム」を含む単語（の文字列）毎に、その単語を含む文書を指す索引が登録されている。
【００２５】
単語「高速」「検索」「ＤＢ」「処理」「システム」に関する索引は、それぞれ、当該索引（図４においてハッチングが施された矩形枠）から当該索引で示される単語を含む文書４００へのリンク（を表すリンク情報）４０１，４０２，４０３，４０４，４０５を持つ。図４では、リンク４０１，４０２，４０３，４０４，４０５は矢印で表されており、当該矢印の基端及び先端は、それぞれリンク元及びリンク先を示す。
【００２６】
また図４では、リンク４０１，４０２，４０３，４０４，４０５（を表す矢印）の先端は文書４００内の単語「高速」「検索」「ＤＢ」「処理」「システム」の位置を指している。このような表現は、リンク４０１，４０２，４０３，４０４，４０５が文書４００内の単語「高速」「検索」「ＤＢ」「処理」「システム」に基づいて設定されたことの理解を容易にするために適用されたものである。リンク４０１，４０２，４０３，４０４，４０５は、対応する単語「高速」「検索」「ＤＢ」「処理」「システム」をキーワードとする検索処理で文書４００を検索するためには、当該文書４００を指し示だけで十分である。このようにリンク４０１，４０２，４０３，４０４，４０５は文書４００を指し示すが、説明の都合で、当該文書４００内の単語「高速」「検索」「ＤＢ」「処理」「システム」を指し示すと表現することもある。
【００２７】
一方、文書４００は、当該文書４００から当該文書４００に含まれる単語「高速」「検索」「ＤＢ」「処理」「システム」に関する索引への逆リンク４１１，４１２，４１３，４１４，４１５は矢印で表されている。この逆リンク４１１，４１２，４１３，４１４，４１５（を表す矢印）の基端は文書４００内の単語「高速」「検索」「ＤＢ」「処理」「システム」の箇所に位置している。このような表現も、先のリンク４０１，４０２，４０３，４０４，４０５と同様に、文書４００内の単語「高速」「検索」「ＤＢ」「処理」「システム」に基づいて設定されたことの理解を容易にするために適用されたものである。逆リンク４１１，４１２，４１３，４１４，４１５は、文書４００から当該文書４００内の単語「高速」「検索」「ＤＢ」「処理」「システム」に基づいて作成された索引（リンク４０１，４０２，４０３，４０４，４０５）を辿ることができるだけで十分である。
【００２８】
なお、図４において、単語「高速」「ＤＢ」「処理」「システム」に関する索引のうち、ハッチングが施されていない矩形枠から当該索引で示される単語を含む文書（文書４００以外の文書）へのリンク、及びその逆リンクは省略されている。
【００２９】
次に、クライアント端末２０からデータベース管理システム５０（データベースサーバ１０）に対して再び文書登録が要求されたものとする。このとき、データベース４２内の文書部４２１及び索引部４２２は、図４に示す状態にあるものとする。また、クライアント端末２０からの要求が、「高速検索ＤＢ処理システム」という内容の文書（つまり文書４００）が文書単位で更新された、「高速検索ＸＭＬ処理システム」という内容の文書を対象とする登録要求であるものとする。
【００３０】
データベース管理システム５０の検索部５１は、クライアント端末２０からの文書登録要求を受け取ると、データベース４２内の文書部４２１に登録されている文書を検索する（ステップＳ１）。検索部５１は検索の結果に基づき、要求された文書と同一のＩＤの文書が既に文書部４２１に登録されているかを判定する（ステップＳ２）。
【００３１】
もし、要求された文書と同一のＩＤの文書が文書部４２１に登録されているならば、検索部５１は既登録文書に対応する更新文書の登録（再登録）が要求されたものとして、差分抽出部５２に制御を渡す。これを受けて差分抽出部５２は、文書部４２１から既登録文書（つまり更新前の文書）を取り出す（ステップＳ５）。差分抽出部５２は、クライアント端末２０から要求された更新済み文書（再登録文書）と文書部４２１から取り出された既登録文書との差分のデータ（差分データ）を、例えば単語（語彙）単位で抽出する（ステップＳ６）。
【００３２】
ここでは、「高速検索ＤＢ処理システム」という内容の文書（文書４００）が「高速検索ＸＭＬ処理システム」という内容の文書に更新されている。つまり、「高速検索ＤＢ処理システム」のうちの「ＤＢ」が「ＸＭＬ」に変更されている。この場合、更新後の文書文書のうち、元の既登録文書（元文書）４００に対して変更が発生した箇所（変更箇所）のデータ、つまり「ＸＭＬ」が、文書４００中の「ＤＢ」に対応する差分データとして抽出される。
【００３３】
索引処理部５３内の索引更新部５３１は、抽出された差分データ「ＸＭＬ」に対応する文書４００中の単語「ＤＢ」を指す索引（つまり文書４００へのリンク４０３）を索引部４２２から削除する（ステップＳ７）。ステップＳ７において索引更新部５３１は、単語「ＤＢ」の索引への逆リンク４１３を当該文書４００から削除すると共に、当該文書４００中の単語「ＤＢ」に削除を表す特定情報（削除マーク）を付加する（ステップＳ７）。ステップＳ７において索引更新部５３１は更に、抽出された差分データ（変更後の単語）「ＸＭＬ」に関する索引（索引データ）を作成して索引部４２２に追加する。作成された索引は、差分データ（変更後の単語）「ＸＭＬ」に対応する変更箇所の単語（変更前の単語）「ＤＢ」を含む文書（元文書）４００へのリンクを持つ。このように索引更新部５３１は、差分抽出部５２によって差分データが抽出された変更箇所に関する索引データのみを更新する（ステップＳ７）。
【００３４】
索引更新部５３１はステップＳ７を実行すると、登録部５４内の差分登録部５４１に制御を渡す。すると差分登録部５４１は、差分データ、つまり単語「ＸＭＬ」のみを、文書部４２１に登録する（ステップＳ８）。
【００３５】
リンク付け部５４２は、文書４００（元の文書）中の削除マークが付された単語「ＤＢ」から差分登録部５４１によって登録された差分データ「ＸＭＬ」へのリンク（文書リンク）を当該文書４００に設定する（ステップＳ９）。このステップＳ９においてリンク付け部５４２は、文書部４２１に登録された差分データ「ＸＭＬ」と文書リンクによってリンクされている文書４００に、当該差分データ「ＸＭＬ」に関する索引データへの逆リンクを埋め込む。
【００３６】
このように本実施形態においては、文書単位で更新が行われた場合でも、文書部４２１に既に登録されている元の文書（既登録文書）と更新された文書（再登録対象文書）との差分が抽出されて、その差分のデータのみ文書部４２１に登録されると共に、その差分のデータが抽出された変更箇所についてのみ索引が作成・更新される。このため、更新された文書（再登録対象文書）全体を対象とする索引処理が必要であった従来技術に比べて変更箇所が限られ、索引処理に要する時間を短縮して高速な文書登録処理（再登録処理）を実現することができる。図４には、簡略化のために、極めて小さいサイズの文書４００の例が示されているが、サイズが大きい文書の場合には、この効果は一層大きくなる。
【００３７】
図５に、図４に示す示す状態で、差分データ「ＸＭＬ」が登録された直後の文書部４２１及び索引部４２２の状態を示す。図５の例では、文書（元文書）４００中の単語「ＤＢ」に記号×で示される削除マークが付されており、この単語「ＤＢ」から差分データ「ＸＭＬ」に文書リンク４３１が設定されている。また、単語「ＸＭＬ」を含む文書を指し示すための索引は、当該単語「ＸＭＬ」との間に文書リンク４３１が設定されている文書（元文書）４００へのリンク４０６を含む。一方、文書（元文書）４００には、単語「ＸＭＬ」に関する索引への逆リンク４１６が埋め込まれている。また、図４と比較することによって明らかなように、リンク４０３及び逆リンク４１３が削除されている。
【００３８】
その後、「高速検索ＸＭＬ処理システム」という内容の文書（つまり更新された文書４００）が文書単位で更に更新された結果、クライアント端末２０からデータベース管理システム５０（データベースサーバ１０）に対して、「高速検索ＸＭＬ管理システム」という内容の文書（更新文書）を対象とする登録要求が与えられたものとする。この場合、単語「管理」が、文書４００中の「処理」に対する差分データとして抽出される（ステップＳ６）。これにより、「管理」のみ文書部４２１に登録されると共に、「管理」及び「処理」についてのみ、それぞれ索引の作成及び更新が行われる。
【００３９】
図６に、図５に示す示す状態で、差分データ「管理」が登録された直後の文書部４２１及び索引部４２２の状態を示す。図６の例では、文書４００中の単語「処理」に削除マーク“×”が付されており、この単語「処理」から差分データ「管理」に文書リンク４３２が設定されている。また、単語「管理」を含む文書を指し示すための索引は、単語「管理」との間に文書リンク４３２が設定されている文書４００へのリンク４０７を含む。一方、文書４００には、単語「管理」に関する索引への逆リンク４１７が埋め込まれている。
【００４０】
さて、図６に示されるように、文書４００中の削除マークが付されている単語「ＤＢ」及び「処理」と単語（差分データ）「ＸＭＬ」及び「管理」との間に、それぞれ文書リンク４３１及び４３２が設定されている状態で、単語「高速」「検索」「ＸＭＬ」「管理」及び「システム」の少なくとも１つを含む文書の検索が要求されたものとする。この要求は、要求管理部によって文書検索部５５に渡される。すると文書検索部５５は、索引部４２２に登録されている索引に基づいて、単語「高速」「検索」「ＸＭＬ」「管理」及び「システム」の少なくとも１つを含む文書を文書部４２１から検索する。この検索により、文書４００を含む文書群が検索される。
【００４１】
ドキュメント管理システムのようなシステムにおける文書検索では、文書単位の取り出しが多い。したがって、例えば文書４００が検索された場合には、次のような文字列取り出しを含む文書取り出し処理が行われる。
【００４２】
まず文書４００中の文字列「高速検索」が取り出される。次に、文字列「高速検索」に後続し、削除マークが付されている単語「ＤＢ」から文書リンク４３１を辿ることにより、当該単語「ＤＢ」に対する更新後の単語「ＸＭＬ」が取り出される。続いて、単語「ＤＢ」に後続し、削除マークが付されている単語「処理」から文書リンク４３２を辿ることにより、当該単語「処理」に対する更新後の単語「管理」が取り出される。そして、単語「処理」に後続する単語「システム」が取り出される。つまり、更新された文書の内容「高速検索ＸＭＬ管理システム」が取り出される。また、上述の文書取り出し処理では、文書４００に設定されている索引への逆リンクを取り除く処理が行われる。
【００４３】
図６から明らかなように、差分データの登録が繰り返されると、文書（元文書）４００から差分データへの文書リンクが増える。ところが、差分データへの文書リンクの数が多い文書の取り出しが行われる文書検索処理では、文書取り出し時に当該文書リンクに基づく差分データ取り出しのためのコストがかかる。
【００４４】
そこで本実施形態では、差分データの登録が繰り返されても、更新された文書の内容を簡単に取り出すことができる仕組みを適用している。以下、この仕組みについて、先に挙げた図３のフローチャートを参照して説明する。
【００４５】
リンク付け部５４２は、上記ステップＳ９を実行すると原文登録部５４３を起動する。原文登録部５４３は、クライアント端末２０から要求された文書自体を原文文書としてデータベース４２の文書部４２１に登録する（ステップＳ１０）。するとリンク付け部５４２は、差分データとのリンク付けがなされた元文書から当該原文文書へのリンク（原文文書リンク）を、当該元文書に設定する（ステップＳ１１）。これにより、図３のフローチャートに従う文書登録処理は終了する。
【００４６】
図７は、図６に示す状態で、原文文書の登録と元文書から当該原文文書へのリンクの設定とが実行された直後の文書部４２１の状態を示す。図７の例では、「高速検索ＸＭＬ管理システム」という内容の文書を対象とする登録要求が与えられて、図３のフローチャートに従う文書登録処理がステップＳ１１まで実行された結果、当該文書が原文文書４３０として文書部４２１に登録されている。また、元文書４００には、原文文書４３０（つまり元文書４００に対応する更新後の文書）へのリンク（原文文書リンク）４４０が設定されている。本実施形態では、文書（元文書）４００が検索された場合、上記リンク４４０に基づき、以下に述べるように、原文文書４３０の内容を高速で取り出すことができる。
【００４７】
今、単語「高速」「検索」「ＸＭＬ」「管理」及び「システム」の少なくとも１つを含む文書の検索が要求された結果、文書（元文書）４００を含む文書群が登録部５４によって検索されたものとする。ここで、文書（元文書）４００が検索された場合、文書検索部５５は、当該文書（元文書）４００に設定されているリンク４４０に基づき、原文文書４３０の内容を取り出す。
【００４８】
このように本実施形態によれば、検索された文書（元文書）から差分データへのリンクを辿ることなく、差分データが反映されている文書の内容、つまり原文文書の内容を高速で取り出すことができる。しかも、原文文書には、元文書と異なって索引への逆リンクが設定されていないため、原文文書の内容を取り出す際に逆リンクを取り除く必要がなく、一層高速な文書取り出しが可能となる。
【００４９】
ここで、更新（再登録）が頻繁に発生する文書の場合、再登録が要求される都度、更新された文書が原文文書として文書部４２１に登録されることから、当該文書部４２１のための記憶領域は大容量を必要とする。そこで、原文文書を圧縮して文書部４２１に登録すると良い。
【００５０】
［変形例］
次に、上記実施形態の変形例について説明する。  
上記実施形態で適用される文書登録処理は、文書の更新が文書単位で行われる場合を前提としている。しかし、文書の部分更新が行われる場合にも、上記実施形態と同様の登録処理が適用できる。
【００５１】
文書の部分更新の場合、差分抽出部５２は、部分更新箇所の更新データをそのまま差分データとする。このため本変形例において、差分抽出部５２による差分抽出に要する時間は、上記実施形態に比べて短縮される。但し、文書の部分更新の場合、文書単位の更新と異なって、原文文書として文書部４２１に登録可能な再登録文書（更新文書）は存在しないため、原文登録部５４３は次のような処理を行う必要がある。
【００５２】
原文登録部５４３は、文書の部分更新の場合、部分更新が発生した文書（元文書）と原文文書リンクによってリンク付けされている原文文書を文書部４２１から取り出す。原文登録部５４３は、文書部４２１から取り出された原文文書に部分更新の内容（更新部分）を反映する更新処理（部分更新処理）を行う。なお、既登録の文書に対する最初の部分更新の場合には、元文書とリンク付けされている原文文書は存在しない。このような場合、原文登録部５４３は元文書を文書部４２１から取り出して、その取り出された元文書に更新部分を反映する。
【００５３】
原文登録部５４３は、更新部分が反映された文書（原文文書または元文書）を新たな原文文書として文書部４２１に登録する。元文書が検索された場合、この新たな原文文書が文書取り出しの対象となる。
【００５４】
このように上記実施形態の変形例においては、部分更新の場合でも、既登録の原文文書または元文書を用いて当該部分更新の内容（更新部分）が反映された文書を取得して、その更新部分が反映された文書を原文文書として文書部４２１に登録することにより、既登録の文書が部分更新によって分断されるを防止することができる。文書取り出し時には、この更新部分が反映された原文文書を取り出すことで、当該文書取り出しの高速化を図ることができる。
【００５５】
また、上記実施形態では、差分（変更箇所）の検出が単語（語彙）単位で行われる。しかし、タグを用いて階層的な構造が記述される、ＸＭＬ（Extensible Markup Language）文書のような構造を持つ文書（つまり構造化文書）の場合には、単語単位で差分が検出されると、変更箇所が多数になり、文書のリンク処理が複雑となる。そこで、構造化文書における更新（変更）の単位がタグを用いて記述される要素の単位となる場合が多いことを考慮して、当該構造化文書を対象とする登録処理では、要素の単位に差分が検出される構成を適用すると良い。
【００５６】
図８は、構造化文書の代表であるＸＭＬ文書の一例を示す。図８に示すＸＭＬ文書は、要素（名称要素）８１を含む。名称要素８１は、＜名称＞タグと当該要素８１の内容（値）である文字列（テキスト）「高速検索ＤＢ処理システム」含む。もし、図８に示すＸＭＬ文書が更新された結果、名称要素８１に含まれている文字列「高速検索ＤＢ処理システム」中の「ＤＢ」が「ＸＭＬ」に変更されたＸＭＬ文書の登録が要求された場合、差分抽出部５２は、名称要素８１を差分（変更箇所）として抽出すれば良い。
【００５７】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施形態に係るクライアント−サーバシステムのハードウェア構成を示すブロック図。
【図２】図１に示されるデータベース管理システムの主として機能構成を示すブロック図。
【図３】上記実施形態で適用される文書登録処理の手順を示すフローチャート。
【図４】データベース内の文書部及び索引部の状態の一例を示す図。
【図５】図４に示す示す状態で、差分データ「ＸＭＬ」が登録された直後の文書部及び索引部の状態を示す図。
【図６】図５に示す示す状態で、差分データ「管理」が登録された直後の文書部及び索引部の状態を示す図。
【図７】図６に示す状態で、原文文書の登録と元文書から当該原文文書へのリンクの設定とが実行された直後の文書部の状態を示す図。
【図８】要素単位で差分検出が行われるＸＭＬ文書の一例を示す図。
【符号の説明】
【００５９】
１０…データベースサーバ、２０…クライアント端末、３０…ネットワーク、４０…外部記憶装置、４１…データベース管理プログラム、４２…データベース、５０…データベース管理システム、５１…検索部、５２…差分抽出部、５３…索引処理部、５４…登録部、５５…文書検索部、５３１…索引更新部、５３２…索引作成部、５４１…差分登録部、５４２…リンク付け部、５４３…原文登録部、５４４…文書登録部。
【図１】
2008197815.tif 000003
【図２】
2008197815.tif 000004
【図３】
2008197815.tif 000005
【図４】
2008197815.tif 000006
【図５】
2008197815.tif 000007
【図６】
2008197815.tif 000008
【図７】
2008197815.tif 000009
【図８】
2008197815.tif 000010