JP4082614B2 - データベース管理システム、データベース管理方法、及びプログラム - Google Patents

データベース管理システム、データベース管理方法、及びプログラム Download PDF

Info

Publication number
JP4082614B2
JP4082614B2 JP2004329661A JP2004329661A JP4082614B2 JP 4082614 B2 JP4082614 B2 JP 4082614B2 JP 2004329661 A JP2004329661 A JP 2004329661A JP 2004329661 A JP2004329661 A JP 2004329661A JP 4082614 B2 JP4082614 B2 JP 4082614B2
Authority
JP
Japan
Prior art keywords
pointer
address
segment data
hash value
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004329661A
Other languages
English (en)
Other versions
JP2006139619A (ja
Inventor
茂子 森
一郎 手島
利和 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2004329661A priority Critical patent/JP4082614B2/ja
Priority to US11/268,910 priority patent/US7483920B2/en
Publication of JP2006139619A publication Critical patent/JP2006139619A/ja
Application granted granted Critical
Publication of JP4082614B2 publication Critical patent/JP4082614B2/ja
Priority to US12/248,692 priority patent/US8108365B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベース管理システム、データベース管理方法、及びプログラムに関する。特に、本発明は、データベースの整合性を判断するデータベース管理システム、データベース管理方法、及びプログラムに関する。
階層型データベースにおいて、データベースの整合性を判断するには、データベースに含まれる各セグメントデータの保存先アドレスの合計値と、データベースに含まれる各ポインタの合計値とを算出し、これらの合計値が一致するか否かを判断する必要がある。ここで、何れかのポインタの読出しを開始してから全てのポインタの読出しを完了するまでの間にデータベースが更新されると、更新前後のポインタの値が混ざった状態で合計値が算出されてしまうので、整合性の判断を誤ってしまう場合がある。
このため、従来、整合性の判断の処理中には、データベースの更新を停止するか、又は、データベースの少なくとも一部に対するアクセスの排他制御を行うことが一般的である(例えば特許文献1参照。)。しかしながら、データベースのデータサイズが大きい場合には、更新が停止される時間が膨大となり、又は、更新が大幅に遅延し、利用者の利便性を低下させてしまう場合があった。これに対して、更新を停止させることなく整合性を判断する技術が提案されている(特許文献2参照。)。
特開平8−249222号公報 特開2001−142765号公報
特許文献2の技術においては、他の処理との排他制御を行うことなく整合性の判断処理を複数回行う。そして、複数回の判断結果に基づいて、確率的に概ね整合性が取れているか否かを判断する。このため、整合性を確実に判断することはできず、また、整合性判断の処理中の他の処理によって、整合性の判断結果が異なってしまう。
そこで本発明は、上記の課題を解決することのできるデータベース管理システム、データベース管理方法、及びプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
複数のセグメントデータを含み、各セグメントデータが他のセグメントデータに対するポインタを有する階層型データベースにおいて、ポインタ及びポインタにより指示されるセグメントデータの保存先アドレスの整合性を判断するデータベース管理システムであって、階層型データベースから複数のセグメントデータのポインタを順次読み出すデータ読出部と、データ読出部が読み出した各セグメントデータの保存先アドレスのハッシュ値であるアドレスハッシュ値を生成するアドレスハッシュ値生成部と、データ読出部が読み出した各セグメントデータに含まれる各ポインタのハッシュ値であるポインタハッシュ値を生成するポインタハッシュ値生成部と、データ読出部が既に読み出したアドレスの内容が更新された場合に、当該更新により追加されたセグメントデータ又は削除されたセグメントデータの保存先アドレスに基づいて、アドレスハッシュ値を補正するアドレスハッシュ値補正部と、データ読出部が既に読み出したアドレスの内容が更新された場合に、当該更新により変更された各ポインタに基づいて、ポインタハッシュ値を補正するポインタハッシュ値補正部と、アドレスハッシュ値補正部により補正されたアドレスハッシュ値が、ポインタハッシュ値補正部により補正されたポインタハッシュ値と一致する場合に、階層型データベースが整合していると判断する整合性判断部とを備えるデータベース管理システム、当該データベース管理システムを用いたデータベース管理方法、当該データベース管理システムとしてコンピュータを機能させるプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、データベースの更新を停止することなく、データベースの整合性を適切に判断することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、データベースシステム10の概略を示す。データベースシステム10は、階層型データベース20と、データベース管理システム30とを備える。階層型データベース20は、複数のセグメントデータを含み、各セグメントデータが他のセグメントデータに対するポインタを有する構造を有する。データベース管理システム30は、階層型データベース20においてポインタ及びポインタにより指示されるセグメントデータの保存先アドレスの整合性を判断する。本実施例におけるデータベース管理システム30は、整合性の判断処理の途中にデータベースが更新された場合であっても、整合性を適切に判断することを目的とする。
図2は、階層型データベース20のデータ構造の一例を示す。階層型データベース20は、セグメントデータ200−1と、セグメントデータ200−2と、セグメントデータ200−3とを含む。セグメントデータ200−1は、接頭部210−1と、データ部220−1とを含む。また、セグメントデータ200−1の保存先アドレスは1000である。ここで、保存先アドレスとは、例えば、階層型データベース20の所定の基準アドレスと比較したセグメントデータ200−1の先頭アドレスの先頭位置(RBA:Relatibe Byte Address)をいう。接頭部210−1は、セグメントデータ200−2の保存先アドレスである1300を指示するポインタ230−1と、セグメントデータ200−3の保存先アドレスである1600を指示するポインタ230−2とを含む。
セグメントデータ200−2は、接頭部210−2と、データ部220−2とを含む。接頭部210−2は、他のセグメントデータの保存先アドレスを指示するポインタ230−3と、更に他のセグメントデータの保存先アドレスを指示するポインタ230−4と含む。また、セグメントデータ200−3は、接頭部210−3と、データ部220−3とを含む。接頭部210−3は、他のセグメントデータの保存先アドレスを指示するポインタ230−5と、更に他のセグメントデータの保存先アドレスを指示するポインタ230−6とを含む。
このように、階層型データベース20は、各セグメントデータの接頭部(Prefix)に記録されたポインタを辿る事により順次他のセグメントデータをアクセスできる階層構造を有している。従って、ポインタの値は、そのポインタによって示されるセグメントデータの保存先アドレスと一致している必要がある。本実施例におけるデータベース管理システム30は、ポインタ及び保存先アドレスの一致を判断することにより、階層型データベース20の整合性を判断する。
図3は、データベース管理システム30の機能を機能ブロックに分類して示す。データベース管理システム30は、データ読出部300と、アドレスハッシュ値生成部310と、ポインタハッシュ値生成部320と、読出済アドレス記録部330と、セグメントデータ更新部340と、更新履歴記録処理部350と、アドレスハッシュ値補正部360と、ポインタハッシュ値補正部370と、整合性判断部380と、更新履歴記録部40とを有する。データ読出部300は、整合性の判断を開始する指示を外部から受けると、又は定期的に、セグメントデータの読出しを開始する。そして、データ読出部300は、階層型データベース20から複数のセグメントデータのポインタを順次読み出す。
アドレスハッシュ値生成部310は、データ読出部300が読み出した各セグメントデータの保存先アドレスのハッシュ値であるアドレスハッシュ値を生成する。例えば、アドレスハッシュ値生成部310は、アドレスハッシュ値として、各セグメントデータの保存先アドレスを合計した合計値を生成してもよい。またポインタハッシュ値生成部320は、データ読出部300が読み出した各セグメントデータに含まれる各ポインタのハッシュ値であるポインタハッシュ値を生成する。例えば、ポインタハッシュ値生成部320は、ポインタハッシュ値として、各セグメントデータに含まれる各ポインタの値の合計値を算出してもよい。
読出済アドレス記録部330は、データ読出部300が既に読み出したアドレスである読出済アドレスを記録する。例えば、読出済アドレス記録部330は、データ読出部300によるセグメントデータの読出しに伴い、読出しを開始すべき先頭アドレスから予め定められた昇順及び降順の何れかの順序によりアドレス値を順次更新する。
セグメントデータ更新部340は、利用者からの指示等に基づいて、階層型データベース20を更新する。例えば、セグメントデータ更新部340は、第1のセグメントデータと第2のセグメントデータの間に新たな第3のセグメントデータを追加する場合に、その第1のセグメントデータが有する第2のセグメントデータに対するポインタを、その第3のセグメントデータの保存先アドレスに変更し、その第3のセグメントデータ内に、第2のセグメントデータに対するポインタを生成する。
更新履歴記録部40は、データ読出部300が既に読み出したアドレスの内容が更新される毎に、その更新によって追加されたセグメントデータの保存先アドレスと、その更新によって削除されたセグメントデータの保存先アドレスと、変更又は削除されたポインタの変更又は削除前の値と、変更又は追加されたポインタの変更又は追加後の値とを記録する。ここで、更新履歴記録部40のデータ構造の一例を説明する。
図4は、更新履歴記録部40のデータ構造の一例を示す。更新履歴記録部40は、更新対象のセグメントデータの保存先アドレスを記録する保存先アドレス記録領域400と、そのセグメントデータが更新された場合に、そのセグメントデータに含まれるポインタの当該更新による変更前の値を記録する変更前ポインタ記録領域410と、そのセグメントデータの含まれるポインタの変更後の値を記録する変更後ポインタ記録領域420とを有する。なお、更新履歴記録部40は、本例においてはデータベース管理システム30の筐体内部に設けられているが、データベース管理システム30によりアクセス可能なメモリ上であれば、この構成に限定されるものではない。
図3に戻る。更新履歴記録処理部350は、読出済アドレス記録部330に記録されたアドレス又はそのアドレスより先頭側のアドレスの内容がセグメントデータ更新部340により更新された場合に、データ読出部300が既に読み出したアドレスの内容が更新されたと判断する。そして、更新履歴記録処理部350は、既存のセグメントデータ内のポインタの値が変更された場合に、そのセグメントデータの保存先アドレスを保存先アドレス記録領域400に記録し、そのセグメントデータ内のポインタの変更前の値を変更前ポインタ記録領域410に記録し、そのセグメントデータ内のポインタの変更後の値を変更後ポインタ記録領域420に記録する。
ここで、第1のセグメントデータ(アドレス1000)と、第2のセグメントデータ(アドレス1100)との間に新たな第3のセグメントデータ(アドレス1200)を追加する例を説明する。セグメントデータ更新部340は、第1のセグメントデータが有する第2のセグメントデータに対するポインタを、第3のセグメントデータの保存先アドレスに変更する。この場合、更新履歴記録処理部350は、第1のセグメントデータの保存先アドレス(即ち1000)を、保存先アドレス記録領域400に記録する。また、更新履歴記録処理部350は、その保存先アドレス記録領域400に対応する変更前ポインタ記録領域410に、第2のセグメントデータの保存先アドレス(即ち1100)を記録する。また、更新履歴記録処理部350は、その保存先アドレス記録領域400に対応する変更後ポインタ記録領域420に、第3のセグメントデータの保存先アドレス(即ち1200)を記録する。
そして、更新履歴記録処理部350は、第3のセグメントデータの保存先アドレス(即ち1200)を保存先アドレス記録領域400の他のエントリに記録する。また、更新履歴記録処理部350は、当該他のエントリに対応する変更前ポインタ記録領域410に、ポインタを含まない旨を示すポインタ不保持情報(例えばNULLデータ)を記録する。また、更新履歴記録処理部350は、当該他のエントリに対応する変更後ポインタ記録領域420に、第2のセグメントデータの保存先アドレス(即ち1100)を記録する。
次に、第1のセグメントデータ(アドレス2000)と、第2のセグメントデータ(アドレス2200)の間の第3のセグメントデータ(アドレス2100)を削除する例を説明する。セグメントデータ更新部340は、第1のセグメントデータが有する第3のセグメントデータに対するポインタを、第2のセグメントデータの保存先アドレスに変更する。この場合、更新履歴記録処理部350は、第1のセグメントデータの保存先アドレス(即ち2000)を保存先アドレス記録領域400に記録する。また、更新履歴記録処理部350は、その保存先アドレス記録領域400に対応する変更前ポインタ記録領域410に、第3のセグメントデータの保存先アドレス(2100)を記録する。また、更新履歴記録処理部350は、その保存先アドレス記録領域400に対応する変更後ポインタ記録領域420に、第2のセグメントデータの保存先アドレス(2200)を記録する。
そして、更新履歴記録処理部350は、第3のセグメントデータの保存先アドレス(即ち2100)を保存先アドレス記録領域400の他のエントリに記録する。また、更新履歴記録処理部350は、当該他のエントリに対応する変更後ポインタ記録領域420に、ポインタ不保持情報を記録する。また、更新履歴記録処理部350は、当該他のエントリに対応する変更前ポインタ記録領域410に、第2のセグメントデータの保存先アドレス(即ち2200)を記録する。
アドレスハッシュ値補正部360は、データ読出部300が既に読み出したアドレスの内容が更新された場合に、その更新により追加されたセグメントデータ又は削除されたセグメントデータの保存先アドレスに基づいて、アドレスハッシュ値を補正する。ポインタハッシュ値補正部370は、データ読出部300が既に読み出したアドレスの内容が更新された場合に、その更新により値が変更された各ポインタに基づいて、ポインタハッシュ値を補正する。
整合性判断部380は、アドレスハッシュ値補正部360により補正されたアドレスハッシュ値が、ポインタハッシュ値補正部370により補正されたポインタハッシュ値と一致する場合に、階層型データベース20が整合していると判断し、判断結果を出力する。
図5は、アドレスハッシュ値及びポインタハッシュ値を生成して整合性を判断する処理の処理フローを示す。データ読出部300は、読出済アドレス記録部330が記録するアドレスの次に読み出すアドレスのセグメントデータを、排他的に読み書き可能なロック状態に設定する(S500)。次に、データ読出部300は、ロック状態においてそのアドレスのセグメントデータのポインタを読み出す(S510)。また、データ読出部300は、ロック状態において、読み出し対象となっているそのアドレスを読出済アドレス記録部330に記録する(S515)。そして、データ読出部300は、ロック状態を解除する(S520)。
次に、アドレスハッシュ値生成部310は、読み出したセグメントデータの保存先アドレスを、既に算出したアドレスハッシュ値に積算することにより、読み出し時点におけるアドレスハッシュ値を算出する(S530)。また、ポインタハッシュ値生成部320は、読み出したセグメントデータのポインタの値を、既に算出したポインタハッシュ値に積算することにより、読み出し時点におけるポインタハッシュ値を算出する(S540)。以上の処理を、全てのセグメントデータを読み出すまで繰り返す(S550:NO)。
ここで、ハッシュ値とは、合計値のみならず、整合性判断の対象となるアドレス又はポインタから算出され、異なるアドレス又はポインタに対しては極めて高い確率で異なる値をとるものであればよい。また、好ましくは、複数のアドレスに基づいて算出されるハッシュ値は、当該複数のアドレスをハッシュ値として積算した積算順序に関わらず同一である。一例として、ハッシュ値は、本例のように合計値であってもよいし、所定の法の下で合計した合計値であってもよいし、排他的論理和であってもよい。
全てのセグメントデータが読み出された場合に(S550:YES)、次の処理を行う。まず、アドレスハッシュ値補正部360は、データ読出部300が何れかのセグメントデータを読み出してから全てのセグメントデータを読み出すまでの間に、データ読出部300が既に読み出したアドレスの内容が更新された場合に、アドレスハッシュ値生成部310により生成されたアドレスハッシュ値を補正する(S560)。
具体的には、アドレスハッシュ値補正部360は、アドレスハッシュ値に、その更新により追加された全てのセグメントデータの保存先アドレスを更新履歴記録部40から読み出して合計値を算出して加える。そして、アドレスハッシュ値補正部360は、合計値を加えたそのアドレスハッシュ値から、その更新により削除された全てのセグメントデータの保存先アドレスを更新履歴記録部40から読み出して合計した合計値を差し引く。
また、ポインタハッシュ値補正部370は、データ読出部300が何れかのセグメントデータを読み出してから全てのセグメントデータを読み出すまでの間に、データ読出部300が既に読み出したアドレスの内容が更新された場合に、ポインタハッシュ値生成部320により生成されたポインタハッシュ値を補正する(S570)。具体的には、ポインタハッシュ値補正部370は、ポインタハッシュ値に、その更新による変更又は追加後の全てのポインタの値を更新履歴記録部40から読み出して合計値を算出して加える。そして、ポインタハッシュ値補正部370は、合計値を加えたそのポインタハッシュ値から、その更新による変更又は削除前の全てのポインタの値を更新履歴記録部40から読み出して合計した合計値を差し引く。
そして、整合性判断部380は、アドレスハッシュ値補正部360により補正されたアドレスハッシュ値が、ポインタハッシュ値補正部370により補正されたポインタハッシュ値と一致する場合に、階層型データベース20が整合していると判断し、判断結果を出力する(S580)。
図6は、更新履歴を記録する処理の処理フローを示す。データベース管理システム30は、階層型データベース20が更新される毎に、階層型データベース20に対する一連の更新処理が完了して次の更新処理が可能な状態(例えば同期点)にあることを条件として、以下の処理を行う。まず、更新履歴記録処理部350は、読出済アドレス記録部330から読出済アドレスを取得する(S600)。次に、更新履歴記録処理部350は、読出済アドレスに有効な値が設定されているか、即ち整合性判断の処理中か否かを判断する(S610)。
読出済アドレスに有効な値が設定されていない場合には(S610:NO)、更新履歴記録処理部350は、処理を終了する。一方、有効な値が設定されている場合には、更新履歴記録処理部350は、当該更新により接頭部の変更されたセグメントデータが存在するか否かを判断する(S620)。接頭部の変更されたセグメントデータが存在しない場合には(S620:NO)、更新履歴記録処理部350は、処理を終了する。
一方、接頭部の変更されたセグメントデータが存在する場合には(S620:YES)、更新されたセグメントデータが、読出済アドレスと同一又は先頭側に記録されているか否かを判断する(S630)。更新されたセグメントデータが、読出済アドレスより後方にある場合には(S630:NO)、更新履歴記録処理部350は、S620に処理を戻す。一方、更新されたセグメントデータが、読出済アドレスと同一又は先頭側に記録されている場合には(S630:YES)、更新履歴記録処理部350は、更新履歴を更新履歴記録部40に記録し(S640)、S620に処理を戻す。
図7は、図6のS640における処理の詳細を示す。更新履歴記録処理部350は、階層型データベース20を更新する処理の種類を示す更新タイプを判断する(S700)。更新タイプが、セグメントデータの追加である場合に(S710:セグメントデータの追加)、更新履歴記録処理部350は、セグメントデータを追加した履歴を更新履歴記録部40に記録する(S720)。即ち更新履歴記録処理部350は、そのセグメントデータの保存先アドレスを保存先アドレス記録領域400に記録し、ポインタ不保持情報を変更前ポインタ記録領域410に記録し、そのセグメントデータ内に新たに生成したポインタの値を変更後ポインタ記録領域420に記録する。
一方、更新タイプが、セグメントデータの削除である場合に(S700:セグメントデータの削除)、更新履歴記録処理部350は、セグメントデータを削除した履歴を更新履歴記録部40に記録する(S740)。即ち更新履歴記録処理部350は、そのセグメントデータの保存先アドレスを保存先アドレス記録領域400に記録し、そのセグメントデータ内に含まれていたポインタの値を変更前ポインタ記録領域410に記録し、ポインタ不保持情報を変更後ポインタ記録領域420に記録する。
一方、更新タイプが、既存のセグメントデータの内容の変更である場合に(S700:セグメントデータの変更)、更新履歴記録処理部350は、更新タイプが、あるセグメントデータの一部を他のセグメントデータに分割する分割更新であるか否かを判断する(S760)。分割更新でない場合に(S760:NO)、更新履歴記録処理部350は、接頭部更新履歴を更新履歴記録部40に記録する。即ち例えば、更新履歴記録処理部350は、更新対象のセグメントデータの保存先アドレスを保存先アドレス記録領域400に記録し、そのセグメントデータ内の変更前のポインタの値を変更前ポインタ記録領域410に記録し、そのポインタの変更後の値を変更後ポインタ記録領域420に記録する。
一方、分割更新の場合に(S760:YES)、更新履歴記録処理部350は、分割更新における接頭部の変更か否かを判断する(S780)。接頭部の変更である場合に、更新履歴記録処理部350は、分割更新における接頭部の更新履歴を更新履歴記録部40に記録する(S790)。一方、接頭部の変更ではない場合に(S780:NO)、更新履歴記録処理部350は、分割更新におけるデータ部の更新履歴を更新履歴記録部40に記録する(S795)。分割更新における更新履歴の記録方法についての詳細は図10において説明する。
以上、図1から図7に示した構成によれば、ポインタの読み出し中に読出済アドレスの内容が更新された場合であっても、その更新差分を適切に記録することにより、読出し済みのポインタの合計値を適切に補正することができる。また、ポインタ・チェック中の読出済アドレスは、データベース管理システム30により自動的に更新され管理されるので、利用者の特別なコマンド入力を必要としない。更に、更新履歴記録部40は、ポインタ読み出し中にのみ更新履歴を記録するので、更新履歴記録部40の必要記憶容量は一般的に小さくても充分であり、新たな設備投資費用も殆ど必要とならない。このように、本例におけるデータベース管理システム30によれば、利用者の手間や費用を増大させることなく、階層型データベース20の更新中におけるオンライン・ポインタ・チェックを可能とし、階層型データベース20の可用性を大幅に高めることができる。
続いて、以上に示した階層型データベース20及びデータベース管理システム30において、セグメントデータが追加、削除、及び分割される処理を例示する。
図8は、セグメントデータが追加される処理の一例を示す。(a)は、セグメントデータの追加前における階層型データベース20を示す。階層型データベース20は、保存先アドレスを1000とするセグメントデータ200−4と、保存先アドレスを1200とするセグメントデータ200−5とを有する。セグメントデータ200−4は、セグメントデータ200−5に対するポインタを、接頭部に含む。
(b)は、セグメントデータの追加後の階層型データベース20及び更新履歴記録部40を示す。セグメントデータ更新部340は、セグメントデータ200−4とセグメントデータ200−5の間にセグメントデータ200−6を追加する場合に、セグメントデータ200−4が有するセグメントデータ200−5に対するポインタを、セグメントデータ200−6の保存先アドレスに変更する。そして、セグメントデータ更新部340は、セグメントデータ200−6内に、セグメントデータ200−5に対するポインタを生成する。
この結果、階層型データベース20は、新たに追加されたセグメントデータ200−6を、保存先アドレス1100に更に含む。そして、セグメントデータ200−4は、セグメントデータ200−5に対するポインタ(即ち1200)に代えて、セグメントデータ200−6に対するポインタ(即ち1100)を含む。そして、セグメントデータ200−6は、セグメントデータ200−5に対するポインタ(即ち1200)を含む。
また、セグメントデータ200−4内のポインタが1200から1100に変更されたので、更新履歴記録処理部350は、セグメントデータ200−4の保存先アドレスである1000を保存先アドレス記録領域400に記録し、保存先アドレス記録領域400に対応する変更前ポインタ記録領域410に、セグメントデータ200−5の保存先アドレスである1200を記録し、保存先アドレス記録領域400に対応する変更前ポインタ記録領域410に、セグメントデータ200−6の保存先アドレスである1100を記録する(S770の処理に対応)。
また、セグメントデータ200−6が新たに追加されたので、更新履歴記録処理部350は、セグメントデータ200−6の保存先アドレスである1100を、保存先アドレス記録領域400の他のエントリに記録し、当該他のエントリに対応する変更前ポインタ記録領域410に、ポインタ不保持情報(例えばNULL)を記録し、当該他のエントリに対応する変更後ポインタ記録領域420に、セグメントデータ200−5の保存先アドレスである1200を記録する(S720の処理に対応)。
図9は、セグメントデータが削除される処理の一例を示す。(a)は、セグメントデータの削除前における階層型データベース20を示す。階層型データベース20は、保存先アドレスを1000とするセグメントデータ200−4と、保存先アドレスを1200とするセグメントデータ200−5と、保存先アドレスを1100とするセグメントデータ200−6とを有する。セグメントデータ200−4は、セグメントデータ200−6に対するポインタを接頭部に含み、セグメントデータ200−6は、セグメントデータ200−5に対するポインタを接頭部に含む。
(b)は、セグメントデータの削除後の階層型データベース20及び更新履歴記録部40を示す。セグメントデータ更新部340は、セグメントデータ200−4とセグメントデータ200−5の間のセグメントデータ200−6を削除する場合に、セグメントデータ200−4が有するセグメントデータ200−6に対するポインタを、セグメントデータ200−5の保存先アドレスに変更する。
この結果、階層型データベース20は、削除されたセグメントデータ200−6を含まない状態となる。また、セグメントデータ200−4は、セグメントデータ200−6に対するポインタ(即ち1100)に代えて、セグメントデータ200−5に対するポインタ(即ち1200)を含む。
また、セグメントデータ200−4内のポインタが1100から1200に変更されたので、更新履歴記録処理部350は、セグメントデータ200−4の保存先アドレスを保存先アドレス記録領域400に記録し、その保存先アドレス記録領域400に対応する変更前ポインタ記録領域410に、セグメントデータ200−6の保存先アドレスを記録する。また、更新履歴記録処理部350は、その保存先アドレス記録領域400に対応する変更後ポインタ記録領域420に、セグメントデータ200−5の保存先アドレスを記録する(S770の処理に対応)。
また、セグメントデータ200−6が削除されたので、更新履歴記録処理部350は、セグメントデータ200−6の保存先アドレスを保存先アドレス記録領域400の他のエントリに記録し、当該他のエントリに対応する変更前ポインタ記録領域410に、セグメントデータ200−5の保存先アドレスを記録する。また、更新履歴記録処理部350は、当該他のエントリに対応する変更後ポインタ記録領域420に、ポインタ不保持情報を記録する(S740の処理に対応)。
図10は、セグメントデータが分割される処理の一例を示す。(a)は、セグメントデータが分割される前における階層型データベース20を示す。図9(a)と略同一であるから説明を省略する。(b)は、セグメントデータの分割後の階層型データベース20及び更新履歴記録部40を示す。
セグメントデータ更新部340は、セグメントデータ200−5へのポインタを有するセグメントデータ200−6の一部をセグメントデータ200−7に分割する場合に、セグメントデータ200−6内に、セグメントデータ200−7へのポインタを追加し、セグメントデータ200−6の一部が分割された旨を示す分割フラグを追加する。この結果、階層型データベース20は、分割先のセグメントデータ200−7を新たに含む。また、セグメントデータ200−6は、セグメントデータ200−7に対するポインタ(即ち1400)と、分割フラグとを更に含む。
また、セグメントデータ200−6に対して、セグメントデータ200−7の保存先アドレスへのポインタが追加され、分割フラグが追加されたので、更新履歴記録処理部350は、セグメントデータ200−6の保存先アドレスである1100を保存先アドレス記録領域400に記録し、保存先アドレス記録領域400に対応する変更前ポインタ記録領域410に対して、セグメントデータ200−5の保存先アドレスである1200を記録する。そして、更新履歴記録処理部350は、分割フラグと、セグメントデータ200−7の保存先アドレスである1400とを、保存先アドレス記録領域400に対応する変更後ポインタ記録領域420に記録する(S790の処理に対応)。
また、セグメントデータ200−7が追加されたので、更新履歴記録処理部350は、セグメントデータ200−7の保存先アドレスである1400を保存先アドレス記録領域400の他のエントリに記録し、当該他のエントリに対応する変更前ポインタ記録領域410に、ポインタ不保持情報を記録する。そして、更新履歴記録処理部350は、当該他のエントリに対応する変更後ポインタ記録領域420に、当該セグメントデータが分割先のデータである旨を示す分割先フラグを記録する(S795の処理に対応)。
続いて、読出済アドレスが互いに異なる3例を用いて、整合性の判断処理の具体例を示す。
図11は、既に読み出されたアドレスにセグメントデータが追加される処理の一例を示す。(a)は、セグメントデータが追加される前の階層型データベース20を示す。本例において読出済アドレス記録部330は、昇順にインクリメントされるものとし、図示の時点においてアドレス値2500を格納している。
階層型データベース20は、セグメントデータ200−4と、セグメントデータ200−5と、セグメントデータ200−6とを含む。セグメントデータ200−4は、セグメントデータ200−5に対するポインタを含む。セグメントデータ200−5は、セグメントデータ200−6に対するポインタを含む。また、セグメントデータ200−4、セグメントデータ200−5、及びセグメントデータ200−6の保存先アドレスはそれぞれ1000、1100、及び1200である。即ち全てのセグメントデータはデータ読出部300により読出し済みである。
(b)は、セグメントデータが追加された後の階層型データベース20及び更新履歴記録部40を示す。セグメントデータ更新部340は、新たなセグメントデータ200−8を階層型データベース20に追加し、セグメントデータ200−6内のポインタによりセグメントデータ200−8を指示させる。読出済アドレスである2500より先頭側のアドレスの内容が更新されたので、更新履歴記録処理部350は、セグメントデータ200−6及びセグメントデータ200−8の各々について履歴を記録する。
具体的には、更新履歴記録処理部350は、セグメントデータ200−6の保存先アドレスである1200を保存先アドレス記録領域400に記録し、変更前のポインタの値である0を変更前ポインタ記録領域410に記録し、変更後のポインタの値である2000を変更後ポインタ記録領域420に記録する。また、更新履歴記録処理部350は、セグメントデータ200−8の保存先アドレスである2000を保存先アドレス記録領域400に記録し、ポインタ不保持情報を変更前ポインタ記録領域410に記録し、変更後のポインタの値である0を変更後ポインタ記録領域420に記録する。
アドレスハッシュ値生成部310は、更新前における保存先アドレスを合計するので、1000+1100+1200により3300をアドレスハッシュ値として生成する。ポインタハッシュ値生成部320は、更新前におけるポインタの値を合計するので、1000+1100+1200により3300をポインタハッシュ値として生成する。
そして、アドレスハッシュ値補正部360は、ポインタ不保持情報を記録した変更前ポインタ記録領域410に対応する保存先アドレス記録領域400の値の合計値をアドレスハッシュ値に加える。即ち3300+2000により5300がアドレスハッシュ値の補正値として生成される。また、ポインタハッシュ値補正部370は、更新履歴記録部40の変更前ポインタ記録領域410に記録されたポインタの値の合計値を、ポインタ不保持情報を除外して算出し、ポインタハッシュ値から差し引く。即ちポインタハッシュ値は不変である。更に、ポインタハッシュ値補正部370は、更新履歴記録部40の変更後ポインタ記録領域420に記録されたポインタの値の合計値を、ポインタ不保持情報を除外して算出し、ポインタハッシュ値に加える。即ちポインタハッシュ値は3300+2000により5300となる。
以上の補正の結果、整合性判断部380は、補正されたアドレスハッシュ値及び補正されたポインタハッシュ値を比較して一致しているので、階層型データベース20が整合していると判断することができる。
図12は、既に読み出されたアドレス及び未だ読み出されていないアドレスの双方が更新される処理の一例を示す。(a)は、セグメントデータが追加される前の階層型データベース20を示す。本図は図11(a)と略同一であるので説明を省略する。
(b)は、セグメントデータが追加された後の階層型データベース20及び更新履歴記録部40を示す。セグメントデータ更新部340は、新たなセグメントデータ200−8を階層型データベース20に追加し、セグメントデータ200−6内のポインタによりセグメントデータ200−8を指示させる。読出済アドレスである1500より先頭側のアドレスの内容が更新されたので、更新履歴記録処理部350は、セグメントデータ200−6について履歴を記録する。
具体的には、更新履歴記録処理部350は、セグメントデータ200−6の保存先アドレスである1200を保存先アドレス記録領域400に記録し、変更前のポインタの値である0を変更前ポインタ記録領域410に記録し、変更後のポインタの値である2000を変更後ポインタ記録領域420に記録する。一方、更新履歴記録処理部350は、セグメントデータ200−8については保存先アドレスが読出済アドレスより後方にあるので、変更履歴を記録しない。
アドレスハッシュ値生成部310は、読み出したセグメントデータの保存先アドレスを合計するので、1000+1100+1200+2000により5300をアドレスハッシュ値として生成する。ポインタハッシュ値生成部320は、読み出したポインタの値を合計するので、1000+1100+1200により3300をポインタハッシュ値として生成する。
そして、ポインタハッシュ値補正部370は、更新履歴記録部40の変更前ポインタ記録領域410に記録されたポインタの値の合計値を、ポインタ不保持情報を除外して算出し、ポインタハッシュ値から差し引く。即ちポインタハッシュ値は不変である。更に、ポインタハッシュ値補正部370は、更新履歴記録部40の変更後ポインタ記録領域420に記録されたポインタの値の合計値を、ポインタ不保持情報を除外して算出し、ポインタハッシュ値に加える。即ちポインタハッシュ値は3300+2000により5300となる。
以上の補正の結果、整合性判断部380は、アドレスハッシュ値及び補正されたポインタハッシュ値を比較して一致しているので、階層型データベース20が整合していると判断することができる。
図13は、未だ読み出されていないアドレスにセグメントデータが追加される処理の一例を示す。(a)は、セグメントデータが追加される前の階層型データベース20を示す。本図は図11(a)と略同一であるので説明を省略する。但し、読出済アドレスは1150であり、セグメントデータ200−6は読出済でない。
(b)は、セグメントデータが追加された後の階層型データベース20を示す。セグメントデータ更新部340は、新たなセグメントデータ200−8を階層型データベース20に追加し、セグメントデータ200−6内のポインタによりセグメントデータ200−8を指示させる。読出済アドレスである1150より後方のアドレスの内容のみが変更されたので、更新履歴記録処理部350は、更新履歴を記録しない。
そして、アドレスハッシュ値生成部310は、読み出したセグメントデータの保存先アドレスを合計するので、1000+1100+1200+2000により5300をアドレスハッシュ値として生成する。ポインタハッシュ値生成部320は、読み出したポインタの値を合計するので、1000+1100+1200+2000により5300をポインタハッシュ値として生成する。
本図の例の場合、既に読み出されたアドレスの内容は更新されていないので、アドレスハッシュ値及びポインタハッシュ値は補正されない。そして、整合性判断部380は、アドレスハッシュ値及びポインタハッシュ値を比較して一致しているので、階層型データベース20が整合していると判断することができる。
以上、3例から明らかなように、本実施例におけるデータベース管理システム30によれば、読出済アドレスのセグメントデータが更新されない場合のみならず、読出済アドレスのセグメントデータが更新された場合であっても、階層型データベース20の整合性を適切に判断することができる。例えば、新たに追加したセグメントデータは読出済みでなく、そのセグメントデータに対するポインタのみが読出済であっても、整合性を適切に判断することができる。このようなオンライン・ポインタ・チェックを可能とすることにより、階層型データベース20の可用性を大幅に高めることができる。
図14は、データベース管理システム30として機能するコンピュータ800のハードウェア構成の一例を示す。本図においては、コンピュータ800が、メインフレームと呼ばれる大型汎用計算機である場合を例に、そのハードウェア構成を説明する。コンピュータ800は、主記憶装置802と、少なくとも1つの中央処理装置804と、記憶制御部806と、チャネル・サブシステム808と、少なくとも1つの制御装置810と、少なくとも1つの入出力デバイス812a〜dとを備える。
主記憶装置802は、入出力デバイス812a〜dから入力したデータ及びプログラムを格納する。そして、主記憶装置802は、中央処理装置804及びチャネル・サブシステム808からアドレスの指定を受けると、そのアドレスに格納しているデータを中央処理装置804及びチャネル・サブシステム808に送る。主記憶装置802は、格納しているデータを高速に読み書き可能であり、この高速な読み書きにより、中央処理装置804による高速演算処理が可能となる。
中央処理装置804は、コンピュータ800の全体を制御する中心的な役割を果たし、例えば、少なくとも1つのオペレーティングシステム805を実行する。オペレーティングシステム805は、コンピュータ800におけるプログラムの実行及び入出力処理を制御する。例えば、オペレーティングシステム805は、中央処理装置804上で動作する他のプログラムの実行を制御してもよいし、入出力デバイス812a〜dまでの各々におけるデータ転送を制御してもよい。
記憶制御部806は、双方向又は片方向に通信可能なバス814を経由して中央処理装置804に接続される。記憶制御部806は、更に、バス816を経由して主記憶装置802に接続され、バス818を経由してチャネル・サブシステム808に接続される。記憶制御部806は、例えば、中央処理装置804又はチャネル・サブシステム808から受けたアクセスリクエストを一時的に格納し(キューイング処理)、所定のタイミングでそのアクセスリクエストを主記憶装置802に送信してもよい。
チャネル・サブシステム808は、各々の制御装置810に対して、データ転送路820を経由して接続される。そして、チャネル・サブシステム808は、入出力デバイス812a〜d及び主記憶装置802間でのデータ転送を制御する。これにより、中央処理装置804が入出力デバイス812a〜dとの間で通信する処理負荷が軽減されるので、中央処理装置804による演算処理と、入出力デバイス812a〜dによる入出力処理とを並列に実行させることができ、結果としてコンピュータ800を効率的に動作させることができる。
また、チャネル・サブシステム808は、少なくとも1つのチャネルパス822により、入出力デバイス812a〜dとデータ転送する。各々のチャネルパス822は、チャネル・サブシステム808内に設けられたチャネル824を有する。また、各々のチャネルパス822は、少なくとも1つの制御装置810と、データ転送路820を有する。ここで、データ転送路820は、例えば、(ESCON: Enterprise Systems Connection Architecture)に基づくシリアルリンクであってもよい。これに代えて、データ転送路820は、パラレルOEMIであってもよいし、ファイバチャネルであってもよい。
制御装置810は、入出力デバイス812a〜dの少なくとも1つを制御する。例えば、制御装置810は、入出力デバイス812a〜dの各々におけるデータ転送のタイミングを制御してもよい。制御装置810は、バス826を経由して、入出力デバイス812a〜dの少なくとも1つに接続する。一例として、制御装置810は、最大256個の入出力デバイスに接続可能である。
入出力デバイス812a〜dの各々は、制御装置810、チャネル・サブシステム808、及び記憶制御部806を順次経由して主記憶装置802との間でデータ転送を行う。ここで、入出力デバイス812aは、具体的には、磁気テープドライブであり、入出力デバイス812dは、ハードディスクドライブである。これに代えて、又はこれに加えて、入出力デバイス812a〜dの各々は、パンチカードリーダ、ディスプレイ、キーボード、プリンタ、通信デバイス、各種センサー、又はその他の記憶装置であってもよい。一例として、入出力デバイス812a〜dの少なくとも何れか1つは、階層型データベース20と接続され、階層型データベース20に対するアクセスを行ってもよい。
コンピュータ800に提供されるプログラムは、テープ記録媒体835等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力デバイス812aによって読み出され、チャネル・サブシステム808を経由して主記憶装置802に格納される。そして、主記憶装置802に格納されたプログラムは、再度チャネル・サブシステム808を経由して入出力デバイス812d(ハードディスクドライブ)にインストールされる。プログラムがコンピュータ800等に働きかけて行わせる動作は、図1から図13において説明したデータベース管理システム30における動作と同一であるから、説明を省略する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク、CD−ROMの他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ800に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、データベースシステム10の概略を示す。 図2は、階層型データベース20のデータ構造の一例を示す。 図3は、データベース管理システム30の機能を機能ブロックに分類して示す。 図4は、更新履歴記録部40のデータ構造の一例を示す。 図5は、アドレスハッシュ値及びポインタハッシュ値を生成して整合性を判断する処理の処理フローを示す。 図6は、更新履歴を記録する処理の処理フローを示す。 図7は、図6のS640における処理の詳細を示す。 図8は、セグメントデータが追加される処理の一例を示す。 図9は、セグメントデータが削除される処理の一例を示す。 図10は、セグメントデータが分割される処理の一例を示す。 図11は、既に読み出されたアドレスにセグメントデータが追加される処理の一例を示す。 図12は、既に読み出されたアドレス及び未だ読み出されていないアドレスの双方が更新される処理の一例を示す。 図13は、未だ読み出されていないアドレスにセグメントデータが追加される処理の一例を示す。 図14は、データベース管理システム30として機能するコンピュータ800のハードウェア構成の一例を示す。
符号の説明
10 データベースシステム
20 階層型データベース
30 データベース管理システム
40 更新履歴記録部
200 セグメントデータ
210 接頭部
220 データ部
230 ポインタ
240 保存先アドレス
300 データ読出部
310 アドレスハッシュ値生成部
320 ポインタハッシュ値生成部
330 読出済アドレス記録部
340 セグメントデータ更新部
350 更新履歴記録処理部
360 アドレスハッシュ値補正部
370 ポインタハッシュ値補正部
380 整合性判断部
400 保存先アドレス記録領域
410 変更前ポインタ記録領域
420 変更後ポインタ記録領域
800 コンピュータ

Claims (12)

  1. 複数のセグメントデータを含み、各セグメントデータが他のセグメントデータに対するポインタを有する階層型データベースにおいて、ポインタ及びポインタにより指示されるセグメントデータの保存先アドレスの整合性を判断するデータベース管理システムであって、
    前記階層型データベースから前記複数のセグメントデータのポインタを順次読み出すデータ読出部と、
    前記データ読出部が読み出した各セグメントデータの保存先アドレスのハッシュ値であるアドレスハッシュ値を生成するアドレスハッシュ値生成部と、
    前記データ読出部が読み出した各セグメントデータに含まれる各ポインタのハッシュ値であるポインタハッシュ値を生成するポインタハッシュ値生成部と、
    前記データ読出部が既に読み出したアドレスの内容が更新された場合に、当該更新により追加されたセグメントデータ又は削除されたセグメントデータの保存先アドレスに基づいて、前記アドレスハッシュ値を補正するアドレスハッシュ値補正部と、
    前記データ読出部が既に読み出したアドレスの内容が更新された場合に、当該更新により変更された各ポインタに基づいて、前記ポインタハッシュ値を補正するポインタハッシュ値補正部と、
    前記アドレスハッシュ値補正部により補正されたアドレスハッシュ値が、前記ポインタハッシュ値補正部により補正されたポインタハッシュ値と一致する場合に、前記階層型データベースが整合していると判断する整合性判断部と
    を備えるデータベース管理システム。
  2. 前記アドレスハッシュ値生成部は、前記アドレスハッシュ値として、各セグメントデータの保存先アドレスを合計した合計値を生成し、
    前記ポインタハッシュ値生成部は、前記ポインタハッシュ値として、各セグメントデータに含まれる各ポインタの値を合計した合計値を生成し、
    前記アドレスハッシュ値補正部は、前記アドレスハッシュ値に、当該更新により追加された全てのセグメントデータの保存先アドレスの合計値を加え、当該更新により削除された全てのセグメントデータの保存先アドレスの合計値を差し引き、
    前記ポインタハッシュ値補正部は、前記ポインタハッシュ値に、当該更新により変更された変更後の全てのポインタの合計値を加え、当該更新により変更された変更前の全てのポインタの合計値を差し引く
    請求項1記載のデータベース管理システム。
  3. 前記アドレスハッシュ値補正部は、前記データ読出部が何れかのセグメントデータを読み出してから全てのセグメントデータを読み出すまでの間に、前記データ読出部が既に読み出したアドレスの内容が更新された場合に、前記アドレスハッシュ値を補正し、
    前記ポインタハッシュ値補正部は、前記データ読出部が何れかのセグメントデータを読み出してから全てのセグメントデータを読み出すまでの間に、前記データ読出部が既に読み出したアドレスの内容が更新された場合に、前記ポインタハッシュ値を補正する
    請求項1記載のデータベース管理システム。
  4. 前記データ読出部が何れかのセグメントデータを読み出してから全てのセグメントデータを読み出すまでの間に、前記データ読出部が既に読み出したアドレスの内容が更新される毎に、当該更新によって追加されたセグメントデータの保存先アドレスと、当該更新によって削除されたセグメントデータの保存先アドレスと、変更又は削除されたポインタの変更又は削除前の値と、変更又は追加されたポインタの変更又は追加後の値とを記録する更新履歴記録部を更に備え、
    前記アドレスハッシュ値補正部は、前記データ読出部が全てのセグメントデータを読み出した場合に、当該更新により追加された全てのセグメントデータの保存先アドレスを前記更新履歴記録部から読み出して合計値を算出し、当該更新により削除された全てのセグメントデータの保存先アドレスを前記更新履歴記録部から読み出して合計値を算出し、
    前記ポインタハッシュ値補正部は、前記データ読出部が全てのセグメントデータを読み出した場合に、変更又は追加された全てのポインタの変更又は追加後の値を前記更新履歴記録部から読み出して合計値を算出し、変更又は削除された全てのポインタの変更又は削除前の値を前記更新履歴記録部から読み出して合計値を算出する
    請求項3記載のデータベース管理システム。
  5. 前記更新履歴記録部は、更新対象のセグメントデータの保存先アドレスを記録する保存先アドレス記録領域と、当該セグメントデータに含まれるポインタの変更前の値を記録する変更前ポインタ記録領域と、当該セグメントデータに含まれるポインタの変更後の値を記録する変更後ポインタ記録領域とを有し、
    既に読み出されたアドレスに新たにセグメントデータが追加された場合に、当該セグメントデータの保存先アドレスを前記保存先アドレス記録領域に記録し、当該セグメントデータに対応する前記変更前ポインタ記録領域に、ポインタを含まない旨を示すポインタ不保持情報を記録し、既に読み出されたアドレスの内容が削除された場合に、当該セグメントデータの保存先アドレスを前記保存先アドレス記録領域に記録し、当該セグメントデータに対応する前記変更後ポインタ記録領域に、前記ポインタ不保持情報を記録する更新履歴記録処理部を更に備え、
    前記アドレスハッシュ値補正部は、前記ポインタ不保持情報を記録した前記変更前ポインタ記録領域に対応する前記保存先アドレス記録領域の値の合計値をアドレスハッシュ値に加え、前記ポインタ不保持情報を記録した前記変更後ポインタ記録領域に対応する前記保存先アドレス記録領域の値の合計値をアドレスハッシュ値から差し引き、
    前記ポインタハッシュ値補正部は、前記更新履歴記録部の前記変更前ポインタ記録領域に記録されたポインタの値の合計値を、前記ポインタ不保持情報を除外して算出し、前記更新履歴記録部の前記変更後ポインタ記録領域に記録されたポインタの値の合計値を、前記ポインタ不保持情報を除外して算出する
    請求項4記載のデータベース管理システム。
  6. 前記データ読出部が既に読み出したアドレスを記録し、読出しを開始すべき先頭アドレスから予め定められた昇順及び降順の何れかの順序によりアドレス値を順次更新する読出済アドレス記録部を更に備え、
    前記更新履歴記録処理部は、前記読出済アドレス記録部に記録されたアドレス又は当該アドレスより先頭側のアドレスの内容が更新された場合に、前記データ読出部が既に読み出したアドレスの内容が更新されたと判断する
    請求項5記載のデータベース管理システム。
  7. 第1のセグメントデータと第2のセグメントデータの間に新たな第3のセグメントデータを追加するために、前記第1のセグメントデータが有する前記第2のセグメントデータに対するポインタを、前記第3のセグメントデータの保存先アドレスに変更し、前記第3のセグメントデータ内に、前記第2のセグメントデータに対するポインタを生成する場合に、
    前記更新履歴記録処理部は、前記第1のセグメントデータの保存先アドレスを前記保存先アドレス記録領域に記録し、当該保存先アドレス記録領域に対応する前記変更前ポインタ記録領域に、前記第2のセグメントデータの保存先アドレスを記録し、当該保存先アドレス記録領域に対応する前記変更後ポインタ記録領域に、前記第3のセグメントデータの保存先アドレスを記録し、前記第3のセグメントデータの保存先アドレスを前記保存先アドレス記録領域の他のエントリに記録し、当該他のエントリに対応する前記変更前ポインタ記録領域に、前記ポインタ不保持情報を記録し、当該他のエントリに対応する前記変更後ポインタ記録領域に、前記第2のセグメントデータの保存先アドレスを記録する
    請求項5記載のデータベース管理システム。
  8. 第1のセグメントデータと第2のセグメントデータの間の第3のセグメントデータを削除するために、前記第1のセグメントデータが有する前記第3のセグメントデータに対するポインタを、前記第2のセグメントデータの保存先アドレスに変更する場合に、
    前記更新履歴記録処理部は、前記第1のセグメントデータの保存先アドレスを前記保存先アドレス記録領域に記録し、当該保存先アドレス記録領域に対応する前記変更前ポインタ記録領域に、前記第3のセグメントデータの保存先アドレスを記録し、当該保存先アドレス記録領域に対応する前記変更後ポインタ記録領域に、前記第2のセグメントデータの保存先アドレスを記録し、前記第3のセグメントデータの保存先アドレスを前記保存先アドレス記録領域の他のエントリに記録し、当該他のエントリに対応する前記変更前ポインタ記録領域に、前記第2のセグメントデータの保存先アドレスを記録し、当該他のエントリに対応する前記変更後ポインタ記録領域に、前記ポインタ不保持情報を記録する
    請求項5記載のデータベース管理システム。
  9. 第1のセグメントデータへのポインタを有する第2のセグメントデータの一部を第3のセグメントデータに分割するために、前記第2のセグメントデータ内に、前記第3のセグメントデータへのポインタを追加する場合に、
    前記更新履歴記録処理部は、前記第2のセグメントデータの保存先アドレスを前記保存先アドレス記録領域に記録し、当該保存先アドレス記録領域に対応する前記変更前ポインタ記録領域に、前記第1のセグメントデータの保存先アドレスを記録し、当該保存先アドレス記録領域に対応する前記変更後ポインタ記録領域に、前記第1のセグメントデータの保存先アドレスと、前記第3のセグメントデータの保存先アドレスとを記録する
    請求項5記載のデータベース管理システム。
  10. 前記データ読出部が既に読み出したアドレスを記録する読出済アドレス記録部を更に備え、
    前記データ読出部は、前記読出済アドレス記録部が記録するアドレスの次に読み出すアドレスの内容を、排他的に読み書き可能なロック状態に設定し、前記ロック状態において当該アドレスのセグメントデータのポインタを読出し、前記ロック状態において前記読出済アドレス記録部に当該アドレスを記録し、セグメントデータの読出し及び前記読出済アドレス記録部のアドレスの変更後に前記ロック状態を解除する
    請求項1記載のデータベース管理システム。
  11. 複数のセグメントデータを含み、各セグメントデータが他のセグメントデータに対するポインタを有する階層型データベースにおいて、ポインタ及びポインタにより指示されるセグメントデータの保存先アドレスの整合性を判断するデータベース管理方法であって、
    前記階層型データベースから前記複数のセグメントデータのポインタを順次読み出すデータ読出段階と、
    前記データ読出段階において読み出した各セグメントデータの保存先アドレスのハッシュ値であるアドレスハッシュ値を生成するアドレスハッシュ値生成段階と、
    前記データ読出段階において読み出した各セグメントデータに含まれる各ポインタのハッシュ値であるポインタハッシュ値を生成するポインタハッシュ値生成段階と、
    前記データ読出段階において既に読み出したアドレスの内容が更新された場合に、当該更新により追加されたセグメントデータ又は削除されたセグメントデータの保存先アドレスに基づいて、前記アドレスハッシュ値を補正するアドレスハッシュ値補正段階と、
    前記データ読出段階において既に読み出したアドレスの内容が更新された場合に、当該更新により変更された各ポインタに基づいて、前記ポインタハッシュ値を補正するポインタハッシュ値補正段階と、
    前記アドレスハッシュ値補正段階において補正されたアドレスハッシュ値が、前記ポインタハッシュ値補正段階において補正されたポインタハッシュ値と一致する場合に、前記階層型データベースが整合していると判断する判断段階と
    を備えるデータベース管理方法。
  12. 複数のセグメントデータを含み、各セグメントデータが他のセグメントデータに対するポインタを有する階層型データベースにおいて、ポインタ及びポインタにより指示されるセグメントデータの保存先アドレスの整合性を判断するデータベース管理システムとしてコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記階層型データベースから前記複数のセグメントデータのポインタを順次読み出すデータ読出部と、
    前記データ読出部が読み出した各セグメントデータの保存先アドレスのハッシュ値であるアドレスハッシュ値を生成するアドレスハッシュ値生成部と、
    前記データ読出部が読み出した各セグメントデータに含まれる各ポインタのハッシュ値であるポインタハッシュ値を生成するポインタハッシュ値生成部と、
    前記データ読出部が既に読み出したアドレスの内容が更新された場合に、当該更新により追加されたセグメントデータ又は削除されたセグメントデータの保存先アドレスに基づいて、前記アドレスハッシュ値を補正するアドレスハッシュ値補正部と、
    前記データ読出部が既に読み出したアドレスの内容が更新された場合に、当該更新により変更された各ポインタに基づいて、前記ポインタハッシュ値を補正するポインタハッシュ値補正部と、
    前記アドレスハッシュ値補正部により補正されたアドレスハッシュ値が、前記ポインタハッシュ値補正部により補正されたポインタハッシュ値と一致する場合に、前記階層型データベースが整合していると判断する整合性判断部と
    して機能させるプログラム。
JP2004329661A 2004-11-12 2004-11-12 データベース管理システム、データベース管理方法、及びプログラム Expired - Fee Related JP4082614B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004329661A JP4082614B2 (ja) 2004-11-12 2004-11-12 データベース管理システム、データベース管理方法、及びプログラム
US11/268,910 US7483920B2 (en) 2004-11-12 2005-11-08 Database management system, database management method, and program
US12/248,692 US8108365B2 (en) 2004-11-12 2008-10-09 Consistency of a database management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004329661A JP4082614B2 (ja) 2004-11-12 2004-11-12 データベース管理システム、データベース管理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2006139619A JP2006139619A (ja) 2006-06-01
JP4082614B2 true JP4082614B2 (ja) 2008-04-30

Family

ID=36387644

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004329661A Expired - Fee Related JP4082614B2 (ja) 2004-11-12 2004-11-12 データベース管理システム、データベース管理方法、及びプログラム

Country Status (2)

Country Link
US (2) US7483920B2 (ja)
JP (1) JP4082614B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4082614B2 (ja) 2004-11-12 2008-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース管理システム、データベース管理方法、及びプログラム
US8051298B1 (en) * 2005-11-29 2011-11-01 Sprint Communications Company L.P. Integrated fingerprinting in configuration audit and management
JP4148529B2 (ja) 2006-12-28 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム
KR20090000228A (ko) * 2007-02-05 2009-01-07 삼성전자주식회사 무결성 검증이 가능한 컨텐츠 제공 방법 및 컨텐츠 이용방법과 그 장치
EP2266081A1 (en) * 2008-03-10 2010-12-29 Ubs Ag Methods and systems for group data management and classification
US20090319564A1 (en) * 2008-06-24 2009-12-24 Vitit Kantabutra Intentionally-Linked Entities: A General-Purpose Database System
JP4754007B2 (ja) * 2009-04-24 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理方法、プログラムおよび記録媒体
US9411810B2 (en) * 2009-08-27 2016-08-09 International Business Machines Corporation Method and apparatus for identifying data inconsistency in a dispersed storage network
CN102667734B (zh) * 2009-12-25 2014-08-20 国际商业机器公司 用于检查分层型数据库中的指针的一致性的系统和方法
US9026502B2 (en) 2013-06-25 2015-05-05 Sap Se Feedback optimized checks for database migration
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155678A (en) 1985-10-29 1992-10-13 International Business Machines Corporation Data availability in restartable data base system
US4751702A (en) 1986-02-10 1988-06-14 International Business Machines Corporation Improving availability of a restartable staged storage data base system that uses logging facilities
JPH0581110A (ja) 1991-09-25 1993-04-02 Hitachi Ltd インデクスフアイルの整合性自動検証方式
JPH0675840A (ja) 1992-08-26 1994-03-18 Hitachi Ltd データベースメンテナンス方式
JPH06139124A (ja) 1992-10-28 1994-05-20 Nec Software Ltd インバーテッドファイル方式データベース内不整合削除方式
JPH06243011A (ja) 1993-02-18 1994-09-02 Hitachi Ltd データベースの自動メンテナンス方式
JPH08249222A (ja) 1995-03-14 1996-09-27 Nippon Telegr & Teleph Corp <Ntt> データベース整合性チェック方法および装置
US5778387A (en) 1995-05-19 1998-07-07 Sprint Communications Co., L.P. Database automated recovery system
JP3636773B2 (ja) 1995-06-19 2005-04-06 株式会社日立製作所 データベースのチェックを行う情報処理装置
US5881379A (en) 1996-05-20 1999-03-09 International Business Machines Corporation System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging
US6098110A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
JPH10260876A (ja) 1997-03-19 1998-09-29 Hitachi Ltd データベースのデータ構造及びデータベースのデータ処理方法
JPH10312329A (ja) 1997-05-09 1998-11-24 Matsushita Electric Ind Co Ltd データ・バックアップ・リストア装置
US5950191A (en) * 1997-05-21 1999-09-07 Oracle Corporation Method and system for accessing an item in a linked list using an auxiliary array
US6073129A (en) 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
US6052799A (en) 1998-05-15 2000-04-18 International Business Machines Corporation System and method for recovering a directory for a log structured array
US6185569B1 (en) 1998-06-29 2001-02-06 Microsoft Corporation Linked data structure integrity verification system which verifies actual node information with expected node information stored in a table
US6411964B1 (en) 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
JP2001142765A (ja) 1999-11-17 2001-05-25 Nec Corp データベースファイル整合性検証方法およびその装置ならびに記録媒体
US6792418B1 (en) 2000-03-29 2004-09-14 International Business Machines Corporation File or database manager systems based on a fractal hierarchical index structure
CA2302981C (en) 2000-03-29 2004-06-01 Ibm Canada Limited-Ibm Canada Limitee Online database table reorganization
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
US6516380B2 (en) 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US6889225B2 (en) * 2001-08-09 2005-05-03 Integrated Silicon Solution, Inc. Large database search using content addressable memory and hash
JP2004013228A (ja) 2002-06-03 2004-01-15 Ricoh Co Ltd データベースシステム及びその整合制御方法
US7085787B2 (en) 2002-07-19 2006-08-01 International Business Machines Corporation Capturing data changes utilizing data-space tracking
US7308456B2 (en) 2002-12-19 2007-12-11 International Business Machines Corporation Method and apparatus for building one or more indexes on data concurrent with manipulation of data
US6823493B2 (en) * 2003-01-23 2004-11-23 Aurilab, Llc Word recognition consistency check and error correction system and method
JP4401132B2 (ja) * 2003-09-19 2010-01-20 株式会社日立国際電気 循環記録装置
US7133884B1 (en) 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
JP2005190047A (ja) 2003-12-25 2005-07-14 Hitachi Ltd データソート機能を持つストレージシステム
US7277905B2 (en) * 2004-03-31 2007-10-02 Microsoft Corporation System and method for a consistency check of a database backup
US7440936B2 (en) 2004-10-07 2008-10-21 International Business Machines Corporation Method for determining an access mode to a dataset
JP4082614B2 (ja) 2004-11-12 2008-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース管理システム、データベース管理方法、及びプログラム
JP3884049B1 (ja) 2005-08-17 2007-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション システム、判断方法およびプログラム
US20070118547A1 (en) 2005-11-22 2007-05-24 Monish Gupta Efficient index versioning in multi-version databases
JP4148529B2 (ja) 2006-12-28 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム

Also Published As

Publication number Publication date
US8108365B2 (en) 2012-01-31
JP2006139619A (ja) 2006-06-01
US7483920B2 (en) 2009-01-27
US20060106781A1 (en) 2006-05-18
US20090049079A1 (en) 2009-02-19

Similar Documents

Publication Publication Date Title
JP4148529B2 (ja) データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム
US8108365B2 (en) Consistency of a database management system
JP3884049B1 (ja) システム、判断方法およびプログラム
JP6605078B2 (ja) 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体
JP4295791B2 (ja) アトミックに更新される集中キャッシュメモリのための方法及びシステム
US8972343B2 (en) Storage system
US7139927B2 (en) Journaling and recovery method of shared disk file system
WO2019085471A1 (zh) 数据库同步方法、应用服务器及计算机可读存储介质
US20110295914A1 (en) Storage system
JP2008217209A (ja) 差分スナップショット管理方法、計算機システム及びnas計算機
WO2021143351A1 (zh) 分布式检索方法、装置、系统、计算机设备及存储介质
JP3894335B1 (ja) データベースの整合性を判断する装置、およびその方法
US8423556B2 (en) Archive device
US8612717B2 (en) Storage system
US20170091228A1 (en) Method and system for reading consistent data from a multi-master replicated database
JP5517224B2 (ja) ストレージ装置
US20060206543A1 (en) Database reorganization program and method
JP2012208650A (ja) ストレージ装置
US20130218851A1 (en) Storage system, data management device, method and program
CN101566985A (zh) 查找由动态数据转换而成的静态数据的系统及其方法
JP3983036B2 (ja) ファイルサーバプログラム
US11095712B2 (en) Computer system and control method for data transfer
CN117291172A (zh) 基于事件来解析信息的方法、装置和计算机可读介质
CN114443650A (zh) 按照时间分库分表的方法与装置
JP2006172135A (ja) 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070927

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20071213

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080205

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080207

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees