(57)【要約】【課題】データベースにおけるルーチンの世代管理を効率的に行うことが可能な技術を提供する。【解決手段】データベースにおける複数世代のルーチンを管理するデータベース管理方法において、世代の異なるルーチンオブジェクトの格納媒体を示すディクショナリ情報を実行要求時に指定された選択順に参照し、実行要求の行われたルーチンのルーチンオブジェクト格納媒体を検索するステップと、前記検索されたルーチンオブジェクト格納媒体から実行対象のルーチンオブジェクトを取り出すステップと、前記取り出されたルーチンオブジェクトを実行するステップとを有するものである。【選択図】　　　　図１
2004078370.tif 000002
【特許請求の範囲】
【請求項１】
データベースにおける複数世代のルーチンを管理するデータベース管理方法において、
世代の異なるルーチンオブジェクトの格納媒体を示すディクショナリ情報を実行要求時に指定された選択順に参照し、実行要求の行われたルーチンのルーチンオブジェクト格納媒体を検索するステップと、前記検索されたルーチンオブジェクト格納媒体から実行対象のルーチンオブジェクトを取り出すステップと、前記取り出されたルーチンオブジェクトを実行するステップとを有することを特徴とするデータベース管理方法。
【請求項２】
前記実行対象のルーチンオブジェクトがルーチンオブジェクト用バッファに取り出し済みでない場合に当該ルーチンオブジェクトをルーチンオブジェクト用バッファに取り出し、そのルーチンオブジェクト用バッファ上の実行対象のルーチンオブジェクトを実行することを特徴とする請求項１に記載されたデータベース管理方法。
【請求項３】
統合化対象媒体に格納されているルーチンオブジェクトの内で最も新しい世代のルーチンオブジェクトを統合化後格納媒体に格納し、統合化対象媒体中のそれ以外のルーチンオブジェクトを削除して、ルーチンオブジェクトの統合化を行うことを特徴とする請求項１または請求項２のいずれかに記載されたデータベース管理方法。
【請求項４】
データベースにおける複数世代のルーチンを管理するデータベース管理装置において、
世代の異なるルーチンオブジェクトの格納媒体を示すディクショナリ情報を実行要求時に指定された選択順に参照し、実行要求の行われたルーチンのルーチンオブジェクト格納媒体を検索するデータ検索部と、前記検索されたルーチンオブジェクト格納媒体から実行対象のルーチンオブジェクトを取り出すルーチン管理部と、前記取り出されたルーチンオブジェクトを実行するルーチン実行部とを備えることを特徴とするデータベース管理装置。
【請求項５】
データベースにおける複数世代のルーチンを管理するデータベース管理装置としてコンピュータを機能させる為のプログラムにおいて、
世代の異なるルーチンオブジェクトの格納媒体を示すディクショナリ情報を実行要求時に指定された選択順に参照し、実行要求の行われたルーチンのルーチンオブジェクト格納媒体を検索するデータ検索部と、前記検索されたルーチンオブジェクト格納媒体から実行対象のルーチンオブジェクトを取り出すルーチン管理部と、前記取り出されたルーチンオブジェクトを実行するルーチン実行部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータベースを管理するデータベース管理装置に関し、特に関係データベースにおける複数世代のＳＱＬルーチンを管理するデータベース管理装置に適用して有効な技術に関するものである。
【０００２】
【従来の技術】
関係データベースにおけるＳＱＬルーチン（ＳＱＬ　ｉｎｖｏｋｅｄ　ｒｏｕｔｉｎｅ）は、ＳＱＬ手続き文を用いて一連のデータベース操作をユーザが任意に定義する手続きまたは関数である。
【０００３】
一般的に、ＳＱＬルーチンに記述したＳＱＬ手続き文はＳＱＬルーチン定義時に翻訳され、ＳＱＬ手続き文の翻訳結果であるオブジェクトコードはデータベース管理システムが管理する論理媒体に保持される（以後、本明細書では便宜上これをルーチンオブジェクトと呼称する）。ＳＱＬ文からＳＱＬルーチンを呼び出すと、該当するルーチンオブジェクトが格納媒体からデータベース管理システム内にローディングされ、ＳＱＬ手続き文が高速に実行される。
【０００４】
ＳＱＬ手続き文の翻訳結果を実行形式のオブジェクトコードとして保持する形態では、アクセスする表定義やＳＱＬ手続き文を修正・変更する場合、オブジェクトコードを再作成する必要がある。このとき、２４時間連続稼動する本番業務に使用するＳＱＬルーチンを稼動させたまま、並行して別ＳＱＬルーチンを作成し、完成後に現存のＳＱＬルーチンと入れ替えることが一般的である。この場合、ＳＱＬルーチンの再作成は次の様なステップで行われる。なお、スキーマオブジェクトそれぞれに世代番号をつけてシステムで管理する複数世代管理方式は特開平９−１６６１１号公報等で公開されている既存の技術である。
【０００５】
▲１▼再作成するＳＱＬルーチンの名前が現存のＳＱＬルーチンの名前と重複しない様にする為、所属するスキーマやルーチン名称を変更して新しいＳＱＬルーチンを作成する。または、ＳＱＬルーチン定義時にユーザの管理する世代番号を割り当てる。
▲２▼新たに作成したＳＱＬルーチンの動作確認をする為、ＳＱＬルーチンの呼び出し元プログラムを修正するか、ＳＱＬ文の世代番号の指定を変更するか、仮定するスキーマ名を変更して▲１▼で作成したＳＱＬルーチンを呼び出す様に切り替える。
▲３▼テストとデバッグを繰り返し、再作成するＳＱＬルーチンを完成させる。
▲４▼現存のＳＱＬルーチンを削除して再作成したＳＱＬルーチンと入れ替える。
【０００６】
【発明が解決しようとする課題】
上記の従来の運用では次の様な問題がある。
▲１▼ルーチン名称を変更してＳＱＬルーチンを再作成する場合、このＳＱＬルーチンを呼び出す為に呼び出し元プログラムを修正し、再編集する必要があり、プログラムの運用・管理が煩雑になる。
▲２▼所属するスキーマを変更してＳＱＬルーチンを再作成する場合、別途スキーマを定義する必要があり、データベースの運用・管理が煩雑になる。
▲３▼世代番号で管理する場合、ユーザが意識してＳＱＬルーチンのスキーマ名やルーチン名称等の個々の世代情報を管理しなければならない為、運用ミスを招き易い。
本発明の目的は上記問題を解決し、データベースにおけるルーチンの世代管理を効率的に行うことが可能な技術を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、データベースにおける複数世代のルーチンを管理するデータベース管理装置において、データベースにおける複数世代のルーチンをその格納媒体毎に管理するものである。
【０００８】
本発明のデータベース管理装置では、世代の異なるルーチンオブジェクトを生成する際に、他の世代のルーチンオブジェクトが格納されている格納媒体とは異なる格納媒体に格納し、そのルーチンオブジェクトの格納媒体を示す情報をディクショナリ情報に登録する。ここで前記格納媒体は、物理的には同一の媒体上の論理的に異なる領域である論理的な格納媒体でも良い。
【０００９】
ＳＱＬルーチンの実行を行う場合には、その実行要求及び格納媒体の選択順の指定を受付けた後、前記ディクショナリ情報を前記受付けた選択順に参照し、実行要求の行われたＳＱＬルーチンのルーチンオブジェクト格納媒体を検索する。そして、前記検索されたルーチンオブジェクト格納媒体から実行対象のルーチンオブジェクトを取り出した後、その取り出されたルーチンオブジェクトを実行する。
【００１０】
前記の様に本発明では、これまで煩雑であったＳＱＬルーチン再作成の運用をルーチンオブジェクトの格納媒体により世代管理することで実現するものであり、ルーチンオブジェクト格納媒体を用いてＳＱＬルーチンの世代管理を実現するので、ルーチン名称やスキーマの変更を不要とし、プログラムやデータベースの運用・管理が煩雑になるのを防ぐことができる。また、ユーザがＳＱＬルーチンを個々に世代管理する必要が無く、従来方式に比べ運用ミスを招き難い仕組みとなっている。
【００１１】
また本発明では、ルーチンオブジェクト格納媒体別にＳＱＬルーチンの世代を揃えることにより、ルーチンオブジェクトの退避・回復作業や削除・統合化、別システムへの移行作業を格納媒体単位に実行することができ、前記作業を行う際の運用ミスを招き難い仕組みとすることができる。
【００１２】
以上の様に本発明のデータベース管理装置によれば、データベースにおける複数世代のルーチンをその格納媒体毎に管理するので、データベースにおけるルーチンの世代管理を効率的に行うことが可能である。
【００１３】
【発明の実施の形態】
以下にデータベースにおける複数世代のルーチンを管理する一実施形態のデータベース管理装置について説明する。
【００１４】
図２は本実施形態のデータベース管理装置の概略構成を示す図である。図２に示す様に本実施形態のデータベース管理装置１０１は、データ検索部２１１と、ルーチン実行部２１２と、ルーチン管理部２１３と、定義処理部２１５とを有している。
【００１５】
データ検索部２１１は、世代の異なるルーチンオブジェクトの格納媒体を示すディクショナリ情報を実行要求時に指定された選択順に参照し、実行要求の行われたルーチンのルーチンオブジェクト格納媒体を検索する処理部である。
【００１６】
ルーチン実行部２１２は、ルーチン管理部２１３から取り出されたルーチンオブジェクトを実行するルーチン実行部とを備える処理部である。ルーチン管理部２１３は、データ検索部２１１で検索されたルーチンオブジェクト格納媒体から実行対象のルーチンオブジェクトを取り出す処理部である。
【００１７】
定義処理部２１５は、世代の異なるルーチンオブジェクトを生成した後、他の世代のルーチンオブジェクトが格納されている格納媒体とは異なる格納媒体に格納し、そのルーチンオブジェクトの格納媒体を示す情報をディクショナリ情報に登録する処理部である。
【００１８】
データベース管理装置１０１をデータ検索部２１１、ルーチン実行部２１２、ルーチン管理部２１３及び定義処理部２１５として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００１９】
図２の様に本実施形態のデータベース管理システム２０２は、ＳＱＬ手続き文を用いてデータベースの操作を記述した手続きや関数をユーザが任意に定義する機能を持っており、データベース管理システム２０２は、定義したＳＱＬルーチンを管理する為に、システム資源を管理するディクショナリ情報格納媒体２２１にＳＱＬルーチンの定義情報を格納する。
【００２０】
またＳＱＬルーチンに記述したＳＱＬ手続き文を翻訳して生成した、データベースをアクセスする手続きであるルーチンオブジェクトをルーチンオブジェクト格納媒体２２２に格納する。ここで同一のＳＱＬルーチンの異なる世代が格納されるそれぞれの格納媒体は、物理的に異なる格納媒体でも良いし、物理的に同一の媒体上に設けられた論理的に異なる領域でも良い。
【００２１】
データベース管理システム２０２は、データベース管理システム２０２が保持する資源を検索するデータ検索部２１１と、ルーチンオブジェクトの格納、取り出しを制御するルーチン管理部２１３と、ルーチンオブジェクトをメモリ中にバッファリングする為のルーチンオブジェクト用バッファ２１４と、ルーチンオブジェクトを実行してデータベースアクセス処理するルーチン実行部２１２を持つ。
【００２２】
データベース管理システム２０２は、ＳＱＬルーチンの実行要求を受け付けると、まずデータ検索部２１１が実行対象となるＳＱＬルーチンのディクショナリ情報をディクショナリ情報格納媒体２２１から取り出す。このディクショナリ情報から実行対象のルーチンオブジェクトの格納情報を得ることができる。
【００２３】
次にルーチン管理部２１３は、上記で得たルーチンオブジェクトの格納情報から、実行対象のルーチンオブジェクトをルーチンオブジェクト用バッファ２１４に取り出す。取り出し完了後、ルーチン実行部２１２がルーチンオブジェクトを実行してデータベース操作し、データ格納媒体２２６へのデータ格納、及びデータ取り出しを行う。
【００２４】
次に本実施形態の複数世代のＳＱＬルーチンを管理する処理について、図１を用いて構成を説明する。なお、データベース管理システムに関する記述では、図２に示す構成に従うものとする。
【００２５】
図１は本実施形態の複数世代のＳＱＬルーチン管理の概要を示す図である。データベース管理システム２０２は、複数世代のＳＱＬルーチンを管理する為、ルーチンオブジェクト格納媒体を特定の世代に括りつけて管理する。
【００２６】
図１では、Ｔ１世代のＳＱＬルーチン“Ｒ１”（２５１）、“Ｒ２”（２５２）のルーチンオブジェクト２４１及び２４２を、格納媒体“ＡＲＥＡ１”（２２３）に格納し、Ｔ２世代のＳＱＬルーチン“Ｒ１”（２５３）、“Ｒ２”（２５４）のルーチンオブジェクト２４３及び２４４を、格納媒体“ＡＲＥＡ２”（２２４）に格納し、Ｔ３世代のＳＱＬルーチン“Ｒ１”（２５５）のルーチンオブジェクト２４５を、格納媒体“ＡＲＥＡ３”（２２５）に格納している。なお、ここでの世代名は説明上、便宜的に使用するものであり、データベース管理システム２０２に世代名を登録する必要は無いものとする。
【００２７】
各ＳＱＬルーチンの定義情報やルーチンオブジェクト格納媒体の情報はＳＱＬルーチンのディクショナリ情報２３１に格納される。これにより、ＳＱＬルーチンの世代が格納媒体と関連付けられてシステムに保持される。ここでＳＱＬルーチンのディクショナリ情報２３１に格納される定義情報は、同一のルーチン名を持つＳＱＬルーチンを識別する為の名称である特定化名を含むものとする。
【００２８】
ルーチンオブジェクト用バッファ２１４には複数世代のルーチンオブジェクトを同時に取り出すことができ、実行者がどの格納媒体に格納されたルーチンオブジェクトを実行するかを指示することで、実行されるＳＱＬルーチンの世代を選択することができる。
【００２９】
次に複数世代のＳＱＬルーチン定義を図３の例及び図７のフローを用いて説明する。図３は本実施形態の複数世代のＳＱＬルーチン定義の概要を示す図である。図３ではＴ２世代にＳＱＬルーチン“Ｒ１”を追加定義する場合のＳＱＬルーチン定義の処理概要を表しており、格納媒体“ＡＲＥＡ２”及びＳＱＬルーチン“Ｒ１”の指定を受付け、その追加定義を行う。
【００３０】
この際のデータベース管理システム２０２のユーザＩ／Ｆとしては、例えばＳＱＬルーチンのディクショナリ情報２３１をディスプレイ装置に表示してユーザに提示した後、追加定義しようとしているＳＱＬルーチン“Ｒ１”の格納媒体“ＡＲＥＡ２”を前記提示されたＳＱＬルーチンのディクショナリ情報２３１からユーザが選択して指定すると、データベース管理システム２０２はその指定を受付けて追加定義を行う。
【００３１】
図７は本実施形態の複数世代のＳＱＬルーチン定義の処理手順を示すフローチャートである。本実施形態のデータベース管理システム２０２は、プログラム３０１からＳＱＬルーチン“Ｒ１”の定義文とルーチンオブジェクトの格納媒体“ＡＲＥＡ２”（２２４）の指定を受け付ける（ステップ７０１）。この際、格納媒体の指定は、実行環境を定義する環境変数等、プログラム３０１の内容とは独立して行われるものとし、格納媒体の変更時にプログラム３０１の変更は必要無いものとする。
【００３２】
次にデータ検索部２１１は、データベース管理システム２０２が保持するＳＱＬルーチンの情報をＳＱＬルーチンのディクショナリ情報２３１から検索し、受け付けたＳＱＬルーチン定義が世代追加であるか既存定義の変更であるかを判定する（ステップ７０２）。
【００３３】
図３の場合、ＳＱＬルーチン“Ｒ１”のルーチンオブジェクトが格納媒体“ＡＲＥＡ２”に存在しないので、受け付けたＳＱＬルーチン定義は世代追加であると判定される。このとき、システムは指定した格納媒体の状態を検査し（ステップ７０３）、ルーチンオブジェクトを格納できない状態（例えば指定した格納媒体が存在しない）ならば、そのＳＱＬルーチン定義を失敗とする（ステップ７０９）。
【００３４】
次に定義処理部２１５は、ＳＱＬルーチン“Ｒ１”の定義処理を実行し、ＳＱＬ手続き文を翻訳してルーチンオブジェクト２４３を生成する（ステップ７０４）。このとき、定義処理に失敗（例えばＳＱＬ手続き文の翻訳が失敗した）すると（ステップ７０５）、そのＳＱＬルーチン定義は失敗となる（ステップ７０９）。
【００３５】
次にルーチン管理部２１３は、生成したルーチンオブジェクト２４３を定義時に指定された格納媒体“ＡＲＥＡ２”（２２４）に格納する。このとき、ＳＱＬルーチン定義が既存定義の変更と判定されていれば、当該格納媒体にある同一ルーチン名のルーチンオブジェクトを削除して新しく生成したルーチンオブジェクトに置き換える（ステップ７０６）。
【００３６】
最後にＳＱＬルーチン“Ｒ１”（２５３）のルーチン名、格納媒体及び定義情報をＳＱＬルーチンのディクショナリ情報２３１に登録して（ステップ７０７）定義を完了する（ステップ７０８）。このときも、ＳＱＬルーチン定義が既存定義の変更と判定されていれば、当該格納媒体に格納されている既存定義のディクショナリ情報を削除して新しいディクショナリ情報に置き換える。
【００３７】
次にＳＱＬルーチンの実行を図４、図５の例及び図８のフローを用いて説明する。図４は本実施形態のＳＱＬルーチン実行時の世代選択の概要を示す図である。図４では、本番業務の運用で単一世代（Ｔ１世代）のＳＱＬルーチンを実行する場合の世代選択の例を表している。
【００３８】
この際のデータベース管理システム２０２のユーザＩ／Ｆとしては、例えばＳＱＬルーチンのディクショナリ情報２３１をディスプレイ装置に表示してユーザに提示した後、世代選択しようとしているＳＱＬルーチン“Ｒ１”及び“Ｒ２”の格納媒体“ＡＲＥＡ１”を前記提示されたＳＱＬルーチンのディクショナリ情報２３１からユーザが選択して指定すると、データベース管理システム２０２はその指定を受付けてＳＱＬルーチンの実行を行う。
【００３９】
図８は本実施形態の複数世代のＳＱＬルーチン実行時の処理手順を示すフローチャートである。データベース管理システム２０２は、プログラム３０２からＳＱＬルーチン“Ｒ１”及び“Ｒ２”の実行要求並びにルーチンオブジェクト格納媒体の選択順“ＡＲＥＡ１”の指定を受け付ける（ステップ８０１）。
【００４０】
前記格納媒体の選択順はＳＱＬルーチンの実行優先順を示すもので、先に指定するものほど実行優先順が高くなるものとする。また、格納媒体の選択順はプログラム３０２の環境変数等による動作指示としてデータベース管理システム２０２に対して動的に指定されるので、この選択順が変更された場合でもプログラム３０２自体を修正したり、再編集する必要は無いものとする。
【００４１】
次にデータ検索部２１１は、データベース管理システム２０２が保持するＳＱＬルーチンの情報をＳＱＬルーチンのディクショナリ情報２３１から検索し、実行対象となるＳＱＬルーチンをルーチンオブジェクト格納媒体選択順に探索する（ステップ８０２）。
このとき、実行対象のＳＱＬルーチン情報の検索に失敗（例えば、呼び出したＳＱＬルーチンが未定義）したならば、ＳＱＬルーチンの実行は失敗となる（ステップ８０９）。
【００４２】
図４では、“ＡＲＥＡ１”の指定のみなので“ＡＲＥＡ１”（２２３）に格納されているルーチンオブジェクト２４１及び２４２に対応するＴ１世代のＳＱＬルーチン（２５１及び２５２）の情報を検索する。
【００４３】
次にルーチン管理部２１３は、実行対象となったＳＱＬルーチン“Ｒ１”及び“Ｒ２”（２５１及び２５２）のルーチンオブジェクト２４１及び２４２がルーチンオブジェクト用バッファ２１４に取り出し済みであるか探索する（ステップ８０４）。
【００４４】
もし既に取り出し済みであればルーチンオブジェクト用バッファ２１４上のルーチンオブジェクトを実行するが、取り出し済みでなければ（ステップ８０５）、ルーチン管理部２１３がＡＲＥＡ１（２２３）からルーチンオブジェクト２４１及び２４２をルーチンオブジェクト用バッファ２１４に取り出す（ステップ８０６）。
ルーチンオブジェクトの取り出しが完了すると、ルーチン実行部２１２がルーチンオブジェクトを実行してＳＱＬルーチンは実行完了となる（ステップ８０８）。
【００４５】
次に図５を用いて本番業務とテスト開発が混在する複数世代のＳＱＬルーチンを実行する例を説明する。なお、Ｔ１世代を本番業務世代、Ｔ２及びＴ３世代をテスト開発世代とし、Ｔ２世代よりＴ３世代のほうが新しい世代であるものとする。
【００４６】
図５は本実施形態の本番業務とテスト開発が混在する複数世代のＳＱＬルーチン実行時の世代選択の概要を示す図である。図５では最も新しい世代のＳＱＬルーチンを実行する為、プログラム３０２の実行に“ＡＲＥＡ３”、“ＡＲＥＡ２”、“ＡＲＥＡ１”の順で格納媒体の選択順を指定する。
【００４７】
データベース管理システム２０２は、プログラム３０３からＳＱＬルーチン“Ｒ１”及び“Ｒ２”の実行要求及びルーチンオブジェクト格納媒体の選択順“ＡＲＥＡ３”、“ＡＲＥＡ２”、“ＡＲＥＡ１”の指定を受け付ける。
【００４８】
先に説明した通り、格納媒体の選択順はＳＱＬルーチンの実行優先順を示すので、ＳＱＬルーチン“Ｒ１”の実行については“ＡＲＥＡ３”（２２５）に格納されているルーチンオブジェクト２４５に対応するＳＱＬルーチン２５５が実行対象となる。
【００４９】
また、ＳＱＬルーチン“Ｒ２”の実行については“ＡＲＥＡ３”（２２５）に“Ｒ２”のルーチンオブジェクトが格納されていない為、次選択順である“ＡＲＥＡ２”（２２４）に格納されているルーチンオブジェクト２４４に対応するＳＱＬルーチン（２５４）が実行対象になる。
【００５０】
以下、図４と同様にＳＱＬルーチン情報の検索、ルーチンオブジェクトの取り出しを行なってＳＱＬルーチンが実行される。このとき、図４に示した本番業務でプログラム３０２が並行して実行される場合、本番業務で実行対象となるのはルーチンオブジェクト２４１及び２４２であり、テスト開発で実行対象となるのはルーチンオブジェクト２４４及び２４５なので、互いのプログラムの実行に影響を及ぼすことはない。この結果、本番業務とテスト開発を同時に運用することが可能になる。ここでルーチンオブジェクト用バッファ２１４上に同一のルーチン名で異なる世代のＳＱＬルーチンが複数存在している場合には、その特定化名により各ＳＱＬルーチンの識別を行うものとする。
【００５１】
最後に図６を用いてＳＱＬルーチンの統合化を説明する。ＳＱＬルーチンの統合化とは、テストで開発を終えたＳＱＬルーチンを本番業務で使用するＳＱＬルーチンに反映することを指す。
【００５２】
図６は本実施形態のＳＱＬルーチンの統合化の概要を示す図である。まず、本番業務で使用するＴ１世代のＳＱＬルーチン（２５１及び２５２）、新たに作成したＴ２及びＴ３世代のＳＱＬルーチン（２５３〜２５５）のバックアップを取得する為、全てのルーチンオブジェクト格納媒体“ＡＲＥＡ１”（２２３）、“ＡＲＥＡ２”（２２４）、“ＡＲＥＡ３”（２２５）を媒体ごと複写して退避する。退避したバックアップ用の格納媒体をそれぞれ“ＡＲＥＡ４”（６０１）、“ＡＲＥＡ５”（６０２）、“ＡＲＥＡ６”（６０３）とする。このとき、ＳＱＬルーチンのディクショナリ情報２３１もバックアップを取得しておく。
【００５３】
次に統合化するＳＱＬルーチンを特定する為、データベース管理システム２０２に対して統合化するＳＱＬルーチンに対応するルーチンオブジェクト格納媒体を統合化指示６１１により指定する。
【００５４】
統合化指示６１１では、統合化したルーチンオブジェクトを格納する媒体を統合化後格納媒体に指定し、また統合化するＳＱＬルーチンに対応するルーチンオブジェクト格納媒体を統合化対象媒体に全て指定する。このとき、統合化後格納媒体は統合化対象媒体に含まれていても良いものとする。
【００５５】
ＳＱＬルーチンの統合化では、まず統合化指示６１１に従って統合化対象媒体から最も新しい世代のルーチンオブジェクトを選択し、統合化後格納媒体に格納する。このとき、統合化対象媒体に指定されたその他のルーチンオブジェクトを全て削除する。
【００５６】
図６の統合化指示６１１によるＳＱＬルーチン“Ｒ１”の統合化では、Ｔ１世代（２５１）、Ｔ２世代（２５３）、Ｔ３世代（２５５）を統合化して、“ＡＲＥＡ３”（２２５）に格納されている最も新しいＴ３世代のルーチンオブジェクト２４５を、“ＡＲＥＡ１”に格納されているルーチンオブジェクト２４１と置き換えて格納する。このとき、“ＡＲＥＡ２”（２２４）及び“ＡＲＥＡ３”（２２５）に格納されているルーチンオブジェクト２４３及び２４５をそれぞれ削除する。
【００５７】
同様に、ＳＱＬルーチン“Ｒ２”の統合化では、Ｔ３世代が存在しないのでＴ２世代のルーチンオブジェクト２４４を“ＡＲＥＡ１”（２２３）に格納されているルーチンオブジェクト２４２と置き換えて格納する。このとき、“ＡＲＥＡ２”（２２４）に格納されているルーチンオブジェクト２４４を削除する。
【００５８】
最後にＳＱＬルーチンのディクショナリ情報２３１を更新してＳＱＬルーチンの統合化を完了する。図６でＳＱＬルーチン“Ｒ１”については、Ｔ１世代のＳＱＬルーチン（２５１）及びＴ２世代のＳＱＬルーチン（２５３）を削除して、Ｔ３世代のＳＱＬルーチン（２５５）の格納媒体を“ＡＲＥＡ１”（２２３）に書き換える。同様にＳＱＬルーチン“Ｒ２”については、Ｔ１世代のＳＱＬルーチン（２５２）を削除して、Ｔ２世代のＳＱＬルーチン２５４の格納媒体を“ＡＲＥＡ１”（２２３）に書き換える。
【００５９】
こうして全てのＳＱＬルーチンが統合化されると、本番業務で使用するＳＱＬルーチンの置き換えが完了する。このとき、ルーチンオブジェクト用バッファ２１４に統合化前のＴ１世代のルーチンオブジェクト２４１や２４２が存在している場合には、どのトランザクションからも使用されなくなったタイミングでそれらをルーチンオブジェクト用バッファ２１４から掃き出す。
【００６０】
こうして統合化後のＴ３世代のＳＱＬルーチン（２５５）とＴ２世代のＳＱＬルーチン（２５４）が本番世代のＴ１世代として実行され、２４時間連続稼動するシステムでのＳＱＬルーチン切り替えが完了する。
【００６１】
もしもＳＱＬルーチンの統合化で問題が発生した場合には、バックアップ用のルーチンオブジェクト格納媒体とＳＱＬルーチンのディクショナリ情報から統合化前の状態に回復させる。
【００６２】
前記の様に本実施形態では、世代毎に異なる格納媒体を指定してルーチンオブジェクトの生成及び実行を行うことにより、異なる複数世代の同名のＳＱＬルーチンを同時に保持すると共に個別に実行できるので、２４時間連続稼動するシステムの本番業務の運用と並行して複数のＳＱＬルーチンをテスト開発することができる。
【００６３】
また本実施形態では、ＳＱＬルーチンの翻訳結果を格納する格納媒体の選択順の指定を切り替えるだけで、定義・実行するＳＱＬルーチンの世代が切り替えられるので、システムを停止させることなく本番業務で使用するＳＱＬルーチンの入れ替え作業を容易に行うことができる。
【００６４】
以上説明した様に本実施形態のデータベース管理装置によれば、データベースにおける複数世代のルーチンをその格納媒体毎に管理するので、データベースにおけるルーチンの世代管理を効率的に行うことが可能である。
【００６５】
【発明の効果】
本発明によればデータベースにおける複数世代のルーチンをその格納媒体毎に管理するので、データベースにおけるルーチンの世代管理を効率的に行うことが可能である。
【図面の簡単な説明】
【図１】本実施形態の複数世代のＳＱＬルーチン管理の概要を示す図である。
【図２】本実施形態のデータベース管理装置の概略構成を示す図である。
【図３】本実施形態の複数世代のＳＱＬルーチン定義の概要を示す図である。
【図４】本実施形態のＳＱＬルーチン実行時の世代選択の概要を示す図である。
【図５】本実施形態の本番業務とテスト開発が混在する複数世代のＳＱＬルーチン実行時の世代選択の概要を示す図である。
【図６】本実施形態のＳＱＬルーチンの統合化の概要を示す図である。
【図７】本実施形態の複数世代のＳＱＬルーチン定義の処理手順を示すフローチャートである。
【図８】本実施形態の複数世代のＳＱＬルーチン実行時の処理手順を示すフローチャートである。
【符号の説明】
２２３〜２２５…格納媒体、２３１…ＳＱＬルーチンのディクショナリ情報、２４１〜２４５…ルーチンオブジェクト、２５１〜２５４…ディクショナリ情報例、１０１…データベース管理装置、２０１…オペレーティングシステム、２０２…データベース管理システム、２１４…ルーチンオブジェクト用バッファ、２２１…ディクショナリ情報格納媒体、２２２…ルーチンオブジェクト格納媒体、２２６…データ格納媒体、２１１…データ検索部、２１２…ルーチン実行部、２１３…ルーチン管理部、２１５…定義処理部、３０１…プログラム、３０２…プログラム、３０３…プログラム、６０１〜６０３…格納媒体、６１１…統合化指示。
【図１】
2004078370.tif 000003
【図２】
2004078370.tif 000004
【図３】
2004078370.tif 000005
【図４】
2004078370.tif 000006
【図５】
2004078370.tif 000007
【図６】
2004078370.tif 000008
【図７】
2004078370.tif 000009
【図８】
2004078370.tif 000010