(57)【要約】【課題】データエレメントの間接参照を含むデータベースについて、その整合性を効率的に判断する。【解決手段】データベースの整合性を判断する装置を提供する。このデータベースには、各々のデータエレメントに対応付けて、当該データエレメントを他のデータエレメントに参照させるために当該データエレメントの保存先アドレスを含む間接参照エレメントが記録されている。この装置は、まず、各々のデータエレメントから、当該データエレメントに対応する間接参照エレメントの識別情報を読み出し、そのハッシュ値を生成する。また、各々のデータエレメントから、参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出し、そのハッシュ値を生成する。そして、それらのハッシュ値が一致することを条件に、データベースが整合していると判断する。【選択図】図５
2007102461.tif 000002
【特許請求の範囲】
【請求項１】
データベースの整合性を判断する装置であって、
前記データベースには、各々のデータエレメントに対応付けて、当該データエレメントを他のデータエレメントに参照させるために当該データエレメントの保存先アドレスを含む間接参照エレメントが記録されており、
各々のデータエレメントから、当該データエレメントに対応する間接参照エレメントの識別情報を読み出す第１読出部と、
各々のデータエレメントから、参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出す第２読出部と、
前記第１読出部によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第１生成部と、
前記第２読出部によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第２生成部と、
前記第１生成部によって生成されたハッシュ値、および、前記第２生成部によって生成されたハッシュ値が一致することを条件に、前記データベースが整合していると判断する判断部と
を備える装置。
【請求項２】
前記間接参照エレメントの各々には、当該間接参照エレメントに対応するデータエレメントの保存先アドレスが記録されており、
前記間接参照エレメントの各々から、当該間接参照エレメントに対応するデータエレメントの保存先アドレスを読み出す第３読出部と、
前記第３読出部によって各々の間接参照エレメントから読み出された保存先アドレスに基づいてハッシュ値を生成する第３生成部と、
前記第１読出部が間接参照エレメントの識別情報を読み出した各々のデータエレメントの保存先アドレスに基づいてハッシュ値を生成する第４生成部と
を更に備え、
前記判断部は、前記第３生成部によって生成されたハッシュ値、および、前記第４生成部によって生成されたハッシュ値が一致することを更に条件に、前記データベースが整合していると判断する
請求項１に記載の装置。
【請求項３】
前記間接参照エレメントの各々には、当該間接参照エレメントに対応するデータエレメントの保存先アドレスが、当該間接参照エレメントの識別情報に対応付けて記録されており、
前記間接参照エレメントの各々から、当該間接参照エレメントに対応するデータエレメントの保存先アドレス、および、当該間接参照エレメントの識別情報を読み出す第３読出部と、
前記第３読出部によって各々の間接参照エレメントから読み出された保存先アドレス、および、識別情報に基づいてハッシュ値を生成する第３生成部と、
前記第１読出部によって各々のデータエレメントから読み出された識別情報、および、前記第１読出部が当該識別情報を読み出した各々のデータエレメントの保存先アドレスに基づいてハッシュ値を生成する第４生成部と
を更に備え、
前記判断部は、前記第３生成部によって生成されたハッシュ値、および、前記第４生成部によって生成されたハッシュ値が一致することを更に条件に、前記データベースが整合していると判断する
請求項１に記載の装置。
【請求項４】
各々のデータエレメントは、当該データエレメントを参照する他のデータエレメントの数である参照エレメント数を更に含み、
前記第１読出部は、各々のデータエレメントから、前記識別情報に対応付けて更に前記参照エレメント数を読み出し、
前記第１生成部は、前記第１読出部によって各々のデータエレメントから読み出された識別情報を、当該識別情報に対応する前記参照エレメント数により重み付けした値に基づいてハッシュ値を生成する
請求項３に記載の装置。
【請求項５】
前記データベースには、複数の前記間接参照エレメントの各々に対応付けて、当該間接参照エレメントが無効であるか否かを示す制御情報が記録されており、
前記第３読出部は、無効である旨を示す前記制御情報に対応する間接参照エレメントを除外した複数の間接参照エレメントの各々から、当該間接参照エレメントに対応するデータエレメントの保存先アドレス、および、当該間接参照エレメントの識別情報を読み出す
請求項３に記載の装置。
【請求項６】
データエレメントの保存先アドレスを変更することにより前記データベースを再編成する再編成部と、
再編成された前記データベースに対応付けて再編成の合計の回数である再編成回数を記録し、再編成の対象となったデータエレメントに対応する間接参照エレメントに対応付けて前記再編成回数を前記制御情報として記録する再編成制御部と
を更に備え、
前記第３読出部は、前記間接参照エレメントに対応して記録された再編成回数が、前記データベースに対応する再編成回数よりも少ないことを条件に、当該間接参照エレメントが無効であると判断する
請求項５に記載の装置。
【請求項７】
前記判断部により前記データベースが整合していると判断された状態において、何れかのデータエレメントが前記データベースから削除され、かつ当該データエレメントに対応する間接参照エレメントが無効化されたことに応じ、
前記第３生成部により生成されたハッシュ値から、無効化された当該間接参照エレメントに含まれていた当該データエレメントの保存先アドレス、および、無効化された当該間接参照エレメントの識別情報に基づくハッシュ値を差し引く第３調整部と、
前記第４生成部により生成されたハッシュ値から、削除された当該データエレメントに含まれていた識別情報、および、当該データエレメントの保存先アドレスに基づくハッシュ値を差し引く第４調整部と
を更に備え、
前記判断部は、前記第３調整部により変更されたハッシュ値、および、前記第４調整部により変更されたハッシュ値が一致することを条件に、当該整合が維持されていると判断する
請求項３に記載の装置。
【請求項８】
前記判断部により前記データベースが整合していると判断された状態において、
何れかのデータエレメントが前記データベースから削除され、かつ当該データエレメントに対応する間接参照エレメントが無効化されたことに応じ、前記第１生成部により生成されたハッシュ値から、当該無効化された間接参照エレメントの識別情報を差し引く第１調整部と、
何れかのデータエレメントから他のデータエレメントに対する参照が変更されたことに応じ、前記第２生成部により生成されたハッシュ値から、変更前に当該データエレメントに含まれていた識別情報を差し引き、当該ハッシュ値に、変更後に当該データエレメントに記録された識別情報を加える第２調整部とを更に備え、
前記判断部は、前記第１調整部により変更されたハッシュ値、および、前記第２調整部により変更されたハッシュ値が一致することを条件に、当該整合が維持されていると判断する
請求項１に記載の装置。
【請求項９】
前記判断部により前記データベースが整合していると判断された状態において、何れかのデータエレメントから他のデータエレメントに対する参照が追加されたことに応じ、
追加前に当該他のデータエレメントに含まれていた前記参照エレメント数に対する、追加後に当該他のデータエレメントに含まれる前記参照エレメント数の増分に、当該他のデータエレメントに対応する間接参照エレメントの識別情報を乗じた値を、前記第１生成部により生成されたハッシュ値に加える第１調整部と、
当該データエレメントに追加された、参照先のデータエレメントに対応する間接参照エレメントの識別情報を、前記第２生成部により生成されたハッシュ値に加える第２調整部と
を更に備える請求項４に記載の装置。
【請求項１０】
前記判断部により前記データベースが整合していると判断された状態において、何れかのデータエレメントが前記データベースに追加されたことに応じ、
当該データエレメントに対応付けて追加される間接参照エレメントに対して新たに割り当てられる識別情報、および、当該データエレメントの保存先アドレスに基づくハッシュ値を、前記第３生成部により生成されたハッシュ値に加える第３調整部と、
追加された当該データエレメントに含まれる、当該データエレメントに対応する間接参照エレメントの識別情報、および、当該データエレメントの保存先アドレスに基づくハッシュ値を、前記第４生成部により生成されたハッシュ値に加える第４調整部と
を更に備える請求項４に記載の装置。
【請求項１１】
情報処理装置によって、データベースの整合性を判断する方法であって、
前記データベースには、各々のデータエレメントに対応付けて、当該データエレメントを他のデータエレメントに参照させるために当該データエレメントの保存先アドレスを含む間接参照エレメントが記録されており、
各々のデータエレメントから、当該データエレメントに対応する間接参照エレメントの識別情報を読み出す第１読出段階と、
各々のデータエレメントから、参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出す第２読出段階と、
前記第１読出段階において各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第１生成段階と、
前記第２読出段階において各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第２生成段階と、
前記第１生成段階において生成されたハッシュ値、および、前記第２生成段階において生成されたハッシュ値が一致することを条件に、前記データベースが整合していると判断する判断段階と
を備える方法。
【請求項１２】
データベースの整合性を判断する装置として、情報処理装置を機能させるプログラムであって、
前記データベースには、各々のデータエレメントに対応付けて、当該データエレメントを他のデータエレメントに参照させるために当該データエレメントの保存先アドレスを含む間接参照エレメントが記録されており、
前記情報処理装置を、
各々のデータエレメントから、当該データエレメントに対応する間接参照エレメントの識別情報を読み出す第１読出部と、
各々のデータエレメントから、参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出す第２読出部と、
前記第１読出部によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第１生成部と、
前記第２読出部によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第２生成部と、
前記第１生成部によって生成されたハッシュ値、および、前記第２生成部によって生成されたハッシュ値が一致することを条件に、前記データベースが整合していると判断する判断部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースの整合性を判断する装置、およびその方法に関する。特に、本発明は、データエレメントの間接参照を含むデータベースの整合性を判断する装置、およびその方法に関する。
【背景技術】
【０００２】
従来、階層型データベース・システム（例えば、ＩＢＭ  ＩＭＳ  ＤＬ／Ｉ（ＩＭＳ））は、各々のデータエレメントをツリー構造で管理する。このデータベースにおいて、最小単位のデータをデータエレメントと呼び、ツリー構造の最上位に位置するデータエレメントをルートエレメントと呼ぶ。ルートエレメントは従属エレメントを有し、更にその従属エレメントは従属エレメントを有する。具体的には、各データエレメントは、その従属エレメントを指定させるために、その従属エレメントの保存先アドレスを指定したポインタを有している。各データエレメントの保存先アドレスは、例えば、相対バイトアドレス（ＲＢＡ：Ｒｅｌａｔｉｖｅ  Ｂｙｔｅ  Ａｄｄｒｅｓｓ）によって指定される。これは、データベースを記録するパーティションの特定のアドレスを基準としたアドレス値の相対値である。
【０００３】
このようなツリー構造は、通常、同一のパーティション内に形成される場合が多い。但し、大規模なデータベースを構築する場合には、異なる複数のパーティション間に論理関係と呼ばれる関連付けを行うことによって、ツリー構造を複数のパーティション内に形成させることもできる。この関連付けを実現するデータベースとしては、ＨＡＬＤＢ（ＩＭＳ  Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  Ｌａｒｇｅ  Ｄａｔａｂａｓｅ）が挙げられる。ＨＡＬＤＢにおいては、間接参照エレメント（Ｉｎｄｉｒｅｃｔ  Ｌｉｓｔ  Ｅｌｅｍｅｎｔ）によって関連付けを実現する（特許文献１および非特許文献１を参照。）。これにより、複数のパーティションをあたかも１つのデータベースのように操作させることができる。
【０００４】
データベースは、コンパクションやデフラグメンテーションなどの再編成処理によって、アクセス効率を向上させることができる。この再編成処理は、分散して記録された複数のデータエレメントを連続領域に記録しなおす処理であるから、データエレメントの保存先アドレスが変更される場合がある。また、再編成処理は、パーティション間の論理関係に関わらずパーティション毎に行うことができる。したがって、複数のパーティションに格納されたデータベースにおいて、データエレメントの従属関係を保存先アドレスによって指定したのでは、再編成処理前のツリー構造が適切に維持できない。
【０００５】
このため、ＨＡＬＤＢにおいて、データベースには、各々のデータエレメントに対応付けて、当該データエレメントを他のデータエレメントに参照させるために当該データエレメントの保存先アドレスを含む間接参照エレメントが記録されている。そして、参照元のデータエレメント（以下、ソースデータエレメント）は、参照先のデータエレメント（以下、ターゲットデータエレメント）を参照するために、ターゲットデータエレメントの保存先アドレスのみならず、そのターゲットデータエレメントに対応する間接参照エレメントの識別情報を有する。
【０００６】
ターゲットデータエレメントが属するパーティションにおいて再編成処理が行われると、間接参照エレメントが有する保存先アドレスは、再編成処理後の適切な保存先アドレスに更新される。この間接参照エレメントを参照することによって、ソースデータエレメントに含まれるターゲットデータエレメントの保存先アドレスを、再編成処理後の適切な値に更新することができる。
【特許文献１】米国特許第５９３３８２０号
【非特許文献１】The Complete IMS HALDB Guide: All You Need to Know To Manage HALDBs, URL http://www.redbooks.ibm.com/redbooks/pdfs/sg246945.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００７】
データベースの再編成処理においては、データエレメントを記録する位置の変更のみならず、データベースの定義変更、データエレメントの削除、パーティショニングの変更が行われる場合がある。このようにデータベースの構成が変更される場合には、データエレメントの従属関係が適切に維持されているか否かを確認することが望ましい。この確認は、データベースの整合性を判断することによって実現される。
【０００８】
整合性の判断としては、ハッシュチェックおよびフルチェックの２種類が用いられている。ハッシュチェックにおいて、データベース管理システム（以下、ＤＢＭＳ）は、各々のデータエレメントから参照先のデータエレメントのＲＢＡを読み出してハッシュ値を生成する。また、ＤＢＭＳは、各々のデータエレメントのＲＢＡを読み出してハッシュ値を生成する。そして、ハッシュ値が一致することを条件にデータベースが整合していると判断する。
【０００９】
ハッシュ値が一致しなければフルチェックを行う。ＤＢＭＳは、各々のデータエレメントから参照先のデータエレメントのＲＢＡを読み出し、各々のデータエレメントのＲＢＡを読み出し、互いに一致するか否かを判断する。これによって、整合しているか否かのみならず、整合していない箇所までを適切に判断することができる。しかしながら、間接参照エレメントを導入したデータベースにおいて、従来、整合性の判断を効率的に行う方法は提案されていなかった。
【００１０】
そこで本発明は、上記の課題を解決することのできる装置、方法、およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明においては、データベースの整合性を判断する装置であって、データベースには、各々のデータエレメントに対応付けて、当該データエレメントを他のデータエレメントに参照させるために当該データエレメントの保存先アドレスを含む間接参照エレメントが記録しており、各々のデータエレメントから、当該データエレメントに対応する間接参照エレメントの識別情報を読み出す第１読出部と、各々のデータエレメントから、参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出す第２読出部と、第１読出部によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第１生成部と、第２読出部によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する第２生成部と、第１生成部によって生成されたハッシュ値、および、第２生成部によって生成されたハッシュ値が一致することを条件に、データベースが整合していると判断する判断部とを備える装置、当該装置によってデータベースの整合性を判断する方法およびプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１２】
本発明によれば、データエレメントの間接参照を含むデータベースについて、その整合性を効率的に判断できる。
【発明を実施するための最良の形態】
【００１３】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１４】
図１は、データベース管理装置１０の全体構成を示す。データベース管理装置１０は、データベース２０に対してアクセスすると共に、データベース２０の整合性を判断する。具体的には、データベース管理装置１０は、アクセス部１５と、再編成部１８と、整合判断ユニット３０と、維持判断ユニット４０とを備える。アクセス部１５は、利用者の要求に応じて、または、予め設定されたスケジュールに従ってデータベース２０に対してアクセスする。再編成部１８は、データベース２０中のデータエレメントの保存先アドレスを変更することによりデータベース２０を再編成する。この再編成によって、複数のデータエレメントがデータベース２０中の連続領域に配置され、データベース２０に対するアクセスの効率を向上できる。
【００１５】
整合判断ユニット３０は、データベース２０の再編成に応じ、データベース２０の整合性を判断して判断結果を出力する。維持判断ユニット４０は、整合判断ユニット３０によってデータベース２０が整合していると判断された状態において、データベース２０が更新されたことに応じ、データベース２０の整合性が維持されているか否かを判断する。本実施例に係るデータベース管理装置１０は、データベース２０が複数のパーティションによって構成されており、かつ、それぞれのパーティションが独立して再編成され得る場合であっても、データベース２０の整合性を適切に判断することを目的とする。
【００１６】
図２は、データベース２０のデータ構造の一例を示す。データベース２０は、複数のパーティション、例えば、パーティション２００−１と、パーティション２００−２とを有する。パーティション２００−１は、属性情報２１０−１と、データ記録部２２０−１と、参照記録部２６０−１とを含む。属性情報２１０−１は、パーティションの識別情報（ＩＤ）を含む。また、属性情報２１０−１は、パーティション２００−１が再編成された合計の回数である再編成回数を含む。例えば、パーティション２００−１のＩＤは１であり、パーティション２００−１の再編成回数は４回である。また、パーティション２００−２は、属性情報２１０−２と、データ記録部２２０−２と、参照記録部２６０−２とを含む。属性情報２１０−２は、パーティションの識別情報（ＩＤ）を含む。また、属性情報２１０−２は、パーティション２００−２が再編成された合計の回数である再編成回数を含む。例えば、パーティション２００−２のＩＤは２であり、パーティション２００−２の再編成回数は５回である。
【００１７】
データ記録部２２０−１は、複数のデータエレメントを記録しており、このうちの１つはデータエレメント２３０−１である。また、参照記録部２６０−１は、データエレメント２３０−１に対応付けて、データエレメント２３０−１を他のデータエレメントに参照させるためにデータエレメント２３０−１の保存先アドレスを含む間接参照エレメント２７０−１を記録している。
【００１８】
データエレメント２３０−１は、接頭部２４０−１およびデータ部２５０−１を含む。また、接頭部２４０−１は、データエレメント２３０−１を参照する他のデータエレメントの数である参照エレメント数を含む。参照エレメント数が複数であれば、１つのデータエレメント２３０−１に対し、他の複数のデータエレメントから参照されることとなる。また、この参照エレメント数は、参照エレメント数の数値それ自体でなくともよく、参照エレメント数を識別するための情報であってもよい。本図では、参照エレメント数を識別するための情報を、ＳＣという記号で示す。このＳＣは、データエレメントの種類を示す情報である。参照エレメント数は、ＳＣによって定まる場合と、同じＳＣであってもデータエレメント毎に異なる場合がある。後者の場合は、ＳＣの他にデータエレメント毎に参照エレメント数を保持するフィールドが存在する。
【００１９】
接頭部２４０−１は、データエレメント２３０−１の参照先のデータエレメントに対応する間接参照エレメントの識別情報を含む。この識別情報は、例えば、ＩＬＫ（Ｉｎｄｉｒｅｃｔ  Ｌｉｓｔ  Ｋｅｙ）と呼ばれる。本図の例においてデータエレメント２３０−１の参照先のデータエレメントはデータエレメント２３０−２である。そして、参照記録部２６０−２は、データエレメント２３０−２に対応付けて間接参照エレメント２７０−２を記録している。よって、接頭部２４０−１は、データエレメント２３０−１の参照先のデータエレメントに対応する間接参照エレメントである間接参照エレメント２７０−２の識別情報を含む。
【００２０】
接頭部２４０−１は、データエレメント２３０−１の参照先のデータエレメントの保存先アドレスを含む。この保存先アドレスは、ＲＢＡ（Ｒｅｌａｔｉｖｅ  Ｂｙｔｅ  Ａｄｄｒｅｓｓ）と呼ばれ、パーティション２００−２中の特定の基準アドレスからの相対的な位置を示す。このため、パーティション２００−２が再編成されてデータエレメント２３０−２の保存先アドレスが変更された場合には、接頭部２４０−１に記録されたデータエレメント２３０−２の保存先アドレスは不正確となる。また、接頭部２４０−１は、データエレメント２３０−１に対応する間接参照エレメント２７０−１の識別情報（ＩＬＫ：Ｉｎｄｉｒｅｃｔ  Ｌｉｓｔ  Ｋｅｙ）を含む。
【００２１】
間接参照エレメント２７０−１には、間接参照エレメント２７０−１に対応するデータエレメント２３０−１の保存先アドレス（ＲＢＡ）が、間接参照エレメント２７０−１の識別情報（ＩＬＫ）に対応付けて記録されている。他のデータエレメントからデータエレメント２３０−１を参照する場合には、アクセス部１５は、この識別情報（ＩＬＫ）によって間接参照エレメント２７０−１を特定し、間接参照エレメント２７０−１中の保存先アドレス（ＲＢＡ）を読み出すことによりデータエレメント２３０−１を特定できる。また、間接参照エレメント２７０−１は、間接参照エレメント２７０−１に対応するデータエレメント２３０−１が記録されているパーティション２００−１の識別情報（ＩＤ）と、データエレメント２３０−１が再編成の対象となった再編成回数とを含む。この再編成回数は、再編成部１８によってデータエレメント２３０−１が再編成される毎に１増加される。
【００２２】
ここで、データベース２０に対する削除・変更操作によってデータエレメント２３０−１が無効になった場合であっても、データエレメント２３０−１やそれに対応する間接参照エレメント２７０−１は、削除されずにデータベース２０内に残る場合がある。この場合には、データエレメント２３０−１は再編成の対象とならないので、再編成が行われた場合であっても、間接参照エレメント２７０−１に含まれる再編成回数は増加しない。即ち、属性情報２１０−１に記録された再編成回数が４回であっても、間接参照エレメント２７０−１に含まれる再編成回数は、４回未満の値となる。
【００２３】
この再編成回数は、この間接参照エレメント２７０−１が無効であるか否かを示す制御情報の役割を果たす。即ち例えば、後述する第３読出部３５０は、間接参照エレメントに対応して記録された再編成回数が、データベース２０に対応する再編成回数よりも少ないことを条件に、その間接参照エレメントが無効であると判断する。本図の例において、間接参照エレメント２７０−１には、再編成回数として４回が記録されており、属性情報２１０−１には、再編成回数として４回が記録されており、これらの回数は一致する。従って、第３読出部３５０は、間接参照エレメント２７０−１が有効であると判断する。一方で、間接参照エレメント２７２には、再編成回数として３回が記録されており、属性情報２１０−１に記録された再編成回数とは異なる。このため、第３読出部３５０は、間接参照エレメント２７２を無効であると判断する。
【００２４】
データ記録部２２０−２は、複数のデータエレメントを記録しており、このうちの１つは２３０−２である。また、参照記録部２６０−２は、データエレメント２３０−２に対応付けて、データエレメント２３０−２を他のデータエレメントに参照させるためにデータエレメント２３０−２の保存先アドレスを記録した間接参照エレメント２７０−２を記録している。データエレメント２３０−２は、接頭部２４０−２およびデータ部２５０−２を含む。また、接頭部２４０−２は、データエレメント２３０−２の参照エレメント数を含む。接頭部２４０−２は、データエレメント２３０−２の参照先のデータエレメントに対応する間接参照エレメントの識別情報（ＩＬＫ）を含む。また、接頭部２４０−２は、データエレメント２３０−２の参照先のデータエレメントの保存先アドレスを含む。
【００２５】
また、接頭部２４０−２は、データエレメント２３０−２に対応する間接参照エレメント２７０−２の識別情報（ＩＬＫ）を含む。間接参照エレメント２７０−２は、間接参照エレメント２７０−２に対応するデータエレメント２３０−２の保存先アドレス（ＲＢＡ）を、間接参照エレメント２７０−２の識別情報（ＩＬＫ）に対応付けて含む。データエレメント２３０−１からデータエレメント２３０−２を参照する場合には、アクセス部１５は、まず、この識別情報（ＩＬＫ）によって間接参照エレメント２７０−２を特定する。そして、アクセス部１５は、間接参照エレメント２７０−２中の保存先アドレス（ＲＢＡ）を読み出すことによりデータエレメント２３０−２を特定する。これによりデータエレメント２３０−１中に含まれるデータエレメント２３０−２の保存先アドレス（ＲＢＡ）が不正確な場合であってもデータエレメント２３０−２を適切に参照できる。
【００２６】
図３は、整合判断ユニット３０の機能構成を示す。整合判断ユニット３０は、再編成制御部３００と、第１読出部３１０と、第２読出部３２０と、第１生成部３３０と、第２生成部３４０と、第３読出部３５０と、第３生成部３６０と、第４生成部３７０と、判断部３８０とを有する。再編成制御部３００は、再編成されたデータベース２０に対応付けて再編成の合計の回数である再編成回数を記録する。具体的には、再編成制御部３００は、データベース２０中のパーティション２００−１が再編成されたことを条件に、属性情報２１０−１に記録された再編成回数を１増加させる。
【００２７】
また、再編成制御部３００は、再編成の対象となったデータエレメントに対応する間接参照エレメントに対応付けて、再編成回数を制御情報として記録する。具体的には、再編成制御部３００は、パーティション２００−１が再編成されたことを条件に、更新された再編成回数を、間接参照エレメント２７０−１中に記録する。なお、参照記録部２６０−１は、対応するデータエレメントが削除されたために無効となった間接参照エレメントをそのまま記録していてもよい。この場合、再編成制御部３００は、無効となった間接参照エレメントについては再編成回数を更新しない。このため、パーティション２００−１が再編成された場合であっても元の再編成回数がそのまま記録された状態となる。これにより、有効な間接参照エレメントおよび無効な間接参照エレメントを適切に区別することができる。
【００２８】
第１読出部３１０は、データベース２０が再編成されたことに応じ、各々のデータエレメントからそのデータエレメントに対応する間接参照エレメントの識別情報を読み出す。例えば、第１読出部３１０は、データエレメント２３０−２から、データエレメント２３０−２に対応する間接参照エレメント２７０−２のＩＬＫを読み出す。また、第１読出部３１０は、各々のデータエレメントから、その間接参照エレメントの識別情報に対応付けて更に参照エレメント数を読み出す。
【００２９】
第２読出部３２０は、データベース２０が再編成されたことに応じ、各々のデータエレメントからそのデータエレメントの参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出す。例えば、第２読出部３２０は、データエレメント２３０−１から、データエレメント２３０−１の参照先のデータエレメント２３０−２に対応する間接参照エレメント２７０−２のＩＬＫを読み出す。
【００３０】
第１生成部３３０は、第１読出部３１０によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する。具体的には、第１生成部３３０は、第１読出部３１０によって各々のデータエレメントから読み出された識別情報を、その識別情報に対応する参照エレメント数により重み付けした値に基づいてハッシュ値を算出する。処理の一例として、まず、第１生成部３３０は、読み出された識別情報の各々に、その識別情報の参照エレメント数を乗じる。例えば、識別情報が０ｘ０２００であり参照エレメント数が４であれば、第１生成部３３０は、これらを乗じた０ｘ０８００を算出する。そして、第１生成部３３０は、算出した値を各々のデータエレメントについて合計することによりハッシュ値とする。このように算出されたハッシュ値を第１ハッシュ値とする。
【００３１】
第２生成部３４０は、第２読出部３２０によって各々のデータエレメントから読み出された識別情報のハッシュ値を算出する。第２生成部３４０は、それらの識別情報を所定の法の下で合計することによりハッシュ値を生成してもよい。このハッシュ値を第２ハッシュ値とする。第３読出部３５０は、間接参照エレメントの各々から、その間接参照エレメントに対応するデータエレメントの保存先アドレス、および、その間接参照エレメントの識別情報（ＩＬＫ）を読み出す。この際、第３読出部３５０は、無効である旨を示す制御情報に対応する間接参照エレメントを除外したその他の間接参照エレメントの各々から、その間接参照エレメントに対応するデータエレメントの保存先アドレス、および、その間接参照エレメントの識別情報を読み出す。
【００３２】
第３生成部３６０は、第３読出部３５０によって各々の間接参照エレメントから読み出された保存先アドレス、および、識別情報（ＩＬＫ）の組に基づいてハッシュ値を生成する。このハッシュ値を第３ハッシュ値とする。第４生成部３７０は、第１読出部３１０によって各々のデータエレメントから読み出された識別情報、および、第１読出部３１０がその識別情報を読み出した各々のデータエレメントの保存先アドレスの組に基づいてハッシュ値を生成する。このハッシュ値を第４ハッシュ値とする。
【００３３】
判断部３８０は、第１生成部３３０によって生成された第１ハッシュ値、および、第２生成部３４０によって生成された第２ハッシュ値が一致するか否かを判断する。また、判断部３８０は、第３生成部３６０によって生成された第３ハッシュ値、および、第４生成部３７０によって生成された第４ハッシュ値が一致するか否かを判断する。何れも一致することを条件に、判断部３８０は、データベース２０が整合していると判断する。
【００３４】
図４は、維持判断ユニット４０の機能構成を示す。維持判断ユニット４０は、更新ログ記録部４００と、第１調整部４１０と、第２調整部４２０と、第３調整部４３０と、第４調整部４４０とを有する。更新ログ記録部４００は、アクセス部１５によってデータベース２０が更新される毎に、その更新の処理内容を記録する。第１調整部４１０は、判断部３８０によりデータベース２０が整合していると判断された状態において、何れかのデータエレメントがデータベース２０から削除され、かつそのデータエレメントに対応する間接参照エレメントが無効化されたか否かを判断する。また、第１調整部４１０は、判断部３８０によりデータベース２０が整合していると判断された状態において、何れかのデータエレメントから他の何れかのデータエレメントに対する参照が追加されたか否かを判断する。これらの判断は、更新ログ記録部４００を参照することによって行われる。
【００３５】
何れかのデータエレメントがデータベース２０から削除され、かつそのデータエレメントに対応する間接参照エレメントが無効化されたことに応じ、第１調整部４１０は、第１生成部３３０により生成された第１ハッシュ値を変更する。具体的には、第１調整部４１０は、第１ハッシュ値から、無効化されたその間接参照エレメントの識別情報を差し引く。差し引く識別情報の値は、その識別情報に対応する参照エレメント数によって重み付けされることが望ましい。また、何れかのデータエレメントから他の何れかのデータエレメントに対する参照が追加されたことに応じ、第１調整部４１０は、第１ハッシュ値を変更する。
【００３６】
第２調整部４２０は、何れかのデータエレメントから他のデータエレメントに対する参照が変更または追加されたか否かを更新ログ記録部４００に基づいて判断する。第２調整部４２０は、何れかのデータエレメントから他のデータエレメントに対する参照が変更または追加されたことに応じ、第２生成部３４０により生成された第２ハッシュ値を変更する。例えば、第２調整部４２０は、第２ハッシュ値から、変更前にそのデータエレメントに記録されていた識別情報を差し引き、差し引いたそのハッシュ値に、変更後にそのデータエレメントの記録された識別情報を加える。
【００３７】
第３調整部４３０は、判断部３８０によりデータベースが整合していると判断された状態において、何れかのデータエレメントがデータベース２０から削除され、かつそのデータエレメントに対応する間接参照エレメントが無効化されたか否かを判断する。また、第３調整部４３０は、何れかのデータエレメントがデータベース２０に追加されたか否かを判断する。第３調整部４３０は、何れかのデータエレメントがデータベースから削除され、かつそのデータエレメントに対応する間接参照エレメントが無効化されたことを条件に、または、何れかのデータエレメントが追加されたことを条件に、第３生成部３６０により生成された第３ハッシュ値を変更する。例えば、第３生成部３６０は、第３ハッシュ値から、無効化されたその間接参照エレメントに記録されていたそのデータエレメントの保存先アドレス、および、無効化されたその間接参照エレメントの識別情報の組に基づくハッシュ値を差し引く。
【００３８】
また、第４調整部４４０は、何れかのデータエレメントがデータベースから削除され、かつそのデータエレメントに対応する間接参照エレメントが無効化されたことを条件に、または、何れかのデータエレメントが追加されたことを条件に、第４生成部３７０により生成された第４ハッシュ値を変更する。例えば、第４調整部４４０は、第４ハッシュ値から、削除されたそのデータエレメントに記録されていた識別情報、および、そのデータエレメントの保存先アドレスの組に基づくハッシュ値を差し引く。
【００３９】
以上のハッシュ値の変更を受けて、判断部３８０は、第１調整部４１０により変更された第１ハッシュ値、および、第２調整部４２０により変更された第２ハッシュ値を比較する。また、判断部３８０は、第３調整部４３０により変更された第３ハッシュ値、および、第４調整部４４０により変更された第４ハッシュ値を比較する。判断部３８０は、何れも一致することを条件に、データベース２０の整合が維持されていると判断する。
【００４０】
図５は、整合判断ユニット３０がデータベース２０の整合性を判断する処理のフローチャートを示す。図６は、図５に続く処理のフローチャートを示す。データベース２０に対する再編成が完了したことに応じ、整合判断ユニット３０は、以下の処理を行う。まず、第１読出部３１０は、各々のデータエレメントからそのデータエレメントに対応する間接参照エレメントの識別情報を読み出す（Ｓ５００）。この際、第１読出部３１０は、その識別情報に対応付けて、その間接参照エレメントが他のデータエレメントから参照される参照エレメント数を更に読み出す。次に、第２読出部３２０は、各々のデータエレメントからそのデータエレメントの参照先のデータエレメントに対応する間接参照エレメントの識別情報を読み出す（Ｓ５１０）。
【００４１】
そして、第１生成部３３０は、第１読出部３１０によって各々のデータエレメントから読み出された識別情報のハッシュ値を生成する（Ｓ５２０）。このハッシュ値の生成にあたって、第１生成部３３０は、各々の識別情報を、対応する参照エレメント数によって重み付けする（例えば、識別情報に参照エレメント数を乗じる）。このハッシュ値を第１ハッシュ値と呼ぶ。第２生成部３４０は、第２読出部３２０によって読み出された、各々のデータエレメントの参照先のデータエレメントに対応する間接参照エレメントの識別情報のハッシュ値を算出する（Ｓ５３０）。このハッシュ値を第２ハッシュ値と呼ぶ。判断部３８０は、第１生成部３３０によって生成された第１ハッシュ値、および、第２生成部３４０によって生成された第２ハッシュ値が一致するか否かを判断する（Ｓ５４０）。
【００４２】
これらのハッシュ値が一致しないことを条件に（Ｓ５４０：ＮＯ）、判断部３８０は、データベース２０が整合していないと判断する（Ｓ５５０）。この場合には、整合判断ユニット３０は、データベース２０のフルチェックを行って、整合していない箇所を検出してもよい。一致したことを条件に（Ｓ５４０：ＹＥＳ）、第３読出部３５０は、間接参照エレメントの各々から、その間接参照エレメントに対応するデータエレメントの保存先アドレス、および、その間接参照エレメントの識別情報（ＩＬＫ）を読み出す（Ｓ６００）。
【００４３】
そして、第３生成部３６０は、第３読出部３５０によって各々の間接参照エレメントから読み出された保存先アドレス、および、識別情報（ＩＬＫ）の組に基づいてハッシュ値を生成する（Ｓ６１０）。このハッシュ値を第３ハッシュ値と呼ぶ。第４生成部３７０は、第１読出部３１０によって各々のデータエレメントから読み出された識別情報、および、第１読出部３１０がその識別情報を読み出した各々のデータエレメントの保存先アドレスの組に基づいてハッシュ値を生成する（Ｓ６２０）。このハッシュ値を第４ハッシュ値と呼ぶ。
【００４４】
判断部３８０は、第３生成部３６０によって生成された第３ハッシュ値、および、第４生成部３７０によって生成された第４ハッシュ値が一致するか否かを判断する（Ｓ６３０）。一致しないことを条件に（Ｓ６３０：ＮＯ）、判断部３８０は、データベース２０が整合していないと判断する（Ｓ６７０）。一致することを条件に、判断部３８０は、その他の部分の整合性を判断する（Ｓ６４０）。例えば、判断部３８０は、以下の整合性判断を行ってもよい。
【００４５】
判断部３８０は、データベース２０に含まれる各々のデータエレメントの内容に基づき、それらのデータエレメントの参照先のデータエレメントの数の合計を算出する。また、判断部３８０は、データベース２０に含まれる有効な間接参照エレメントの数の合計を算出する。これらの合計が一致することを条件に、判断部３８０は、データベース２０が整合していると判断する。
【００４６】
また、判断部３８０は、データベース２０中の各々のデータエレメントに含まれる、参照先のデータエレメントの保存先アドレスの数の合計数を算出する。また、判断部３８０は、データベース２０中の各データエレメントに含まれる参照エレメント数の総数を算出する。そして、これらの数が一致することを条件に、判断部３８０は、データベース２０が整合していると判断する。
【００４７】
以上の何れの数も一致していれば（Ｓ６５０：ＹＥＳ）、判断部３８０は、データベース２０が整合していると判断する（Ｓ６６０）。何れか一つでも異なっていれば（Ｓ６５０：ＮＯ）、判断部３８０は、データベース２０が整合していないと判断する（Ｓ６７０）。
【００４８】
図７は、維持判断ユニット４０がデータベース２０の整合維持を判断する処理のフローチャートを示す。図８は、図７に続く処理のフローチャートを示す。判断部３８０によりデータベース２０が整合していると判断された状態において、維持判断ユニット４０は、何れかのデータエレメントがデータベース２０から削除され、かつそのデータエレメントに対応する間接参照エレメントが無効化されたか否かを判断する（Ｓ７００）。削除されたことに応じ、第１調整部４１０は、第１生成部３３０により生成されたハッシュ値から、当該無効化された間接参照エレメントの識別情報を差し引く（Ｓ７１０）。
【００４９】
ここで、「差し引く」とは、ハッシュ値を算出するための演算とは逆の演算を行うことを言う。例えば、識別情報の和をハッシュ値としている場合には、第１調整部４１０は、そのハッシュ値から、無効化された間接参照エレメントの識別情報を引き算する。他の例として、識別情報の排他的論理和をハッシュ値としている場合には、排他的論理和演算の逆演算も排他的論理和演算であるから、第１調整部４１０は、変更前のハッシュ値と、無効化された間接参照エレメントのハッシュ値とを、排他的論理和演算した値を、変更後のハッシュ値とする。
【００５０】
第３調整部４３０は、第３生成部３６０により生成されたハッシュ値から、無効化された当該間接参照エレメントに含まれていた当該データエレメントの保存先アドレス、および、無効化された当該間接参照エレメントの識別情報の組に基づくハッシュ値を差し引く（Ｓ７２０）。また、第４調整部４４０は、第４生成部３７０により生成されたハッシュ値から、削除された当該データエレメントに含まれていた識別情報、および、当該データエレメントの保存先アドレスの組に基づくハッシュ値を差し引く（Ｓ７３０）。
【００５１】
続いて、維持判断ユニット４０は、何れかのデータエレメントから他のデータエレメントに対する参照が変更されたか否かを判断する（Ｓ８００）。参照が変更されたことに応じ（Ｓ８００：ＹＥＳ）、第２調整部４２０は、第２生成部３４０により生成された第２ハッシュ値から、変更前に当該データエレメントに含まれていた識別情報を差し引く（Ｓ８１０）。そして、第２調整部４２０は、差し引いた後のその第２ハッシュ値に、変更後に当該データエレメントに記録された識別情報を加える（Ｓ８２０）。ここで、「加える」についても、「差し引く」と同様に、単に加算のみを指すのではなく、ハッシュ値を算出するための演算を行うことをいう。
【００５２】
続いて、維持判断ユニット４０は、何れかのデータエレメントから他のデータエレメントに対する参照が追加されたか否かを判断する（Ｓ８３０）。参照が追加されたことに応じ（Ｓ８３０：ＹＥＳ）、第１調整部４１０は、第１ハッシュ値を変更する（Ｓ８４０）。具体的には、まず、第１調整部４１０は、追加前に参照先の当該他のデータエレメントに含まれていた参照エレメント数に対する、追加後に当該他のデータエレメントに含まれる参照エレメント数の増分を求める。例えば、このデータエレメントに対して１つの参照のみが追加された場合には、この増分は１である。そして、第１調整部４１０は、その増分に、当該他のデータエレメントに対応する間接参照エレメントの識別情報を乗じた値を、第１ハッシュ値に加える。
【００５３】
次に、第２調整部４２０は、参照元の当該データエレメントに追加された、参照先のデータエレメントに対応する間接参照エレメントの識別情報を、第２ハッシュ値に加える（Ｓ８５０）。
ここで、参照が追加される場合とは、既存のデータエレメントから他の既存のデータエレメントに対する参照が追加される場合のみならず、新たにデータエレメントが追加された結果として参照が追加される場合を含む。参照の追加と同時に参照先のデータエレメントが追加される場合には、追加前にそのデータエレメントに含まれていた参照エレメント数は０とみなす。また、新たにデータエレメントが追加される場合には、続いて図９の処理を行う。
【００５４】
図９は、図８に続く処理のフローチャートを示す。維持判断ユニット４０は、判断部３８０によりデータベース２０が整合していると判断された状態において、何れかのデータエレメントがデータベース２０に追加されたか否かを判断する（Ｓ９００）。データエレメントがデータベース２０に追加されたことに応じ（Ｓ９００：ＹＥＳ）、第３調整部４３０は、第３ハッシュ値を変更する。具体的には、第３調整部４３０は、そのデータエレメントに対応付けて追加される間接参照エレメントに対して新たに割り当てられる識別情報（ＩＬＫ）、および、そのデータエレメントの保存先アドレス（ＲＢＡ）に基づくハッシュ値を求める。
【００５５】
なお、データエレメントが追加された場合であっても、それに対応する間接参照エレメントが直ちに生成されない場合がある。このような場合であっても、後に生成されるその間接参照エレメントに新たに割り当てられるべき識別情報（ＩＬＫ）は、そのデータエレメントが追加された時点で決定され、そのデータエレメント内に含めて記録される。第３調整部４３０は、この識別情報を用いて第３ハッシュ値を変更する。
【００５６】
次に、第４調整部４４０は、追加されたそのデータエレメントに含まれる、そのデータエレメントに対応する間接参照エレメントの識別情報（ＩＬＫ）、および、そのデータエレメントの保存先アドレスに基づくハッシュ値を、第４ハッシュ値に加える（Ｓ９２０）。判断部３８０は、第１調整部４１０により変更された第１ハッシュ値、および、第２調整部４２０により変更された第２ハッシュ値が一致するか否かを判断する（Ｓ９３０）。また、判断部３８０は、第３調整部４３０により変更された第３ハッシュ値、および、第４調整部４４０により変更された第４ハッシュ値が一致するか否かを判断する。何れも一致することを条件に（Ｓ９３０：ＹＥＳ）、判断部３８０は、データベース２０の整合が維持されていると判断する（Ｓ９４０）。一方で、何れかが異なれば（Ｓ９３０：ＮＯ）、判断部３８０は、データベース２０が不整合な状態であると判断する（Ｓ９５０）。
【００５７】
図１０は、データベース管理装置１０として機能する情報処理装置１０００のハードウェア構成の一例を示す。本図においては、情報処理装置１０００が、メインフレームと呼ばれる大型汎用計算機である場合を例に、そのハードウェア構成を説明する。情報処理装置１０００は、主記憶装置１００２と、少なくとも１つの中央処理装置１００４と、記憶制御部１００６と、チャネル・サブシステム１００８と、少なくとも１つの制御装置１０１０と、少なくとも１つの入出力デバイス１０１２ａ〜ｄとを備える。
【００５８】
主記憶装置１００２は、入出力デバイス１０１２ａ〜ｄから入力したデータ及びプログラムを格納する。そして、主記憶装置１００２は、中央処理装置１００４及びチャネル・サブシステム１００８からアドレスの指定を受けると、そのアドレスに格納しているデータを中央処理装置１００４及びチャネル・サブシステム１００８に送る。主記憶装置１００２は、格納しているデータを高速に読み書き可能であり、この高速な読み書きにより、中央処理装置１００４による高速演算処理が可能となる。
【００５９】
中央処理装置１００４は、情報処理装置１０００の全体を制御する中心的な役割を果たし、例えば、少なくとも１つのオペレーティングシステム１００５を実行する。オペレーティングシステム１００５は、情報処理装置１０００におけるプログラムの実行及び入出力処理を制御する。例えば、オペレーティングシステム１００５は、中央処理装置１００４上で動作する他のプログラムの実行を制御してもよいし、入出力デバイス１０１２ａ〜ｄまでの各々におけるデータ転送を制御してもよい。
【００６０】
記憶制御部１００６は、双方向又は片方向に通信可能なバス１０１４を経由して中央処理装置１００４に接続される。記憶制御部１００６は、更に、バス１０１６を経由して主記憶装置１００２に接続され、バス１０１８を経由してチャネル・サブシステム１００８に接続される。記憶制御部１００６は、例えば、中央処理装置１００４又はチャネル・サブシステム１００８から受けたアクセスリクエストを一時的に格納し（キューイング処理）、所定のタイミングでそのアクセスリクエストを主記憶装置１００２に送信してもよい。
【００６１】
チャネル・サブシステム１００８は、各々の制御装置１０１０に対して、データ転送路１０２０を経由して接続される。そして、チャネル・サブシステム１００８は、入出力デバイス１０１２ａ〜ｄ及び主記憶装置１００２間でのデータ転送を制御する。これにより、中央処理装置１００４が入出力デバイス１０１２ａ〜ｄとの間で通信する処理負荷が軽減されるので、中央処理装置１００４による演算処理と、入出力デバイス１０１２ａ〜ｄによる入出力処理とを並列に実行させることができ、結果として情報処理装置１０００を効率的に動作させることができる。
【００６２】
また、チャネル・サブシステム１００８は、少なくとも１つのチャネルパス１０２２により、入出力デバイス１０１２ａ〜ｄとデータ転送する。各々のチャネルパス１０２２は、チャネル・サブシステム１００８内に設けられたチャネル１０２４を有する。また、各々のチャネルパス１０２２は、少なくとも１つの制御装置１０１０と、データ転送路１０２０を有する。ここで、データ転送路１０２０は、例えば、(ESCON: Enterprise Systems Connection Architecture)に基づくシリアルリンクであってもよい。これに代えて、データ転送路１０２０は、パラレルOEMIであってもよいし、ファイバチャネルであってもよい。
【００６３】
制御装置１０１０は、入出力デバイス１０１２ａ〜ｄの少なくとも１つを制御する。例えば、制御装置１０１０は、入出力デバイス１０１２ａ〜ｄの各々におけるデータ転送のタイミングを制御してもよい。制御装置１０１０は、バス１０２６を経由して、入出力デバイス１０１２ａ〜ｄの少なくとも１つに接続する。一例として、制御装置１０１０は、最大２５６個の入出力デバイスに接続可能である。
【００６４】
入出力デバイス１０１２ａ〜ｄの各々は、制御装置１０１０、チャネル・サブシステム１００８、及び記憶制御部１００６を順次経由して主記憶装置１００２との間でデータ転送を行う。ここで、入出力デバイス１０１２ａは、具体的には、磁気テープドライブであり、入出力デバイス１０１２ｄは、ハードディスクドライブである。これに代えて、又はこれに加えて、入出力デバイス１０１２ａ〜ｄの各々は、パンチカードリーダ、ディスプレイ、キーボード、プリンタ、通信デバイス、各種センサー、又はその他の記憶装置であってもよい。一例として、入出力デバイス１０１２ａ〜ｄの少なくとも何れか１つは、データベース２０と接続され、データベース２０に対するアクセスを行ってもよい。
【００６５】
情報処理装置１０００に提供されるプログラムは、テープ記録媒体１０３５等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力デバイス１０１２ａによって読み出され、チャネル・サブシステム１００８を経由して主記憶装置１００２に格納される。そして、主記憶装置１００２に格納されたプログラムは、再度チャネル・サブシステム１００８を経由して入出力デバイス１０１２ｄ（ハードディスクドライブ）にインストールされる。プログラムが情報処理装置１０００等に働きかけて行わせる動作は、図１から図９において説明したデータベース管理装置１０における動作と同一であるから、説明を省略する。
【００６６】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭの他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置１０００に提供してもよい。
【００６７】
以上、本実施例に係るデータベース管理装置１０によれば、データエレメントの間接参照を含むデータベースについて、再編成処理が行われた場合において、その整合性を効率的に判断することができる。更に、一旦整合性が判断されれば、その後にデータベースが更新された場合であっても、その整合性が維持されていることを効率的に判断できる。
【００６８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６９】
【図１】図１は、データベース管理装置１０の全体構成を示す。
【図２】図２は、データベース２０のデータ構造の一例を示す。
【図３】図３は、整合判断ユニット３０の機能構成を示す。
【図４】図４は、維持判断ユニット４０の機能構成を示す。
【図５】図５は、整合判断ユニット３０がデータベース２０の整合性を判断する処理のフローチャートを示す。
【図６】図６は、図５に続く処理のフローチャートを示す。
【図７】図７は、維持判断ユニット４０がデータベース２０の整合維持を判断する処理のフローチャートを示す。
【図８】図８は、図７に続く処理のフローチャートを示す。
【図９】図９は、図８に続く処理のフローチャートを示す。
【図１０】図１０は、データベース２０として機能する情報処理装置１０００のハードウェア構成の一例を示す。
【符号の説明】
【００７０】
１０  データベース管理装置
１５  アクセス部
１８  再編成部
２０  データベース
３０  整合判断ユニット
４０  維持判断ユニット
２００  パーティション
２１０  属性情報
２２０  データ記録部
２３０  データエレメント
２４０  接頭部
２５０  データ部
２６０  参照記録部
２７０  間接参照エレメント
２７２  間接参照エレメント
３００  再編成制御部
３１０  第１読出部
３２０  第２読出部
３３０  第１生成部
３４０  第２生成部
３５０  第３読出部
３６０  第３生成部
３７０  第４生成部
３８０  判断部
４００  更新ログ記録部
４１０  第１調整部
４２０  第２調整部
４３０  第３調整部
４４０  第４調整部
１０００  情報処理装置
【図１】
2007102461.tif 000003
【図２】
2007102461.tif 000004
【図３】
2007102461.tif 000005
【図４】
2007102461.tif 000006
【図５】
2007102461.tif 000007
【図６】
2007102461.tif 000008
【図７】
2007102461.tif 000009
【図８】
2007102461.tif 000010
【図９】
2007102461.tif 000011
【図１０】
2007102461.tif 000012