【解決手段】削除対象レコードの削除命令を獲得する削除命令獲得段階と、該削除命令に基づいて、少なくとも1つのインデックスを検索し、削除対象レコードの識別値を獲得する識別値獲得段階と、削除対象レコードの識別値に基づいて、テーブルからの削除対象レコードの各項目のデータを獲得する削除対象レコード獲得段階と、獲得された削除対象レコードの各項目のデータに基づいて、少なくとも1つのインデックスのそれぞれから、削除対象レコードのブックマークを削除するインデックス処理段階と、テーブルから、削除対象レコードを削除するテーブル処理段階と、を含み、該インデックス処理段階において、全てのインデックスに、削除対象レコードのブックマークが存在していたか否かに係わりなく、テーブル処理段階が遂行され、削除対象レコードが削除されるデータベース管理方法である。
前記テーブルから前記削除対象レコードの削除が完了したことを知らせるメッセージを出力するメッセージ出力段階をさらに含むことを特徴とする請求項1ないし7のうちいずれか1項に記載のデータベース管理方法。
【発明を実施するための形態】
【0017】
本発明は、多様な変換を加えることができ、さまざまな実施形態を有することができるが、特定実施形態を図面に例示し、詳細な説明で詳細に説明する。本発明の効果及び特徴、並びにそれらを達成する方法は、図面と共に詳細に説明する実施形態を参照すれば、明確になるであろう。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、多様な形態で具現されるのである。
【0018】
以下、添付された図面を参照し、本発明の実施形態について詳細に説明するが、図面を参照して説明するとき、同一であるか、あるいは対応する構成要素は、同一の図面符号を付し、それについての重複説明は省略する。
【0019】
以下の実施形態において、第1、第2のような用語は、限定的な意味ではなく、1つの構成要素を他の構成要素と区別する目的で使用されている。以下の実施形態において、単数の表現は、文脈上明白に取り立てて意味しない限り、複数の表現を含む。以下の実施形態において、「含む」または「有する」というような用語は、明細書上に記載された特徴、または構成要素が存在するということを意味するものであり、一つ以上の他の特徴または構成要素が付加される可能性をあらかじめ排除するものではない。図面では、説明の便宜のために、構成要素がその大きさが誇張されていたり縮小されていたりする。例えば、図面で示された各構成の大きさ及び厚さは、説明の便宜のために任意に示されているものであり、本発明は、必ずしも図示されているところに限定されるものではない。
【0020】
図1は、一実施形態によるデータベース管理システム(DBMS)1を概略的に図示したものである。
【0021】
データベース管理システム1は、データベース30に連結され、データベース30に記録されたデータを更新または削除したり、あるいはデータベース30にデータを追加したりするなど、データベース30を統合的に管理する機能を遂行する。
図1を参照すれば、一実施形態によるデータベース管理システム1は、サーバ10、データベース30が通信網40を介して、端末20と連結されている。
【0022】
サーバ10は、端末20から各種命令を受信し、命令に対応する処理を行う。前記命令は、データベースを管理するための命令でもある。サーバ10は、端末20に多様なサービスを提供するように具備される。図面には図示されていないが、一実施形態によるサーバ10には、メモリ、入出力部、プログラム保存部、制御部などがさらに含まれてもよい。サーバ10に含まれる詳細構成については、
図2を参照して後述する。
【0023】
端末20は、有無線通信環境を備えた通信端末機を意味する。ここで、端末20は、
図1に図示されたようなパソコンでもあるが、必ずしもそれに限定されるものではない。端末20は、携帯用端末、例えば、スマートフォンでもあり、通信環境を備えた端末であるならば、制限なしに用いられる。
【0024】
端末20は、画面を表示する表示部、ユーザからデータを入力される入力装置などを具備することができる。
【0025】
データベース30は、多様なデータを保存する保存装置であり、前記データは、テーブル形式に保存される。データベース30には、前記テーブルのメタデータであるインデックスが保存される。以下、テーブルに保存されるデータは、レコードとし、レコードは、多項目のデータを含む。インデックスは、全てのレコードのブックマークを含む。本願明細書における「ブックマーク」とは、例えば、(キー、識別値)のように、2つのデータの組み合わせから構成されるデータの集合を意味する。ここで、キーは、レコードの1つの項目データであり、識別値は、レコードを識別するために、レコードに付与された固有値を意味する。インデックスに含まれたブックマークは、各ブックマークのキー値によって整列される。一方、ブックマークは、必ずしも2つのデータの組み合わせから構成されるものではない。例えば、ブックマークは、(キー1、キー2、識別値)のように、複数の項目データを含むデータの組み合わせからも構成される。
【0026】
図1では、データベース30が1個具備されるように図示されているが、本発明の思想は、それに制限されるものではなく、データベース30の個数及び構成は、データベース管理システム1の構成、保存されるデータ分量、及び用途などによって、多様に変更可能である。
【0027】
通信網40は、サーバ10と端末20とを連結する。例えば、通信網40は、端末20がサーバ10に接続した後、パケットデータを送受信することができるように、接続経路を提供する。
【0028】
図2は、一実施形態によるデータベース管理装置100を概略的に図示したブロック図である。
図2に図示されたデータベース管理装置100は、サーバ10に具備されたものでもある。
【0029】
本発明の一実施形態によるデータベース管理装置100は、データベース30を含む外部装置と通信し、データベース30に保存されたデータを管理する。例えば、データベース30のデータを追加、削除または変更することができる。
【0030】
本発明の一実施形態によるデータベース管理装置100は、少なくとも一つ以上のプロセッサ(processor)に該当するか、あるいは少なくとも一つ以上のプロセッサを含んでもよい。それにより、データベース管理装置100は、マイクロプロセッサや汎用コンピュータシステムのような他のハードウェア装置に含まれた形態でも駆動される。レコード追加処理部120及びレコード削除処理部130は、1つのモジュールでも構成されることができる。
【0031】
図2に図示されたデータベース管理装置100は、本実施形態の特徴が不明確になることを防止するために、本実施形態と係わる構成要素のみを図示している。従って、
図2に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれるということは、本実施形態と係わる技術分野で当業者であるならば、理解することができるであろう。
【0032】
図2を参照すれば、一実施形態によるデータベース管理装置100は、通信部110、レコード追加処理部120及びレコード削除処理部130を含んでもよい。以下、データベース管理装置100の詳細構成について、
図2を参照して説明する。
【0033】
まず、通信部110は、データベース管理装置100内部の構成要素と外部装置とのデータ送受信経路を提供する。
【0034】
レコード追加処理部120は、データベース30にレコードを追加する命令を端末20から受信したとき、前記命令によって、データベース30にレコードを追加する処理を行う。レコード追加処理部120は、追加命令獲得部121、テーブルアップデート部122及びインデックスアップデート部123を含む。
【0035】
追加命令獲得部121は、端末20から、レコードの追加命令を獲得する。追加命令は、データベース30に追加する追加対象レコードの情報を含む。
【0036】
テーブルアップデート部122は、追加対象レコードを、データベース30のテーブルに追加する。
【0037】
インデックスアップデート部123は、追加対象レコードが追加されたテーブルを参照し、テーブルに対するインデックスをアップデートする。前記アップデートは、既存のインデックスの一部を修正するものでもあり、既存のインデックスを削除した後、新たなインデックスを再生成するものでもある。
【0038】
レコード削除処理部130は、データベース30に保存された所定レコードを削除する命令を端末20から受信したとき、前記命令によって、データベース30に保存された所定レコードを削除する処理を行う。レコード削除処理部130は、削除命令獲得部131、識別値獲得部132、削除対象レコード獲得部133、インデックス処理部134及びテーブル処理部135を含む。削除対象レコード獲得部133は、ブックマーク抽出部1331を含んでもよい。
【0039】
削除命令獲得部131は、端末20からレコードの削除命令を獲得する。削除命令は、データベース30に保存された一つ以上のレコードのうち削除する削除対象レコードの情報を含む。そのとき、削除命令に含まれる削除対象レコードの情報は、削除対象レコードに含まれた全ての項目データ、及び削除対象レコードの識別値をいずれも含んでもよいが、削除対象レコードの少なくとも一部の項目データのみを含むか、削除対象レコードの識別値のみを含んでもよい。削除対象レコードは、一つでもあり、複数でもありうる。例えば、特定項目データを含む全てのレコードが、削除対象レコードであってもよい。以下では、削除命令が削除対象レコードの1つの項目データを含む場合を仮定する。
【0040】
識別値獲得部132は、削除命令獲得部131によって獲得された削除命令に基づいて、少なくとも1つのインデックスを検索し、削除対象レコードの識別値を獲得する。削除命令が、削除対象レコードの識別値情報を含む場合、識別値獲得部132は、インデックスを参照せずとも、削除命令から識別値情報を獲得することもできる。
【0041】
前述のように、本発明の一実施形態において、インデックスに含まれるブックマークは、(キー、識別値)のデータ対から構成され、キーは、レコードの項目データに該当するので、識別値獲得部132は、削除対象レコードの項目データを含むブックマークをインデックスから検索することにより、当該項目データを含むレコードの識別値を獲得することができる。削除対象レコードの項目データは、削除命令に含まれたものでもある。
【0042】
削除対象レコード獲得部133は、識別値獲得部132によって獲得された識別値に基づいて、テーブルからの削除対象レコードの各項目データを獲得することができる。
【0043】
削除対象レコード獲得部133は、ブックマーク抽出部1331を含み、ブックマーク抽出部1331は、削除対象レコードの各項目データを参照し、各項目データに対応するブックマークを抽出する。抽出されるブックマークは、(キー(項目データ)、識別値)のデータ対でもある。
【0044】
インデックス処理部134は、削除対象レコード獲得部133によって獲得された削除対象レコードの各項目データ(または、各項目データに対応するブックマーク)に基づいて、全てのインデックスから、削除対象レコードのブックマークを削除することができる。そのような作業は、テーブルから削除対象レコードを削除する以前に、テーブルのメタデータであるインデックスから、削除対象レコードのブックマークをまず削除するのである。
【0045】
テーブル処理部135は、インデックス処理部134の処理が完了すれば、削除対象レコードをテーブルから削除する。一方、テーブル処理部135は、インデックス処理部134の処理段階において、全てのインデックスに、削除対象レコードのブックマークが存在していたか否かに係わりなく、削除対象レコードをテーブルから削除する。例えば、一部のインデックスにおいて、削除対象レコードのブックマークが失われているか損傷され、削除対象レコードのブックマークを含まないインデックスがあっても、インデックス処理部134は、インデックス処理を正常に終了する。それによって、テーブル処理部135は、一部のインデックスにおいて、削除対象レコードのブックマークが存在せず、削除対象ブックマークの削除が不可能であるとしても、削除対象レコードのブックマークが存在する残りのインデックスから削除対象レコードのブックマークが削除されれば、テーブルから削除対象レコードを削除する。
【0046】
図3は、一実施形態によるデータベース管理方法のフローチャートである。
【0047】
図3は
図2のデータベース管理装置100が、データベース30を管理する一実施形態を示すフローチャートである。従って、以下で省略された内容であるとしても、
図2で説明されたデータベース管理装置100について記述された内容は、
図3の実施形態によるデータベース管理方法にも適用される。
【0048】
図3を参照すれば、段階31で、
図2の追加命令獲得部121または削除命令獲得部131は、データベース管理のための命令を獲得し、段階32に進む。
【0049】
段階31で獲得した命令が、レコードの追加命令である場合、段階32から段階311に進み、レコードの削除命令である場合、段階32から段階321に進む。
【0050】
まず、段階311に進む場合、段階311で、
図2のテーブルアップデート部122は、追加対象レコードをテーブルに追加し、テーブルをアップデートする。
【0051】
段階312で、インデックスアップデート部123は、段階311でアップデートされたテーブルを参照し、テーブルのインデックスをアップデートする。段階312が完了すれば、レコード追加プロセスが終わる。
【0052】
段階32から段階321に進む場合、段階321で、
図2の識別値獲得部132は、段階31で獲得された削除命令に基づいて、少なくとも1つのインデックスを検索し、削除対象レコードの識別キーを獲得する。
【0053】
段階322で、削除対象レコード獲得部133は、削除対象レコードの識別キーに基づいて、テーブルからの削除対象レコードの各項目データを獲得する。
【0054】
段階323で、ブックマーク抽出部1331は、獲得された削除対象レコードの項目それぞれに対応するブックマークを抽出する。
【0055】
段階324で、インデックス処理部134は、段階322で獲得された項目データに基づいて、少なくとも1つのインデックスのそれぞれから、削除対象レコードのブックマークを削除する。または、段階324で、インデックス処理部134は、段階323で抽出されたブックマークに基づいて、少なくとも1つのインデックスのそれぞれから、削除対象レコードのブックマークを削除する。例えば、ブックマーク抽出部1331は、削除対象レコードの所定項目のデータを参照し、所定項目を基準に、ブックマークが整列されたインデックスから、前記削除対象レコードのブックマークを削除する。または、ブックマーク抽出部1331は、削除対象レコードの所定項目に対応するブックマークを参照し、前記所定項目を基準に、ブックマークが整列されたインデックスから、削除対象レコードのブックマークを削除する。段階324は、反復遂行され、テーブルに対応して保存された全てのインデックスに対して遂行される。
【0056】
段階325で、テーブル処理部135は、テーブルから削除対象レコードを削除する。一方、段階325で、テーブル処理部135は、段階324が遂行される前、全てのインデックスに、削除対象レコードのブックマークが存在していたか否かに係わりなく、テーブルから削除対象レコードを削除する。例えば、段階324で、一部のインデックスにおいて、削除対象レコードのブックマーク削除に失敗しても、段階325で、テーブル処理部135は、削除対象レコードの削除を正常に行う。ここで、ブックマーク削除に失敗するという意味は、段階324が遂行される以前に、インデックスに削除対象レコードのブックマークが正常に含まれており、段階324で、それを正常に削除した場合を除いた全ての場合を含む。例えば、一部のインデックスに、削除対象レコードのブックマークが存在しないために、削除対象レコードのブックマークを削除する処理が行われない場合、または一部のインデックスに、削除対象レコードのブックマークが存在しないために、削除対象レコードのブックマークを人為的に追加した後、追加したブックマークをさらに削除した場合などをいずれも含む。
【0057】
段階326で、テーブル処理部135は、テーブルから削除対象レコードの削除が完了したことを知らせる完了メッセージを出力することができる。完了メッセージは、端末20に伝送される。
【0058】
一方、以上では、段階31で獲得された命令が、削除命令または追加命令である場合の例について説明したが、段階31で獲得された命令は、レコード変更命令でもある。変更命令は、既存のレコードを削除した後、新たなレコードを追加する作業と同一であるので、段階31で獲得された変更命令は、削除命令と追加命令とに分けられる。段階31で獲得された命令が、変更対象レコードの変更命令である場合、まず、段階321及び以下の段階を介して、前記変更対象レコードを、まずデータベース30から削除した後、段階311及び以下の段階を介して、変更対象レコードをデータベース30に追加することができる。
【0059】
一方、前記変更命令に係わる処理は、前述の方法に限定されるものではない。例えば、変更命令に係わる処理を行うときには、インデックスから一つ一つブックマークを削除する段階が省略されもする。例えば、テーブルに保存されたレコードを、新たなレコードで上書きしてテーブルをアップデートした後、アップデートされたテーブルに対して、インデックスをアップデートすることができる。さらに、迅速な処理のために、既存レコードについて、変更された項目に対するインデックスのみをアップデートすることもできる。
【0060】
一方、一実施形態によるデータベース管理装置100は、データベース30にデータを記録して読み取る過程で、データベース管理装置100の内部に備えられた内部メモリを活用し、データ処理速度を速めることができる。
【0061】
図4は、一実施形態によるデータベース管理方法の一部を詳細に図示したフローチャートである。
【0062】
詳細には、
図4は、
図3のデータベース管理方法において、段階324の一例を詳細に図示したフローチャートである。
【0063】
図4を参照すれば、段階41で、インデックス処理部134は、削除対象レコードの項目(または、抽出されたブックマーク)を参照し、インデックスそれぞれに、削除対象レコードのブックマークが含まれているか否かということを確認する。削除対象レコードのブックマークがインデックスに含まれている場合、段階411に進み、インデックスから削除対象レコードのブックマークを削除する。一方、削除対象レコードのブックマークがインデックスに含まれていない場合、段階421に進む。
【0064】
段階421で、インデックス処理部134は、インデックスに削除対象レコードのブックマークを追加し、追加されたブックマークを段階422で削除し、段階423で、エラーログを出力する。段階423で、エラーログを出力するとき、インデックス処理部134は、データベース管理システム1の状態を、活性(valid)状態に設定することができる。それは、もし削除対象レコードのブックマークを含まないインデックスによって、データベース管理システム1の状態が非活性(invalid)状態に変更された場合でも、それを、強制的に活性状態に変更することによって、データベース管理システム1を正常に動作させるためである。
【0065】
一方、段階421及び段階422が省略されもする。言い換えれば、段階41で、削除対象レコードのブックマークが含まれていないインデックスが確認される場合、インデックス処理部134は、前記インデックスに対して、ブックマーク削除処理を省略し、段階423で、エラーログのみを出力した後、インデックス処理プロセスを終了し、
図3の段階325に進むことができる。
【0066】
図4に図示されたインデックス処理方法は、反復的に遂行され、テーブルに対応して存在する全てのインデックスごとに遂行される。
【0067】
図5は、一実施形態による、データベースのテーブル及びインデックスの一例を図示したものである。
【0068】
図5を参照すれば、データベース30は、多様なデータが保存されるテーブル51と、テーブル51のメタデータであるインデックス52と、を含む。
【0069】
テーブル51は、一つ以上のレコードR1,…,Rnを含み、各レコードは、一つ以上の項目データを含む。例えば、所定掲示板に係わる掲示物が保存されたデータベースである場合、テーブルは、掲示物の集合を意味し、レコードは、各掲示物を意味し、項目とは、掲示物識別子、掲示物作成者、ヒット数などが保存される領域を意味する。他の例として、ユーザアカウントが保存されたデータベースである場合、テーブルは、ユーザアカウントの集合を意味し、レコードは、各ユーザアカウントを意味し、項目とは、ユーザアカウントの識別子、ID(identification)、ユーザ名、年齢、性別、連絡先などが保存される領域を意味する。
【0070】
インデックス52は、テーブル51に対する動作の速度を速めるために設けられる資料構造であり、例えば、インデックス52は、テーブル51に含まれたレコードのブックマークが、所定項目を基準にして整列された構造を有する。
【0071】
インデックス52は、いくつか設けられる。例えば、インデックス52は、レコードの項目個数ほど設けられる。それぞれのインデックス52は、互いに異なる項目を基準に、テーブル51に含まれたレコードのブックマークを整列して保存することができる。
【0072】
図5を参照すれば、第1項目を基準に、レコードのブックマークB1R1,…,B1Rnが整列された第1インデックス521、第2項目を基準に、レコードのブックマークB2R1,…,B2Rnが整列された第2インデックス522、第3項目を基準に、レコードのブックマークB3R1,…,B3Rnが整列された第3インデックス523が例示されているということが分かる。
【0073】
一方、テーブル51は、データベース30のユーザデータ領域に保存され、インデックス52は、データベース30のメタデータ領域に保存されるが、必ずしもそれに限定されるものではない。
【0074】
図6は、
図5のテーブル51の詳細な例を図示したものである。
【0075】
図6を参照すれば、テーブル51は、複数のレコードを含む。
図6には、第1レコードR1、第2レコードR2及び第3レコードR3が図示されているが、テーブル51は、さらに多くのレコードを含んでもよく、さらに少ないレコードを含んでもよい。
【0076】
図6の例では、データベースがユーザアカウントを保存する。本例において、テーブル51は、ユーザアカウントを保存し、レコードは、ユーザアカウントに対応し、項目は、ユーザアカウントに含まれる詳細情報、例えば、項目1は、名称、項目2は、性別、項目3は、年齢に対応するように図示されている。
【0077】
一方、
図6に図示されたレコードの詳細項目データは例示であり、本発明の実施形態は、それに限定されるものではない。レコードは、さらに多くの項目を含み、さらに少ない項目を含んでもよい。
【0078】
図7Aないし
図7Cは、
図5のインデックス52の一例を図示したものである。
【0079】
詳細には、
図7Aは、第1インデックス521、
図7Bは、第2インデックス522、
図7Cは、第3インデックス523の例を図示する。第1インデックス521、第2インデックス522及び第3インデックス523は、テーブル51に含まれたレコードのブックマークを整列する。
【0080】
第1インデックス521に含まれたブックマークのキーは、項目1、すなわち、本例示の場合、名称データであり、第1インデックス521に含まれたブックマークは、名称順で整列される。第2インデックス522に含まれたブックマークのキーは、項目2、すなわち、本例示の場合、性別データであり、第2インデックス522に含まれたブックマークは、性別順で整列される。第3インデックス523に含まれたブックマークのキーは、項目3、すなわち、本例示の場合、年齢データで、第3インデックス523に含まれたブックマークは、年齢順に整列される。
【0081】
以下では、
図6、
図7A、
図7B及び
図7Cを共に参照し、一実施形態によるデータベース管理方法について説明する。
【0082】
まず、
図2の削除命令獲得部131は、ユーザから削除命令を獲得する。削除命令は、所定項目を基準にして獲得される。例えば、ユーザは、削除命令をサーバ10に伝送し、削除命令は、所定項目データを含んでもよい。例えば、削除命令の内容は、「金チョルス」のアカウントを削除せよというのでもある。以下では、該場合を仮定し、本発明の実施形態について例示的に説明する。
【0083】
前述の削除命令が獲得されれば、
図2の識別値獲得部132は、削除命令に基づいて、第1インデックスを参照し、「金チョルス」の識別値を獲得する。詳細には、「金チョルス」という項目データを含むブックマークの識別値を獲得する。
図7Aを参照すれば、「金チョルス」の識別値は、3である。
【0084】
次に、
図2の削除対象レコード獲得部133は、「金チョルス」の識別値に該当するレコードR3、すなわち、削除対象レコードを獲得する。削除対象レコード獲得部133は、レコードR3の各項目(金チョルス、男、35、…)に該当するブックマークを抽出することができる。抽出されたブックマークは、例えば、(金チョルス、3)、(男、3)及び(35、3)を含む。
【0085】
次に、
図2のインデックス処理部134は、レコードR3の項目データを参照し(または、抽出されたブックマークを参照)、全てのインデックスから削除対象レコードR3のブックマークを削除する。例えば、
図7Aに図示された第1インデックス521から、削除対象レコードR3のブックマークB1R3を削除し、
図7Bに図示された第2インデックス522から、削除対象レコードR3のブックマークB2R3を削除し、
図7Cに図示された第3インデックス523から、削除対象レコードR3のブックマークB3R3を削除する。
【0086】
しかし、
図7Cを参照すれば、削除対象レコードR3のブックマークが存在しないということが分かる。実際、データベース30の運用過程において、一部のインデックスのブックマークが失われるか、あるいは損傷される場合が生じるが、
図7Cの第3インデックス523は、そのような例を図示したものである。
【0087】
本発明の一実施形態の場合、
図7Cの例のように、削除するブックマークがインデックスにないとしても、
図2のインデックス処理部134は、システムを停止させず、削除が正常に行われたように、次の段階に進む。削除するブックマークがインデックスにない場合にも、削除が正常に行われたように認識するためには、次のような処理が可能である。
【0088】
第1の方法は、削除するブックマークをインデックスに追加することである。インデックス処理部134は、追加されたブックマークを削除することができる。その場合、全てのインデックスから、追加対象レコードのブックマークの削除処理が実際に遂行されたので、インデックスを正常に処理したようになる。
【0089】
第2の方法は、削除するブックマークがインデックスになく、データ処理過程において、データベース管理システム1の運用に問題が発生する場合、例えば、データベース管理システム1の状態が非活性状態に変更される場合、インデックス処理部134は、データベース管理システム1の状態を強制的に活性状態に変更するのである。それによれば、一部のインデックスにおいて、追加対象レコードのブックマークの削除処理が実際に行われなくとも、データベース管理システム1は、エラーを認知することができないので、インデックスを正常に処理したようになる。
【0090】
前述の方法は、削除するブックマークがインデックスにない場合、エラーを発生させずに、データ処理を正常に終了するための詳細方法の例示であり、前述の例示以外の他の方法が本実施形態に適用されるのである。
【0091】
一方、ユーザから獲得された削除命令を参照し、特定インデックスからの削除対象レコードの識別値を獲得する過程で、前記特定インデックスにおいて、削除対象レコードのブックマークが失われたことにより、削除対象レコードの識別値を獲得することができないこともある。
【0092】
例えば、
図6ないし
図7Cの例から見るならば、年齢が35であるユーザアカウントを削除せよという削除命令が獲得された場合、年齢項目に対応するインデックスである第3インデックス523から、35というデータをキーとして含むブックマークを検索する。しかし、
図7Cに例示された第3インデックス523の場合、35をキーとして含むブックマークが失われて存在しない。そのような場合、本発明の一実施形態によるデータベース管理装置100は、実質的な削除処理は行わないが、削除命令に対する対応をいったん正常に終了することができる。
【0093】
結果的に、ユーザが削除する削除対象レコード(前記例の場合、年齢が35であるユーザアカウント、すなわち、R3)は、テーブルに依然として存在するが、エラーログなどを残しておくということは別のこととして、データベース管理装置100は、削除命令に対する対応を正常に終了することができる。それによって、サーバ10は、停止せずに正常に動作する。
【0094】
第1インデックス521、第2インデックス522及び第3インデックス523を含む全てのインデックスから、削除対象レコードのブックマーク削除処理がいずれも完了(ブックマークを削除した場合、及びブックマークを削除しなかったにしても、エラーが無視された場合をいずれも含む)すれば、
図2のテーブル処理部135は、
図6のテーブル51からレコードR3を削除する。そのとき、テーブル処理部135は、たとえ一部のインデックスに削除対象レコードのブックマークが存在しないことにより、削除対象レコードのブックマークが削除される処理が行われなかったにしても、それと係わりなく、テーブル51からレコードR3を削除する。
【0095】
全てのインデックスに、削除対象レコードのブックマークが含まれていた場合と、一部のインデックスに削除対象レコードのブックマークが含まれていなかった場合とをそれぞれ仮定するとき、本発明の一実施形態によって、削除対象レコードの削除処理を行った後のデータベース30は、同一である。
【0096】
従来には、一部のインデックスにおいて、ブックマークが失われ、削除しようとするブックマークの削除に失敗する場合、システムが不能状態に陥るか、あるいは停止状態になった。そのような場合、システム管理者は、直接インデックス及び/またはテーブルをアップデートすることによって、システムが正常に動作するように、システムを修理しなければならず、管理者がシステムを修理するまでは、システムは、全ての作業を止めて停止していた。
【0097】
しかし、前述の本発明の実施形態によれば、データベースの一部レコード削除が要請されたとき、一部のインデックスにおいて、ブックマークが失われて削除要請が正常に行われない場合でも、致命的エラーではないときには、全体システムを停止させずに、テーブルから削除対象レコードを正常に削除することができる。システムが停止する場合、人力、時間、電力、サービス品質などの多様な側面で消耗が大きいが、前述の本発明の実施形態によれば、前記消耗を最小化することができる。
【0098】
前述の本発明の実施形態によれば、特定結果を誘導する要請が受信されたとき、データベースに一部エラーがあっても、エラーがない場合と同一に、前記特定結果を導き出すことができるのであるならば、敢えて全体システムを停止させずに、前記特定結果を導き出すことによって、要請に正常に対応することができる。ただし、エラーログなどを残し、データベース管理及び点検に参照する。一方、
図3及び
図4に図示されたデータベース管理方法は、コンピュータで実行されるプログラムでもって実現可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータで具現される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体(例えば、ROM(read only memory)、フロッピーディスク(登録商標)、ハードディスクなど)、光学的判読媒体(例えば、CD(compact disc)−ROM、DVD(digital versatile disc)など)のような記録媒体を含む。
【0099】
以上、本発明について、その望ましい実施形態を中心に説明した。本発明が属する技術分野で当業者であるならば、本発明が、本発明の本質的な特性からはずれない範囲で変形された形態に具現されるということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。本発明の範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての差異は、本発明に含まれたものであると解釈されなければならないのである。