(57)【要約】【課題】階層構造を持つリレーショナルデータベースで容易に文書を管理する。【解決手段】識別子と情報の内容を含む複数の親の文書を有するマスターテーブルＴ１、マスターテーブルで記憶される親の文書の識別子と、当該親の文書の記憶先のアドレスである第１参照アドレスとを関連付ける中間テーブルＴ２、親の文書を識別する識別子と、当該親の文書に紐付く中間テーブルのレコードの記憶先のアドレスである第２参照アドレスと、親の文書から派生した情報の内容を含む子の文書を有するサブテーブルＴ３を記憶する記憶手段３００と、リクエスト信号でマスターテーブル又はサブテーブルに対し、レコードの追加、変更又は削除が要求されると、マスターテーブル又はサブテーブルに要求された処理を実行するとともに、対応する第１参照アドレス及び第２参照アドレスを書き替える処理手段１０７とを備える。【選択図】図１
2013257616.tif 000002
【特許請求の範囲】
【請求項１】
受信するリクエスト信号に応じてリレーショナルデータベースで構成される文書を管理する文書管理装置であって、
識別子と当該識別子で識別される情報の内容を含む複数の親の文書を有するマスターテーブルを記憶するマスターテーブル記憶手段と、
前記マスターテーブルで記憶される親の文書の識別子と、当該親の文書の記憶先のアドレスである第１参照アドレスとを関連付ける中間テーブルを記憶する中間テーブル記憶手段と、
前記マスターテーブルが有するいずれかの親の文書に対応し、当該親の文書を識別する識別子と、当該親の文書に紐付く中間テーブルのレコードの記憶先のアドレスである第２参照アドレスと、当該識別子で識別される親の文書から派生した情報の内容を含む子の文書を有するサブテーブルを記憶するサブテーブル記憶手段と、
リクエスト信号で前記マスターテーブル又は前記サブテーブルに対し、レコードの追加、変更又は削除が要求されると、前記マスターテーブル又は前記サブテーブルに要求された処理を実行するとともに、対応する第１参照アドレス及び第２参照アドレスを書き替える処理手段と、
を備えることを特徴とする文書管理装置。
【請求項２】
前記処理手段は、
前記マスターテーブルに新たな文書の追加を要求するリクエスト信号を入力すると、前記マスターテーブルにリクエスト信号に含まれる内容を含む新たな親の文書を追加する追加手段
を有することを特徴とする請求項１記載の文書管理装置。
【請求項３】
前記処理手段は、
前記サブテーブルに新たな文書の追加を要求するリクエスト信号を入力すると、前記中間テーブルから前記サブテーブルに追加する文書の親である文書の識別子を検索する検索手段と、
前記検索手段で親の文書の識別子が検索されないとき、当該識別子に当該識別子の文書の記憶先のアドレスを第１参照アドレスとして関連付けて前記中間テーブルに追加するとともに、当該識別子及びリクエスト信号に含まれる内容に追加した中間テーブルのレコードの記憶先のアドレスを第２参照アドレスとして含む新たな子の文書を前記サブテーブルに追加し、前記検索手段で文書の識別子が検索されたとき、当該文書の識別子及びリクエスト信号に含まれる内容に前記中間テーブルで当該識別子と関連づけられる中間テーブルのレコードの記憶先のアドレスを第２参照先アドレスとして含む新たな子の文書を前記サブテーブルに追加する追加手段と、
を有することを特徴とする請求項１又は２記載の文書管理装置。
【請求項４】
前記処理手段は、
前記マスターテーブルに含まれる文書の削除を要求するリクエスト信号を入力すると、前記中間テーブルから削除が要求された文書の識別子を検索する検索手段と、
前記検索手段で文書の識別子が検索されたとき、前記マスターテーブル及び前記サブテーブルから当該識別子を含む文書を削除するとともに、前記中間テーブルから当該識別子及び当該識別子に関連づけられる第１参照アドレスを削除し、前記検索手段で文書の識別子が検索されないとき、前記マスターテーブルから当該識別子を含む文書を削除する削除手段と、
を有することを特徴とする請求項１乃至３のいずれか記載の文書管理装置。
【請求項５】
前記処理手段は、
前記サブテーブルに含まれる文書の削除を要求するリクエスト信号を入力すると、前記サブテーブルから当該文書の識別子を含む他の文書を検索する検索手段と、
前記検索手段で当該文書の識別子を含む他の文書が検索されたき、前記サブテーブルから削除が要求された文書を削除し、前記検索手段で当該文書の識別子を含む他の文書が検索されないとき、削除が要求された文書を前記サブテーブルから削除するとともに、前記中間テーブルから当該文書の識別子及び当該識別子に関連づけられる第１参照アドレスを削除する削除手段と、
を有することを特徴とする請求項１乃至４のいずれか記載の文書管理装置。
【請求項６】
前記処理手段は、
前記マスターテーブルに含まれる文書の変更を要求するリクエスト信号を入力すると、前記中間テーブルから当該識別子を検索する検索手段と、
前記識別子を含む文書を削除する削除手段と、
前記マスターテーブルにリクエスト信号に含まれる内容を含む新たな文書を追加する追加手段と、
前記検索手段で文書の識別子が検索されたとき、当該文書の識別子に前記追加手段が追加した文書の参照先を第１参照アドレスとして関連付けて中間テーブルに追加する追加手段と、
を有することを特徴とする請求項１乃至５のいずれか記載の文書管理装置。
【請求項７】
前記処理手段は、
前記サブテーブルに含まれる文書の変更を要求するリクエスト信号を入力すると、前記サブテーブルから変更が要求された文書を検索する検索手段と、
前記文書の識別子及び前記にリクエスト信号に含まれる内容に検索手段が検索した文書が含む第２参照アドレスを含む新たな文書を前記サブテーブルに追加する追加手段と、
前記検索手段が検索した文書を前記サブテーブルから削除する削除手段と、
を備えることを特徴とする請求項１乃至６のいずれか記載の文書管理装置。
【請求項８】
受信するリクエスト信号に応じてリレーショナルデータベースで構成される文書を管理する文書管理方法であって、
識別子と当該識別子で識別される情報の内容を含む複数の親の文書を有するマスターテーブル又は前記マスターテーブルが有するいずれかの親の文書に対応し、当該親の文書を識別する識別子と、当該親の文書に関する中間テーブルのレコードの記憶先のアドレスである第２参照アドレスと、当該識別子で識別される親の文書から派生した情報の内容を含む子の文書を有するサブテーブルに対し、レコードの追加、変更又は削除を要求するリクエスト信号を送信するステップと、
前記マスターテーブルで記憶される親の文書の識別子と、当該親の文書の記憶先のアドレスである第１参照アドレスとを関連付ける中間テーブルを記憶手段から読み出すステップと、
前記マスターテーブル又は前記サブテーブルに要求された処理を実行するステップと、
対応する第１参照アドレス及び第２参照アドレスを書き替えるステップと、
を備えることを特徴とする文書管理方法。
【請求項９】
請求項１ないし７のいずれかに記載の文書管理装置としてコンピュータを機能させるため文書管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層構造を持つリレーショナルデータベースで文書を管理する文書管理装置、文書管理方法及び文書管理プログラムに関する。
【背景技術】
【０００２】
一般的に、リレーショナルデータベースのテーブルの関係演算には、条件に合う行を取り出してテーブルを作成する「選択」、条件に合う列を取り出してテーブルを作成する「射影」、２以上のテーブルから１のテーブルを作成する「結合」がある。例えば、リレーショナルデータベースにおける検索の際には、「結合」を実行している。
【０００３】
階層構造を持つリレーショナルデータベースにアクセスする場合、検索の度にテーブル間の「結合」を実行する必要がある。そのため、リレーショナルデータベースではテーブル間の関係によっては、アクセスの際の処理時間が長くなるという問題がある。
【０００４】
これに対し、例えば、結合する各テーブルの階層構造にしたがってテーブルに親子関係を定め、親と子のテーブルのレコードを１：ｎで対応するためのデータベース内の位置情報を定める方法がある（例えば、特許文献１参照）。
【０００５】
この特許文献１に記載される方法の場合、親と子の位置情報を相互に参照しているため、子テーブルのレコードの削除や追加の度に親のテーブルと子のテーブルの両方でお互いの位置情報の書換が必要になり、高頻度な更新が生じる場合、位置情報の書換の処理が複雑となる問題がある。
【０００６】
また、別の方法として、構成が予め決められた構造化文書を用い、文書とレコードを１：１で対応付けるマスターテーブル（親）と、文書とレコードを１：ｎで対応付けるサブテーブル（子）に分けてリレーショナルデータベースに格納し、事前にサブテーブルにマスターテーブルの文書識別子を持たせる文書の検索方法もある（例えば、特許文献２参照）。
【０００７】
この特許文献２に記載される方法の場合、子テーブルのレコードの削除や追加の問題は解決されるが、親テーブルのみの更新については想定されていない。すなわち、マスターテーブルのレコードの内容が変更されてサブテーブルの別のレコードと紐付けようとする場合には、そのマスターテーブルに紐付いていた全てのサブテーブルの参照位置を書き換える必要がある。そのため、この場合にも位置情報の書換の処理が複雑となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平５−１０８４３１号公報
【特許文献２】特開２０１２−３２８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、従来の方法では、階層構造を持つリレーショナルデータベースにおける文書の管理を容易に行うことが困難な問題があった。
【００１０】
上記課題に鑑み、本発明は、階層構造を持つリレーショナルデータベースで容易に文書を管理することができる文書管理装置、文書管理方法及び文書管理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係る文書管理装置は、識別子と当該識別子で識別される情報の内容を含む複数の親の文書を有するマスターテーブルを記憶するマスターテーブル記憶手段と、マスターテーブルで記憶される親の文書の識別子と、当該親の文書の記憶先のアドレスである第１参照アドレスとを関連付ける中間テーブルを記憶する中間テーブル記憶手段と、マスターテーブルが有するいずれかの親の文書に対応し、当該親の文書を識別する識別子と、当該親の文書に紐付く中間テーブルのレコードの記憶先のアドレスである第２参照アドレスと、当該識別子で識別される親の文書から派生した情報の内容を含む子の文書を有するサブテーブルを記憶するサブテーブル記憶手段と、リクエスト信号でマスターテーブル又はサブテーブルに対し、レコードの追加、変更又は削除が要求されると、マスターテーブル又はサブテーブルに要求された処理を実行するとともに、対応する第１参照アドレス及び第２参照アドレスを書き替える処理手段とを備える。
【発明の効果】
【００１２】
本発明によれば、階層構造を持つリレーショナルデータベースで容易に文書を管理することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る文書管理装置を説明するブロック図である。
【図２】図１の文書管理装置が有するテーブルの構成を説明する図である。
【図３】図１の文書管理装置が有するテーブルに登録する構造化文書の例を説明する図である。
【図４】図１の文書管理装置における処理を説明するフローチャートである。
【図５】図１の文書管理装置における第１追加処理を説明するフローチャートである。
【図６】図５の第１追加処理でレコードが追加されるテーブルの一例を説明する図である。
【図７】図１の文書管理装置における第１変更処理を説明するフローチャートである。
【図８】図７の第１変更処理でレコードが変更されるテーブルの一例を説明する図である。
【図９】図１の文書管理装置における第２追加処理を説明するフローチャートである。
【図１０】図９の第２追加処理でレコードが追加されるテーブルの一例を説明する図である。
【図１１】図１の文書管理装置における第２変更処理を説明するフローチャートである。
【図１２】図１１の第２変更処理でレコードが変更されるテーブルの一例を説明する図である。
【図１３】図１の文書管理装置における第１削除処理を説明するフローチャートである。
【図１４】図１３の第１削除処理でレコードが削除されるテーブルの一例を説明する図である。
【図１５】図１の文書管理装置における第２削除処理を説明するフローチャートである。
【図１６】図１５の第２削除処理でレコードが削除されるテーブルの一例を説明する図である。
【図１７】３層構造のリレーショナルデータベースを利用しない場合のテーブルの一例を説明する図である。
【発明を実施するための形態】
【００１４】
図１に示すように、本発明に係る文書管理装置１０は、クライアント端末２０とネットワーク３０を介して接続されている。この文書管理装置１０は、クライアント端末２０から受信する文書を図２に一例を示すような３層構造に相互連結されるリレーショナルデータベースを利用して記憶している。また、文書管理装置１０では、リクエスト信号に応じて、記憶している文書に加えて新たな文書を追加する処理、記憶する文書の内容の変更、文書削除又は文書の検索等の処理を実行することができる。
【００１５】
具体的には、文書管理装置１０では、親の文書を有するマスターテーブルＴ１と、マスターテーブルＴ１が有する親の文書に派生して生成された子の文書を有するサブテーブルＴ３と、マスターテーブルＴ１の文書とサブテーブルＴ３の文書を関連づける中間テーブルＴ２とによって文書を管理している。
【００１６】
ここで文書管理装置１０が記憶する文書は、例えば図３に一例を示すような複数の要素を含む構造化文書である。文書は、文書の識別子と内容を要素として含んでいる。以下では、文書の内容は書籍に関する情報であるとして説明する。具体的には、親の文書（図３（ａ））の内容は、書籍の「製作年」や「ジャンル」であり、子の文書（図３（ｂ））の内容は書籍に関する様々なユーザの「評価」であるものとして説明する。
【００１７】
マスターテーブルＴ１は、複数の親の文書を有しており、具体的には、文書の識別子と、当該文書の内容とを関連づける複数のレコードを有している。図２（ａ）に示す例では、文書の内容は書籍の「製作年」と「ジャンル」である。例えば、図２（ａ）のマスターテーブルＴ１において、アドレス「００１」のレコードでは、識別子「Ｃ１」で特定される書籍の製作年が「２０１０年」でありジャンルが「情報」であることを管理している。また、アドレス「００２」のレコードでは、識別子「Ｃ２」で特定される書籍の製作年が「２００１年」でありジャンルが「情報」であることを管理している。具体的には、各レコードは、図３（ａ）に一例を示すような構造化文書（書籍のメタデータ）の各要素から成っている。以下では、マスターテーブルＴ１の各レコードに対応する文書を文書Ａとする。
【００１８】
中間テーブルＴ２は、図２（ｂ）の一例で示すように、文書の識別子と、当該識別子で特定される文書の記憶先のアドレス（第１参照アドレス）とを関連づける複数のレコード有している。この中間テーブルＴ２の各レコードは、マスターテーブルＴ１の各レコードと１：１で紐付けされている。
【００１９】
例えば、図２（ｂ）の中間テーブルＴ２において、アドレス「１０１」のレコードは、アドレス「００１」と紐付けされており、識別子「Ｃ１」の文書はマスターテーブルＴ１のアドレス「００１」で記憶されていることを管理している。また、アドレス「１０２」のレコードは、アドレス「００２」と紐付けされており、識別子「Ｃ２」の文書はマスターテーブルＴ１のアドレス「００２」で記憶されていることを管理している。
【００２０】
サブテーブルＴ３は、親の文書から派生した複数の子の文書に対応するレコードを有しており、図２（ｃ）で示す例では、子の文書は、親の文書の識別子と、子の文書を生成したユーザの識別子であるユーザ名とで識別される。また、図２（ｃ）に示す子の文書は、親の文書の識別子と、ユーザ名に加え、親の文書のアドレスを記憶する中間テーブルのレコードのアドレス（第２参照アドレス）と、子の文書の内容としてユーザの書籍の評価である「得点」および子の文書を生成した「日時」とを関連づけている。なお、各図では、日時の例として年月日を省略し、時間のみを示している。
【００２１】
中間テーブルＴ２の各レコードとサブテーブルＴ３の各レコードは、１：ｎで紐付けされている。ｎは、１以上の整数であり、中間テーブルＴ２のレコードは、サブテーブルＴ３のレコードと１対１で紐付けされていることもあれば、１対複数で紐付けされていることもある。
【００２２】
例えば、図２（ｃ）のサブテーブルＴ３において、アドレス「２０１」のレコードは、アドレス「１０１」と紐付けされており、識別子「Ｃ１」の文書を親としてユーザ「Ｄ」によって生成された子の文書であって、文書の内容として得点「３」及び日時「００：１２」を含むことを管理している。また、アドレス「２０２」のレコードは、アドレス「１０３」と紐付けされており、識別子「Ｃ３」の文書を親としてユーザ「Ａ」によって生成された子の文書であって、文書の内容として得点「５」及び日時「０２：００」を含むことを管理している。
【００２３】
すなわち、この図２の例では、アドレス「１０１」のレコードはアドレス「２０１」のレコードと１対１で紐付けされ、アドレス「１０２」のレコードはアドレス「２０４」のレコードと１対１で紐付けされ、アドレス「１０３」のレコードはアドレス「２０２」，「２０３」，「２０５」，「２０６」，「２０７」，「２０８」のレコードと１対６で紐付けされている。具体的には、各レコードは、図３（ｂ）に一例を示すような構造化文書（書籍のメタデータ）の各要素から成っている。以下では、サブテーブルＴ３の各レコードに対応する文書を文書Ｂとする。
【００２４】
なお、図１では、ネットワーク３０を介して文書管理装置１０と接続されるクライアント端末２０の数は１台であるが、接続されるクライアント端末２０の数は限定されない。
【００２５】
この文書管理装置１０は、クライアント端末２０から送信されたリクエスト信号が要求する処理の種別を判定する判定手段１０１、追加又は変更の処理が要求された場合にリクエスト信号を解析する第１解析手段１０２、削除又は検索が要求された場合にリクエスト信号を解析する第２解析手段１０３、実行する処理を決定する決定手段１０５、テーブルに追加するレコードを生成する生成手段１０４、レコードをテーブルから検索する検索手段１０６、追加、変更及び削除の処理を実行する処理手段１０７及びリクエスト信号に応じた処理の結果を送信する応答手段１０８を有している。
【００２６】
文書管理装置１０は、例えば、ＣＰＵ１００、通信手段２００及び記憶装置３００等を備える情報処理装置であって、記憶装置３００が記憶する文書管理プログラムＰをインストールすることで、ＣＰＵ１００に、判定手段１０１、第１解析手段１０２、第２解析手段１０３、決定手段１０５、生成手段１０４、検索手段１０６、処理手段１０７及び応答手段１０８が実装される。
【００２７】
判定手段１０１は、通信手段２００が受信したリクエスト信号で要求される処理の種別を判定する。受信したリクエスト信号が「追加」又は「変更」を要求するものである場合、判定手段１０１は、このリクエスト信号を第１解析手段１０２に出力する。また、受信したリクエスト信号が「削除」又は「検索」を要求するものである場合、判定手段１０１は、このリクエスト信号を第２解析手段１０３に出力する。
【００２８】
リクエスト信号は、要求された「処理の種別」及びこの要求で対象とする「データの内容」を含んでいる。例えば、「処理の種別」は、マスターテーブルＴ１又はサブテーブルＴ３への新たなレコードの「追加」、マスターテーブルＴ１又はサブテーブルＴ３のレコードの「変更（修正）」、マスターテーブルＴ１又はサブテーブルＴ３のレコードの「削除」及びマスターテーブルＴ１又はサブテーブルＴ３のレコードの「検索」である。
【００２９】
また、「データの内容」は、要求される処理の種別によって異なり、文書の要素で形成される。例えば、マスターテーブルＴ１へのレコードの「追加」や「変更」を要求するリクエスト信号に含まれるデータの内容は、図３（ａ）のようなマスターテーブルＴ１のレコードに対応する文書Ａである。また、サブテーブルＴ３へのレコードの「追加」や「変更」を要求するリクエスト信号に含まれるデータの内容は、図３（ｂ）のようなサブテーブルＴ３のレコードに対応する文書Ｂである。
【００３０】
一方、「削除」を要求するリクエスト信号に含まれるデータの内容は、削除の対象となるレコードが含む要素から成る文書である。例えば、マスターテーブルＴ１からレコードを削除又は検索するときには、親の文書である文書Ａを特定する「識別子」がデータの内容となる。また、サブテーブルＴ３からレコードを削除又は検索するときには、子の文書である文書Ｂを特定する「識別子」及び「ユーザ名」がデータの内容となる。その他、マスターテーブルＴ１からレコードを削除又は検索する際には「ジャンル」がデータの内容であってもよいし、サブテーブルＴ３からレコードを削除又は検索する際には「ユーザ名」のみがデータの内容であってもよい。
【００３１】
第１解析手段１０２は、判定手段１０１から入力したリクエスト信号を解析する。具体的には、第１解析手段１０２は、リクエスト信号が対象とする文書の種別（親の文書であるか子の文書であるか）を解析し、「データの内容」を要素に分解（解析）する。また、第１解析手段１０２は、分解した各要素を要求される処理の種別とともに生成手段１０４及び決定手段１０５に出力する。例えば、図３（ａ）に示すような文書Ａからは、第１解析手段１０２は、文書Ａであることの種別と、識別子「Ｃ１」、ジャンル「情報」及び製作年「２０１０」の要素に分解する。
【００３２】
第２解析手段１０３は、判定手段１０１から入力したリクエスト信号を解析する。具体的には、第２解析手段１０３は、リクエスト信号が対象とする文書の種別（親の文書（文書Ａ）であるか子の文書（文書Ｂ）であるか）を解析し、「データの内容」を要素に分解（解析）する。また、第２解析手段１０３は、分解した各要素を要求される処理の種別とともに検索手段１０６及び決定手段１０５に出力する。
【００３３】
生成手段１０４は、第１解析手段１０２から入力した複数の要素をメモリに記憶し、テーブルに追加するレコードを生成する。すなわち、生成手段１０４は、入力した文書の要素をレコードとしてテーブルに追加可能なフォーマットに変更する。また、生成手段１０４は、生成したレコードを処理手段１０７に出力する。ここで、文書Ａの要素を入力した場合、生成手段１０４は、マスターテーブルＴ１に追加するレコードを生成する。また、文書Ｂの要素を入力した場合、生成手段１０４は、サブテーブルＴ３に追加するレコードを生成する。
【００３４】
決定手段１０５は、判定手段１０１から処理の種別を入力し、第１解析手段１０２から文書の要素を入力すると、実行する処理を決定する。また、決定手段１０５は、判定手段１０１から処理の種別を入力し、第２解析手段１０３から文書の要素を入力すると、実行する処理を決定する。
【００３５】
具体的には、決定手段１０５は、リクエスト信号が「文書Ａ」の「追加」を要求するものであるとき「第１追加処理」を実行すると決定し、「文書Ａ」の「変更」を要求するものであるとき「第１変更処理」を実行すると決定する。また、決定手段１０５は、リクエスト信号が「文書Ｂ」の「追加」を要求するものであるとき「第２追加処理」を実行すると決定し、「文書Ｂ」の「変更」を要求するものであるとき「第２変更処理」を実行すると決定する。さらに、決定手段１０５は、「文書Ａ」の「削除」を要求するものであるとき「第１削除処理」を実行すると決定し、「文書Ｂ」の「削除」を要求するものであるとき「第２削除処理」を実行すると決定する。なお、「検索」は、「削除処理」の前処理として実行される。
【００３６】
検索手段１０６は、追加処理、変更処理及び削除処理の各処理において、任意の要素をキーとして、マスターテーブルＴ１、中間テーブルＴ２又はサブテーブルＴ３から該当するレコードを検索する。
【００３７】
例えば、検索手段１０６は、マスターテーブルＴ１からの文書Ａに対応するレコードの検索の際には、文書Ａを特定する「識別子」の要素をキーとして検索する。また、例えば、検索手段１０６は、サブテーブルＴ３からの文書Ｂに対応するレコードの検索の際には、文書Ｂを特定する「識別子」及び「ユーザ名」の要素をキーとして検索する。その他、「ジャンル」や「製作年」をキーとして検索してもよい。
【００３８】
処理手段１０７は、図１に示すように、追加手段１０７ａ、削除手段１０７ｂ及び書換手段１０７ｃを有している。
【００３９】
追加手段１０７ａは、追加処理又は変更処理の各処理において、生成手段１０４で生成されたレコードを、マスターテーブルＴ１、中間テーブルＴ２又はサブテーブルＴ３に追加する。具体的には、追加手段１０７ａは、生成手段１０４から入力したレコードを新たなアドレスで追加する。
【００４０】
削除手段１０７ｂは、変更処理及び削除処理の各処理において、マスターテーブルＴ１、中間テーブルＴ２又はサブテーブルＴ３の該当するアドレスのレコードを削除する。具体的には、削除手段１０７ｂは、削除が要求されたレコードをマスターテーブルＴ１又はサブテーブルＴ３から削除するとともに、削除するレコードと対応するレコードを中間テーブルＴ２又はサブテーブルＴ３から削除する。
【００４１】
書換手段１０７ｃは、第１変更処理においてマスターテーブルＴ１のレコードを変更したとき、中間テーブルＴ２の第１参照アドレスを変更後のレコードのアドレスに書き換える。
【００４２】
応答手段１０８は、追加処理、変更処理、削除処理及び検索処理の各処理が終了すると、完了通知を生成し、クライアント端末２０に完了通知を送信する。
【００４３】
具体的には、追加処理、変更処理の終了後には、応答手段１０８は、処理が終了した旨とともに、追加又は変更したレコードのアドレスを含む完了通知を送信する。また、削除処理の終了後には、応答手段１０８は、処理が終了した旨を含む完了通知を送信する。さらに、検索処理の終了後には、応答手段１０８は、検索結果を含む完了通知を送信する。
【００４４】
図４に示すフローチャートを用いて、本発明に係る文書管理装置１０においてリクエスト信号を入力した場合の処理について説明する。まず、判定手段１０１は、通信手段２００がネットワーク３０を介してクライアント端末２０から受信したリクエスト信号で要求される処理の種別を判定し、リクエスト信号を第１解析手段１０２又は第２解析手段１０３に出力する（Ｓ１）。具体的には、判定手段１０１は、リクエスト信号が「追加又は変更」を要求するものである場合、このリクエスト信号を第１解析手段１０２に出力し、リクエスト信号が「検索又は削除」を要求するものである場合、このリクエスト信号を第２解析手段１０３に出力する。
【００４５】
リクエスト信号が「追加又は変更」の要求と判定され（Ｓ１でＹＥＳ）、リクエスト信号を入力した第１解析手段１０２は、入力したリクエスト信号を解析し、解析した要素を生成手段１０４及び決定手段１０５に出力する（Ｓ２）。
【００４６】
第１解析手段１０２から要素を入力した生成手段１０４は、入力した要素をメモリに記憶し、この要素を利用して１のレコードを生成するとともに、生成したレコードをメモリに記憶する（Ｓ３）。ここで、第１解析手段１０２から入力した要素が複数のレコードを生成する複数組の要素である場合、生成手段１０４は、１組の要素で１のレコードのみを生成し、レコードの生成に利用した要素とレコードの生成に利用していない要素とを区別してメモリに記憶する。
【００４７】
また、第１解析手段１０２から要素を入力した決定手段１０５は、生成した要素をメモリに記憶し、このリクエスト信号が文書Ａを含んでいるか又は文書Ｂを含んでいるかを判定する（Ｓ４）。
【００４８】
リクエスト信号が文書Ａを含んでいる場合であって、レコードの追加を要求するものである場合（Ｓ４でＹＥＳ，Ｓ５でＹＥＳ）、決定手段１０５は、第１追加処理を実行すると決定し、文書管理装置１０では、第１追加処理が実行される（Ｓ６）。この第１追加処理については、図５及び図６を用いて後述する。
【００４９】
また、リクエスト信号が文書Ａを含んでいる場合であって、レコードの内容の変更を要求するものである場合（Ｓ４でＹＥＳ，Ｓ５でＮＯ）、決定手段１０５は、第１変更処理を実行すると決定し、文書管理装置１０では、第１変更処理が実行される（Ｓ７）。この第１変更処理については、図７及び図８を用いて後述する。
【００５０】
一方、リクエスト信号が文書Ｂを含んでいる場合であって、レコードの追加を要求するものである場合（Ｓ４でＮＯ，Ｓ８でＹＥＳ）、決定手段１０５は、第２追加処理を実行すると決定し、文書管理装置１０では、第２追加処理が実行される（Ｓ９）。この第２追加処理については、図９及び図１０を用いて後述する。
【００５１】
また、リクエスト信号が文書Ｂを含んでいる場合であって、レコードの内容の変更を要求するものである場合（Ｓ４でＮＯ，Ｓ８でＮＯ）、決定手段１０５は、第２変更処理を実行すると決定し、文書管理装置１０では、第２変更処理が実行される（Ｓ１０）。この第２変更処理については、図１１及び図１２を用いて後述する。
【００５２】
第１追加処理、第１変更処理、第２追加処理又は第２変更処理が終了すると、生成手段１０４は、ステップＳ２で第１解析手段１０２が分解してメモリに記憶した全ての要素についてレコードを生成して追加又は変更の処理が終了したか否かを判定する（Ｓ１１）。
【００５３】
メモリに記憶した全ての組の要素について追加又は変更が終了していない場合（Ｓ１１でＮＯ）、ステップＳ３に戻り、ステップＳ３からステップＳ１１までの処理を繰り返す。一方、メモリに記憶した全ての組の要素について追加又は変更が終了している場合（Ｓ１１でＹＥＳ）、応答手段１０８が全ての処理が完了した完了通知を生成し、通信手段２００及びネットワーク３０を介してクライアント端末２０に送信して処理を終了する（Ｓ１２）。
【００５４】
また、リクエスト信号が「検索又は削除」の要求と判定され（Ｓ１でＮＯ）、リクエスト信号を入力した第２解析手段１０３は、入力したリクエスト信号を解析し、解析した要素を検索手段１０６に出力する（Ｓ１３）。ここで、検索又は削除の対象が１の要素のみの場合と複数の要素で構成される場合がある。例えば、１の識別子を要素とし、この識別子を含むレコードをマスターテーブルＴ１やサブテーブルＴ３から検索する場合や、１の製作年と１のジャンルを要素とし、この製作年及びジャンルを含むレコードをマスターテーブルＴ１から検索する場合等がある。
【００５５】
検索手段１０６は、入力した要素をメモリに記憶し、この要素を含むテーブルをマスターテーブルＴ１又はサブテーブルＴ３の各テーブルから検索し、検索された全てのテーブルのアドレスをメモリに記憶する（Ｓ１４）。
【００５６】
また、検索手段１０６は、リクエスト信号が「削除」を要求するものであるか否かを判定する（Ｓ１５）。削除であった場合（Ｓ１５でＹＥＳ）、検索手段１０６は、検索結果である１のテーブルを削除の対象として選択する（Ｓ１６）。ここで、複数のテーブルが検索された場合、検索手段１０６は、削除の対象として選択されているレコードのアドレス、すでに削除されたレコードのアドレス、削除の対象としてまだ選択されていないレコードのアドレスとを区別してメモリに記憶する。
【００５７】
また、検索手段１０６で削除の対象のレコードが決定されると決定手段１０５は、リクエスト信号がマスターテーブルＴ１から文書Ａのレコードの削除を要求するものであるか又はサブテーブルＴ３から文書Ｂのレコードの削除を要求するものであるかを判定する（Ｓ１７）。
【００５８】
リクエスト信号がマスターテーブルＴ１から文書Ａのレコードの削除を要求するものである場合（Ｓ１７でＹＥＳ）、決定手段１０５は、第１削除処理を実行すると決定し、文書管理装置１０では、第１削除処理が実行される（Ｓ１８）。この第１削除処理については、図１３及び図１４を用いて後述する。
【００５９】
また、リクエスト信号がサブテーブルＴ３から文書Ｂのレコードの削除を要求するものである場合（Ｓ１７でＮＯ）、決定手段１０５は、第２削除処理を実行すると決定し、文書管理装置１０では、第２削除処理が実行される（Ｓ１９）。この第２削除処理については、図１５及び図１６を用いて後述する。
【００６０】
第１削除処理又は第２削除処理が終了すると、検索手段１０６は、ステップＳ１４で検索され、ステップＳ１６でメモリに記憶された全てのアドレスのテーブルを削除したか否かを判定する（Ｓ２０）。
【００６１】
メモリに記憶した全てのアドレスのレコードの削除が終了していない場合（Ｓ２０でＮＯ）、ステップＳ１６に戻り、ステップＳ１７からステップＳ２０までの処理を繰り返す。一方、メモリに記憶されている全てのアドレスのレコードについて削除が終了している場合（Ｓ１７でＮＯ）、応答手段１０８が全ての処理が完了した完了通知を生成し、通信手段２００及びネットワーク３０を介してクライアント端末２０に送信して処理を終了する（Ｓ２０）。
【００６２】
これに対し、ステップＳ１５において、リクエスト信号が「削除」ではなく「検索」を要求するものであると判定された場合（Ｓ１５でＮＯ）、検索手段１０６は、検索結果を応答手段１０８に出力する。検索結果を入力した応答手段１０８は、この検索結果を含む完了通知を生成し、通信手段２００及びネットワーク３０を介してクライアント端末２０に送信し、処理を終了する（Ｓ１２）。
【００６３】
《第１追加処理》
第１追加処理は、リクエスト信号で、マスターテーブルＴ１にレコードを追加する要求がされた場合に実行される処理であって、図４のフローチャートのステップＳ６の処理である。
【００６４】
図５のフローチャートに示すように、第１追加処理が開始すると、追加手段１０７ａは、図４のフローチャートのステップＳ３で生成手段１０４に生成され、メモリに記憶されたレコードをマスターテーブルＴ１に追加する（Ｓ６１）。例えば、図２（ａ）に示すマスターテーブルＴ１であった場合、図６に示すように、アドレス「００５」に新たなレコードを追加する。
【００６５】
追加手段１０７ａによって新たなレコードがマスターテーブルＴ１に追加されると、応答手段１０８は、レコードを追加した旨の完了通知を生成し、生成手段１０４に完了通知を送信して第１追加処理を終了する（Ｓ６２）。
【００６６】
《第１変更処理》
第１変更処理は、リクエスト信号で、マスターテーブルＴ１のレコードの内容を変更する要求がされた場合に実行される処理であって、図４のフローチャートのステップＳ７の処理である。
【００６７】
図７のフローチャートに示すように、第１変更処理が開始すると、検索手段１０６は、図４のフローチャートのステップＳ３で生成手段１０４に生成され、メモリに記憶されたレコードが含む文書の識別子を含むレコードをマスターテーブルＴ１から検索し、検索されたレコードのアドレスをメモリに記憶する（Ｓ７１）。
【００６８】
続いて、検索手段１０６は、ステップＳ７１で検索に利用した識別子を含むレコードを中間テーブルＴ２から検索し、レコードが存在する場合には検索したレコードのアドレスをメモリに記憶する（Ｓ７２）。また、検索手段１０６は、中間テーブルＴ２からレコードが検索されたか否かを判定し、判定結果を追加手段１０７ａ、削除手段１０７ｂ及び書換手段１０７ｃに出力する（Ｓ７３）。
【００６９】
検索手段１０６でレコードが検索されていない場合（Ｓ７３でＮＯ）、変更対象のレコードと紐付けられるレコードがサブテーブルＴ３では含まれていないということである。この場合、まず、追加手段１０７ａが、ステップＳ３で生成手段１０４が生成したレコードをマスターテーブルＴ１に追加する（Ｓ７４）。続いて、削除手段１０７ｂが、ステップＳ７１で検索したレコードをマスターテーブルＴ１から削除する（Ｓ７５）。この後、応答手段１０８がレコードを変更した旨の完了通知を生成し、生成手段１０４に完了通知を送信して第１変更処理を終了する（Ｓ７６）。
【００７０】
例えば、識別子「Ｃ４」が検索の対象であるとき、検索手段１０６は、ステップＳ７１で図２（ａ）に示すマスターテーブルＴ１から識別子「Ｃ４」を含むレコードを検索し、アドレス「００４」をメモリに記憶する。また、検索手段１０６は、ステップＳ７２で図２（ｂ）に示す中間テーブルＴ２から識別子「Ｃ４」を含むレコードを検索するが、中間テーブルＴ２には、識別子「Ｃ４」含むレコードは有していない。このように対象の識別子を含むレコードを有していない場合、図８（ａ）に示すように、追加手段１０７ａがステップＳ７４でアドレス「００５」に新たなレコードを追加し、削除手段１０７ｂがステップＳ７５でアドレス「００４」のレコードを削除する。また、中間テーブルＴ２では、図８（ｂ）に示すようにレコードの追加や削除はされない。
【００７１】
一方、検索手段１０６でレコードが検索されていた場合（Ｓ７３でＹＥＳ）、変更対象のレコードと紐付けられるレコードがサブテーブルＴ３に含まれるということである。この場合、まず、追加手段１０７ａが、ステップＳ３で生成手段１０４が生成したレコードをマスターテーブルＴ１に追加し、追加したレコードのアドレスを取得してメモリに記憶する（Ｓ７７）。
【００７２】
続いて、書換手段１０７ｃが、中間テーブルＴ２のステップＳ７２で検索されたレコードの第１参照アドレスをステップＳ７７で追加したレコードのアドレスに書き替える（Ｓ７８）。その後、削除手段１０７ｂが、ステップＳ７１で検索されたレコードをマスターテーブルＴ１から削除する（Ｓ７９）。この後、応答手段１０８がレコードを変更した旨の完了通知を生成し、生成手段１０４に完了通知を送信して第１変更処理を終了する（Ｓ７１０）
例えば、識別子「Ｃ１」が検索の対象であるとき、検索手段１０６は、ステップＳ７１で図２（ａ）に示すマスターテーブルＴ１から識別子「Ｃ１」を含むレコードを検索し、アドレス「００１」をメモリに記憶する。また、検索手段１０６は、ステップＳ７２で図２（ｂ）に示す中間テーブルＴ２から識別子「Ｃ１」を含むレコードを検索し、アドレス「１０１」をメモリに記憶する。このように対象の識別子を含むレコードを有していた場合、図８（ｃ）に示すように、追加手段１０７ａがステップＳ７７でマスターテーブルＴ１のアドレス「００５」に新たなレコードを追加する。続いて、書換手段１０７ｃがステップＳ７８で図８（ｄ）に示すように、中間テーブルＴ２のレコードの第１参照アドレス「００１」を「００５」に変更する。その後、図８（ｃ）に示すように、削除手段１０７ｂがステップＳ７９でアドレス「００１」のレコードを削除する。
【００７３】
これにより、図８（ｅ）に示すように、サブテーブルＴ３の第２参照アドレスは変更することなく、中間テーブルＴ２の第１参照アドレスのみ変更すればよい。例えば、マスターテーブルＴ１の変更対象のレコードに紐付けられるレコードがサブテーブルＴ３に複数含まれている場合であっても、サブテーブルＴ３の各レコードの第２参照アドレスを変更する必要はなく、中間テーブルＴ２の１のレコードのみを変更すれば、サブテーブルＴ３の各レコードは、中間テーブルＴ２を介してマスターテーブルＴ１のレコードと紐付けられる。
【００７４】
《第２追加処理》
第２追加処理は、リクエスト信号で、サブテーブルＴ３にレコードを追加する要求がされた場合に実行される処理であって、図４のフローチャートのステップＳ９の処理である。
【００７５】
図９のフローチャートに示すように、第２追加処理が開始すると、検索手段１０６は、図４のフローチャートのステップＳ３で生成手段１０４に生成され、メモリに記憶されたレコードが含む文書の識別子を含むレコードをマスターテーブルＴ１から検索し、検索されたレコードのアドレスをメモリに記憶する（Ｓ９１）。
【００７６】
続いて、検索手段１０６は、ステップＳ９１で検索に利用した識別子を含むレコードを中間テーブルＴ２から検索し、レコードが存在する場合には検索したレコードのアドレスをメモリに記憶する（Ｓ９２）。
【００７７】
また、検索手段１０６は、中間テーブルＴ２から対象の文書の識別子を含むレコードが検索されたか否かを判定し、判定結果を生成手段１０４及び追加手段１０７ａに出力する（Ｓ９３）。
【００７８】
検索手段１０６でレコードが検索されていない場合（Ｓ９３でＮＯ）、サブテーブルＴ３に追加するレコードと紐付けられるマスターテーブルＴ１のレコードは、サブテーブルＴ３の他のレコードと紐付けられていないということである。すなわち、同一の親の文書から派生した子の文書がサブテーブルＴ３に含まれていないということである。この場合、まず、生成手段１０４が、中間テーブルＴ２に追加するレコードを生成する（Ｓ９４）。このとき、生成手段１０４は、ステップＳ９１で検索したレコードのアドレスを第１参照アドレスとしたレコードを生成する。続いて、追加手段１０７ａは、ステップＳ９４で生成手段１０４が生成したレコードを中間テーブルＴ２に追加する（Ｓ９５）。
【００７９】
その後、追加手段１０７ａは、ステップＳ３で生成手段１０４が生成したレコードをサブテーブルＴ３に追加する（Ｓ９６）。このとき、追加手段１０７ａは、ステップＳ９５で中間テーブルＴ２に追加したレコードのアドレスを第２参照アドレスとしたレコードをサブテーブルＴ３に追加する。この後、応答手段１０８がレコードを追加した旨の完了通知を生成し、生成手段１０４に完了通知を送信して第２追加処理を終了する（Ｓ９７）。
【００８０】
例えば、識別子「Ｃ４」が検索の対象であるとき、検索手段１０６はステップＳ９１で図２（ａ）に示すマスターテーブルＴ１から識別子「Ｃ４」を含むレコードを検索し、アドレス「００４」をメモリに記憶する。また、検索手段１０６はステップＳ９２で図２（ｂ）に示す中間テーブルＴ２から識別子「Ｃ４」を含むレコードを検索するが、中間テーブルＴ２には、識別子「Ｃ４」を含むレコードは有していない。したがって、生成手段１０４がステップＳ９４で中間テーブルＴ２に追加するレコードとして識別子「Ｃ４」及び第１参照アドレス「００４」を含むレコードを生成する。また、図１０（ｂ）に示すように、追加手段１０７ａがステップＳ９５で中間テーブルＴ２のアドレス「１０４」に新たなレコードを追加し、マスターテーブルＴ１に紐付けする（図１０（ａ），図１０（ｂ））。その後、図１０（ｃ）に示すように、追加手段１０７ａが、ステップＳ９６でサブテーブルＴ３のアドレス「２０９」に新たなレコードを追加する。このとき、追加手段１０７ａは追加するレコードの第２参照アドレスをステップＳ９５で追加したレコードのアドレス「１０４」とする。
【００８１】
一方、検索手段１０６でレコードが検索されていた場合（Ｓ９３でＹＥＳ）、サブテーブルＴ３に追加するレコードと紐付けられるマスターテーブルＴ１のレコードは、サブテーブルＴ３の他のレコードと紐付けられているということである。すなわち、同一の親の文書から派生した子の文書がサブテーブルＴ３に含まれているということである。この場合、追加手段１０７ａは、サブテーブルＴ３に、ステップＳ３で生成手段１０４が生成したレコードを追加する（Ｓ９８）。このとき、追加手段１０７ａは、ステップＳ９２で検索された中間テーブルのアドレスを第２参照アドレスとしたレコードをサブテーブルＴ３に追加する。この後、応答手段１０８がレコードを追加した旨の完了通知を生成し、生成手段１０４に完了通知を送信して第２追加処理を終了する（Ｓ９９）。
【００８２】
例えば、識別子「Ｃ１」が検索の対象であるとき、検索手段１０６はステップＳ９１で図２（ａ）に示すマスターテーブルＴ１から識別子「Ｃ１」を含むレコードを検索し、アドレス「００１」をメモリに記憶する。また、検索手段１０６はステップＳ９２で図２（ｂ）に示す中間テーブルＴ２から識別子「Ｃ１」を含むレコードを検索し、アドレス「１０１」をメモリに記憶する。中間テーブルＴ２に識別子「Ｃ１」を含むレコードを有していたため、図１０（ｅ）に示すように、追加手段１０７ａがステップＳ９８でサブテーブルＴ３のアドレス「２０９」に新たなレコードを追加し、中間テーブルＴ２に紐付けする（図１０（ｄ），図１０（ｅ））。これにより、追加したレコードは、中間テーブルＴ２を介してマスターテーブルＴ１にも紐付けされる。このとき、追加手段１０７ａは追加するレコードの第２参照アドレスをステップＳ９２で検索された「１０１」とする。
【００８３】
《第２変更処理》
第２変更処理は、リクエスト信号で、サブテーブルＴ３のレコードの内容を変更する要求がされた場合に実行される処理であって、図４のフローチャートのステップＳ１０の処理である。子の文書である文書Ｂは、親の文書である文書Ａの識別子とユーザの識別子（ユーザ名）とで特定されるため、変更対象のレコードは、親の文書の識別子及びユーザ名で特定される。
【００８４】
図１１のフローチャートに示すように、第２変更処理が開始すると、検索手段１０６は、図４のフローチャートのステップＳ３で生成手段１０４に生成され、メモリに記憶されたレコードが含む文書の識別子及びユーザ名を含むレコードをサブテーブルＴ３から検索し、検索されたレコードのアドレスをメモリに記憶する（Ｓ１０１）。
【００８５】
続いて、追加手段１０７ａは、ステップＳ３で生成手段１０４が生成したレコードをサブテーブルＴ３に追加する（Ｓ１０２）。このとき、追加手段１０７ａは、ステップＳ１０１で検索したレコードで第２参照アドレスとして有していたアドレスを第２参照アドレスとしたレコードをサブテーブルＴ３に追加する。
【００８６】
次に、削除手段１０７ｂは、サブテーブルＴ３からステップＳ１０１で検索手段１０６に検索されたレコードを削除する（Ｓ１０３）。この後、応答手段１０８がレコードを変更した旨の完了通知を生成し、生成手段１０４に完了通知を送信して第２追加処理を終了する（Ｓ１０４）。
【００８７】
例えば、識別子「Ｃ３」及びユーザ名「Ｅ」のレコードが検索の対象であるとき、検索手段１０６はステップＳ１０１で図２（ｃ）に示すサブテーブルＴ３から識別子「Ｃ３」及びユーザ名「Ｅ」を含むレコードを検索し、アドレス「２０３」をメモリに記憶する。また、追加手段１０７ａはステップＳ１０２で図１２（ｂ）に示すようにサブテーブルＴ３のアドレス「２０９」に新たなレコードを追加する。このとき、追加手段１０７ａはアドレス「２０３」のレコードの第２参照アドレス「１０３」を新たに追加するレコードの第２参照アドレスとする。その後、削除手段１０７ｂはステップＳ１０３でアドレス「２０３」のレコードを削除する。これにより、図１２（ａ）及び図１２（ｂ）に示すように、中間テーブルＴ２のアドレス「１０３」のレコードには、サブテーブルＴ３のアドレス「２０３」ではなく、「２０９」のレコードが紐付けされる。
【００８８】
《第１削除処理》
第１削除処理は、リクエスト信号で、マスターテーブルＴ１からレコードを削除する要求がされた場合に実行される処理であって、図４のフローチャートのステップＳ１８の処理である。このステップＳ１８の際には、検索手段１０６によって、ステップＳ１４でマスターテーブルＴ１のレコードのアドレスが削除の対象として検索されてメモリに記憶され、ステップＳ１６で１のアドレスが選択されてメモリで区別された状態である。
【００８９】
図１３のフローチャートに示すように、第１削除処理が開始すると、検索手段１０６は、図４のフローチャートのステップＳ１６で検索手段１０６に選択され、メモリに記憶されたアドレスのレコードが含む識別子（要素）をマスターテーブルＴ１から抽出し、抽出した識別子をメモリに記憶する（Ｓ１８１）。
【００９０】
続いて、検索手段１０６は、抽出した識別子を含むレコードを中間テーブルＴ２から検索して、検索結果を保持し、削除手段１０７ｂに出力するとともに、検索された場合には、レコードのアドレスをメモリに記憶する（Ｓ１８２）。
【００９１】
検索手段１０６でレコードが検索されていない場合（Ｓ１８３でＮＯ）、削除対象のレコードと紐付けられるレコードの文書を親とする子の文書がサブテーブルＴ３に含まれていないということである。この場合、まず、削除手段１０７ｂは、対象のレコードをマスターテーブルＴ１から削除する（Ｓ１８４）。この後、応答手段１０８がレコードを削除した旨の完了通知を生成し、検索手段１０６に完了通知を送信して第１削除処理を終了する（Ｓ１８５）。
【００９２】
例えば、アドレス「００４」が削除対象としてメモリに記憶されているとき、検索手段１０６はステップＳ１８１において図２（ａ）に示すマスターテーブルＴ１からアドレス「００４」のレコードに含まれる識別子「Ｃ４」を抽出する。その後、検索手段１０６はステップＳ１８２で図２（ｂ）に示す中間テーブルＴ２から識別子「Ｃ４」を含むレコードを検索するが、中間テーブルＴ２には、識別子「Ｃ４」を含むレコードは有していない。したがって、削除手段１０７ｂはステップＳ１８４で図１４（ａ）に示すように、マスターテーブルＴ１からアドレス「００４」のレコードを削除する。
【００９３】
一方、検索手段１０６でレコードが検索されていた場合（Ｓ１８３でＹＥＳ）、削除対象のレコードと関連づけられるレコードがサブテーブルＴ３に含まれているということである。この場合、検索手段１０６が、サブテーブルＴ３からステップＳ１８３で検索されたレコードのアドレスを含むレコードを検索する（Ｓ１８６）。続いて、削除手段１０７ｂは、ステップＳ１８１で検索されたレコードをマスターテーブルＴ１から削除し、ステップＳ１８２で検索されたレコードを中間テーブルＴ２から削除し、ステップＳ１８６で検索されたレコードをサブテーブルＴ３から削除する（Ｓ１８７）。この後、応答手段１０８がレコードを削除した旨の完了通知を生成し、検索手段１０６に完了通知を送信して第１削除処理を終了する（Ｓ１８８）。
【００９４】
例えば、アドレス「００３」が削除対象としてメモリに記憶されているとき、検索手段１０６はステップＳ１８１において図２（ａ）に示すマスターテーブルＴ１からアドレス「００３」のレコードに含まれる識別子「Ｃ３」を抽出する。その後、検索手段１０６はステップＳ１８２で図２（ｂ）に示す中間テーブルＴ２から識別子「Ｃ３」を含むレコードを検索し、アドレス「１０３」をメモリに記憶する。また、検索手段１０６はステップＳ１８６において図２（ｃ）に示すサブテーブルＴ３から識別子「Ｃ３」を含むレコードを検索し、アドレス「２０２」、「２０３」、「２０５」、「２０６」、「２０７」及び「２０８」をメモリに記憶する。その後、削除手段１０７ｂは、アドレス「００３」のレコードをマスターテーブルＴ１から削除し、アドレス「１０３」のレコードを中間テーブルＴ２から削除し、アドレス「２０２」、「２０３」、「２０５」、「２０６」、「２０７」及び「２０８」のレコードをサブテーブルＴ３から削除する（図１４（ｂ），図１４（ｃ），図１４（ｄ））。
【００９５】
《第２削除処理》
第２削除処理は、リクエスト信号で、サブテーブルＴ３からレコードを削除する要求がされた場合に実行される処理であって、図４のフローチャートのステップＳ１９の処理である。このステップＳ１９の際には、検索手段１０６によって、ステップＳ１４でサブテーブルＴ３のレコードのアドレスが削除の対象として選択されてメモリに記憶され、ステップＳ１６で１のアドレスが選択されてメモリで区別された状態である。
【００９６】
図１５のフローチャートに示すように、第２削除処理が開始すると、検索手段１０６は、図４のフローチャートのステップＳ１６で検索手段１０６に選択され、メモリに記憶されたアドレスのレコードが含む識別子（要素）をサブテーブルＴ３から抽出し、抽出した識別子をメモリに記憶する（Ｓ１９１）。
【００９７】
その後、削除手段１０７ｂは、サブテーブルＴ３からステップＳ１６で削除対象として選択されたアドレスのレコードをサブテーブルＴ３から削除する（Ｓ１９２）。また、検索手段１０６は、ステップＳ１９１で抽出した識別子を含む他のレコードをサブテーブルＴ３から検索して検索結果を保持し、削除手段１０７ｂに出力するとともに、検索された場合には、検索された各レコードのアドレスをメモリに記憶する（Ｓ１９３）。
【００９８】
検索手段１０６でレコードが検索された場合（Ｓ１９４でＹＥＳ）、削除したレコードが紐付けられていたマスターテーブルＴ１のレコードにはサブテーブルＴ３の他のレコードが紐付けられているということである。この場合、応答手段１０８がレコードを削除した旨の完了通知を生成し、検索手段１０６に完了通知を送信して第２削除処理を終了する（Ｓ１９５）。
【００９９】
例えば、アドレス「２０２」が削除対象としてメモリに記憶されているとき、検索手段１０６はステップＳ１９１において、このレコードの持つ識別子「Ｃ３」を抽出する。その後、図１６（ｂ）に示すように削除手段１０７ｂはステップＳ１９２において選択されている削除対象のレコードをサブテーブルＴ３から削除する。また、検索手段１０６はステップＳ１９３において識別子「Ｃ３」を含むレコードをサブテーブルＴ３から検索し、アドレス「２０３」、「２０５」、「２０６」、「２０７」及び「２０８」をメモリに記憶する。すなわち、図１６（ａ）及び図１６（ｂ）に示すように、アドレス「２０２」が紐付けられていたレコードと紐付けられるレコードが他にも存在するということである。
【０１００】
一方、検索手段１０６でレコードが検索されていない場合（Ｓ１９４でＮＯ）、削除したレコードが紐付けられていたマスターテーブルＴ１のレコードにはサブテーブルＴ３の他のレコードが紐付けられていないということである。この場合、検索手段１０６が、中間テーブルＴ２から削除したレコードと紐付けられるレコードを検索する（Ｓ１９６）。続いて、削除手段１０７ｂは、ステップＳ１９６で検索されたレコードを中間テーブルＴ２から削除する（Ｓ１９７）。この後、応答手段１０８がレコードを削除した旨の完了通知を生成し、検索手段１０６に完了通知を送信して第２削除処理を終了する（Ｓ１９８）。
【０１０１】
例えば、アドレス「２０４」が削除対象としてメモリに記憶されているとき、検索手段１０６はステップＳ１９１において、このレコードの持つ識別子「Ｃ２」を抽出する。その後、図１６（ｄ）に示すように削除手段１０７ｂはステップＳ１９２において選択されている削除対象のレコードをサブテーブルＴ３から削除する。また、検索手段１０６はステップＳ１９３においてサブテーブルＴ３から識別子「Ｃ２」を含むレコードを検索するが、サブテーブルＴ３には、識別子「Ｃ２」を含むレコードは有していない。したがって、サブテーブルＴ３ではアドレス「２０４」が紐付けられていたレコードと紐付けられるレコードが他には存在しないということである。そのため、検索手段１０６はステップＳ１９７において中間テーブルＴ２から識別子「Ｃ２」のレコードを検索し、アドレス「１０２」をメモリに記憶する。また、図１６（ｃ）に示すように削除手段１０７ｂはステップＳ１９８においてアドレス「１０２」のレコードを中間テーブルＴ２から削除する。
【０１０２】
上述したように、本願発明に係る文書管理装置１０では、親の文書と子の文書を直接関連づけるのではなく、中間テーブルを利用して親の文書と子の文書を関連づけている。そのため、親の文書で変更が生じ、この親の文書に複数の子の文書があった場合でも、複数の文書は変更せずに、対応する中間テーブルのレコードのみを変更すればよい。したがって、文書管理装置１０では、文書の管理が容易となる。
【０１０３】
すなわち、仮に、中間テーブルＴ２を利用しない２層構造のリレーショナルベースを利用した場合、図１７に示すように、親の文書で変更が生じた場合、当該親の文書に派生する子の文書の全てを変更する必要が生じる。しかしながら、中間テーブルＴ２を設けることで、このような問題は生じず、管理が容易になる。
【０１０４】
以上、実施形態を用いて本発明を詳細に説明したが、本発明は本明細書中に説明した実施形態に限定されるものではない。本発明の範囲は、特許請求の範囲の記載及び特許請求の範囲の記載と均等の範囲により決定されるものである。
【符号の説明】
【０１０５】
１０…文書管理装置
１００…ＣＰＵ
１０１…判定手段
１０２…第１解析手段
１０３…第２解析手段
１０４…生成手段
１０５…決定手段
１０６…検索手段
１０７…処理手段
１０７ａ…追加手段
１０７ｂ…削除手段
１０７ｃ…書換手段
１０８…応答手段
２００…通信手段
３００…記憶装置（記憶手段）
Ｔ１…マスターテーブル
Ｔ２…中間テーブル
Ｔ３…サブテーブル
Ｐ…文書管理プログラム
２０…クライアント端末
３０…ネットワーク
【図１】
2013257616.tif 000003
【図２】
2013257616.tif 000004
【図３】
2013257616.tif 000005
【図４】
2013257616.tif 000006
【図５】
2013257616.tif 000007
【図６】
2013257616.tif 000008
【図７】
2013257616.tif 000009
【図８】
2013257616.tif 000010
【図９】
2013257616.tif 000011
【図１０】
2013257616.tif 000012
【図１１】
2013257616.tif 000013
【図１２】
2013257616.tif 000014
【図１３】
2013257616.tif 000015
【図１４】
2013257616.tif 000016
【図１５】
2013257616.tif 000017
【図１６】
2013257616.tif 000018
【図１７】
2013257616.tif 000019