"複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御装置であって、前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理手段と、前記リソース管理手段によって管理されているリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて前記グラフからサブグラフを分割し、前記グラフと前記サブグラフに基づいて排他制御する排他制御手段と、を備えることを特徴とする排他制御装置。前記排他制御手段が、アクセスされる頻度の高いリソースが存在する場合に、当該アクセスされる頻度の高いリソースをサブグラフに分割することを特徴とする請求項1に記載の排他制御装置。前記排他制御手段が、アクセス状態の関連性の強い2つのリソースが存在する場合に、当該アクセス状態の関連性の強い2つのリソースをサブグラフに分割することを特徴とする請求項1に記載の排他制御装置。複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御方法であって、前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理ステップと、前記リソース管理手段によって管理されているリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて前記グラフからサブグラフを分割し、前記グラフと前記サブグラフに基づいて排他制御する排他制御ステップと、を備えることを特徴とする排他制御方法。データベースシステムの利用方法の拡大に伴い、データベースへのアクセス方法も多岐にわたっている。例えば、オンライン処理システムでは、短時間のトランザクションが限られた特定のリソースにアクセスする。バッチ処理システムでは、長時間のトランザクションが広範囲のリソースにアクセスする。データベースへのアクセス方法が変わると、トランザクション間の排他特性が変わる。限られた特定のリソースにアクセスするトランザクションは排他するリソースの範囲も限られており、短時間のトランザクションはリソースを排他する時間も短い。しかし、データベースのアクセス方法の異なるトランザクションが、同一のデータベースシステム中で混在して実行される場合、異なる特性の排他処理が同一の排他制御機構で処理される。これにより、ある業務のトランザクションで排他制御処理中に行なうグラフのアトミック操作が別業務のトランザクションが排他制御処理中に行なうグラフのアトミック操作の影響を受けて待ち時間が発生するため、トランザクション処理の同時実行性が向上しない不都合が生じる。上述した、グラフの分割管理方法は、ハッシュによってリソースをサブグラフに割り当てている。このため、このグラフの分割管理方法を用いても排他特性の異なる業務間でグラフのアトミック操作を分離できない。本発明の目的は、アクセス方法の違いにより排他特性の異なるトランザクションが混在しているデータベースシステムにおいて、トランザクション処理のボトルネックを解消することができる排他制御装置および排他制御方法を提供することである。上記目的を達成するため、本発明の排他制御装置は、複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御装置であって、前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理手段と、前記リソース管理手段によって管理されているリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて前記グラフからサブグラフを分割し、前記グラフと前記サブグラフに基づいて排他制御する排他制御手段と、を備える。好ましくは、本発明の排他制御装置は、前記排他制御手段が、アクセスされる頻度の高いリソースが存在する場合に、当該アクセスされる頻度の高いリソースをサブグラフに分割する。好ましくは、本発明の排他制御装置は、前記排他制御手段が、アクセス状態の関連性の強い2つのリソースが存在する場合に、当該アクセス状態の関連性の強い2つのリソースをサブグラフに分割する。また、本発明の排他制御方法は、複数のクライアントによるデータベースへのアクセスについて排他制御する排他制御方法であって、前記各クライアントの要求に応じて前記データベースに格納されているリソースにアクセスするために発行された各トランザクションのアクセス要求と、前記データベースに格納されている複数のリソースとの対応を示すリソース管理情報を管理するリソース管理ステップと、前記リソース管理手段によって管理されているリソース管理情報に基づいて前記各トランザクションの前記各リソースに対する排他と待ちの状態を示すグラフを作成し、前記各リソースへの所定のアクセス状態に応じて前記グラフからサブグラフを分割し、前記グラフと前記サブグラフに基づいて排他制御する排他制御ステップと、を備える。本発明によれば、データベースのアクセス方法の異なるトランザクションが、同一のデータベースシステム中で混在して実行される場合において、特定のトランザクションによる排他制御に伴うグラフのアトミック操作が頻繁に発生する場合にも、他のトランザクションの排他制御はそのアトミック操作に影響を受けることなく処理することができる。以下、本発明を適用した排他制御機構の一実施形態について説明する。図1は、本発明の実施形態に係る排他制御機構を備えたデータベースシステム101の構成の一例を示す図である。データベースシステム101には、データベース102が接続されている。また、データベースシステム101は、ネットワーク104を介してクライアント103a,103b,103nと通信することができる。データベースシステム101は、CPUCentralProcessingUnitと、メモリと、記憶装置とを有している。メモリは、RAMRandomAccessMemoryやROMReadOnlyMemory等を含む。メモリはデータベース管理プログラムを記憶している。CPUがデータベース管理プログラムを実行することにより、トランザクション管理部106と、リソース管理部107と、排他制御部108の各機能が実現される。トランザクション管理部106は、クライアント103a,103b,103nからの処理要求に対してトランザクションを生成して各要求間の整合性を管理し、各トランザクションをトランザクションIDによって管理する。リソース管理部107は、データベースの内部状態を管理し、トランザクションからの要求に応じてデータベースへのアクセスを制御する。排他制御部108は、競合するデータベース中のリソースに対してトランザクション間の排他制御を行なう。記憶装置は、ハードディスク装置や光ディスク装置等を含む。記憶装置は、データベース102を記憶している。データベース102は、データ表105a,105b,105n等のデータベースシステム101が管理対象とするデータを格納している。クライアント103a,103b,103nはデータベースシステム101を通じてデータベース102に格納されたデータにアクセスする。クライアント103a,103b,103nはそれぞれ異なる業務を行なう端末で、データベースへのアクセス頻度やアクセス対象とするデータの量が異なる。なお、クライアントの数は3つに限らず、2つでも4つ以上でも良い。また、複数のクライアントの機能を実現するためのプログラムが1台のコンピュータで実行されており、1台のコンピュータが複数のクライアントを含んでいても良い。図2は、排他制御のためのグラフを構築する従来の手順の例を示す図である。この例は、クライアント103aのデータベース102へのアクセスと、クライアント103bのデータベース102へのアクセスとが競合するようすを示している。クライアント103a,103b,103nがそれぞれデータベースシステム101へアクセスすると、トランザクション管理部106はそれぞれの要求に対してそれぞれトランザクションを発行する。そして、トランザクション管理部106は、トランザクションを管理するため、内部にトランザクション管理情報201を生成し、クライアントの識別子クライアントIDとトランザクションの識別子トランザクションIDの対応表を格納する。次に、トランザクション管理部106は、クライアント103a,103b,103nの要求に応じてデータベース102へのアクセスをリソース管理部107へ要求する。例えば、トランザクション管理部106は、クライアント103a,103b,103nの要求に対してそれぞれトランザクションtrn1,trn2,trn3を割り当てて、図2に示すトランザクション管理情報201を生成し、データベース102へのアクセスをリソース管理部107へ要求する。リソース管理部107は、トランザクションのアクセス要求とリソース管理部107が管理するデータベース102内のリソース情報をつき合わせて、該当するデータにアクセスする。そして、リソース管理部107は、アクセス要求を管理するため、内部にリソース管理情報203を生成し、トランザクションIDとリソースIDの対応表を格納する。例えば、データベース102に、行202b,行202c,行202nで構成される表202aが格納されており、表202a,行202b,行202c,行202nのリソースIDがそれぞれt1,t1r1,t1r2,t1rnであるとする。そして、クライアント103aから発生したトランザクションtrn1が表202aの行202bにアクセスを要求し、クライアント103nから発生したトランザクションtrn3が表202aの行202cにアクセスを要求し、その後クライアント103bから発生したトランザクションtrn2も表202aの行202bにアクセスを要求するとする。このとき、リソース管理部107は、図2に示すリソース管理情報203を生成する。次に、リソース管理部107はデータベース102へのアクセスに先立って、排他制御部108に対して該当リソースがアクセス可能であるかどうかを問い合わせる。排他制御部108は、リソース管理部107からトランザクションIDとリソースIDを受け取り、グラフ管理情報204を生成し、トランザクションがリソースに対して排他できるかまたは待ち状態になるかを判定する。例えば、クライアント103aから発生したトランザクションtrn1が表202aの行202bにアクセスし、その後クライアント103bから発生したトランザクションtrn2も表202aの行202bにアクセスする場合、リソース管理部107から排他制御部108へ渡される情報はそれぞれtrn1,t1r1とtrn2,t1r1である。図2に示すように、排他制御部108は、クライアント103aトランザクションtrn1がリソースt1r1にアクセス可能であるため、グラフ管理情報204中の該当レコードに排他状態を設定する。一方、クライアント103bトランザクションtrn2はリソースt1r1が既にクライアント103aトランザクションtrn1によって排他されているためアクセス不可となり、排他制御部108はグラフ管理情報204中の該当レコードには待ち状態を設定する。図3は、図2におけるグラフ管理情報204をグラフの形式で示す図である。トランザクションtrn1はリソースt1r1を排他しているため、トランザクションtrn2は待ち状態になる。トランザクションtrn3はトランザクションtrn1とトランザクションtrn2とは競合しないリソースt1r2を排他している。以下、上述したように構成されたデータベースシステム101において、各リソースへの所定のアクセス状態に応じて排他制御に用いるグラフを分割する方法を説明する。グラフを分割する方法には、アクセスされる頻度の高いリソースをサブグラフに格納する方法と、アクセス状態の関連性の強い2つのリソースをサブグラフに格納する方法がある。図4は、アクセスされる頻度の高いリソースをサブグラフに格納する方法において排他制御部108が利用するアクセス頻度管理情報401の例を示す図である。図4Aはグラフを分割する前のアクセス頻度管理情報401の例を示し、図4Bはグラフを分割した後のアクセス頻度管理情報401の例を示す。グラフID402はリソースID403が示すリソースがどのグラフまたはサブグラフに属しているかを示し、アクセス頻度404はリソースID403が示すリソースがアクセスされる頻度所定の期間、例えば1分間にアクセスされる回数の平均を示す。排他制御部108は、所定の期間ごとに各リソースがアクセスされる回数を集計し、アクセス頻度管理情報401を更新する。図4Aに示すように、グラフ1は、アクセスされる頻度の低いリソースt1r1およびリソースt1r2と、アクセスされる頻度の高いリソースt1r3を含んでいる。例として、グラフの分割条件をアクセスされる頻度50以上と設定した場合、グラフ1はアクセスされる頻度の低いリソースt1r1とリソースt1r2からなるサブグラフとアクセスされる頻度の高いリソースt1r3からなるサブグラフに分割される405。図4Bに示すように、排他制御部108は、グラフの分割条件を満たしていないリソースt1r1とリソースt1r2はグラフ1411に属したままとし、グラフの分割条件を満たしたリソースt1r3は新設したサブグラフ1412に属するように変更する。リソースt1r3のリソースIDにはサブクラス1に属していることを示す情報s1を付加し413、アクセス頻度404を0に初期化する414。図5は、アクセスされる頻度の高いリソースをサブグラフに格納する方法における分割処理の流れを示す図である。排他制御部108は、定期的に図5に示す処理を実施することでグラフを分割する。排他制御部108は、グラフの分割要否を決定するためアクセス頻度管理情報401中の全てのリソースについてアクセス頻度404を検査する501、502。排他制御部108は、アクセス頻度404が予め設定されたしきい値を下回っている場合は何も行なわない502:偽図4のリソースt1r1およびリソースt1r2に該当する。アクセス頻度404がしきい値以上である場合502:真は以下の処理を実行することでリソースをサブグラフに格納する。グラフの分割はグラフの構造を変更する必要があるため、排他制御処理と並列に実行できないアトミック操作である。排他制御部108は、排他制御処理が実施されないようにするためグラフにロックをかけた後503、サブグラフを作成する504図4のサブグラフ1に該当する。排他制御部108は、作成したサブグラフにグラフの分割条件を満たしたリソースの情報を登録し505図4の例では、リソースt1r3のグラフIDをグラフ1からサブグラフ1に変更することで、サブグラフにリソース情報の登録を行なっている、リソースIDにサブグラフに属していることを示す情報を付与する506図4のリソースs1t1r3に該当する。その後、排他制御部108は、分割前にリソースが属していたグラフからリソース情報を削除する507図4の例では、リソースt1r3のグラフIDをグラフ1からサブグラフ1に変更することで、グラフからリソース情報の削除を行なっている。以上でアトミック操作が終了するので、排他制御部108はグラフをアンロックする508。その後、排他制御部108は、506で変更したリソースIDを排他制御部108からリソース管理部107へ通知する509。図6は、アクセス状態の関連性の強い2つのリソースをサブグラフに格納する方法において排他制御部108が利用するリソース関連度管理情報601の例を示す図である。図6Aはグラフを分割する前のリソース関連度管理情報601の例を示し、図6Bはグラフを分割した後のリソース関連度管理情報601の例を示す。グラフID602は、リソースID603が示すリソースがどのグラフまたはサブグラフに属しているかを示す。関連リソースID604は、リソースID603が示すリソースと同一のトランザクションによってアクセスされるリソースを示す。関連度605は、リソースID603が示すリソースと関連リソースID604が示すリソースの関連度例えば、同一のトランザクションによってアクセスされた回数を示す。ここで、アクセス状態の関連性が強い2つのリソースとは、例えば、所定の期間に同一のトランザクションによってアクセスされた回数が多い2つのリソースをいう。排他制御部108は、所定の期間ごとに同一のトランザクションによってアクセスされる各リソースのアクセス回数を集計し、リソース関連度管理情報601を更新する。図6Aに示すように、リソースt1r1とリソースt1r4は関連度の高い関連リソースを持たない。一方、リソースt1r2とリソースt1r3は相互に関連度が高く例えば、リソースt1r2とリソースt1r3は同一のトランザクションによってアクセスされた回数が多い、リソースt1r2はリソースt1r3を関連度の高い関連リソースとして持ち、リソースt1r3はリソースt1r2を関連度の高い関連リソースとして持つ。例として、グラフの分割条件を関連度50以上と設定した場合、関連度の低いリソースt1r1とリソースt1r4からなるサブグラフと関連度の高いリソースt1r2とリソースt1r3からなるサブグラフに分割される。図6Bに示すように、排他制御部108は、グラフの分割条件を満たしていないリソースt1r1とリソースt1r4はグラフ1611に属したままとし、グラフの分割条件を満たしたリソースt1r2とリソースt1r3は新設したサブグラフ1612に属するように変更する。リソースt1r2とリソースt1r3のリソースIDにはサブクラス1に属していることを示す情報s1を付加し613,614、関連度を0に初期化する615。図7は、アクセス状態の関連性の強い2つのリソースをサブクラスに格納する方法における分割処理の流れを示す図である。排他制御部108は、定期的に図7に示す処理を実施することでグラフを分割する。排他制御部108は、グラフの分割要否を決定するため、リソース関連度管理情報601中の全てのリソースと関連リソースについて関連度を検査する701,702,703。排他制御部108は、関連度が予め設定されたしきい値を下回っている場合は何も行なわない703:偽図6のリソースt1r1とリソースt1r4に該当する。排他制御部108は、関連度がしきい値以上である場合703:真は以下の処理を実行することでリソースをサブグラフに格納する。グラフの分割はグラフの構造を変更する必要があるため、排他制御処理と並列に実行できないアトミック操作である。排他制御部108は、排他制御処理が実行されないようにするためグラフにロックをかけた後704、サブグラフが未作成の場合705:真はサブグラフを作成する705,706図6のサブグラフ1に該当する。排他制御部108は、作成したサブグラフにグラフの分割条件を満たしたリソースの情報を登録し707図6の例では、リソースt1r2とt1r3のグラフIDをグラフ1からサブグラフ1に変更することで、サブグラフにリソース情報の登録を行なっている、リソースIDにサブグラフに属していることを示す情報S1を付与する708図6のリソースs1t1r2とリソースs1t1r3に該当する。その後、排他制御部108は、分割前にリソースが属していたグラフからリソース情報を削除する709図6の例では、リソースt1r2とリソースt1r3のグラフIDをグラフ1からサブグラフ1に変更することで、グラフからリソース情報の削除を行なっている。以上でアトミック操作が終了するので、排他制御部108はグラフをアンロックする710。その後、708で変更したリソースIDを排他制御部108からリソース管理部107へ通知する711。図8は、リソースをサブグラフに分割した後の排他制御処理の流れを示す図である。リソース管理部107はデータベース102へのアクセスに先立って、トランザクションIDとリソースIDを指定して排他制御部108に該当リソースがアクセス可能であるかどうかを問い合わせる。排他制御部108は、リソース管理部107から問い合わせがあったリソースのリソースIDにサブグラフIDが含まれているかどうかを判断し、排他制御により操作対象とするグラフまたはサブグラフを決定する801。リソースIDにサブグラフIDが含まれている場合801:真、排他制御部108はリソースIDから操作対象のサブグラフを決定する802,803。リソースIDにサブグラフIDが含まれていない場合801:偽、排他制御部108は分割前のグラフを操作対象とする804。操作対象のグラフまたはサブグラフが決定した後の処理は、従来のグラフ操作による排他制御の手順と同様である。排他制御部108は、アトミック操作を保障するために操作対象のグラフまたはサブグラフをロックする805。そして、排他制御部108は、グラフ管理情報204中の操作対象のグラフまたはサブグラフにトランザクション情報が未登録の場合806:真は操作対象のグラフまたはサブグラフにトランザクション情報を追加し807、グラフ管理情報204中の操作対象のグラフまたはサブグラフにリソース情報が未登録の場合808:真は操作対象のグラフまたはサブグラフにリソース情報を追加する809。その後、排他制御部108は、排他制御対象のトランザクションとリソースのグラフ上の関係を検査して排他状態に遷移可能であるか、または待ち状態になるかを判定し810、判定結果をリソース管理部107に通知する。以上の処理が完了した後、排他制御部108は、アトミック操作を終了するためにグラフをアンロックする811。"