JP5146048B2 - データベース監視装置、データベース監視方法、およびデータベース監視プログラム - Google Patents

データベース監視装置、データベース監視方法、およびデータベース監視プログラム Download PDF

Info

Publication number
JP5146048B2
JP5146048B2 JP2008082296A JP2008082296A JP5146048B2 JP 5146048 B2 JP5146048 B2 JP 5146048B2 JP 2008082296 A JP2008082296 A JP 2008082296A JP 2008082296 A JP2008082296 A JP 2008082296A JP 5146048 B2 JP5146048 B2 JP 5146048B2
Authority
JP
Japan
Prior art keywords
monitoring
database
size
data
program
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
JP2008082296A
Other languages
English (en)
Other versions
JP2009237838A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008082296A priority Critical patent/JP5146048B2/ja
Publication of JP2009237838A publication Critical patent/JP2009237838A/ja
Application granted granted Critical
Publication of JP5146048B2 publication Critical patent/JP5146048B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベースに格納されているデータが適切であるか監視するための装置、方法、およびプログラムに係わる。
各種データを格納して管理するデータベースシステムは、様々な分野において広く普及している。近年では、データベースに格納されるデータ量も膨大であり、その保守または管理に要する労力も大きくなってきている。このため、データベースを監視する技術が実用化されている。
従来技術におけるデータベースの監視方法としては、例えば、以下のものが知られている。
(1)ファイルの使用率を監視する。
(2)データベースの使用状況をモニタし、容量不足が発生する時期を予測する。
(3)ファイル管理の一元化およびディスク等のコンピュータ資源の効率的な運用の推進が可能なようにファイルの情報を管理する。
(4)データベースの再編成が必要な時期の判断と予測を行い、適確な時期に再編成命令を生成して自動的に再編成を行う。
また、業務システムに入力されたデータをチェックする方法として、下記のものが知られている。すなわち、データ格納サーバは、データチェックのルールを保持するデータチェックテーブル、その例外や詳細を保持する備考テーブルを備える。業務クライアント端末の業務アプリケーションは、起動時に上記テーブルをロードする初期化処理手段、一連のデータを入力するデータ入力手段、対応するデータチェックテーブルおよび備考テーブルを用いて入力されたデータについてその資料区分や有効期間の妥当性をチェックするデータチェック処理手段を備える。データチェック処理手段は、チェックテーブルの検査内容でチェック関数を選択し、パラメータを設定し、チェックテーブルの調査項目を検査する。
特開2005−18471号公報
従来技術においては、一般に、データベースの容量不足等のような大雑把な監視をしていた。また、上述のように、いくつかの調査項目について検査を行う方法も提案されているが、それらの調査項目はデータベースを監視するオペレータにより決定されるものであり、不適切なデータ入力を十分に監視できなかった。
したがって、データベースに格納されているデータが適切であるか否かを、精度よく監視する技術が望まれている。
本発明は、特に他社が開発した業務アプリケーションシステムのように、システムの仕様を詳細に知る術のないような場合であっても、そのシステムの運用を監視する必要があるようなケースを想定している。このような場合には、システムを構成するプログラムの中身を解析することができないため、各プログラムの出力データを監視することで異常データの発生を検知する必要があるためである。
一態様のデータベース監視プログラムは、コンピュータを、データベースにデータを格納するためのプログラムを解析して監視条件を抽出する抽出手段、前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成する監視ルール設定手段、前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行するアクション実行手段、として機能させる。前記抽出手段は、前記プログラムにおいて、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを前記監視条件として出力する。
また、前記コンピュータをさらに、前記第1のフィールドに格納されているデータの末尾の情報に基づいて、住所を表すデータとして不適切と推定されるデータを検出する検出手段として機能させるようにしてもよい。この場合、前記アクション実行手段は、前記検出手段により不適切と推定されるデータが検出されたときに、警告を出力する。
一態様の監視プログラム、監視装置、監視方法によれば、データベースに格納されているデータが適切であるか否かを精度よく監視できる。
図1は、実施形態のデータベース監視が行われるシステムの構成を示す図である。図1において、情報システム1は、監視対象のデータベースを含む情報システムである。情報システム1は、コンピュータおよび記憶装置を含んで構成される。情報システム1のコンピュータには、データベースプログラムおよびDBスキーマが与えられる。なお、以下の説明においては、データベースプログラム(または、データベースプログラムおよびDBスキーマ)を、単に「プログラム2」と呼ぶことがある。また、記憶装置には、データベースプログラムおよびDBスキーマに従ってデータベース(図1では、DB1〜DB3)3が構築される。データベース3には、ユーザにより入力されるデータ、或いは情報システム1が読み込んだデータが、プログラム2に従って格納される。
データベース監視装置11は、コンピュータにより実現され、データベース監視ルール12を保持すると共に、データベース監視実行部13、およびアクション実行部14を備える。データベース監視ルール12は、後で詳しく説明するが、プログラム2から抽出される監視条件を用いて作成される。監視ルールは、監視条件とその監視条件が成立したときに実行すべきアクションとを対応付けることにより作成される。データベース監視実行部13は、データベース3から取得したデータに対して、データベース監視ルール12として設定されている条件が成立するかを監視する。そして、アクション実行部14は、監視条件が成立したときに、データベース監視ルール12で指定されているアクションを実行する。
図2は、実施形態のデータベース監視方法の概要を示すフローチャートである。ステップS1では、監視対象の情報システム1が実行するプログラム2を解析する。ステップS2では、ステップS1における解析結果に基づいて、データベース監視条件を抽出する。ステップS3では、ステップS2で抽出したデータベース監視条件とその監視条件に対応する監視アクションを関連付けることにより、データベース監視ルール12を設定する。ステップS4では、データベース監視ルール12に基づいて、データベース3に格納されているデータを監視する。ステップS5では、データベース監視ルール12に規定されて
いる監視条件が成立したときに、その監視条件に対応するアクションを実行する。
図3は、実施形態のデータベース監視装置の構成を示す図である。実施形態のデータベース監視装置11は、プログラム入力部21、プログラム解析部22、データベース監視条件抽出部23、データベース監視アクション設定部24、データベース監視ルール設定部25、DB格納データ取得部26、データベース監視実行部27、およびアクション実行部28を含んで構成される。なお、データベース監視実行部27およびアクション実行部28は、図1においては、データベース監視実行部13およびアクション実行部14に相当する。
プログラム入力部21は、情報システム1の動作を記述するプログラム資産(図1においては、データベースプログラムおよびDBスキーマなどのプログラム2)を、データベース監視装置11に入力する。入力すべきプログラム資産は、例えば、そのプログラム資産が格納されているファイルシステム上のパスにより指定される。プログラム資産のファイルパスの指定は、例えば、XMLファイルに記述する方法、ダイアログウィンドウ上で指定する方法により実現される。
プログラム解析部22は、プログラム入力部21により入力されたプログラム資産を解析する。ここで、図4を参照しながら、プログラム解析部22の処理を説明する。ステップS11では、入力されたプログラムを順に解析し、構文木を作成する。ステップS12では、作成した構造木を用いて、変数の参照更新関係からデータフローを生成する。ステップS13では、データベースフィールドを更新する変数のデータフローを分析し、関連する変数や条件式などを収集し、フィールドに対するプログラム処理内容を集計する。プログラムを解析する方法については、後で、具体例を用いて説明する。
データベース監視条件抽出部23は、設定された監視条件分析ルール29に基づいて、プログラム解析部22による解析結果を分析することにより、データベース3の監視条件を抽出する。ここで、図5を参照しながら、データベース監視条件抽出部23の処理を説明する。ステップS21では、監視条件分析ルール29が設定される。監視条件分析ルール29は、特に限定されるものではないが、例えば、データベースを監視するオペレータにより作成される。ステップS22では、プログラム解析部22の解析結果を取得する。ステップS23では、プログラム解析部22の解析結果において、全てのフィールドについて監視条件分析ルール29を適用し、監視対象フィールドおよび監視条件を抽出する。ステップS24では、監視対象フィールドおよび監視条件をデータベース監視条件として出力する。
データベース監視アクション設定部24は、データベース監視条件抽出部23により得られるデータベース監視条件が成立した場合に実行すべきアクションを設定する。実行すべきアクションは、例えば、以下の通りである。
(1)データベース監視条件が成立したデータを識別表示する(及び、警告を出力する)(2)データベース監視条件が成立したデータを記録する
なお、上記(1)(2)において、データベース監視条件が成立したデータベース、フィールド、データ、データベース監視ルールを表示または記録するようにしてもよい。さらに、プログラムから抽出された監視条件とは異なる条件が満たされたときに、対応するアクションを実行するようにしてもよい。
データベース監視ルール設定部25は、データベース監視条件およびアクション情報から構成されるデータベース監視ルールを作成する。データベース監視条件は、データベース監視条件抽出部23により設定される。また、アクション情報は、データベース監視アクション設定部24により設定される。そして、データベース監視条件および対応するア
クション情報を関連付けることにより、データベース監視ルールが作成される。なお、複数のデータベース監視ルールが存在する場合には、データベース監視ルール設定部25は、それらの間の優先度の設定、および各ルールについて採用/不採用の設定を行う。
DB格納データ取得部26は、データベース3に格納されているデータを取得する。具体的には、DB格納データ取得部26は、データベース監視ルール設定部25によって設定されたデータベース監視ルールに基づいて、指定されたデータベースの指定されたフィールドのデータを取得する。
データベース監視実行部27は、設定されたデータベース監視ルールに基づいて、データベース3に格納されたデータを監視する。具体的には、データベース監視実行部27は、DBデータ取得部26によって取得されたDBデータについて、データベース監視ルールの監視条件でチェックを行う。
図6は、データベース監視実行部27の処理を示すフローチャートである。ここでは、定期的に(例えば、24時間毎に)、データベース3に格納されているデータを監視するものとする。また、複数のデータベース監視ルールが設定されており、各ルールに対してルール番号が付与されているものとする。
ステップS31では、ルール番号を指し示すカウンタをリセットする。ステップS32では、データベース監視実行部27によるデータベースの監視を継続するか否かをチェックする。監視を継続しない場合は処理を終了し、監視を継続する場合はステップS33に進む。ステップS33では、上記カウンタをインクリメントし、次のデータベース監視ルールを取得する。ステップS34では、取得したデータベース監視ルールの監視条件に記述された監視対象フィールドのDBデータを取得する。
ステップS35では、取得したDBデータが監視条件を満たしているか否かをチェックする。監視条件を満たさない場合は、ステップS33に戻って次のデータベース監視ルールを取得する。一方、監視条件が成立した場合は、ステップS36において、アクション実行部28に対してアクション実行指示を与える。これによりアクション実行部28は、データベース監視ルールとして設定されているアクションを実行する。ステップS37では、全てのデータベース監視ルールを実行したかチェックする。未実行のデータベース監視ルールが存在する場合は、ステップS33に戻る。全てのデータベース監視ルールを処理した場合は、ステップS38に進む。ステップS38は、予め決められた所定時間(例えば、ステップS31の実行から24時間)が経過したときにステップS31の処理を起動するために設けられている。なお、図6に示すフローチャートの処理は、データベース3が更新されたことをトリガとして実行するようにしてもよい。
アクション実行部28は、データベース監視ルールとして記述されている監視条件が成立したときに、対応するアクションを実行する。具体的には、監視条件を満たすデータが検出されたときに、例えば、警告を出力する。
このように、上記構成のデータベース監視装置11においては、プログラム解析部22によってプログラム2に記述されたデータベース3に関する条件が解析される。また、データベース監視条件抽出部23によって、設定された監視条件分析ルールに基づいてプログラム解析結果を分析してデータベース3の監視条件が抽出される。ここで、データベース監視条件は、プログラム2の中に記述されている業務内容や実装方法に起因する条件である。そして、データベース監視ルール設定部25によって、抽出されたデータベース監視条件と対応する監視アクションから構成されるデータベース監視ルールが設定される。
DB格納データ取得部26によってデータベース3に格納されたデータを取得される。また、データベース監視実行部27によって設定されたデータベース監視ルールに基づいて、データベース3に格納されたデータが監視される。そして、データベース監視ルールとして設定されている監視条件が成立した場合に、アクション実行部28によって、データベース監視ルールに記述されているアクションが実行される。
上記構成により、監視対象データベースの特定のフィールドに格納されるデータのサイズや形式を監視したり、業務コード値の残量を監視したりするなど、プログラム2で記述された業務内容や実装方法に起因した監視条件で、データベース3に格納されるデータを監視することができる。なお、上記データベース監視装置をコンピュータで実現するためのデータベース監視プログラムは、コンピュータが読み取り可能な可搬媒体メモリ、半導体メモリ、ハードディスクなどの適当な記録媒体に格納することができる。
次に、データベース監視装置およびデータベース監視方法の具体的な実施例について説明する。なお、以下の実施例では、図7〜図9に示すプログラム2が情報システム1に与えられるものとする。また、図10は、DBスキーマの実施例である。DBスキーマに記載されている情報からデータベース3を生成するためのスクリプト(SQL)が作成される。
図7〜図9に示すプログラム2において、ライン90〜110では、「銀行テーブル」内のデータのフィールドが定義されている。ここでは、「住所」「銀行コード」「事業所コード」についての型およびサイズが定義されている。ライン140〜160では、「支店テーブル」内のデータのフィールドが定義されている。ここでは、「支店名」「支店コード」「訂正区分」についての型およびサイズが定義されている。なお、プログラム2を実行してデータを入力すると、SQLにより、データベース3の対応するフィールドにそのデータが格納される。
ライン180〜240では、プログラム内の処理で使用される変数が定義されている。ここでは、7つの変数(変数A〜G)が定義されている。ライン280〜390、490〜530には、テーブル毎に定義されている変数に、プログラム変数のデータを代入する命令文が記述されている。例えば、ライン280に記述されている命令文は、変数Aとして入力されたデータを「銀行テーブル」の「住所」に代入するための処理を意味する。ライン410〜450、550〜590には、テーブル毎に定義されている変数に、定数データを代入する命令文が記述されている。例えば、ライン410に記述されている命令文は、「K01」を「銀行テーブル」の「事業者コード」に代入するための処理を意味する。ライン620〜780には、変数を使用した条件式が記述されている。例えば、ライン620には、「銀行コード」が「0001」であるか否かを判断するための条件式が記述されている。ライン900〜980には、EVALUATE文が記述されている。
図11は、プログラム解析部22が図7〜図9に示すプログラムを解析したときの解析結果を示す図である。なお、プログラム解析の手順は、例えば、図4を参照しながら説明した通りである。
図11において、「テーブル名」は、プログラムが処理する各データベースの名称である。「フィールド名」は、データベースのフィールド名である。「型/サイズ」は、データベースフィールドの型およびサイズである。本実施例では、「N(30)」は2バイトの日本語でサイズ30、「9(4)」は半角数字でサイズ4、「X(3)」は半角英数字でサイズ3を意味する。「型およびサイズ」に係わる情報は、図7〜図9に示すプログラムのライン90〜110、140〜160から抽出される。「参照変数の型/サイズ」は、プログラム2に記述された処理においてデータベースフィールドに値を登録する変数の型とサイズである。「参照変数の型/サイズ」は、例えば、ライン180〜240、280〜390を参照して抽出される。一例として、ライン280、300において変数A、Bがそれぞれ「住所」に代入されている。したがって、この場合、変数A、Bが「住所」の参照変数であるので、「住所」に対応する「参照変数の型/サイズ」として、ライン180、190からそれぞれ「N(40)」「N(30)」が抽出される。
「代入値」は、プログラムに記述された処理においてデータベースフィールドに代入される定数(アルファベット等を含んでもよい。)である。「代入値」は、例えば、ライン110、160、410〜450、550〜590を参照して抽出される。一例として、ライン410、430において「K01」「K12」がそれぞれ「事業所コード」に代入されている。したがって、この場合、「事業所コード」に対応する「代入値」としてそれぞれ「K01」「K12」が抽出される。
「比較値」は、プログラムに記述された処理においてデータベースフィールドに格納される変数に関する条件である。「比較値」は、例えば、ライン620〜970から抽出される。一例として、ライン620において「銀行コード」の比較値として「0001」が与えられている。また、ライン630では、「銀行コード」の変数である変数Eの比較値として「0016」が与えられている。よって、この場合、「銀行コード」に対応する比較値として「0001」「0016」が抽出される。「上限値」および「下限値」は、それぞれ「比較値」を集計することにより得られるデータベースフィールドの上限値および下限値である。この実施例では、例えば、ライン850から得られる。
以下、具体的な実施例を説明する。
<第1の実施例>
図12は、第1の実施例の監視処理を説明する図である。第1の実施例では、監視条件分析ルール29として「参照変数のサイズがフィールドのサイズ以上であれば、そのフィールドを監視対象フィールドとし、判定条件は、「フィールドサイズと同じサイズのデータか?」とする。」が与えられるものとする。このルールは、例えば、データベースを監視するオペレータにより作成される。
データベース監視条件抽出部23は、監視条件分析ルール29が与えられると、プログラム解析部22によるプログラム解析結果を参照し、監視条件を抽出する。プログラム解析結果は、図11に示した通りであり、図12ではその一部が記載されている。図12に示す例では、銀行DBの「住所」フィールドにおいて、「型/サイズ」として「N(30)」が設定されているのに対し、「参照変数の型/サイズ」として「N(30)」「N(40)」が設定されている。すなわち、「住所」として定義されているサイズよりも大きなサイズの参照変数が存在している。よって、この場合、銀行DBの「住所」フィールドが監視対象として選択される。
データベース監視アクション設定部24は、データベース監視条件抽出部23による抽出結果を参照し、データベース監視ルールを作成する。この実施例では、以下のルールが作成される。
対象フィールド:銀行DBの「住所」フィールド
監視条件:全角でサイズ30のデータか?
アクション:監視条件を満たすデータを識別表示して警告する
データベース監視実行部27は、データベース監視アクション設定部24により作成されたデータベース監視ルールでデータベース3に格納されているデータを監視する。この実施例では、DB格納データ取得部26が「住所」フィールドから下記の2つのデータを取得したものとする。なお、DB格納データ取得部26は、データベース監視ルールに係わるデータのみを取得することができる。
データ1:東京都いろは市いろは町1丁目2番3号
データ2:東京都いろは市いろは町1丁目2番マンションあかさたなはま10
この場合、データ1の文字数は30未満である。よって、データ1に対しては警告は出力されない。一方、データ2の文字数は、30である。したがって、データ2に対しては警告が出力される。
この実施例のプログラムでは、図7に示すように、「住所」に対応する変数Aの型/サイズが「N(40)」である。このため、変数Aとして30字を超えるデータが入力される可能性がある。このとき、変数Aとして30字を超えるデータが入力されると、データベース3の「住所」には、例えば、30字分のデータ(すなわち、一部の情報が欠落したデータ)が格納されることとなる。したがって、「住所」のデータが30字であった場合には、一部の情報が欠落している可能性がある。そこで、第1の実施例では、このようなデータが検出され、警告が出力される。
このように、第1の実施例の監視方法によれば、データベースプログラムを解析することによって、格納データが不適切である可能性の高いフィールドが検出され、そのフィールドのデータについて監視が行われる。したがって、巨大なデータベースであっても、短時間で格納データの異常を検出できる。
<第1の実施例の変形例>
図13は、第1の実施例の変形例を説明する図である。図13に示す監視方法では、「住所」としてデータベース3に格納されているデータが、「住所」として妥当か否かを判定する機能が追加されている。この実施例では、以下の2つの判定方法を採用する。
(1)データベースの「住所」に格納されているデータが、予め用意されている住所DBに登録されているか否かをチェックする。そして、登録されていなければ、「住所」として妥当でないと判定される。なお、住所DBは、例えば、公的機関により提供されるデータベースを使用するようにしてもよい。
(2)データベースの「住所」に格納されているデータの末尾が、「住所」の末尾として妥当か否かチェックする。すなわち、格納されているデータの末尾の情報が欠落している可能性を検出する。具体的には、以下の5つの判定方法を採用する。
(2a)データの末尾がハイフンである。
(2b)データの末尾の数字が2桁以下であり、且つ、末尾の数字の直前にハイフンがあるか又は「丁目」以外の文字列である。(例:「○×マンション10」)
(2c)データの末尾の文字がアルファベットである。(例:「○×マンションA」)
(2d)データの末尾が小文字である。(例:「○×マンショ」)
(2e)番地、マンション名に続いて3桁の数字があり、さらに「号」で終了している場合には、住所として妥当であるものとする。
一例を示す。ここでは、DB格納データ取得部26が「住所」フィールドから下記の2つのデータを取得したものとする。
データ1:東京都いろは市いろは町1丁目2番マンションあかさたな102号
データ2:東京都いろは市いろは町1丁目2番マンションあかさたなはま10
この場合、データ1、2共に、文字数は30である。よって、図12に示す実施例の監視方法によれば、データ1、2共に、警告が出力されることとなる。しかし、本実施例の監視方法によれば、データ1は、上記条件2a〜2dのいずれにも該当しない。したがって、データ1は「住所」として適切であると判定され、警告は出力されない。一方、データ2は、上記条件2bに該当するので、「住所」として不適切である可能性が高いと判定され、警告が出力される。なお、「住所」フィールドのデータの文字数が30未満であっ
ても、上述の判定方法によって「住所として妥当でない」と判定された場合には、警告を出力するようにしてもよい。
このように、図13に示す実施例では、住所データの妥当性を判定する機能が追加されている。よって、格納データの異常を検出する精度が向上する。
<第2の実施例>
図14は、第2の実施例の監視処理を説明する図である。第2の実施例では、監視条件分析ルール29として「参照変数の型がフィールドの型と異なれば、そのフィールドを監視対象フィールドとし、判定条件は、「データが参照変数の型か?」とする。」が与えられるものとする。
データベース監視条件抽出部23は、監視条件分析ルール29が与えられると、プログラム解析部22によるプログラム解析結果を参照し、監視条件を抽出する。図14に示す例では、「銀行コード」フィールドにおいて、「型/サイズ」として「9(4)」が設定されているのに対して、「参照変数の型/サイズ」として「X(4)」「9(004)」が設定されている。すなわち、「銀行コード」として定義されている型と異なる型の参照変数が存在している。この場合、「銀行コード」として、誤って英文字を含むデータが入力されてしまうおそれがある。よって、銀行DBの「銀行コード」フィールドが監視対象として選択される。
データベース監視アクション設定部24は、データベース監視条件抽出部23による抽出結果を参照し、データベース監視ルールを作成する。この実施例では、以下のルールが作成される。
対象フィールド:銀行DBの「銀行コード」フィールド
監視条件:データは英文字型か?
アクション:監視条件を満たすデータを識別表示して警告する
データベース監視実行部27は、データベース監視アクション設定部24により作成されたデータベース監視ルールでデータベース3に格納されているデータを監視する。この実施例では、DB格納データ取得部26が「銀行コード」フィールドから下記の3つのデータを取得したものとする。
データ1:0123
データ2:3456
データ3:AB01
この場合、データ1、2は、数字データである。よって、データ1、2に対しては警告は出力されない。一方、データ3は、英字を含んでいる。したがって、データ3に対しては警告が出力される。
この実施例のプログラムでは、図7に示すように、「銀行コード」に対応する変数Eの型が「X(4)」である。このため、変数Eとして英文字が入力される可能性がある。ところが、この実施例では、図10に示すDBスキーマに定義されているように「銀行コード」は4桁の数字である。そして、第2の実施例の監視方法では、英文字を含む不適切なデータが検出され、警告が出力される。
このように、第2の実施例の監視方法においても、格納データが不適切である可能性の高いフィールドが検出され、そのフィールドのデータについて監視が行われる。よって、巨大なデータベースであっても、短時間で格納データの異常を検出できる。
<第3の実施例>
図15は、第3の実施例の監視処理を説明する図である。第3の実施例では、監視条件分析ルール29として「フィールドの代入値または比較値が特定のパターンを有していれ
ば、そのフィールドを監視対象フィールドとし、判定条件は、「データが上記特定のパターンから外れているか?」とする。」が与えられるものとする。
データベース監視条件抽出部23は、監視条件分析ルール29が与えられると、プログラム解析部22によるプログラム解析結果を参照し、監視条件を抽出する。図15に示す例では、「事業所コード」フィールドにおいて、「代入値」「比較値」が参照される。この実施例では、「代入値」「比較値」が特定のパターンを有していることが検出される。具体的には、「[K][0-9]{2}」が検出される。この正規表現は、先頭に「K」が配置され、それに続いて2桁の数字が配置されることを意味する。
データベース監視アクション設定部24は、データベース監視条件抽出部23により得られ正規表現を参照し、データベース監視ルールを作成する。この実施例では、以下のルールが作成される。
対象フィールド:銀行DBの「事業所コード」フィールド
監視条件:データは「[K][0-9]{2}」から外れているか?
アクション:監視条件を満たすデータを識別表示して警告する
データベース監視実行部27は、データベース監視アクション設定部24により作成されたデータベース監視ルールでデータベース3に格納されているデータを監視する。この実施例では、DB格納データ取得部26が「事業所コード」フィールドから下記の3つのデータを取得したものとする。
データ1:K12
データ2:A12
データ3:12A
この場合、データ1は、「[K][0-9]{2}」に該当する。よって、データ1に対しては警告は出力されない。一方、データ2、3は、「[K][0-9]{2}」に該当しない。したがって、データ2、3に対しては警告が出力される。
なお、「代入値」「比較値」が特定のパターンに該当するか否かは、例えば、格納データが予め用意してあるフォーマットパターンと一致するかをチェックすることで判定するようにしてもよい。「代入値」「比較値」が3文字である場合のフォーマットパターンの例を下記に示すが、4文字以上の場合も同様である。
(1)すべて数字
(2)1文字目がアルファベット、2、3文字目が数字
(3)2文字目がアルファベット、1、3文字目が数字
(4)3文字目がアルファベット、1、2文字目が数字
(5)1、2文字目がアルファベット、3文字目が数字
(6)1、3文字目がアルファベット、2文字目が数字
(7)2、3文字目がアルファベット、1文字目が数字
(8)すべてアルファベット
また、正規表現のフォーマットパターンの一部を下記に示す。
(1)[A-Z][0-9] :アルファベットの大文字が1文字、数字が1文字
(2)[A-Z][0-9]+ :アルファベットの大文字が1文字、数字が1文字以上
(3)[A-Z]+[0-9] :アルファベットの大文字が1文字以上、数字が1文字
(4)[A-Z]+[0-9]+ :アルファベットの大文字が1文字以上、数字が1文字以上
(5)[a-z]+[0-9]+ :アルファベットの小文字が1文字以上、数字が1文字以上
(6)[0-9]+[a-z]+ :数字が1文字以上、アルファベットの小文字が1文字以上
(7)[0-9]+[A-Z]+ :数字が1文字以上、アルファベットの大文字が1文字以上
(8)[a-z]+[0-9]+[A-Z] :アルファベットの小文字が1文字以上、数字が1文字以上、アルファベットの大文字が1文字以上
(9)[0-9]+[a-z]+[0-9] :数字が1文字以上、アルファベットの小文字が1文字以上、
数字が1文字以上
<第4の実施例>
図16は、第4の実施例の監視処理を説明する図である。第4の実施例では、監視条件分析ルール29として「対象フィールドが特定フォーマットであるとき、そのフォーマットで記述可能なデータの個数のうち、未使用のデータ数が規定値以下か?」が与えられるものとする。
データベース監視条件抽出部23は、監視条件分析ルール29が与えられると、プログラム解析部22によるプログラム解析結果を参照し、監視条件を抽出する。図16に示す例では、「事業所コード」フィールドの「代入値」「比較値」の形式が「[K][0-9]{2}」である。「[K][0-9]{2}」は、上述したように、先頭に「K」が配置され、それに続いて2桁の数字が配置されることを意味する。したがって、「事業所コード」に格納すべきデータの取り得る値は、「K00」から「K99」までの100個に限定される。また、この実施例では、残量(すなわち、未使用のデータの個数)の規定値として「10」が設定される。なお、規定値は、残量の比率などに応じて自動的に設定することもできるし、オペレータが所望の値を設定することもできる。
データベース監視アクション設定部24は、監視条件を利用してデータベース監視ルールを作成する。この実施例では、以下のルールが作成される。
対象フィールド:銀行DBの「事業所コード」フィールド
監視条件:データ形式が「[K][0-9]{2}」であり、未使用のデータの個数は10未満か?
アクション:監視条件を満たすデータを識別表示して警告する
データベース監視実行部27は、上記データベース監視ルールでデータベース3に格納されているデータを監視する。この実施例では、DB格納データ取得部26が「事業所コード」フィールドから下記の3つのデータを取得したものとする。
データ1:K88
データ2:K89
データ3:K90
ここで、「事業所コード」は、「K00」から順番に割り当てられるものとする。そうすると、データ1に対しては未使用のデータは11個(「K89」〜「K99」)残っており、また、データ2に対しては未使用のデータは10個(「K90」〜「K99」)残っている。よって、データ1、2に対しては警告は出力されない。一方、データ3に対して未使用のデータは9個(「K91」〜「K99」)しか残っていない。したがって、データ3に対しては警告が出力される。なお、データの値がランダムな順番で利用される場合には、使用済みコードの個数をカウントする機能が備えるようにすれば良い。
このように、第4の実施例の監視方法によれば、特定のフィールに入力すべきデータとして使用可能な値の個数が少なくなると、警告が出力される。したがって、データベースに不適切なデータが格納される事態を事前に予測することができる。
以上説明したように、実施形態の監視方法によれば、データベースプログラム中に記述された業務ロジックや実装方法に起因するデータベース条件が抽出される。また、この条件は、データベースの全てのフィールドデータを対象とするものではなく、特定のフィールドを対象とする。したがって、業務ロジックや実装方法に関連する条件でデータベースを効率的に監視することができる。
なお、上述の実施形態の監視装置において、プログラム解析部22およびデータベース監視条件抽出部23は、プログラム資産に変更があった場合には、プログラムの解析からデータベース監視条件の抽出までの処理を再実行する。また、データベース監視ルール設定部24は、上記処理の再実行に際してデータベース監視ルールの監視条件が変化した場
合に限って、監視ルールを再作成するようにしてもよい。
上述の実施例1〜4を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータを、
データベースにデータを格納するためのプログラムを解析して監視条件を抽出する抽出手段、
前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成する監視ルール設定手段、
前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行するアクション実行手段、として機能させるものであり、
前記抽出手段は、前記プログラムにおいて、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを前記監視条件として出力する
ことを特徴とするデータベース監視プログラム。
(付記2)
前記コンピュータをさらに、前記第1のフィールドに格納されているデータの末尾の情報に基づいて、住所を表すデータとして不適切と推定されるデータを検出する検出手段として機能させ、
前記アクション実行手段は、前記検出手段により不適切と推定されるデータが検出されたときに、警告を出力する
ことを特徴とする付記1に記載のデータベース監視プログラム。
(付記3)
前記コンピュータをさらに、前記第1のフィールドにおいて予め用意されている住所データベースに登録されていないデータを検出する検出手段として機能させ、
前記アクション実行手段は、前記検出手段により前記住所データベースに登録されていないデータが検出されたときに、警告を出力する
ことを特徴とする付記1に記載のデータベース監視プログラム。
(付記4)
前記抽出手段は、前記プログラムにおいて、前記データベースの第2のフィールドに格納すべきデータの型を定義する型定義情報と、前記第2のフィールドに係わる参照変数の型を記述する参照変数型情報とを比較し、前記型定義情報と異なる参照変数型情報が検出されたときに、前記第2のフィールドに格納されているデータの型が前記型定義情報により定義されている型と異なることを、前記監視条件として出力する
ことを特徴とする付記1に記載のデータベース監視プログラム。
(付記5)
前記抽出手段は、前記プログラムにおいて、前記データベースの第3のフィールドに格納すべきデータの代入値または比較値として特定パターンが存在する場合には、前記第3のフィールドに格納されているデータが前記特定パターンでないことを、前記監視条件として出力する
ことを特徴とする付記1に記載のデータベース監視プログラム。
(付記6)
前記抽出手段は、前記プログラムにおいて、前記データベースの第4のフィールドに格納すべきデータの取り得る値が所定個数に限定される場合には、前記第4のフィールドのデータとして使用されていない個数が閾値よりも小さくなったことを、前記監視条件として出力する
ことを特徴とする付記1に記載のデータベース監視プログラム。
(付記7)
データベースにデータを格納するためのプログラムを解析して監視条件を抽出する抽出手段と、
前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成する監視ルール設定手段と、
前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行するアクション実行手段と、を備え、
前記抽出手段は、前記プログラムにおいて、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを前記監視条件として出力する
ことを特徴とするデータベース監視装置。
(付記8)
コンピュータによるデータベース監視方法であって、
前記コンピュータが、
データベースにデータを格納するためのプログラムを解析して、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを監視条件として出力し、
前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成し、
前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行する
ことを特徴とするデータベース監視方法。
データベース監視が行われるシステムの構成を示す図である 実施形態のデータベース監視方法の概要を示すフローチャートである。 実施形態のデータベース監視装置の構成を示す図である。 プログラム解析部の処理を示すフローチャートである。 データベース監視条件抽出部の処理を示すフローチャートである。 データベース監視実行部の処理を示すフローチャートである。 データベースプログラムの実施例(その1)である。 データベースプログラムの実施例(その2)である。 データベースプログラムの実施例(その3)である。 DBスキーマの実施例である。 図7〜図9に示すプログラムについての解析結果を示す図である。 第1の実施例の監視処理を説明する図である。 第1の実施例の変形例を説明する図である。 第2の実施例の監視処理を説明する図である。 第3の実施例の監視処理を説明する図である。 第4の実施例の監視処理を説明する図である。
符号の説明
1 情報システム
2 プログラム
3 データベース
11 データベース監視装置
12 データベース監視ルール
13、27 データベース監視実行部
14、28 アクション実行部
21 プログラム入力部
22 プログラム解析部
23 データベース監視条件抽出部
24 データベース監視アクション設定部
25 データベース監視ルール設定部
26 DB格納データ取得部
29 監視条件分析ルール

Claims (4)

  1. コンピュータを、
    データベースにデータを格納するためのプログラムを解析して監視条件を抽出する抽出手段、
    前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成する監視ルール設定手段、
    前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行するアクション実行手段、として機能させるものであり、
    前記抽出手段は、前記プログラムにおいて、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを前記監視条件として出力する
    ことを特徴とするデータベース監視プログラム。
  2. 前記コンピュータをさらに、前記第1のフィールドに格納されているデータの末尾の情報に基づいて、住所を表すデータとして不適切と推定されるデータを検出する検出手段として機能させ、
    前記アクション実行手段は、前記検出手段により不適切と推定されるデータが検出されたときに、警告を出力する
    ことを特徴とする請求項1に記載のデータベース監視プログラム。
  3. データベースにデータを格納するためのプログラムを解析して監視条件を抽出する抽出手段と、
    前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成する監視ルール設定手段と、
    前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行するアクション実行手段と、を備え、
    前記抽出手段は、前記プログラムにおいて、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを前記監視条件として出力する
    ことを特徴とするデータベース監視装置。
  4. コンピュータによるデータベース監視方法であって、
    前記コンピュータが、
    データベースにデータを格納するためのプログラムを解析して、前記データベースの第1のフィールドに格納すべきデータのサイズを定義するサイズ定義情報と、前記第1のフィールドに係わる参照変数のサイズを記述する参照変数サイズ情報とを比較し、前記サイズ定義情報と同一サイズの参照変数サイズ情報が検出されたときに、前記第1のフィールドに格納されているデータのサイズが前記サイズ定義情報により定義されているサイズの上限値であることを監視条件として出力し、
    前記監視条件とその監視条件が成立したときに実行すべきアクションを定義するアクション情報とを対応づけることにより監視ルールを作成し、
    前記監視ルールに従って前記データベースに格納されているデータを監視し、前記監視条件が成立したときに前記アクション情報に従って対応するアクションを実行する
    ことを特徴とするデータベース監視方法。
JP2008082296A 2008-03-27 2008-03-27 データベース監視装置、データベース監視方法、およびデータベース監視プログラム Expired - Fee Related JP5146048B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008082296A JP5146048B2 (ja) 2008-03-27 2008-03-27 データベース監視装置、データベース監視方法、およびデータベース監視プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008082296A JP5146048B2 (ja) 2008-03-27 2008-03-27 データベース監視装置、データベース監視方法、およびデータベース監視プログラム

Publications (2)

Publication Number Publication Date
JP2009237838A JP2009237838A (ja) 2009-10-15
JP5146048B2 true JP5146048B2 (ja) 2013-02-20

Family

ID=41251717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008082296A Expired - Fee Related JP5146048B2 (ja) 2008-03-27 2008-03-27 データベース監視装置、データベース監視方法、およびデータベース監視プログラム

Country Status (1)

Country Link
JP (1) JP5146048B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6532900B2 (ja) * 2017-01-05 2019-06-19 株式会社東芝 ジョブ実行制御装置、ジョブ実行制御方法およびプログラム

Also Published As

Publication number Publication date
JP2009237838A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
CN110928718B (zh) 一种基于关联分析的异常处理方法、系统、终端及介质
CN108647049B (zh) 基于规则引擎的可配置化系统、方法、设备和存储介质
Maaradji et al. Detecting sudden and gradual drifts in business processes from execution traces
US8768976B2 (en) Operational-related data computation engine
US9626393B2 (en) Conditional validation rules
US8612372B2 (en) Detection rule-generating facility
CA2738480C (en) Detection of confidential information
JP5285084B2 (ja) 検出イベントに応じたアクション実行を支援するシステム、検出イベントに応じたアクション実行を支援する方法、支援装置及びコンピュータプログラム
CN101751333A (zh) 用于支援程序解析的方法、及其计算机程序以及计算机系统
KR20120039616A (ko) 테스트 데이터의 생성
KR20150042877A (ko) 레코드 포맷 정보의 관리
He et al. A directed acyclic graph approach to online log parsing
US20190095391A1 (en) Processing a data set
CN111159482A (zh) 数据校验方法及系统
JP5146048B2 (ja) データベース監視装置、データベース監視方法、およびデータベース監視プログラム
US20110040722A1 (en) Predicate selection in event filtering
US20220284045A1 (en) Matching machine generated data entries to pattern clusters
US9098613B2 (en) Logging of application messages
JP2018132787A (ja) ログ分析支援装置およびログ分析支援方法
Liu et al. Lopper: An efficient method for online log pattern mining based on hybrid clustering tree
KR20200071646A (ko) 이상 로그 탐지를 위한 탐지 장치 및 이의 동작 방법과 트레이닝 장치 및 이의 동작 방법
JP2018181121A (ja) 分析装置、分析プログラム及び分析方法
Lashram et al. HCLPars: Α New Hierarchical Clustering Log Parsing Method
US20220253529A1 (en) Information processing apparatus, information processing method, and computer readable medium
JP5197128B2 (ja) 依存関係推定装置及び依存関係推定プログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101216

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: 20121030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Ref document number: 5146048

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: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees