(57)【要約】【課題】データベース管理方法及びデータベース管理システムを提供する。【解決手段】削除対象レコードの削除命令を獲得する削除命令獲得段階と、該削除命令に基づいて、少なくとも１つのインデックスを検索し、削除対象レコードの識別値を獲得する識別値獲得段階と、削除対象レコードの識別値に基づいて、テーブルからの削除対象レコードの各項目のデータを獲得する削除対象レコード獲得段階と、獲得された削除対象レコードの各項目のデータに基づいて、少なくとも１つのインデックスのそれぞれから、削除対象レコードのブックマークを削除するインデックス処理段階と、テーブルから、削除対象レコードを削除するテーブル処理段階と、を含み、該インデックス処理段階において、全てのインデックスに、削除対象レコードのブックマークが存在していたか否かに係わりなく、テーブル処理段階が遂行され、削除対象レコードが削除されるデータベース管理方法である。【選択図】図１
2015210815.tif 000002
【特許請求の範囲】
【請求項１】
削除対象レコードの削除命令を獲得する削除命令獲得段階と、
前記削除命令に基づいて、インデックスを検索し、前記削除対象レコードの識別値を獲得する識別値獲得段階と、
前記削除対象レコードの識別値に基づいて、テーブルからの前記削除対象レコードの各項目のデータを獲得する削除対象レコード獲得段階と、
獲得された前記削除対象レコードの各項目のデータに基づいて、前記少なくとも１つのインデックスのそれぞれから、前記削除対象レコードのブックマークを削除するインデックス処理段階と、
前記テーブルから、前記削除対象レコードを削除するテーブル処理段階と、を含み、
前記インデックス処理段階において、全てのインデックスに、前記削除対象レコードのブックマークが存在していたか否かに係わりなく、前記テーブル処理段階が遂行され、前記削除対象レコードが削除されるデータベース管理方法。
【請求項２】
前記テーブル処理段階は、
前記インデックス処理段階において、前記削除対象レコードのブックマークが含まれていないインデックスのブックマーク削除に失敗しても、前記テーブルから、前記削除対象レコードを削除することを特徴とする請求項１に記載のデータベース管理方法。
【請求項３】
前記インデックス処理段階は、
前記削除対象レコードの項目を参照し、前記インデックスそれぞれに、前記削除対象レコードのブックマークが含まれているか否かということを確認するブックマーク確認段階と、
前記削除対象レコードのブックマークが含まれたインデックスから、前記削除対象レコードのブックマークを削除するブックマーク削除段階と、を含むことを特徴とする請求項１または２に記載のデータベース管理方法。
【請求項４】
前記インデックス処理段階は、
前記削除対象レコードのブックマークが含まれていないインデックスが確認される場合、
エラーログを出力し、前記テーブル処理段階に進むことを特徴とする請求項１ないし３のうちいずれか１項に記載のデータベース管理方法。
【請求項５】
前記インデックス処理段階は、
前記削除対象レコードのブックマークが含まれていないインデックスが確認される場合、前記インデックスに、前記削除対象レコードのブックマークを追加した後、前記追加されたブックマークを削除することを特徴とする請求項１ないし３のうちいずれか１項に記載のデータベース管理方法。
【請求項６】
前記インデックス処理段階は、
前記削除対象レコードのブックマークが含まれていないインデックスが確認される場合、前記インデックスからの前記ブックマーク削除を省略することを特徴とする請求項１ないし３のうちいずれか１項に記載のデータベース管理方法。
【請求項７】
前記削除対象レコード獲得段階は、
獲得された前記削除対象レコードの項目それぞれに対応するブックマークを抽出するブックマーク抽出段階をさらに含み、
前記インデックス処理段階は、抽出された前記ブックマークに対応する項目のインデックスに、前記ブックマークが含まれているか否かということを確認することを特徴とする請求項１ないし６のうちいずれか１項に記載のデータベース管理方法。
【請求項８】
前記テーブルから前記削除対象レコードの削除が完了したことを知らせるメッセージを出力するメッセージ出力段階をさらに含むことを特徴とする請求項１ないし７のうちいずれか１項に記載のデータベース管理方法。
【請求項９】
追加対象レコードを、前記データベースに追加するための追加命令を獲得する追加命令獲得段階と、
前記追加対象レコードを、前記テーブルに追加するテーブルアップデート段階と、
前記追加対象レコードが追加された前記テーブルを参照し、前記テーブルのインデックスをアップデートするインデックスアップデート段階と、をさらに含むことを特徴とする請求項１ないし８のうちいずれか１項に記載のデータベース管理方法。
【請求項１０】
削除対象レコードの削除命令を獲得する削除命令獲得部と、
前記削除命令に基づいて、少なくとも１つのインデックスを検索し、前記削除対象レコードの識別値を獲得する識別値獲得部と、
前記削除対象レコードの識別値に基づいて、前記テーブルからの前記削除対象レコードの各項目のデータを獲得する削除対象レコード獲得部と、
獲得された前記削除対象レコードの各項目のデータに基づいて、前記少なくとも１つのインデックスのそれぞれから、前記削除対象レコードのブックマークを削除するインデックス処理部と、
前記テーブルから、前記削除対象レコードを削除するテーブル処理部と、を含み、
前記インデックス処理部において、前記削除対象レコードのブックマークを削除するとき、全てのインデックスに、前記削除対象レコードのブックマークが存在していたか否かに係わりなく、前記テーブル処理部は、前記削除対象レコードを削除するデータベース管理装置。
【請求項１１】
前記テーブル処理部は、
前記インデックス処理部で、前記削除対象レコードのブックマークが含まれていないインデックスのブックマーク削除に失敗しても、前記テーブルから、前記削除対象レコードを削除することを特徴とする請求項１０に記載のデータベース管理装置。
【請求項１２】
前記インデックス処理部は、
前記削除対象レコードの項目を参照し、前記インデックスそれぞれに、前記削除対象レコードのブックマークが含まれているか否かということを確認し、前記削除対象レコードのブックマークが含まれたインデックスから、前記削除対象レコードのブックマークを削除することを特徴とする請求項１０または１１に記載のデータベース管理装置。
【請求項１３】
前記インデックス処理部は、
前記削除対象レコードのブックマークが含まれていないインデックスが確認される場合、エラーログを出力することを特徴とする請求項１０ないし１２のうちいずれか１項に記載のデータベース管理装置。
【請求項１４】
前記インデックス処理部は、
前記削除対象レコードのブックマークが含まれていないインデックスが確認される場合、前記インデックスに、前記削除対象レコードのブックマークを追加した後、前記追加されたブックマークを削除することを特徴とする請求項１０ないし１２のうちいずれか１項に記載のデータベース管理装置。
【請求項１５】
前記インデックス処理部は、
前記削除対象レコードのブックマークが含まれていないインデックスが確認される場合、前記インデックスからの前記ブックマークの削除を省略することを特徴とする請求項１０ないし１２のうちいずれか１項に記載のデータベース管理装置。
【請求項１６】
前記削除対象レコード獲得部は、
獲得された前記削除対象レコードの項目それぞれに対応するブックマークを抽出するブックマーク抽出部をさらに含み、
前記インデックス処理部は、抽出された前記ブックマークに対応する項目のインデックスに、前記ブックマークが含まれているか否かということを確認することを特徴とする請求項１０ないし１５のうちいずれか１項に記載のデータベース管理装置。
【請求項１７】
前記テーブル処理部は、
前記テーブルから前記削除対象レコードの削除が完了したことを知らせるメッセージを出力することを特徴とする請求項１０ないし１６のうちいずれか１項に記載のデータベース管理装置。
【請求項１８】
追加対象レコードを、前記データベースに追加するための追加命令を獲得する追加命令獲得部と、
前記追加対象レコードを、前記テーブルに追加するテーブルアップデート部と、
前記追加対象レコードが追加された前記テーブルを参照し、前記テーブルのインデックスをアップデートするインデックスアップデート部と、をさらに含むことを特徴とする請求項１０ないし１７のうちいずれか１項に記載のデータベース管理装置。
【請求項１９】
請求項１ないし９のうちいずれか１項に記載の方法をコンピュータで実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理方法及びデータベース管理システムに係り、さらに詳細には、データベースのテーブル及びインデックスを管理する方法及びシステムに関する。
【背景技術】
【０００２】
データベース管理システム（ＤＢＭＳ：database management system）は、膨大な量のデータが保存されているデータベースを管理するためのシステムであり、大量の情報がたえまなく生成されている現代において、なくてはならない重要な要素と認識されている。
【０００３】
このようなＤＢＭＳでは、データをテーブル（table）形態でデータベースに保存するが、ここで、テーブルとは、データベースでデータを保存する基本構造をいう。１つのテーブルは、一つ以上のレコード（record）から構成される。ここで、レコードとは、テーブルの１行（row）を意味する。各レコードは、一つ以上のカラムから構成されるが、カラムとは、テーブルを構成する実世界のテーブル項目を表現する名称を有したドメイン（domain）を意味するものであり、アトリビュート（attribute）またはフィールド（field）ともいう。
【０００４】
このようなＤＢＭＳは、外部から特定命令（query）が入力される場合、入力された命令によって、データベースに対して、データの選択、挿入、更新、削除のような機能を遂行する。ここで、命令とは、データベースのテーブルに保存されているデータに対するいかなる要求、すなわち、データに対するいかなる操作を行うことを願うかということを記述したものを意味し、ＳＱＬ（structured query language）のような言語を利用して表現する。
【０００５】
データの量がますます膨大になるにつれ、ＤＢＭＳは、一般的に、インデックス（index）を具備する。ここで、インデックスとは、データベース分野において、テーブルに対する探索速度を速める資料構造を意味し、そのようなインデックスは、データレコード（タプル：tuple）に迅速にアクセスするため、（キー値、識別値）の対で構成されるブックマークを含む。
【０００６】
一方、一部のインデックスからブックマークを削除しようとしたが、削除するブックマークが失われてインデックスに存在しないために、ブックマークの削除に失敗する場合、システムが不能状態に陥ったり、あるいは停止状態になったりする。そのような場合、システム管理者は、直接インデックス及び／またはテーブルをアップデートすることにより、システムが正常に動作するようにシステムを修理しなければならず、管理者がシステムを修理するまでは、システムは、全ての作業を止めて停止してしまう。システムが停止すれば、人力、時間、電力、サービス品質など、各種側面で損失が発生し、データベースに保存されるデータの容量がますます膨大になる現趨勢を考慮すれば、システム停止による損失は、だんだんとさらに大きくなるものと予想される。
【０００７】
前述の背景技術は、発明者が本発明の導出のために保有していたり、あるいは本発明の導出過程において習得した技術情報であり、必ずしも本発明の出願前に一般公衆に公開された公知技術とするものではない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の実施形態は、データベース管理方法及びデータベース管理システムを提供する。本発明の実施形態は、データベース処理過程において、一部問題が発生しても、致命的問題ではない場合には、該処理を正常に終了することによって、システムが不能状態に陥らないようにするデータベース管理方法及びデータベース管理システムを提供する。本実施形態がなす技術的課題は、前述のところのような技術的課題に限定されるものではなく、実施形態からも他の技術的課題が類推されるのである。
【課題を解決するための手段】
【０００９】
本発明の一実施形態は、削除対象レコードの削除命令を獲得する削除命令獲得段階と、前記削除命令に基づいて、少なくとも１つのインデックスを検索し、前記削除対象レコードの識別値を獲得する識別値獲得段階と、前記削除対象レコードの識別値に基づいて、テーブルからの前記削除対象レコードの各項目のデータを獲得する削除対象レコード獲得段階と、獲得された前記削除対象レコードの各項目のデータに基づいて、前記少なくとも１つのインデックスのそれぞれから、前記削除対象レコードのブックマークを削除するインデックス処理段階と、前記テーブルから前記削除対象レコードを削除するテーブル処理段階と、を含み、前記インデックス処理段階において、全てのインデックスに、前記削除対象レコードのブックマークが存在していたか否かに係わりなく、前記テーブル処理段階が遂行され、前記削除対象レコードが削除されるデータベース管理方法を開示する。
【００１０】
本発明の他の実施形態は、削除対象レコードの削除命令を獲得する削除命令獲得部と、前記削除命令に基づいて、少なくとも１つのインデックスを検索し、前記削除対象レコードの識別値を獲得する識別値獲得部と、前記削除対象レコードの識別値に基づいて、テーブルからの前記削除対象レコードの各項目のデータを獲得する削除対象レコード獲得部と、獲得された前記削除対象レコードの各項目のデータに基づいて、前記少なくとも１つのインデックスのそれぞれから、前記削除対象レコードのブックマークを削除するインデックス処理部及び前記テーブルから、前記削除対象レコードを削除するテーブル処理部とを含み、前記インデックス処理部において、前記削除対象レコードのブックマークを削除するとき、全てのインデックスに、前記削除対象レコードのブックマークが存在していたか否かに係わりなく、前記テーブル処理部は、前記削除対象レコードを削除するデータベース管理装置を開示する。
【００１１】
本発明の他の実施形態は、前述のデータベース管理方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を開示する。
【００１２】
前述のところ以外の他の側面、特徴、利点は、以下の図面、特許請求の範囲及び発明の詳細な説明から明確になるであろう。そのような一般的であって具体的な側面が、システム、方法、コンピュータプログラム、またはいかなるシステム、方法、コンピュータプログラムの組み合わせを使用しても実施されるのである。
【発明の効果】
【００１３】
本発明の実施形態に係わるデータベース管理方法及びデータベース管理システムは、データベースの運用効率性を向上させる。
【００１４】
本発明の実施形態に係わるデータベース管理方法及びデータベース管理システムは、データベースの一部レコード削除が要請されたとき、一部のインデックスにおいて、ブックマークが失われ、削除要請が正常に行われない場合にも、致命的エラーではないときには、全体システムを停止させず、テーブルから削除対象レコードを正常に削除することができる。システムが停止する場合、人力、電力、時間などの多様な側面で消耗が大きいが、前述の本発明の実施形態によれば、前記消耗を最小化することができる。
【００１５】
本発明の実施形態に係わるデータベース管理方法及びデータベース管理システムは、特定結果を誘導する要請が受信されたとき、データベースに一部エラーがあっても、エラーがない場合と同一に、前記特定結果を導き出すことができるのであるならば、敢えて全体システムを停止させず、前記特定結果を導き出すことによって、要請に正常に対応することができる。
【図面の簡単な説明】
【００１６】
【図１】一実施形態によるデータベース管理システムを概略的に図示した図面である。
【図２】一実施形態によるデータベース管理装置を概略的に図示したブロック図である。
【図３】一実施形態によるデータベース管理方法のフローチャートである。
【図４】一実施形態によるデータベース管理方法の一部を詳細に図示したフローチャートである。
【図５】一実施形態によるデータベースのテーブル及びインデックスの一例を図示した図面である。
【図６】図５のテーブルの詳細な例を図示した図面である。
【図７Ａ】図５のインデックスの一例を図示した図面である。
【図７Ｂ】図５のインデックスの一例を図示した図面である。
【図７Ｃ】図５のインデックスの一例を図示した図面である。
【発明を実施するための形態】
【００１７】
本発明は、多様な変換を加えることができ、さまざまな実施形態を有することができるが、特定実施形態を図面に例示し、詳細な説明で詳細に説明する。本発明の効果及び特徴、並びにそれらを達成する方法は、図面と共に詳細に説明する実施形態を参照すれば、明確になるであろう。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、多様な形態で具現されるのである。
【００１８】
以下、添付された図面を参照し、本発明の実施形態について詳細に説明するが、図面を参照して説明するとき、同一であるか、あるいは対応する構成要素は、同一の図面符号を付し、それについての重複説明は省略する。
【００１９】
以下の実施形態において、第１、第２のような用語は、限定的な意味ではなく、１つの構成要素を他の構成要素と区別する目的で使用されている。以下の実施形態において、単数の表現は、文脈上明白に取り立てて意味しない限り、複数の表現を含む。以下の実施形態において、「含む」または「有する」というような用語は、明細書上に記載された特徴、または構成要素が存在するということを意味するものであり、一つ以上の他の特徴または構成要素が付加される可能性をあらかじめ排除するものではない。図面では、説明の便宜のために、構成要素がその大きさが誇張されていたり縮小されていたりする。例えば、図面で示された各構成の大きさ及び厚さは、説明の便宜のために任意に示されているものであり、本発明は、必ずしも図示されているところに限定されるものではない。
【００２０】
図１は、一実施形態によるデータベース管理システム（ＤＢＭＳ）１を概略的に図示したものである。
【００２１】
データベース管理システム１は、データベース３０に連結され、データベース３０に記録されたデータを更新または削除したり、あるいはデータベース３０にデータを追加したりするなど、データベース３０を統合的に管理する機能を遂行する。図１を参照すれば、一実施形態によるデータベース管理システム１は、サーバ１０、データベース３０が通信網４０を介して、端末２０と連結されている。
【００２２】
サーバ１０は、端末２０から各種命令を受信し、命令に対応する処理を行う。前記命令は、データベースを管理するための命令でもある。サーバ１０は、端末２０に多様なサービスを提供するように具備される。図面には図示されていないが、一実施形態によるサーバ１０には、メモリ、入出力部、プログラム保存部、制御部などがさらに含まれてもよい。サーバ１０に含まれる詳細構成については、図２を参照して後述する。
【００２３】
端末２０は、有無線通信環境を備えた通信端末機を意味する。ここで、端末２０は、図１に図示されたようなパソコンでもあるが、必ずしもそれに限定されるものではない。端末２０は、携帯用端末、例えば、スマートフォンでもあり、通信環境を備えた端末であるならば、制限なしに用いられる。
【００２４】
端末２０は、画面を表示する表示部、ユーザからデータを入力される入力装置などを具備することができる。
【００２５】
データベース３０は、多様なデータを保存する保存装置であり、前記データは、テーブル形式に保存される。データベース３０には、前記テーブルのメタデータであるインデックスが保存される。以下、テーブルに保存されるデータは、レコードとし、レコードは、多項目のデータを含む。インデックスは、全てのレコードのブックマークを含む。本願明細書における「ブックマーク」とは、例えば、（キー、識別値）のように、２つのデータの組み合わせから構成されるデータの集合を意味する。ここで、キーは、レコードの１つの項目データであり、識別値は、レコードを識別するために、レコードに付与された固有値を意味する。インデックスに含まれたブックマークは、各ブックマークのキー値によって整列される。一方、ブックマークは、必ずしも２つのデータの組み合わせから構成されるものではない。例えば、ブックマークは、（キー１、キー２、識別値）のように、複数の項目データを含むデータの組み合わせからも構成される。
【００２６】
図１では、データベース３０が１個具備されるように図示されているが、本発明の思想は、それに制限されるものではなく、データベース３０の個数及び構成は、データベース管理システム１の構成、保存されるデータ分量、及び用途などによって、多様に変更可能である。
【００２７】
通信網４０は、サーバ１０と端末２０とを連結する。例えば、通信網４０は、端末２０がサーバ１０に接続した後、パケットデータを送受信することができるように、接続経路を提供する。
【００２８】
図２は、一実施形態によるデータベース管理装置１００を概略的に図示したブロック図である。図２に図示されたデータベース管理装置１００は、サーバ１０に具備されたものでもある。
【００２９】
本発明の一実施形態によるデータベース管理装置１００は、データベース３０を含む外部装置と通信し、データベース３０に保存されたデータを管理する。例えば、データベース３０のデータを追加、削除または変更することができる。
【００３０】
本発明の一実施形態によるデータベース管理装置１００は、少なくとも一つ以上のプロセッサ（processor）に該当するか、あるいは少なくとも一つ以上のプロセッサを含んでもよい。それにより、データベース管理装置１００は、マイクロプロセッサや汎用コンピュータシステムのような他のハードウェア装置に含まれた形態でも駆動される。レコード追加処理部１２０及びレコード削除処理部１３０は、１つのモジュールでも構成されることができる。
【００３１】
図２に図示されたデータベース管理装置１００は、本実施形態の特徴が不明確になることを防止するために、本実施形態と係わる構成要素のみを図示している。従って、図２に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれるということは、本実施形態と係わる技術分野で当業者であるならば、理解することができるであろう。
【００３２】
図２を参照すれば、一実施形態によるデータベース管理装置１００は、通信部１１０、レコード追加処理部１２０及びレコード削除処理部１３０を含んでもよい。以下、データベース管理装置１００の詳細構成について、図２を参照して説明する。
【００３３】
まず、通信部１１０は、データベース管理装置１００内部の構成要素と外部装置とのデータ送受信経路を提供する。
【００３４】
レコード追加処理部１２０は、データベース３０にレコードを追加する命令を端末２０から受信したとき、前記命令によって、データベース３０にレコードを追加する処理を行う。レコード追加処理部１２０は、追加命令獲得部１２１、テーブルアップデート部１２２及びインデックスアップデート部１２３を含む。
【００３５】
追加命令獲得部１２１は、端末２０から、レコードの追加命令を獲得する。追加命令は、データベース３０に追加する追加対象レコードの情報を含む。
【００３６】
テーブルアップデート部１２２は、追加対象レコードを、データベース３０のテーブルに追加する。
【００３７】
インデックスアップデート部１２３は、追加対象レコードが追加されたテーブルを参照し、テーブルに対するインデックスをアップデートする。前記アップデートは、既存のインデックスの一部を修正するものでもあり、既存のインデックスを削除した後、新たなインデックスを再生成するものでもある。
【００３８】
レコード削除処理部１３０は、データベース３０に保存された所定レコードを削除する命令を端末２０から受信したとき、前記命令によって、データベース３０に保存された所定レコードを削除する処理を行う。レコード削除処理部１３０は、削除命令獲得部１３１、識別値獲得部１３２、削除対象レコード獲得部１３３、インデックス処理部１３４及びテーブル処理部１３５を含む。削除対象レコード獲得部１３３は、ブックマーク抽出部１３３１を含んでもよい。
【００３９】
削除命令獲得部１３１は、端末２０からレコードの削除命令を獲得する。削除命令は、データベース３０に保存された一つ以上のレコードのうち削除する削除対象レコードの情報を含む。そのとき、削除命令に含まれる削除対象レコードの情報は、削除対象レコードに含まれた全ての項目データ、及び削除対象レコードの識別値をいずれも含んでもよいが、削除対象レコードの少なくとも一部の項目データのみを含むか、削除対象レコードの識別値のみを含んでもよい。削除対象レコードは、一つでもあり、複数でもありうる。例えば、特定項目データを含む全てのレコードが、削除対象レコードであってもよい。以下では、削除命令が削除対象レコードの１つの項目データを含む場合を仮定する。
【００４０】
識別値獲得部１３２は、削除命令獲得部１３１によって獲得された削除命令に基づいて、少なくとも１つのインデックスを検索し、削除対象レコードの識別値を獲得する。削除命令が、削除対象レコードの識別値情報を含む場合、識別値獲得部１３２は、インデックスを参照せずとも、削除命令から識別値情報を獲得することもできる。
【００４１】
前述のように、本発明の一実施形態において、インデックスに含まれるブックマークは、（キー、識別値）のデータ対から構成され、キーは、レコードの項目データに該当するので、識別値獲得部１３２は、削除対象レコードの項目データを含むブックマークをインデックスから検索することにより、当該項目データを含むレコードの識別値を獲得することができる。削除対象レコードの項目データは、削除命令に含まれたものでもある。
【００４２】
削除対象レコード獲得部１３３は、識別値獲得部１３２によって獲得された識別値に基づいて、テーブルからの削除対象レコードの各項目データを獲得することができる。
【００４３】
削除対象レコード獲得部１３３は、ブックマーク抽出部１３３１を含み、ブックマーク抽出部１３３１は、削除対象レコードの各項目データを参照し、各項目データに対応するブックマークを抽出する。抽出されるブックマークは、（キー（項目データ）、識別値）のデータ対でもある。
【００４４】
インデックス処理部１３４は、削除対象レコード獲得部１３３によって獲得された削除対象レコードの各項目データ（または、各項目データに対応するブックマーク）に基づいて、全てのインデックスから、削除対象レコードのブックマークを削除することができる。そのような作業は、テーブルから削除対象レコードを削除する以前に、テーブルのメタデータであるインデックスから、削除対象レコードのブックマークをまず削除するのである。
【００４５】
テーブル処理部１３５は、インデックス処理部１３４の処理が完了すれば、削除対象レコードをテーブルから削除する。一方、テーブル処理部１３５は、インデックス処理部１３４の処理段階において、全てのインデックスに、削除対象レコードのブックマークが存在していたか否かに係わりなく、削除対象レコードをテーブルから削除する。例えば、一部のインデックスにおいて、削除対象レコードのブックマークが失われているか損傷され、削除対象レコードのブックマークを含まないインデックスがあっても、インデックス処理部１３４は、インデックス処理を正常に終了する。それによって、テーブル処理部１３５は、一部のインデックスにおいて、削除対象レコードのブックマークが存在せず、削除対象ブックマークの削除が不可能であるとしても、削除対象レコードのブックマークが存在する残りのインデックスから削除対象レコードのブックマークが削除されれば、テーブルから削除対象レコードを削除する。
【００４６】
図３は、一実施形態によるデータベース管理方法のフローチャートである。
【００４７】
図３は図２のデータベース管理装置１００が、データベース３０を管理する一実施形態を示すフローチャートである。従って、以下で省略された内容であるとしても、図２で説明されたデータベース管理装置１００について記述された内容は、図３の実施形態によるデータベース管理方法にも適用される。
【００４８】
図３を参照すれば、段階３１で、図２の追加命令獲得部１２１または削除命令獲得部１３１は、データベース管理のための命令を獲得し、段階３２に進む。
【００４９】
段階３１で獲得した命令が、レコードの追加命令である場合、段階３２から段階３１１に進み、レコードの削除命令である場合、段階３２から段階３２１に進む。
【００５０】
まず、段階３１１に進む場合、段階３１１で、図２のテーブルアップデート部１２２は、追加対象レコードをテーブルに追加し、テーブルをアップデートする。
【００５１】
段階３１２で、インデックスアップデート部１２３は、段階３１１でアップデートされたテーブルを参照し、テーブルのインデックスをアップデートする。段階３１２が完了すれば、レコード追加プロセスが終わる。
【００５２】
段階３２から段階３２１に進む場合、段階３２１で、図２の識別値獲得部１３２は、段階３１で獲得された削除命令に基づいて、少なくとも１つのインデックスを検索し、削除対象レコードの識別キーを獲得する。
【００５３】
段階３２２で、削除対象レコード獲得部１３３は、削除対象レコードの識別キーに基づいて、テーブルからの削除対象レコードの各項目データを獲得する。
【００５４】
段階３２３で、ブックマーク抽出部１３３１は、獲得された削除対象レコードの項目それぞれに対応するブックマークを抽出する。
【００５５】
段階３２４で、インデックス処理部１３４は、段階３２２で獲得された項目データに基づいて、少なくとも１つのインデックスのそれぞれから、削除対象レコードのブックマークを削除する。または、段階３２４で、インデックス処理部１３４は、段階３２３で抽出されたブックマークに基づいて、少なくとも１つのインデックスのそれぞれから、削除対象レコードのブックマークを削除する。例えば、ブックマーク抽出部１３３１は、削除対象レコードの所定項目のデータを参照し、所定項目を基準に、ブックマークが整列されたインデックスから、前記削除対象レコードのブックマークを削除する。または、ブックマーク抽出部１３３１は、削除対象レコードの所定項目に対応するブックマークを参照し、前記所定項目を基準に、ブックマークが整列されたインデックスから、削除対象レコードのブックマークを削除する。段階３２４は、反復遂行され、テーブルに対応して保存された全てのインデックスに対して遂行される。
【００５６】
段階３２５で、テーブル処理部１３５は、テーブルから削除対象レコードを削除する。一方、段階３２５で、テーブル処理部１３５は、段階３２４が遂行される前、全てのインデックスに、削除対象レコードのブックマークが存在していたか否かに係わりなく、テーブルから削除対象レコードを削除する。例えば、段階３２４で、一部のインデックスにおいて、削除対象レコードのブックマーク削除に失敗しても、段階３２５で、テーブル処理部１３５は、削除対象レコードの削除を正常に行う。ここで、ブックマーク削除に失敗するという意味は、段階３２４が遂行される以前に、インデックスに削除対象レコードのブックマークが正常に含まれており、段階３２４で、それを正常に削除した場合を除いた全ての場合を含む。例えば、一部のインデックスに、削除対象レコードのブックマークが存在しないために、削除対象レコードのブックマークを削除する処理が行われない場合、または一部のインデックスに、削除対象レコードのブックマークが存在しないために、削除対象レコードのブックマークを人為的に追加した後、追加したブックマークをさらに削除した場合などをいずれも含む。
【００５７】
段階３２６で、テーブル処理部１３５は、テーブルから削除対象レコードの削除が完了したことを知らせる完了メッセージを出力することができる。完了メッセージは、端末２０に伝送される。
【００５８】
一方、以上では、段階３１で獲得された命令が、削除命令または追加命令である場合の例について説明したが、段階３１で獲得された命令は、レコード変更命令でもある。変更命令は、既存のレコードを削除した後、新たなレコードを追加する作業と同一であるので、段階３１で獲得された変更命令は、削除命令と追加命令とに分けられる。段階３１で獲得された命令が、変更対象レコードの変更命令である場合、まず、段階３２１及び以下の段階を介して、前記変更対象レコードを、まずデータベース３０から削除した後、段階３１１及び以下の段階を介して、変更対象レコードをデータベース３０に追加することができる。
【００５９】
一方、前記変更命令に係わる処理は、前述の方法に限定されるものではない。例えば、変更命令に係わる処理を行うときには、インデックスから一つ一つブックマークを削除する段階が省略されもする。例えば、テーブルに保存されたレコードを、新たなレコードで上書きしてテーブルをアップデートした後、アップデートされたテーブルに対して、インデックスをアップデートすることができる。さらに、迅速な処理のために、既存レコードについて、変更された項目に対するインデックスのみをアップデートすることもできる。
【００６０】
一方、一実施形態によるデータベース管理装置１００は、データベース３０にデータを記録して読み取る過程で、データベース管理装置１００の内部に備えられた内部メモリを活用し、データ処理速度を速めることができる。
【００６１】
図４は、一実施形態によるデータベース管理方法の一部を詳細に図示したフローチャートである。
【００６２】
詳細には、図４は、図３のデータベース管理方法において、段階３２４の一例を詳細に図示したフローチャートである。
【００６３】
図４を参照すれば、段階４１で、インデックス処理部１３４は、削除対象レコードの項目（または、抽出されたブックマーク）を参照し、インデックスそれぞれに、削除対象レコードのブックマークが含まれているか否かということを確認する。削除対象レコードのブックマークがインデックスに含まれている場合、段階４１１に進み、インデックスから削除対象レコードのブックマークを削除する。一方、削除対象レコードのブックマークがインデックスに含まれていない場合、段階４２１に進む。
【００６４】
段階４２１で、インデックス処理部１３４は、インデックスに削除対象レコードのブックマークを追加し、追加されたブックマークを段階４２２で削除し、段階４２３で、エラーログを出力する。段階４２３で、エラーログを出力するとき、インデックス処理部１３４は、データベース管理システム１の状態を、活性（valid）状態に設定することができる。それは、もし削除対象レコードのブックマークを含まないインデックスによって、データベース管理システム１の状態が非活性（invalid）状態に変更された場合でも、それを、強制的に活性状態に変更することによって、データベース管理システム１を正常に動作させるためである。
【００６５】
一方、段階４２１及び段階４２２が省略されもする。言い換えれば、段階４１で、削除対象レコードのブックマークが含まれていないインデックスが確認される場合、インデックス処理部１３４は、前記インデックスに対して、ブックマーク削除処理を省略し、段階４２３で、エラーログのみを出力した後、インデックス処理プロセスを終了し、図３の段階３２５に進むことができる。
【００６６】
図４に図示されたインデックス処理方法は、反復的に遂行され、テーブルに対応して存在する全てのインデックスごとに遂行される。
【００６７】
図５は、一実施形態による、データベースのテーブル及びインデックスの一例を図示したものである。
【００６８】
図５を参照すれば、データベース３０は、多様なデータが保存されるテーブル５１と、テーブル５１のメタデータであるインデックス５２と、を含む。
【００６９】
テーブル５１は、一つ以上のレコードＲ１，…，Ｒｎを含み、各レコードは、一つ以上の項目データを含む。例えば、所定掲示板に係わる掲示物が保存されたデータベースである場合、テーブルは、掲示物の集合を意味し、レコードは、各掲示物を意味し、項目とは、掲示物識別子、掲示物作成者、ヒット数などが保存される領域を意味する。他の例として、ユーザアカウントが保存されたデータベースである場合、テーブルは、ユーザアカウントの集合を意味し、レコードは、各ユーザアカウントを意味し、項目とは、ユーザアカウントの識別子、ＩＤ（identification）、ユーザ名、年齢、性別、連絡先などが保存される領域を意味する。
【００７０】
インデックス５２は、テーブル５１に対する動作の速度を速めるために設けられる資料構造であり、例えば、インデックス５２は、テーブル５１に含まれたレコードのブックマークが、所定項目を基準にして整列された構造を有する。
【００７１】
インデックス５２は、いくつか設けられる。例えば、インデックス５２は、レコードの項目個数ほど設けられる。それぞれのインデックス５２は、互いに異なる項目を基準に、テーブル５１に含まれたレコードのブックマークを整列して保存することができる。
【００７２】
図５を参照すれば、第１項目を基準に、レコードのブックマークＢ１Ｒ１，…，Ｂ１Ｒｎが整列された第１インデックス５２１、第２項目を基準に、レコードのブックマークＢ２Ｒ１，…，Ｂ２Ｒｎが整列された第２インデックス５２２、第３項目を基準に、レコードのブックマークＢ３Ｒ１，…，Ｂ３Ｒｎが整列された第３インデックス５２３が例示されているということが分かる。
【００７３】
一方、テーブル５１は、データベース３０のユーザデータ領域に保存され、インデックス５２は、データベース３０のメタデータ領域に保存されるが、必ずしもそれに限定されるものではない。
【００７４】
図６は、図５のテーブル５１の詳細な例を図示したものである。
【００７５】
図６を参照すれば、テーブル５１は、複数のレコードを含む。図６には、第１レコードＲ１、第２レコードＲ２及び第３レコードＲ３が図示されているが、テーブル５１は、さらに多くのレコードを含んでもよく、さらに少ないレコードを含んでもよい。
【００７６】
図６の例では、データベースがユーザアカウントを保存する。本例において、テーブル５１は、ユーザアカウントを保存し、レコードは、ユーザアカウントに対応し、項目は、ユーザアカウントに含まれる詳細情報、例えば、項目１は、名称、項目２は、性別、項目３は、年齢に対応するように図示されている。
【００７７】
一方、図６に図示されたレコードの詳細項目データは例示であり、本発明の実施形態は、それに限定されるものではない。レコードは、さらに多くの項目を含み、さらに少ない項目を含んでもよい。
【００７８】
図７Ａないし図７Ｃは、図５のインデックス５２の一例を図示したものである。
【００７９】
詳細には、図７Ａは、第１インデックス５２１、図７Ｂは、第２インデックス５２２、図７Ｃは、第３インデックス５２３の例を図示する。第１インデックス５２１、第２インデックス５２２及び第３インデックス５２３は、テーブル５１に含まれたレコードのブックマークを整列する。
【００８０】
第１インデックス５２１に含まれたブックマークのキーは、項目１、すなわち、本例示の場合、名称データであり、第１インデックス５２１に含まれたブックマークは、名称順で整列される。第２インデックス５２２に含まれたブックマークのキーは、項目２、すなわち、本例示の場合、性別データであり、第２インデックス５２２に含まれたブックマークは、性別順で整列される。第３インデックス５２３に含まれたブックマークのキーは、項目３、すなわち、本例示の場合、年齢データで、第３インデックス５２３に含まれたブックマークは、年齢順に整列される。
【００８１】
以下では、図６、図７Ａ、図７Ｂ及び図７Ｃを共に参照し、一実施形態によるデータベース管理方法について説明する。
【００８２】
まず、図２の削除命令獲得部１３１は、ユーザから削除命令を獲得する。削除命令は、所定項目を基準にして獲得される。例えば、ユーザは、削除命令をサーバ１０に伝送し、削除命令は、所定項目データを含んでもよい。例えば、削除命令の内容は、「金チョルス」のアカウントを削除せよというのでもある。以下では、該場合を仮定し、本発明の実施形態について例示的に説明する。
【００８３】
前述の削除命令が獲得されれば、図２の識別値獲得部１３２は、削除命令に基づいて、第１インデックスを参照し、「金チョルス」の識別値を獲得する。詳細には、「金チョルス」という項目データを含むブックマークの識別値を獲得する。図７Ａを参照すれば、「金チョルス」の識別値は、３である。
【００８４】
次に、図２の削除対象レコード獲得部１３３は、「金チョルス」の識別値に該当するレコードＲ３、すなわち、削除対象レコードを獲得する。削除対象レコード獲得部１３３は、レコードＲ３の各項目（金チョルス、男、３５、…）に該当するブックマークを抽出することができる。抽出されたブックマークは、例えば、（金チョルス、３）、（男、３）及び（３５、３）を含む。
【００８５】
次に、図２のインデックス処理部１３４は、レコードＲ３の項目データを参照し（または、抽出されたブックマークを参照）、全てのインデックスから削除対象レコードＲ３のブックマークを削除する。例えば、図７Ａに図示された第１インデックス５２１から、削除対象レコードＲ３のブックマークＢ１Ｒ３を削除し、図７Ｂに図示された第２インデックス５２２から、削除対象レコードＲ３のブックマークＢ２Ｒ３を削除し、図７Ｃに図示された第３インデックス５２３から、削除対象レコードＲ３のブックマークＢ３Ｒ３を削除する。
【００８６】
しかし、図７Ｃを参照すれば、削除対象レコードＲ３のブックマークが存在しないということが分かる。実際、データベース３０の運用過程において、一部のインデックスのブックマークが失われるか、あるいは損傷される場合が生じるが、図７Ｃの第３インデックス５２３は、そのような例を図示したものである。
【００８７】
本発明の一実施形態の場合、図７Ｃの例のように、削除するブックマークがインデックスにないとしても、図２のインデックス処理部１３４は、システムを停止させず、削除が正常に行われたように、次の段階に進む。削除するブックマークがインデックスにない場合にも、削除が正常に行われたように認識するためには、次のような処理が可能である。
【００８８】
第１の方法は、削除するブックマークをインデックスに追加することである。インデックス処理部１３４は、追加されたブックマークを削除することができる。その場合、全てのインデックスから、追加対象レコードのブックマークの削除処理が実際に遂行されたので、インデックスを正常に処理したようになる。
【００８９】
第２の方法は、削除するブックマークがインデックスになく、データ処理過程において、データベース管理システム１の運用に問題が発生する場合、例えば、データベース管理システム１の状態が非活性状態に変更される場合、インデックス処理部１３４は、データベース管理システム１の状態を強制的に活性状態に変更するのである。それによれば、一部のインデックスにおいて、追加対象レコードのブックマークの削除処理が実際に行われなくとも、データベース管理システム１は、エラーを認知することができないので、インデックスを正常に処理したようになる。
【００９０】
前述の方法は、削除するブックマークがインデックスにない場合、エラーを発生させずに、データ処理を正常に終了するための詳細方法の例示であり、前述の例示以外の他の方法が本実施形態に適用されるのである。
【００９１】
一方、ユーザから獲得された削除命令を参照し、特定インデックスからの削除対象レコードの識別値を獲得する過程で、前記特定インデックスにおいて、削除対象レコードのブックマークが失われたことにより、削除対象レコードの識別値を獲得することができないこともある。
【００９２】
例えば、図６ないし図７Ｃの例から見るならば、年齢が３５であるユーザアカウントを削除せよという削除命令が獲得された場合、年齢項目に対応するインデックスである第３インデックス５２３から、３５というデータをキーとして含むブックマークを検索する。しかし、図７Ｃに例示された第３インデックス５２３の場合、３５をキーとして含むブックマークが失われて存在しない。そのような場合、本発明の一実施形態によるデータベース管理装置１００は、実質的な削除処理は行わないが、削除命令に対する対応をいったん正常に終了することができる。
【００９３】
結果的に、ユーザが削除する削除対象レコード（前記例の場合、年齢が３５であるユーザアカウント、すなわち、Ｒ３）は、テーブルに依然として存在するが、エラーログなどを残しておくということは別のこととして、データベース管理装置１００は、削除命令に対する対応を正常に終了することができる。それによって、サーバ１０は、停止せずに正常に動作する。
【００９４】
第１インデックス５２１、第２インデックス５２２及び第３インデックス５２３を含む全てのインデックスから、削除対象レコードのブックマーク削除処理がいずれも完了（ブックマークを削除した場合、及びブックマークを削除しなかったにしても、エラーが無視された場合をいずれも含む）すれば、図２のテーブル処理部１３５は、図６のテーブル５１からレコードＲ３を削除する。そのとき、テーブル処理部１３５は、たとえ一部のインデックスに削除対象レコードのブックマークが存在しないことにより、削除対象レコードのブックマークが削除される処理が行われなかったにしても、それと係わりなく、テーブル５１からレコードＲ３を削除する。
【００９５】
全てのインデックスに、削除対象レコードのブックマークが含まれていた場合と、一部のインデックスに削除対象レコードのブックマークが含まれていなかった場合とをそれぞれ仮定するとき、本発明の一実施形態によって、削除対象レコードの削除処理を行った後のデータベース３０は、同一である。
【００９６】
従来には、一部のインデックスにおいて、ブックマークが失われ、削除しようとするブックマークの削除に失敗する場合、システムが不能状態に陥るか、あるいは停止状態になった。そのような場合、システム管理者は、直接インデックス及び／またはテーブルをアップデートすることによって、システムが正常に動作するように、システムを修理しなければならず、管理者がシステムを修理するまでは、システムは、全ての作業を止めて停止していた。
【００９７】
しかし、前述の本発明の実施形態によれば、データベースの一部レコード削除が要請されたとき、一部のインデックスにおいて、ブックマークが失われて削除要請が正常に行われない場合でも、致命的エラーではないときには、全体システムを停止させずに、テーブルから削除対象レコードを正常に削除することができる。システムが停止する場合、人力、時間、電力、サービス品質などの多様な側面で消耗が大きいが、前述の本発明の実施形態によれば、前記消耗を最小化することができる。
【００９８】
前述の本発明の実施形態によれば、特定結果を誘導する要請が受信されたとき、データベースに一部エラーがあっても、エラーがない場合と同一に、前記特定結果を導き出すことができるのであるならば、敢えて全体システムを停止させずに、前記特定結果を導き出すことによって、要請に正常に対応することができる。ただし、エラーログなどを残し、データベース管理及び点検に参照する。一方、図３及び図４に図示されたデータベース管理方法は、コンピュータで実行されるプログラムでもって実現可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータで具現される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体（例えば、ＲＯＭ（read only memory）、フロッピーディスク（登録商標）、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ（compact disc）−ＲＯＭ、ＤＶＤ（digital versatile disc）など）のような記録媒体を含む。
【００９９】
以上、本発明について、その望ましい実施形態を中心に説明した。本発明が属する技術分野で当業者であるならば、本発明が、本発明の本質的な特性からはずれない範囲で変形された形態に具現されるということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。本発明の範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての差異は、本発明に含まれたものであると解釈されなければならないのである。
【産業上の利用可能性】
【０１００】
本発明のデータベース管理方法及びデータベース管理システムは、例えば、情報処理関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１０１】
１    データベース管理システム
１０    サーバ
２０    端末
３０    データベース
４０    通信網
５１    テーブル
５２    インデックス
５２１    第１インデックス
５２２    第２インデックス
５２３    第３インデックス
１００    データベース管理装置
１１０    通信部
１２０    レコード追加部
１３０    レコード削除部
１２１    追加命令獲得部
１２２    テーブルアップデート部
１２３    インデックスアップデート部
１３１    削除命令獲得部
１３２    識別値獲得部
１３３    削除対象レコード獲得部
１３３１  ブックマーク抽出部
１３４    インデックス処理部
１３５    テーブル処理部
Ｒ１    第１レコード
Ｒ２    第２レコード
Ｒ３    第３レコード
【図１】
2015210815.tif 000003
【図２】
2015210815.tif 000004
【図３】
2015210815.tif 000005
【図４】
2015210815.tif 000006
【図５】
2015210815.tif 000007
【図６】
2015210815.tif 000008
【図７Ａ】
2015210815.tif 000009
【図７Ｂ】
2015210815.tif 000010
【図７Ｃ】
2015210815.tif 000011