(57)【特許請求の範囲】
【請求項１】
種々のデータテーブルを記憶してなるデータベースを搭載したデータベースシステムにおけるデータベース再編成装置において、
前記データベース上のデータテーブル別に作成した複数のメンテナンススクリプトを記憶するメンテナンススクリプトファイルと、
このメンテナンススクリプトファイルに記憶した各メンテナンススクリプト毎に最終実行時データを記憶するスクリプト管理ファイルと、
前記データベース上のデータテーブルを再編成する処理の制限時間を設定する制限時間設定手段と、
前記スクリプト管理ファイルに記憶した最終実行時データが古い順にメンテナンススクリプトの実行順序を決定する実行順序決定手段と、
この実行順序決定手段により決定した順序に従い前記制限時間設定手段により設定された制限時間の範囲内で前記メンテナンススクリプトファイルの該当するメンテナンススクリプトを実行してデータテーブルの再編成を行う再編成処理手段と、
この再編成処理手段により実行し終えたメンテナンススクリプトの前記スクリプト管理ファイルにおける最終実行時データを更新する最終実行時更新手段とを具備したことを特徴とするデータベース再編成装置。
【請求項２】
前記スクリプト管理ファイルは、各メンテナンススクリプト毎に最終実行時データとともに優先度を設定する優先度データを記憶し、前記実行順序決定手段は、前記スクリプト管理ファイルに記憶した最終実行時データが古い順でかつ優先度データが高い順にメンテナンススクリプトの実行順序を決定する手段であることを特徴とする請求項１記載のデータベース再編成装置。
【請求項３】
前記再編成処理手段によりメンテナンススクリプトを実行した結果エラーが発生した場合にそのエラーログデータを出力する手段を設けたことを特徴とする請求項１記載のデータベース再編成装置。
【請求項４】
種々のデータテーブルを記憶してなるデータベースを搭載したデータベースシステムにおけるデータベース再編成方法において、
前記データベース上のデータテーブル別に作成した複数のメンテナンススクリプトを記憶するメンテナンススクリプトファイルと、このメンテナンススクリプトファイルに記憶した各メンテナンススクリプト毎に最終実行時データを記憶するスクリプト管理ファイルとを設け、
前記スクリプト管理ファイルに記憶した最終実行時データが古い順にメンテナンススクリプトの実行順序を決定し、その順序に従い予め決められた制限時間の範囲内で前記メンテナンススクリプトファイルの該当するメンテナンススクリプトを実行してデータテーブルの再編成を行うとともに、実行し終えたメンテナンススクリプトの前記スクリプト管理ファイルにおける最終実行時データを更新するようにしたことを特徴とするデータベース再編成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステム等で利用されるデータベース上に形成された種々のデータテーブルを最適な格納状態に整理するデータベース再編成技術に関する。
【０００２】
【従来の技術】
コンピュータシステム等で利用されるデータベースは、データテーブルの更新，追加及び削除によって次第に格納状態の整然性が乱される。そうすると、使用記憶容量が増大し、システムの性能低下を招く。このため、ときどきデータテーブルをそれぞれ最適な格納状態に整理するデータベースの再編成を行う必要があった。
【０００３】
従来の技術において、このようなデータベースの再編成は、データベース上のデータテーブル別に該データテーブルを再編成する手順を示したメンテナンススクリプトを作成し、オペレータがコンピュータシステムを使用して上記メンテナンススクリプトを順次起動させることによって行っていた。
ところで、上述したようなデータベースの再編成は、データベースを使用しない時間帯に限られる。このため、再編成実行対象のデータテーブルが複数存在した場合に、制限時間内にすべてのデータテーブルの再編成を完了しないことがあった。このような場合には、オペレータが再編成を完了したデータテーブルと完了していないデータテーブルとを区別できるようにメモなどに記録して残しておき、次回はその続きから再編成を行うようにする必要があった。
【０００４】
【発明が解決しようとする課題】
このように従来のデータベース再編成技術においては、オペレータがコンピュータシステムを使用して再編成実行対象のデータテーブルに対するメンテナンススクリプトを順次起動させなければならず、手間がかかっていた。しかも、制限時間内にすべての再編成実行対象のデータテーブルの再編成を完了しなかった場合に、オペレータが再編成を完了したデータテーブルと完了しなかったデータテーブルとを区別できるようにしなければならない面倒もあった。
【０００５】
そこで本発明は、再編成実行対象のデータテーブルに関して順次自動的に再編成を行うことができるとともに、制限時間内にすべての再編成実行対象のデータテーブルの再編成を完了しなかった場合には自動的に次回はその続きから再編成を行うことができ、再編成に要する手間の削減及び処理効率の向上を図り得るデータベース再編成装置及び再編成方法を提供しようとするものである。
【０００６】
【課題を解決するための手段】
本発明のデータベース再編成装置は、データベース上のデータテーブル別に作成した複数のメンテナンススクリプトを記憶するメンテナンススクリプトファイルと、このメンテナンススクリプトファイルに記憶した各メンテナンススクリプト毎に最終実行時データを記憶するスクリプト管理ファイルと、データベース上のデータテーブルを再編成する処理の制限時間を設定する制限時間設定手段と、スクリプト管理ファイルに記憶した最終実行時データが古い順にメンテナンススクリプトの実行順序を決定する実行順序決定手段と、この実行順序決定手段により決定した順序に従い制限時間設定手段により設定された制限時間の範囲内でメンテナンススクリプトファイルの該当するメンテナンススクリプトを実行してデータテーブルの再編成を行う再編成処理手段と、この再編成処理手段により実行し終えたメンテナンススクリプトのスクリプト管理ファイルにおける最終実行時データを更新する最終実行時更新手段とを備えたものである。
【０００７】
このものにおいて、スクリプト管理ファイルは、各メンテナンススクリプト毎に最終実行時データとともに優先度を設定する優先度データを記憶し、実行順序決定手段は、スクリプト管理ファイルに記憶した最終実行時データが古い順でかつ優先度データが高い順にメンテナンススクリプトの実行順序を決定する手段とすると都合がよい。
また、再編成処理手段によりメンテナンススクリプトを実行した結果エラーが発生した場合にそのエラーログデータを出力する手段を設けると好都合である。
【０００８】
一方、本発明のデータベース再編成方法は、前記メンテナンススクリプトファイルとスクリプト管理ファイルとを設け、スクリプト管理ファイルに記憶した最終実行時データが古い順にメンテナンススクリプトの実行順序を決定し、その順序に従い予め決められた制限時間の範囲内でメンテナンススクリプトファイルの該当するメンテナンススクリプトを実行してデータテーブルの再編成を行うとともに、実行し終えたメンテナンススクリプトのスクリプト管理ファイルにおける最終実行時データを更新するようにしたものである。
【０００９】
【発明の実施の形態】
以下、本発明の一実施の形態を図面を参照しながら説明する。
図１はデータベースシステム１のブロック図で、種々のデータテーブルを記憶してなるハードディスクなどで形成したデータベース１１と、このデータベース１１に対してデータテーブルの追加，削除及び更新などを行うＣＰＵなどで形成したデータベース管理制御部１２とを備えている。
【００１０】
また、このデータベースシステム１は、データテーブル以外のデータを記憶するＲＯＭ，ＲＡＭなどの記憶部１３、現日付及び時刻を計時する時計部１４、通信回線によりオンライン接続した外部の監視拠点とのデータ通信を制御する通信制御部１５、このデータベースシステム１を使用するコンピュータシステム２を接続し、キーボードなどの入力装置２１から入力されたデータの取込みや、ディスプレイ，プリンタなどの出力装置２２に出力するデータの送出を行うインタフェース部１６を備えている。
【００１１】
そして、このデータベースシステム１は、データベース１１上に形成された種々のデータテーブルを最適な格納状態に整理するデータベース再編成のための構成として、前記データベース管理制御部１２に再編成業務プログラム１７を搭載している。また、前記記憶部１３に、図２に示すように、メンテナンススクリプトファイル３１，スクリプト管理ファイル３２，出力順ファイル３３，メンテナンス制限時刻メモリ３４，エラーログファイル３５，実行順位カウンタ３６及び実行数メモリ３７の各種メモリエリアを形成している。
【００１２】
前記メンテナンススクリプトファイル３１は、前記データベース１上のデータテーブル別に作成した複数のメンテナンススクリプトを、該スクリプトを特定するスクリプト名及び該スクリプトの他のスクリプトに対する優先順位とともに記憶するファイルである。このメンテナンススクリプトファイル３１に対しては、インタフェース部１６を介して接続されたコンピュータシステム２もしくは通信制御部１５を介して接続された監視拠点より、予め再編成実行対象のデータテーブルに対するメンテナンススクリプトをそのスクリプト名及び優先順位のデータとともに追加または削除することによって設定しておく。因みに、優先順位は連続番号とし、かつ重複しないように設定する。
【００１３】
前記スクリプト管理ファイル３２は、上記メンテナンススクリプトファイル３１に記憶した各メンテナンススクリプト毎に最終実行時データである最終実行日付のデータと、前記優先順位のデータとを記憶するファイルである。また、前記実行順ファイル３３は、上記メンテナンススクリプトファイル３１に記憶した各メンテナンススクリプトの実行順にスクリプト名を記憶するファイルである。
【００１４】
前記メンテナンス制限時刻メモリ３４は、データテーブルの再編成業務を終了しなければならない時刻を記憶するメモリであって、制限時間設定手段を構成する。このメンテナンス制限時刻メモリ３４に対しては、前記コンピュータシステム２もしくは監視拠点より、予めシステムの運用時間などに基づいて決定した制限時刻を設定しておく。
【００１５】
前記エラーログファイル３５は、データテーブルの再編成業務を実行した際に発生したエラーログデータを記憶するファイルであり、前記コンピュータシステム２もしくは監視拠点からのコマンドによりクリアされる。また、実行順位カウンタ３６は、テーブル再編成を実行するメンテナンススクリプトの順位ｎを計数し、実行数メモリ３７はテーブル再編成を実行するメンテナンススクリプトの総数Ｎを記憶する。
【００１６】
しかして、このデータベースシステム１は、前記コンピュータシステム２もしくは監視拠点からの起動指令によりデータベース管理制御部１２が再編成業務プログラム１７を起動する。これにより、データベース管理制御部１２は、図３に示すように、先ず、ＳＴ（ステップ）１として前記スクリプト管理ファイル３２の更新処理を開始する。
【００１７】
すなわち、スクリプト管理ファイル３２のスクリプト名とメンテナンススクリプトファイル３１のスクリプト名とを比較し、メンテナンススクリプトファイル３１に存在してスクリプト管理ファイル３２に存在しないスクリプト名があればそのスクリプト名をスクリプト管理ファイル３２に追加し、逆にスクリプト管理ファイル３２に存在してメンテナンススクリプトファイル３１に存在しないスクリプト名があればそのスクリプト名のレコードをスクリプト管理ファイル３２から削除する。次に、スクリプト管理ファイル３２の各スクリプト名に対応した優先順位とメンテナンススクリプトファイル３１の各スクリプト名に対応した優先順位とを一致させる。最後に、スクリプト管理ファイル３２に新たに追加したスクリプト名に対応する最終実行日付を時計部１４から読出した現日付とする。
【００１８】
こうして、スクリプト管理ファイル３２の更新処理を終了したならば、次に、ＳＴ２として実行順ファイル３３の作成処理を開始する（実行順序決定手段）。
すなわち、前記スクリプト管理ファイル３２の各レコードを最終実行日付が古い順に並べ換える。このとき、最終実行日付が同日のレコードについては優先順位の高い順（数値の小さい順）に並べる。しかる後、最終実行日付が古い順にスクリプト名を読出し、その順にスクリプト名を実行順ファイル３３に格納して、該実行順ファイル３３を作成する。このとき、実行順ファイル３３に格納したスクリプト名の数Ｎを実行数メモリ３７にセットする。
【００１９】
こうして、実行順ファイル３３の作成処理を終了したならば、最後に、ＳＴ３として図４に具体的に示すテーブル再編成実行処理を開始する。
先ず、実行順位カウンタ３６を一旦リセットした後、ＳＴ３１として［１］だけカウントアップする。次に、ＳＴ３２として上記実行順位カウンタ３６のカウント値ｎが実行数メモリ３７のデータＮを超えたか否かを判断する。そして、超えていない場合には、ＳＴ３３として時計部１４にて計時している現時刻がメンテナンス制限時刻メモリ３４に設定されている制限時刻を経過しているか否かを判断する。そして、制限時刻を経過していない場合には、ＳＴ３４として実行順ファイル３３から実行順位ｎ位のスクリプト名を読出し、続いてメンテナンススクリプトファイル３１からこのスクリプト名のメンテナンススクリプトを読出したならば、このメンテナンススクリプトを起動して、該当するデータテーブルの再編成を実行する（再編成処理手段）。
【００２０】
その後、このメンテナンススクリプトが終了したならば、ＳＴ３５としてこのメンテナンススクリプトが再編成未完了のエラー終了であったのか、再編成完了の正常終了であったのかを調べる。そして、正常終了であった場合には、ＳＴ３６として時計部１４にて計時されている現日付を読出し、この日付を当該メンテナンススクリプトの最終実行日付として、スクリプト管理ファイル３２の該当スクリプト名に対応した最終実行日付データを更新する（最終実行時更新手段）。
【００２１】
これに対し、エラー終了であった場合には、ＳＴ３７としてこのメンテナンススクリプトがスクリプト名や時計部１４から読出した現日付などのデータをエラーログデータとしてエラーログファイル３５に追加する。しかる後、ＳＴ３１に戻り、実行順位カウンタ３６を［１］だけカウントアップしたならば、ＳＴ３２以降の処理を繰り返す。
【００２２】
こうして、ＳＴ３２にて実行順位カウンタ３６のカウント値ｎが実行数メモリ３７のデータＮを超えるか、ＳＴ３３にて現時刻がメンテナンス制限時刻メモリ３４に設定された制限時刻を超えたならば、このテーブル再編成実行処理を終了する。このとき、ＳＴ３８としてエラーログファイル３５にエラーログデータが格納されていた場合には、このエラーログデータを通信制御部１５を介して監視拠点に送信してから、このテーブル再編成実行処理を終了する。
【００２３】
このように本実施の形態においては、例えばコンピュータシステム２を操作してデータベース再編成業務の起動指令をデータベースシステム１に与えると、データベース１１に構築された各種のデータテーブルのうち、メンテナンススクリプトファイル３１にメンテナンススクリプトが格納された再編成実行対象のデータテーブルに対する再編成処理が開始される。
この場合において、再編成処理が実行される順序は、前回再編成処理を実行してからの経過期日が長い順に設定される。また、その経過期日が同日の場合には優先順位が高い順に設定される。
【００２４】
そして、１つのデータテーブルに対するメンテナンススクリプトが正常に終了してこのデータテーブルの再編成が完了すると、メンテナンス管理ファイル３２における該当メンテナンススクリプトのスクリプト名に対応した最終実行日付が現日付に更新される。なお、メンテナンススクリプトがエラー終了してこのデータテーブルの再編成が未完了であると、メンテナンス管理ファイル３２における該当メンテナンススクリプトのスクリプト名に対応した最終実行日付が更新されず、エラーログデータがエラーログファイル３５に格納される。
【００２５】
こうして、各再編成実行対象のデータテーブルに対する再編成処理が設定された順序に従い順次実行される。そして、メンテナンス制限時刻メモリ３４に予め設定されているメンテナンス制限時刻に達する前にすべての再編成実行対象のデータテーブルに対する再編成処理を終了するか、メンテナンス制限時刻に達したならば、この処理が終了する。このとき、エラー終了したメンテナンススクリプトが存在する場合には、エラーログファイル３５内のエラーログデータが監視拠点に送信されて、エラー内容が通知される。
【００２６】
なお、制限時刻を経過したために実行されなかった再編成実行対象のデータテーブルに関しては、そのメンテナンススクリプトの最終実行日付が実行された再編成実行対象のデータテーブルに対する最終実行日付よりも古くなるので、次回に優先的に実行されるようになる。
【００２７】
例えば、このデータベースシステム１を商店等に構築されるＰＯＳ（販売時点情報管理）システムのストアプロセッサに組込む場合を想定すると、データベース１１には、各商品の品番，品名，単価等の商品情報を記憶する商品情報テーブルや、各顧客の氏名，住所，電話番号などの顧客情報を記憶する顧客情報テーブルなどが記憶される。これらのデータテーブルは、レコードの追加，削除，更新の頻度が高く、格納状態の整然性が乱れやすい。そこで、再編成実行対象のテーブルとしてメンテナンススクリプトを作成し、メンテナンススクリプトファイル３１に設定しておく。こうすることにより、定期的にこれらのデータテーブルの再編成処理が実行される。
【００２８】
この場合において、メンテナンス制限時刻として開店時刻を予め設定しておくと、データテーブルの再編成業務が開店後も継続して実施されることはなく、開店後のＰＯＳ端末業務に支障を来たさない。
【００２９】
このように、本実施の形態によれば、再編成実行対象のデータテーブルに対するメンテナンススクリプトを予めメンテナンススクリプトファイル３１に設定しておくことにより、必要なときに再編成実行対象のデータテーブルに対するメンテナンススクリプトが順次自動的に起動して再編成業務が実行されるので、データテーブルの再編成に要する手間を大幅に軽減できる。
【００３０】
また、メンテナンス制限時刻を経過したために再編成業務が途中で終了しても次回はその続きから実行できるので、再編成を完了したデータテーブルと完了していないデータテーブルとをオペレータが区別して把握する必要もなく、この点からも手間の軽減を図り得る。その結果、複数のデータテーブルの再編成を連続して実行できるので、再編成処理の処理効率が向上する。
【００３１】
また、メンテナンススクリプトをメンテナンススクリプトファイル３１に追加することにより再編成実行対象のデータテーブルを追加でき、メンテナンススクリプトをメンテナンススクリプトファイル３１から削除することにより再編成実行対象のデータテーブルを削除できる。したがって、通信制御部１５を介して接続した監視拠点から上記メンテナンススクリプトの追加，削除を可能にすることによって、遠隔地の監視拠点からの再編成実行対象のデータテーブルの追加や削除を行えるようになる。
【００３２】
なお、本発明は前記一実施の形態に限定されるものではない。
例えば、前記実施の形態では、再編成業務をコンピュータシステム２もしくは監視拠点からの起動指令などによって起動させる場合を示したが、予め設定した周期で自動的に起動させてもよいものである。
【００３３】
また、前記実施の形態では新たに追加したメンテナンススクリプトの最終実行日付を再編成業務起動時として、このメンテナンススクリプトによるデータテーブルの再編成をすでに設定したメンテナンススクリプトによるデータテーブルの再編成より後から実行するようにしたが、最も古い最終実行日付を設定することで最初に実行するようにしてもよい。
【００３４】
また、前記実施の形態ではエラーログデータを監視拠点に送出したが、コンピュータシステム２の出力装置２２に送出してもよい。この他、最終実行時データとして日付に時刻を加味するなど、本発明の要旨を逸脱しない範囲で種々変形実施可能であるのは勿論である。
【００３５】
【発明の効果】
以上詳述したように、本発明によれば、再編成実行対象のデータテーブルに関して順次自動的に再編成を行うことができるとともに、制限時間内にすべての再編成実行対象のデータテーブルの再編成を完了しなかった場合には自動的に次回はその続きから再編成を行うことができる。その結果、再編成に要する手間の削減及び処理効率の向上を図り得る。
【図面の簡単な説明】
【図１】本発明の一実施の形態であるデータベースシステムの要部ブロック図。
【図２】図１における記憶部に形成した主要なメモリエリアを示す図。
【図３】図１におけるデータベース管理制御部が実行する再編成業務プログラムの手順を示す流れ図。
【図４】図３におけるテーブル再編成処理を具体的に示す流れ図。
【符号の説明】
１…データベースシステム
２…コンピュータシステム
１１…データベース
１２…データベース管理制御部
１３…記憶部
１４…時計部
１５…通信制御部
１６…インタフェース部
１７…再編成業務プログラム
３１…メンテナンススクリプトファイル
３２…スクリプト管理ファイル
３３…実行順ファイル
３４…メンテナンス制限時刻メモリ
３５…エラーログファイル
【図１】
0003614596.tif 000002
【図２】
0003614596.tif 000003
【図３】
0003614596.tif 000004
【図４】
0003614596.tif 000005