JP4396988B2 - データベースシステム - Google Patents
データベースシステム Download PDFInfo
- Publication number
- JP4396988B2 JP4396988B2 JP2006058314A JP2006058314A JP4396988B2 JP 4396988 B2 JP4396988 B2 JP 4396988B2 JP 2006058314 A JP2006058314 A JP 2006058314A JP 2006058314 A JP2006058314 A JP 2006058314A JP 4396988 B2 JP4396988 B2 JP 4396988B2
- Authority
- JP
- Japan
- Prior art keywords
- record
- time
- update
- processing
- records
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
このようなロックにより、複数のユーザが同時に同一データを更新しても逐次的に処理され、整合性が保たれる。また、いわゆるデッドロックが発生した場合には、一方または両方のプログラムを強制終了させ、データ全体の矛盾の発生を防止する。
このため、バッチ処理がロックを伴って実行されると、長時間に渡ってオンライン処理が実行できなくなり、業務に支障を来す可能性がある。これを回避するために、実際のシステム運用では、バッチ処理はオンライン入力時間帯を避けて、たとえば夜間バッチ処理や休日・連休中のバッチ処理として実行されることが多い。
特許文献1の技術は、時制データベースのように厳密な時刻でデータを更新するものには適用できない。特許文献1の技術では、バッチ処理の完了時刻がオンライン処理の発生時刻に依存するため、現在まだ有効となっていない将来のバッチ処理済データが、オンライン処理が発生した時点で有効となってしまい、データ内容に不整合が発生する可能性があるからである。
第一種の処理はバッチ処理であり、第一更新部は、対象となるレコードに対する排他制御を行わないものであってもよい。
所定の基準は有効時区間に関連してもよい。
所定の基準は、有効時区間について最も新しい開始時刻を有するレコードを選択する、第一の選択を行うという基準を含んでもよい。
所定の基準は、有効時区間について、最も新しい時間帯に属する開始時刻を有するレコードを選択する、第一の選択を行うという基準を含み、時間帯は、順に実行される2つの第一種の処理について、それぞれに関連付けられた時刻によって区画されてもよい。
第二更新部は、さらに、第二種の処理に関連するレコードの、有効時区間の終了時刻を指定してもよい。
レコードは、さらに、有効時区間の開始時刻および終了時刻が、それぞれ、第一更新部および第二更新部のいずれによって指定されたものであるかを示す、開始区分および終了区分を表す情報を含み、所定の基準は、開始区分および終了区分に関連してもよい。
第二種の処理は、その処理の対象となるレコードに基づいて追加レコードを作成する処理を含むものであり、第二種の処理が、第一種の処理に関連付けられた時刻より前に実行される場合は、その第二種の処理において作成される追加レコードに対し、その第一種の処理を実行してもよい。
第二種の処理はオンライン処理であり、第二更新部は、対象となるレコードに対する排他制御を行ってもよい。
検索条件は、検索が実行される検索実行時刻を含み、所定の基準は、さらに、第二の選択によって複数のレコードが選択された場合は、終了時刻と、検索実行時刻とを比較し、終了時刻が検索実行時刻より新しい場合には、終了区分が第二更新部を示すか、または終了区分が第一更新部および第二更新部のいずれも示さないレコードを優先して選択する、第三の選択を行い、終了時刻が検索実行時刻より古い場合には、終了区分が第二更新部を示すレコード、終了区分が第一更新部を示すレコード、および、終了区分が第一更新部および第二更新部のいずれも示さないレコードの順に優先して選択する、第四の選択を行うという基準を含んでもよい。
複数のレコードのうち少なくとも一部のレコードは削除レコードであって、複数のレコードのうち、削除レコードと同一のキーを有するレコードはすべて無効であってもよい。
データベースシステムは、さらに、所定の基準に基づく選択において選択される可能性のないレコードの少なくとも1つを、時制データベースから削除する、削除部を備えてもよい。
実施の形態1.
図1は、本発明に係るデータベースシステムである、データベースサーバ1の構成を示す。データベースサーバ1は周知の構成を有するコンピュータであり、情報を格納する記憶手段20と、演算を行う演算手段40とを備える。記憶手段20はメモリおよびHDD(ハードディスクドライブ)を含み、演算手段40はCPU(中央処理装置)を含む。
データベースサーバ1は、さらに、入力装置であるキーボードおよびマウス、出力装置であるディスプレイおよびプリンタ、通信ネットワークに対する入力装置と出力装置とを兼ねるネットワークインタフェースを備える。
ここで、オンライン処理とは、データの更新を行う際にロック(排他制御)を伴う処理であり、バッチ処理とは、データの更新を行う際にロックを伴わない処理である。すなわち、あるオンライン処理によってあるデータに対する更新処理が開始された後、その更新処理が完了する前は、他のオンライン処理およびバッチ処理はそのデータの更新を行うことができないように、排他制御が実施される。一方、あるバッチ処理によってあるデータに対する更新処理が開始された後、その更新処理が完了する前であっても、オンライン処理および他のバッチ処理はそのデータの更新を行うことができる。
ここで、バッチ処理を第一種の処理、オンライン処理を第二種の処理とし、バッチ更新部を第一更新部、オンライン更新部を第二更新部とする。
キーのフィールドには、検索の際に用いられる、そのレコードの対象となる単一の概念を表す値、この例では住民を表す個人番号が格納される。なお、キーとレコードとは必ずしも一対一に対応するものではなく、後述するように、同一のキーを有する複数のレコードが存在する場合がある。
このキーが、オンライン処理によるロックの単位となる。すなわち、あるオンライン処理がキー001を有するレコードの更新中であるときは、キー001を有するレコードがすべてロックされ、後述のように、他のオンライン処理およびバッチがそのようなレコードのいずれかの更新を試みた場合には、ロックのため更新を行うことができないという旨のエラー情報が返される。
なお、後述するように、同一のキーを有する複数のレコードについて、有効時区間が互いに重複する場合がある。すなわち、同一のキーを有するレコードのうち、ある一時点で有効なものが複数存在する場合がある。
また、有効時区間の単位は、たとえばそのコンピュータが扱える時間の最小単位が用いられる。ただし、本明細書においては、説明の便宜上、この最小単位が1分であるものとする。
このように、レコードには、有効時区間の開始時刻および終了時刻が、それぞれ、バッチ更新部42およびオンライン更新部44のいずれによって指定されたものであるかを示す、開始区分および終了区分を表す情報を含む。
バッチ番号、バッチ処理論理名、およびバッチ名称は、そのバッチ処理を識別するための値である。
更新テーブルは、図1のデータテーブル28のうち、そのバッチ処理が更新を行う対象がどれであるかを表す。
以上より、あるバッチ処理の抽出時刻および更新反映時刻と、ある時刻T1との間に、抽出時刻≦T1<更新反映時刻となる関係が成り立つとき、そのバッチ処理は時刻T1において仕掛かり中であると言える。なお、実際のバッチ処理は、抽出時刻より後に開始されるが、更新反映時刻より前に処理が完了して、新規に追加するためのレコードが作成されているものとする。
テーブル名は、図1のデータテーブル28のうち、そのオンライン処理が更新を行う対象がどれであるかを表す。
ロックキー情報は、該当のデータテーブル28において、そのオンライン処理が更新を行う対象となるキーの値、すなわち図2の例では個人番号を表す。
まず、バッチ処理部52は、実行するバッチ処理に対応するバッチ処理論理名、バッチ番号、および更新テーブルを、図3に示す構成を有する図1のバッチ更新情報部22から読み込む(ステップS11)。
次に、バッチ処理部52は、更新テーブルと、バッチ処理論理名に対応して記憶手段20にあらかじめ定義されている検索条件とを、検索部46に渡すとともに検索を指示する(ステップS12)。ここで、検索条件は、データテーブル28から特定のレコードを抽出するための条件の表現であり、たとえばSQL(structured query language)を用いて表現されるものである。また、検索条件は、検索対象とするデータテーブル28を表す条件と、どの時点において有効なレコードを検索対象とするかという検索対象時刻を表す条件とを含む。
次に、バッチ処理部52は、抽出済レコードに対し、バッチ処理論理名に対応して記憶手段20にあらかじめ定義されているバッチ処理を実行する(ステップS14)。たとえば、「住所」フィールドに含まれる特定の文字列を異なる文字列で置き換える処理等が実行される。ここで、バッチ処理部52が更新し得るフィールドは、図2に示すもののうち、キーおよび属性情報のみである。有効時区間および更新プログラム区分は、バッチ処理部52によっては変更されない。
最後に、バッチ処理部52は、処理が実行されたレコード(以下、「処理済レコード」と称する)を、バッチ更新部に渡す(ステップS15)。
まず、バッチ更新部42は、バッチ処理部52から処理済レコードを受け取る(ステップS21)。
次に、バッチ更新部42は、受け取った処理済レコードに基づき、データテーブル28に追加されるべきレコード(以下、「追加レコード」と称する)を作成する(ステップS22)。
図2に示される各フィールドのうち、キーおよび属性情報は、バッチ更新部42によっては更新されない(上述の図5のステップS14において、バッチ処理部52によって更新されている場合はある)。
有効時区間のうち開始時刻は、図3に示されるバッチ更新情報部22において当該バッチ番号に対応する更新反映時刻が指定される。また、終了時刻は指定されない。これは、このレコードが追加レコードすなわち新たに作成されたレコードであり、有効でなくなる時点がとくに指定されていないことを意味する。
更新プログラム区分のうち開始区分は、「バッチ」が指定される。これは、その追加レコードが、更新の際にロックを伴わない処理、すなわちバッチ処理によって作成されたものであることを意味する。また、終了区分は指定されない。これは、上述のように終了時刻が指定されていないため、終了時刻を指定するプログラムが存在しないことを意味する。
この満了レコードは、図2に示される構成を有する抽出元レコードの、各フィールドのうち終了時刻および終了区分を、次のように変更することによって作成される。
終了時刻は、図3に示されるバッチ更新情報部22において当該バッチ番号に対応する更新反映時刻が指定される。また、終了区分は、「バッチ」が指定される。これは、その追加レコードが、更新の際にロックを伴わない処理、すなわちバッチ処理によって終了時刻を指定されたものであることを意味する。
なお、ここで、抽出元レコードと追加レコード、または、抽出元レコードと満了レコードは、互いに重複する有効時区間を有する場合があるが、一方を不適当なものとして削除する等の処理は、ここでは行われない。これは、当該バッチ処理がロックを伴わない処理であり、また、ステップS24の実行時点では更新反映時刻に至っていないため、同一のレコードに対して同時に異なる内容の更新がかかり不整合が発生するという事態を避けるために、すべての可能性に対応するデータを残しておくことに相当する。
まず、オンライン処理部54は、入出力部48から検索条件を受け取る(ステップS31)。これは、たとえば、ディスプレイに表示される操作画面に対し、オペレータが検索条件の入力操作を行うことに対応する。
次に、オンライン処理部54は、受け取った検索条件を検索部46に渡し、検索を指示する(ステップS32)。
次に、オンライン処理部54は、入出力部48から変更内容を受け取る(ステップS34)。これは、たとえば、ディスプレイに表示される操作画面において、オペレータが抽出済レコードの内容に変更を加えることに対応する。
次に、オンライン処理部54は、受け取った変更内容に応じて抽出済レコードに変更を加え、処理済レコードを作成する(ステップS35)。ここで、オンライン処理部54が更新し得るフィールドは、図2に示すもののうち、キーおよび属性情報のみである。有効時区間および更新プログラム区分は、オンライン処理部54によっては変更されない。
次に、オンライン処理部54は、オンライン更新部44から処理結果の通知を受け取る(ステップS37)。
最後に、オンライン処理部54は、受け取った処理結果の通知を入出力部48に渡す(ステップS38)。これは、たとえば処理が正常終了した旨が画面に表示されることに対応する。
まず、オンライン更新部44は、オンライン処理部54から処理済レコードを受け取る(ステップS41)。
次に、オンライン更新部44は、後続処理のために、検索実行時刻として、現在時刻を保存する(ステップS42)。ここではある変数Tに現在時刻を代入することによって保存を行う。
ここで、該当するデータテーブル28および該当するキーの組合せがオンライン更新情報部24に格納されていない場合、すなわち該当レコードがロックされていない場合には、ロックは正常終了となる。逆に、該当する組合せがすでにオンライン更新情報部24に格納されている場合、すなわち該当レコードがすでにロックされている場合には、ロックは異常終了となる。または、異なる実施形態として、異常終了せずに、すでにかかっているロックが解除されるまで待ち、その後ロックを行って正常終了とするものであってもよい。
ロックが正常終了した場合には、オンライン更新部44は、抽出元レコードに基づき、データテーブル28の抽出元レコードを置き換えるべき満了レコードを作成する(ステップS46)。
終了時刻は、ステップS42における変数T、すなわち保存された検索実行時刻が指定される。これは、処理済レコードが、変数Tの時刻まで有効であるが、このオンライン処理によって更新された結果、その時刻より後では有効ではなくなることを意味する。また、終了区分には「オンライン」が指定される。これは、その満了レコードが、更新の際にロックを伴う処理、すなわちオンライン処理によって満了することとなったものであることを意味する。
ステップS47の後、オンライン更新部44は、以下のステップS48〜S55からなるレコード追加処理を行う。
レコード追加処理において、まず、オンライン更新部44は、処理済レコードに基づき、追加レコードを作成する(ステップS48)。
図2に示される各フィールドのうち、キーおよび属性情報は、オンライン更新部44によっては更新されない(上述の図7のステップS35において、オンライン処理部54によって更新されている場合はある)。
有効時区間のうち開始時刻は、ステップS42における変数T、すなわち保存された検索実行時刻が指定される。また、終了時刻は指定されない。これは、このレコードが追加レコードすなわち新たに作成されたレコードであり、有効でなくなる時点がとくに指定されていないことを意味する。
更新プログラム区分のうち開始区分は、「オンライン」が指定される。これは、その追加レコードが、更新の際にロックを伴う処理、すなわちオンライン処理によって作成されたものであることを意味する。また、終了区分は指定されない。これは、上述のように終了時刻が指定されていないため、終了時刻を指定するプログラムが存在しないことを意味する。
また、このステップS52は、オンライン更新部44がバッチ処理部52をサブルーチンとして呼び出した後、バッチ処理部52によって実行されるものであってもよい。
終了時刻は、図3に示されるバッチ更新情報部22において当該バッチ番号に対応する更新反映時刻が指定される。また、終了区分は、「オンライン」が指定される。これは、その追加レコードが、更新の際にロックを伴う処理、すなわちオンライン処理によって終了時刻を指定されたものであることを意味する。
図2に示される各フィールドのうち、キーおよび属性情報は、バッチ処理の内容に応じて、オンライン更新部44によって更新される。
有効時区間のうち開始時刻は、図3に示されるバッチ更新情報部22において当該バッチ番号に対応する更新反映時刻が指定される。また、終了時刻は指定されない。これは、このレコードが追加レコードすなわち新たに作成されたレコードであり、有効でなくなる時点がとくに指定されていないことを意味する。
更新プログラム区分のうち開始区分は、「オンライン」が指定される。これは、その追加レコードが、更新の際にロックを伴う処理、すなわちオンライン処理によって作成されたものであることを意味する。また、終了区分は指定されない。これは、上述のように終了時刻が指定されていないため、終了時刻を指定するプログラムが存在しないことを意味する。
次に、オンライン更新部44は、作成された追加レコードおよび再追加レコードを、更新対象のデータテーブル28に追加する(ステップS55)。
この後、オンライン更新部44は、ステップS43において実施された抽出元レコードのキーのロックを解除する(ステップS56)。この解除は、図4に示す構成を有するオンライン更新情報部24から、処理対象のデータテーブル28の名称と、そのデータテーブル28においてロックされるキーとの組合せを削除することによって行われる。
最後に、オンライン更新部44は、オンライン処理部54に正常終了の結果を通知し(ステップS57)、処理を終了する。
まず、検索部46は検索条件を受け取る(ステップS71)。ここで、検索の指示および検索条件は、図5のステップS12においてバッチ処理部52から渡される場合もあり、また、図7のステップS32においてオンライン処理部54から渡される場合もある。また、図5のステップS12に関連して上述したように、検索条件は、検索対象とするデータテーブル28を表す条件と、検索対象時刻を表す条件とを含む。
次に、検索部46は、有効なレコードのうち、その他の検索条件に適合するものを抽出する(ステップS73)。これは、たとえばSQLによって表現される、キーおよび属性情報に関する条件と、各レコードのキーおよび属性情報とを比較することによって行われる。
同一のキーを有するレコードがただ一つしかない場合、検索部46は処理を後述のステップS78に進める。なお、図9のフローチャートには検索条件に適合するレコードが存在しなかった場合の処理はとくに明示されないが、この場合でも「同一のキーを有するレコードが複数ある」という条件は満たさないものとして、図9のフローチャートに従って処理を行ってもよい。この場合、抽出済レコードは実際には空データであってもよい。
次に、検索部46は、選択されたレコードのうち、同一のキーを有するレコードが複数あるかどうかを判定する(ステップS76)。同一のキーを有するレコードがただ一つしかない場合、検索部46は処理を後述のステップS78に進める。
図10は、このステップS77における選択の際の、優先順位の決定方法を示す。決定方法は、現在仕掛かり中のバッチ処理があるかどうかによって異なる。仕掛かり中のバッチ処理がある場合、すなわち図3に示すバッチ更新情報部のレコードに、抽出時刻≦検索実行時刻<更新反映時刻となるものが存在する場合は、優先順位は図10の表(a)に従って決定される。そうでない場合は、優先順位は図10の表(b)表に従って決定される。
なお、ここで、複数のバッチ処理が同時に仕掛かり中となることはないものとする。
なお、同一の開始区分を有するレコードのうち、終了区分がオンラインであるレコードと、終了区分が指定されていないレコードとで優先順位が等しくなっているが(優先順位1および3の行)、これらのレコードが同時に存在することはない。
終了時刻が検索実行時刻より新しい場合には、第三の選択によって、表(a)に従って、終了区分がオンラインであるか、または終了区分が指定されていないレコードが優先して選択される。
終了時刻が検索実行時刻より古い場合には、第四の選択によって、表(b)に従って、終了区分がオンラインであるレコード、終了区分がバッチであるレコード、および、終了区分が指定されていないレコードの順に優先して選択される。
データベースサーバ1が管理する時制データベースのデータテーブル28には、同一のキーを有する複数のレコードのうち、互いに重複する有効時区間を有するものが含まれる。
そして、データベースサーバ1は、データテーブル28のレコード毎に、データを更新するプログラムの種別を、開始区分および終了区分として関連付ける。レコードの検索を行う際に、同一のキーを有する有効なレコードが複数存在する場合には、仕掛かり中のバッチ処理が存在するかどうかと、有効時区間の開始時刻と、開始区分および終了区分とに基づいてレコード間の優先順位を決定し、最も優先順位の高いレコードを選択する。
また、データベースサーバ1は、バッチ処理を行う際には、ロックを実施して更新前のデータを更新後のデータで置き換えるという処理ではなく、ロックを実施せずに、更新前のデータを含む抽出元レコードはそのまま残しておき、更新後のデータを含む追加レコードをデータテーブル28に単純に追加するという処理を行う。
また、データベースサーバ1は、オンライン処理を行う際、抽出元レコードをロックするとともに、仕掛かり中のバッチ処理があるかどうかを参照する。仕掛かり中のバッチ処理がない場合には、従来の時制データベースと同様の処理を行う。すなわち、更新前のデータを含む満了レコードと、更新後のデータを含む追加レコードとを作成し、これらをデータテーブル28に追加してロックを解除する。
仕掛かり中のバッチ処理がある場合には、更新前のデータを含む満了レコードと、オンライン更新後バッチ更新前のデータを含む追加レコードと、バッチ更新後のデータを含む再追加レコードとを作成し、これらをデータテーブル28に追加してロックを解除する。
例となるデータテーブル28は、図2に示されるものとする。これは住民票に対応するものであってもよい。このデータテーブル28に対して、バッチ処理として住居表示による更新が加えられる場合を想定する。
図12および図14は、処理の各段階におけるデータテーブル28の内容を示す。
検索部46は、図9に示すように、ステップS71でこの指示を受け取る。ステップS72で、図2のレコードR1およびR2はいずれも有効であり、またステップS73で、レコードR1およびR2はいずれも検索条件に適合すると判定される。同一キーのレコードが複数存在するものはないので、処理はステップS74からステップS78へと進み、レコードR1およびR2がバッチ処理部52に渡される。バッチ処理部52は、図5のステップS13でレコードR1およびR2を受け取る。
ここで、データが大量であるためバッチ処理部52の処理に時間がかかり、3月28日になってもステップS14が実行されていないとする。
図12および図13は、このオンライン処理が完了した時点、すなわち3月28日の13:00直後におけるデータテーブル28の状態を示す。
オンライン更新部44は、抽出元レコードR1から満了レコードR1’を作成し、図8のステップS47で抽出元レコードR1を満了レコードR1’で置き換える。さらに、処理済レコードから追加レコードR3を作成する。ここで、バッチ更新情報部22(図3)が参照され、住居表示のバッチ処理が仕掛かり中であると判定されるため、追加レコードR3の終了時刻および終了区分が指定され、さらに処理済レコードから再追加レコードR4が作成される。ステップS55で追加レコードR3および再追加レコードR4がデータテーブル28に追加される。
ここで、満了レコードR1’は転居前の住所を含み、追加レコードR3は転居後かつ住居表示前の住所を含み、再追加レコードR4は住居表示後の住所を含む。
図14および図15は、このバッチ処理が完了した時点におけるデータテーブル28の状態を示す。
バッチ更新部42は、ステップS21で処理済レコードを受け取る。ステップS22で、レコードR1に対応する処理済レコードから追加レコードR6が、またレコードR2に対応する処理済レコードから追加レコードR8が、それぞれ作成される。
さらに、ステップS23で、抽出元レコードであるレコードR1から満了レコードR5が、また同様にレコードR2から満了レコードR7が作成される。
このように作成されたレコードR5〜R8は、ステップS24でデータテーブル28に追加される。
また、満了レコードR7は住居表示前の住所を含み、追加レコードR8は住居表示後の住所を含む。
ステップS72で、当該時刻において有効なレコードとして、図15に示すように、キー001を有するレコードR3およびR5と、キー002を有するレコードR2およびR7とが抽出される。ステップS73で、これらのレコードのうちから、検索条件に適合するキー001を有するレコードR3およびR5のみが抽出される。
ステップS72で、上記と同様にレコードR2、R3、R5、およびR7が抽出される。ステップS73で、これらのレコードのうちから、検索条件に適合するキー002を有するレコードR2およびR7のみが抽出される。
そして、検索の際に、同一のキーを有する有効なレコードが複数存在する場合は、それらのレコードの間の優先順位に基づいて抽出するレコードを選択することで、その時点で不適切なデータを含むレコードが抽出されることを防ぎ、データの整合性を保持する。
このようにして、データベースサーバ1は、時制データベースにおいて、バッチ処理とオンライン処理とを同時に実行することができる。
これとは異なる実施形態として、これらが複数のコンピュータに分散して設けられてもよい。たとえば、バッチ処理部52とオンライン処理部54とがそれぞれ独立したコンピュータに設けられてもよい。
なお、優先順位の決定には終了時刻は用いられていないため、この場合であっても実施の形態1と同様の処理を適用することができる。
このようにすることにより、不要なレコードが削除されるので、データ格納部26の記憶容量が節約できる。また、有効なレコードの数が少なくなるので、レコード間の優先順位を決定するために要求される検索部46の処理能力を小さくすることができる。
実施の形態2は、上述の実施の形態1において、図8のステップS50における分岐条件を変更し、かつ、図9のステップS75における選択に用いられる基準を変更するものである。
実施の形態1では、図8のステップS50において、仕掛かりバッチ処理の有無のみが判定されるが、実施の形態2では、仕掛かりバッチ処理の有無に加え、追加レコードがその仕掛かりバッチ処理の対象となるかどうかが判定される。仕掛かりバッチ処理が存在し、かつ追加レコードがその対象となる場合のみ処理はステップS52に進み、そうでない場合はステップS51に進む。
また、実施の形態1では、図9のステップS75において、レコードの開始時刻が基準として用いられるが、実施の形態2では、開始時刻そのものではなく、開始時刻が属する時間帯が基準として用いられる。この時間帯は、各バッチ処理の更新反映時刻によって区画される。すなわち、(あるバッチ処理の更新反映時刻)<(レコードXの開始時刻)≦(次のバッチ処理の更新反映時刻)となる条件に適合するレコードXは、ステップS75での選択においてはすべて等価なものとして扱われることになる。これが実施の形態2における第一の選択となる。
その他の部分については、実施の形態1と同様であるので、説明を省略する。
図16に示すように、あるバッチ処理Aの更新反映時刻TAより後に、レコードX1に対してバッチ処理Bが実行され、満了レコードX2および追加レコードX3が追加されている。
なお、このような状況が発生する具体例としては、住居表示用バッチ処理の対象であった個人が、レコード抽出時刻の後、更新反映時刻の前に、住居表示対象外の区域に転居した場合等が考えられる。このような場合、時刻TC以降の正しいデータを含むレコードは、レコードX3ではなくレコードX4となる。
Claims (15)
- データベースに関する処理を行うデータベースシステムであって、
前記データベースは、複数のレコードを含み、
前記データベースは、前記レコードが、時間の経過につれて無効から有効となるデータと、そのデータが有効である有効時区間を表す情報と、検索に用いられるキーとを有する、時制データベースであり、
前記処理の少なくとも一部は第一種の処理であり、
前記第一種の処理は、前記第一種の処理の対象となるレコードに関連して、前記第一種の処理のそれぞれに関連付けられた時刻において、有効な前記データを変更するものであり、
前記データベースシステムは、
前記第一種の処理に関連して、前記第一種の処理の対象となるレコードの前記キーと同一のキーを有する追加レコードを作成して前記時制データベースに追加する、第一更新部と、
前記キーを含む検索条件を受け取るとともに、この検索条件に適合するレコードを前記時制データベースから抽出する、検索部と
を備え、
前記第一更新部は、前記追加レコードの有効時区間の開始時刻を、前記第一種の処理に関連付けられた前記時刻に基づいて指定し、それによって、前記追加レコードの有効時区間を、前記第一種の処理の対象となるレコードの有効時区間と少なくとも一部が重複するものとし、
前記検索部は、前記検索条件に適合するレコードが複数存在する場合、所定の基準に基づいて一つのレコードを選択する
データベースシステム。 - 前記データの少なくとも一部は、さらに、時間の経過につれて有効から無効となるものであり、
前記第一種の処理に関連するレコードの有効時区間の終了時刻が、前記第一種の処理に関連付けられた前記時刻に基づいて指定される
請求項1に記載のデータベースシステム。 - 前記第一種の処理はバッチ処理であり、
前記第一更新部は、前記対象となるレコードに対する排他制御を行わない
請求項1または2に記載のデータベースシステム。 - 前記所定の基準は前記有効時区間に関連する、請求項1〜3のいずれか一項に記載のデータベースシステム。
- 前記所定の基準は、前記有効時区間について最も新しい開始時刻を有するレコードを選択する、第一の選択を行うという基準を含む、請求項4に記載のデータベースシステム。
- 前記所定の基準は、前記有効時区間について、最も新しい時間帯に属する開始時刻を有するレコードを選択する、第一の選択を行うという基準を含み、
前記時間帯は、順に実行される2つの前記第一種の処理について、それぞれに関連付けられた前記時刻によって区画されるものである
請求項4に記載のデータベースシステム。 - 前記処理の少なくとも一部は、前記第一種の処理とは異なる第二種の処理であり、
前記データベースシステムは、さらに、前記第二種の処理に関連するレコードの、前記有効時区間の開始時刻を指定する、第二更新部を備える
請求項1〜6のいずれか一項に記載のデータベースシステム。 - 前記第二更新部は、さらに、前記第二種の処理に関連するレコードの、前記有効時区間の終了時刻を指定する、請求項2に記載のデータベースシステムであって、請求項7に記載のデータベースシステム。
- 前記レコードは、さらに、前記有効時区間の開始時刻および終了時刻が、それぞれ、前記第一更新部および前記第二更新部のいずれによって指定されたものであるかを示す、開始区分および終了区分を表す情報を含み、
前記所定の基準は、前記開始区分および前記終了区分に関連する
請求項8に記載のデータベースシステム。 - 前記第二種の処理は、その処理の対象となるレコードに基づいて追加レコードを作成する処理を含むものであり、
前記第二種の処理が、前記第一種の処理に関連付けられた時刻より前に実行される場合は、その第二種の処理において作成される前記追加レコードに対し、その第一種の処理を実行する
請求項7〜9のいずれか一項に記載のデータベースシステム。 - 前記第二種の処理はオンライン処理であり、
前記第二更新部は、前記対象となるレコードに対する排他制御を行う
請求項7〜10のいずれか一項に記載のデータベースシステム。 - 前記所定の基準は、さらに、
第一の選択によって複数のレコードが選択された場合は、前記開始区分が前記第二更新部を示すレコードを優先して選択する、第二の選択を行う
という基準を含む、請求項5または6に記載のデータベースシステムであって、かつ請求項9に記載のデータベースシステム。 - 前記検索条件は、前記検索が実行される検索実行時刻を含み、
前記所定の基準は、さらに、
前記第二の選択によって複数のレコードが選択された場合は、前記終了時刻と、前記検索実行時刻とを比較し、
前記終了時刻が前記検索実行時刻より新しい場合には、前記終了区分が前記第二更新部を示すか、または前記終了区分が前記第一更新部および前記第二更新部のいずれも示さないレコードを優先して選択する、第三の選択を行い、
前記終了時刻が前記検索実行時刻より古い場合には、前記終了区分が前記第二更新部を示すレコード、前記終了区分が前記第一更新部を示すレコード、および、前記終了区分が前記第一更新部および前記第二更新部のいずれも示さないレコードの順に優先して選択する、第四の選択を行う
という基準を含む、請求項12に記載のデータベースシステム。 - 前記複数のレコードのうち少なくとも一部のレコードは削除レコードであって、
前記複数のレコードのうち、前記削除レコードと同一のキーを有するレコードはすべて無効である
請求項1〜13のいずれか一項に記載のデータベースシステム。 - 前記データベースシステムは、さらに、前記所定の基準に基づく選択において選択される可能性のないレコードの少なくとも1つを、前記時制データベースから削除する、削除部を備える、請求項1〜14のいずれか一項に記載のデータベースシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006058314A JP4396988B2 (ja) | 2006-03-03 | 2006-03-03 | データベースシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006058314A JP4396988B2 (ja) | 2006-03-03 | 2006-03-03 | データベースシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007233969A JP2007233969A (ja) | 2007-09-13 |
JP4396988B2 true JP4396988B2 (ja) | 2010-01-13 |
Family
ID=38554459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006058314A Expired - Fee Related JP4396988B2 (ja) | 2006-03-03 | 2006-03-03 | データベースシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4396988B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5675666B2 (ja) * | 2012-02-09 | 2015-02-25 | 株式会社野村総合研究所 | 時限データの履歴管理システム |
JP5841704B2 (ja) * | 2014-12-22 | 2016-01-13 | 株式会社野村総合研究所 | 時限データの履歴管理システム |
CN109542922B (zh) * | 2018-11-29 | 2023-04-07 | 泰康保险集团股份有限公司 | 针对实时服务数据的处理方法及相关系统 |
CN115048207B (zh) * | 2022-08-17 | 2022-12-16 | 恒丰银行股份有限公司 | 一种基于固定时间间隔的任务执行方法、设备及介质 |
-
2006
- 2006-03-03 JP JP2006058314A patent/JP4396988B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007233969A (ja) | 2007-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4255373B2 (ja) | ネットワークファイルシステムのための管理および同期化アプリケーション | |
JP4308587B2 (ja) | 文書群管理装置 | |
JP4522485B1 (ja) | データ変換方法、その装置およびそのプログラム | |
JP2000040104A (ja) | ワークフロー管理方法 | |
JP4396988B2 (ja) | データベースシステム | |
EP3792779A1 (en) | Managing dataset edits | |
US6453324B1 (en) | Method for maintaining a version history of objects in a repository | |
CN101013426B (zh) | 信息管理装置以及信息管理方法 | |
JP5106062B2 (ja) | ファイル検索方法、ファイル検索装置、検索システム、及び、ファイル検索プログラム | |
JP4971717B2 (ja) | ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム | |
JP3942877B2 (ja) | Cadデータを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体およびcadデータを管理するためのプログラム | |
CN110263060B (zh) | 一种erp电子附件管理方法及计算机设备 | |
JP3887571B2 (ja) | ソフトウェア設計要件抽出支援方法、ソフトウェア設計要件決定支援方法、ソフトウェア設計支援方法、およびプログラム | |
WO2018179065A1 (ja) | データ分析装置およびデータ分析方法 | |
JP2010160577A (ja) | 検索装置及びその制御方法、並びにコンピュータプログラム | |
JPH05307478A (ja) | データベース管理システムの構成法 | |
JP4279346B2 (ja) | データベース管理装置及びプログラム | |
JPH11272526A (ja) | データ処理装置及び記憶媒体 | |
JPH0687225B2 (ja) | フアイル・サービス要求の処理方法及び装置 | |
JP2003036190A (ja) | アンドゥ処理システム及びアンドゥ処理方法 | |
JP2011138223A (ja) | 検索装置、検索方法、及びプログラム | |
JP4209859B2 (ja) | データベース管理装置及びプログラム | |
JP5048396B2 (ja) | データ管理プログラム | |
JPH10320256A (ja) | 分散データベースシステムのデータ更新制御方法および 装置 | |
JP4173147B2 (ja) | データベース管理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090707 |
|
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: 20091013 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091016 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4396988 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131030 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |