(57)【要約】【課題】データベースソフトウエアアプリケーションリリースバージョンの或るバージョンから別のソフトウエアリリースバージョンへの適切なフェーズマイグレーションを行うこと。【解決手段】データベースソフトウエアアプリケーションのフェーズマイグレーションのための方法は、複数の開発フェーズでデータベースソフトウエアアプリケーションを開発するステップであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とするところのステップと、データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップとを有する方法である。【選択図】図１
2006323825.tif 000002
【特許請求の範囲】
【請求項１】
データベースソフトウエアアプリケーションのフェーズマイグレーションのための方法であって、
複数の開発フェーズでデータベースソフトウエアアプリケーションを開発するステップであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とするところのステップと、
データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップと、
を有することを特徴とする方法。
【請求項２】
フェーズに関するマイグレーションの各々について、データベースの構造に対する修正を規定するデータ定義言語ステートメントにより及びデータベース内のデータに対する修正を指定するデータ操作言語ステートメントにより前記スキーマが修正される
ことを特徴とする請求項１記載の方法。
【請求項３】
データベースのフェーズに関するマイグレーションを実行する前に、データベースソフトウエアアプリケーションのインストレーションを新たなフェーズにアップグレードするステップ
を更に有することを特徴とする請求項１記載の方法。
【請求項４】
データベースソフトウエアアプリケーションで使用されるデータベースを管理するのに使用されるデータベース管理システムをアップグレードすること、
データベースのサイズ及び構造を調整すること、及び
データベースのメタモデルを増やすこと、
の少なくとも１つをデータベースのフェーズに関するマイグレーションを実行する前に実行する
ことを特徴とする請求項３記載の方法。
【請求項５】
複数の開発フェーズで開発されるデータベースソフトウエアアプリケーションのフェーズマイグレーションを実行するためのコンピュータプログラムであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とし、当該コンピュータプログラムは、
データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップをプロセッサに実行させる、前記コンピュータ読み取り可能な媒体に記録されたコンピュータプログラム命令を有する
ことを特徴とするコンピュータプログラム。
【請求項６】
複数の開発フェーズで開発されるデータベースソフトウエアアプリケーションのフェーズマイグレーションを実行するためのシステムであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とし、当該システムは、
コンピュータプログラム命令を実行するプロセッサと、
前記プロセッサで実行可能なコンピュータプログラム命令を格納するメモリと、
データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップをプロセッサに実行させる、前記メモリに記憶されたコンピュータプログラム命令と、
を有することを特徴とするシステム。
【請求項７】
フェーズに関するマイグレーションの各々について、データベースの構造に対する修正を規定するデータ定義言語ステートメントにより及びデータベース内のデータに対する修正を指定するデータ操作言語ステートメントにより前記スキーマが修正される
ことを特徴とする請求項６記載のシステム。
【請求項８】
データベースのフェーズに関するマイグレーションを実行する前に、データベースソフトウエアアプリケーションのインストレーションを新たなフェーズにアップグレードする
ことを特徴とする請求項６記載のシステム。
【請求項９】
データベースソフトウエアアプリケーションで使用されるデータベースを管理するのに使用されるデータベース管理システムをアップグレードすること、
データベースのサイズ及び構造を調整すること、及び
データベースのメタモデルを増やすこと、
の少なくとも１つをデータベースのフェーズに関するマイグレーションを実行する前に実行する
ことを特徴とする請求項８記載のシステム。
【請求項１０】
データベースソフトウエアアプリケーションの新たなフェーズの実行を開始すること、
プロシジャの再生成、スキーマオブジェクトの確認又は構文整理のためのメタモデルのCMテーブルへの通知を含むデータベース再同期を実行すること、
データベースソフトウエアアプリケーションを走らせることを要するマイグレーションスクリプトを走らせること、
データベースをデフラグメントすること、及び
データベースの一貫性を検査すること、
の少なくとも１つをデータベースのフェーズに関するマイグレーションの実行後に実行する
ことを特徴とする請求項９記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータの喪失もなくデータの再入力／再生成も要しない、データベースを使用する、ソフトウエアシステムを移行するためのコンピュータプログラム関連製品に関する。
【背景技術】
【０００２】
ソフトウエアアプリケーションの開発は費用がかかり時間を要するプロセスである。ソフトウエア開発サイクルの１つの特徴は、ソフトウエアの最終バージョンがリリースされる前にそのソフトウエアの中間的なバージョンがリリースされることである。典型的にはソフトウエアのそのような中間的なバージョンは最終バージョンの機能の一部分しか含まない。中間的なバージョンをリリースすることは、そのソフトウエアに付加的な機能が含められる前に、完成した機能をテスト可能にする。
【０００３】
ソフトウエアアプリケーションの１つの一般的なタイプはデータベースアプリケーションであり、それはデータベースに格納済みのデータに関する処理を実行する。現在、テスト等の目的でデータベースアプリケーションの中間バージョンがリリースされると、新たにリリースされた中間バージョンを使用するために、データベース中の全てのデータは再生成される必要がある。これはソフトウエアの開発プロセスの中で時間及び費用のかかる工程である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、データベースアプリケーションソフトウエアの中間バージョンがリリースされた場合にデータベース中の全てのデータが再生成されることを不要にすることである。
【課題を解決するための手段】
【０００５】
本発明はデータベースソフトウエアアプリケーションリリースバージョンの或るバージョンから別のソフトウエアリリースバージョンへの適切なフェーズマイグレーションをもたらす。本発明を利用することでソフトウエアリリースは関連する如何なるデータベースも再生成せずにアップグレード可能である。特に、新たなリリースで適切なスキーマ変更が生じる場合に、本発明は改善されたマイグレーションパフォーマンスをもたらす。更に、本発明は、ソフトウエアアプリケーションの新たなリリースが開発された場合に、マイグレーションスクリプトを構築し、或る開発フェーズから同じリリース内の別の開発フェーズへのマイグレーションをもたらす。フェーズマイグレーションは改善されたシステム検査能力（特に移行されるプラットフォームを検査する能力）をもたらす。データマイグレーション問題はカスタマーサイトではなく開発サイクルの初期にとらえられる。フェーズマイグレーションは再インストールの労力を減らし、開発フェーズ各々に関してデータベースを回復する。
【０００６】
本発明の一形態では、データベースソフトウエアアプリケーションのフェーズマイグレーションのための方法は、複数の開発フェーズでデータベースソフトウエアアプリケーションを開発するステップであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とするところのステップと、データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップとを有する方法である。
【０００７】
本発明の一形態では、フェーズに関するマイグレーションの各々について、データベースの構造に対する修正を規定するデータ定義言語ステートメントにより及びデータベース内のデータに対する修正を指定するデータ操作言語ステートメントにより前記スキーマが修正される。
【０００８】
本発明の一形態では、当該方法は、更に、データベースのフェーズに関するマイグレーションを実行する前に、データベースソフトウエアアプリケーションのインストレーションを新たなフェーズにアップグレードする。
【０００９】
本発明の一形態では、当該方法は、更に、データベースソフトウエアアプリケーションで使用されるデータベースを管理するのに使用されるデータベース管理システムをアップグレードすること、データベースのサイズ及び構造を調整すること、及びデータベースのメタモデルを増やすことの少なくとも１つをデータベースのフェーズに関するマイグレーションを実行する前に実行する。
【００１０】
本発明の一形態では、当該方法は、更に、データベースソフトウエアアプリケーションの新たなフェーズの実行を開始すること、プロシジャの再生成、スキーマオブジェクトの確認又は構文整理のためのメタモデルのCMテーブルへの通知を含むデータベース再同期を実行すること、データベースソフトウエアアプリケーションを走らせることを要するマイグレーションスクリプトを走らせること、データベースをデフラグメントすること、及びデータベースの一貫性を検査することの少なくとも１つをデータベースのフェーズに関するマイグレーションの実行後に実行する。
【発明を実施するための最良の形態】
【００１１】
本発明はデータベースソフトウエアアプリケーションリリースバージョンの或るバージョンから別のソフトウエアリリースバージョンへの適切なフェーズマイグレーションをもたらす。本発明を利用することでソフトウエアリリースは関連する如何なるデータベースも再生成せずにアップグレード可能である。特に、新たなリリースで適切なスキーマ変更が生じる場合に、本発明は改善されたマイグレーションパフォーマンスをもたらす。更に、本発明は、ソフトウエアアプリケーションの新たなリリースが開発された場合に、マイグレーションスクリプトを構築し、或る開発フェーズから同じリリース内の別の開発フェーズへのマイグレーションをもたらす。フェーズマイグレーションは改善されたシステム検査能力（特に移行されるプラットフォームを検査する能力）をもたらす。データマイグレーション発行(issue)はカスタマーサイトではなく開発サイクルの初期にとらえられる。フェーズマイグレーションは再インストールの労力を減らし、開発フェーズ各々に関してデータベースを回復する。
【００１２】
本発明は、新たなソフトウエアバージョンが複数の段階（フェーズ）で開発される如何なるデータベースソフトウエアアプリケーションにも適用可能である。各フェーズバージョンがリリースされると、ソフトウエアアプリケーションの新たなフェーズバージョンが以前のソフトウエアバージョンの代わりにインストールされ、以前のソフトウエアバージョンはそのソフトウエアの以前のリリースであるかもしれないし、そのソフトウエアの以前のフェーズバージョンであるかもしれない。しかしながらソフトウエアアプリケーションで使用されるデータベースはアンインストールされない。その代わりに、データベースのスキーマをそれに従って修正することで、ソフトウエアの新たにインストールされたフェーズバージョンと両立可能になるように、既存のデータベースは移行（マイグレーション）される。フェーズマイグレーションは如何なるソフトウエアバージョンから又は如何なるバージョンからでも後のどのバージョンにも又はどのフェーズバージョンにもデータベースを連続的に移行するよう実行されてよい。
【００１３】
図１には、本発明が使用されてもよいシステム１００の一例が示されている。システム１００ではソフトウエアリリース１−１０２のような特定のリリースバージョンのソフトウエアアプリケーションはデータベース１０４と共に機能を実行する。データベース１０４は、コンピュータソフトウエアがデータの所望の部分を選択でき且つ抽出できるような方法で組織された情報の集まりを含む。従来のデータベースはフィールド、レコード及びファイルで組織される。フィールドは１つの情報部分であり；レコードはフィールドの１つの完全な集合であり；ファイルはレコードの集まりである。データベースデザインでの別の概念はハイパーテキストとして知られている。ハイパーテキストデータベースでは、オブジェクトがテキスト、画像又は映画の一部であってもなくてもどのオブジェクトも他の如何なるオブジェクトとリンク可能である。ハイパーテキストデータベースは異なる大量の情報を組織するのに特に有効であるが、それらは数値解析用には設計されてない。
【００１４】
データベース管理機能はデータベースへのアクセスを実行し、そのデータベースに及びそこからデータを格納及び検索する。そのような機能は問い合わせ(query)と呼ばれ、構造化照会言語(SQL)のようなデータベース問い合わせ言語を用いて実行される。ＳＱＬはデータベースから情報を求めるための標準化された問い合わせ言語である。歴史的にはＳＱＬはミニコンピュータ及びメインフレームで走るデータベース管理システム用の一般的な問い合わせ言語であった。しかしながら、パーソナルコンピュータデータベースシステムが分散したデータベース（いくつものコンピュータシステムにわたって分散されたデータベース）をサポートすることに起因して、ＳＱＬはパーソナルコンピュータデータベースシステムで益々サポートされている。このことはローカルエリアネットワーク上の何人ものユーザが同じデータベースに同時にアクセスすることを可能にする。
【００１５】
多くのフルスケールデータベースシステムはリレーショナル（関係型）データベースシステムである。しかしながら小型のデータベースシステムは問い合わせを行うのにさほど柔軟でない他のデザインを使用する。リレーショナルデータベースは有力である、なぜならデータがどのように関連するか或るいはデータがデータベースからどのように検索されるかについてほとんど仮定を要しないからである。その結果、同一のデータベースが多くの様々な手法で探索され得る。リレーショナルシステムの重要な特徴は、単一のデータベースがいくつものテーブルにわたって分散可能なことである。これはフラットファイルデータベースとは異なり、そこではデータベースの各々は単独のテーブル内で独立している。
【００１６】
データベース１０４はスキーマ１０６を含み、スキーマはデータベースの構造及びコンテンツの定義であり、データベーステーブル、テーブル中の列、テーブル間の関係に関する名称及び定義のようなものである。
【００１７】
ソフトウエアリリース２−１０８のように、データベースを使用するソフトウエアアプリケーションの新たな進展したフェーズバージョンがリリースされると、その新たなフェーズバージョンはインストールされ、データベース１０４を利用し始めるかもしれない。しかしながら、典型的には、ソフトウエアの新たなフェーズバージョンになされた変更は、そのソフトウエアの従前のフェーズバージョンで使用されていたスキーマとは異なるスキーマを用いて定義されたデータをデータベースが有することを要求する。例えば新たなソフトウエアリリースフェーズ２バージョン１０８は、スキーマ１０６’で定義されたデータベース１０４内のデータを利用することを要し、以前のソフトウエアリリースフェーズ１バージョン１０２は、スキーマ１０６で定義されたデータベース１０４内のデータを利用することを要する。
【００１８】
本発明はソフトウエアの新たなリリースバージョン用の新たなスキーマに従うようにデータベース内のデータのフェーズマイグレーションを実行する。フェーズマイグレーションは以下の事項を含む：
・現在のデータベースソフトウエアフェーズバージョンを判定すること。
【００１９】
・現在公表され作成されているラベル（ビルドラベル）を判定すること。
【００２０】
・現在作成されているラベルまでデータベースを徐々に移行すること。
【００２１】
図２ではフェーズマイグレーションのプロセス例２００が示されている。プロセス２００はステップ２０２から始まり、インストール済みのソフトウエアアプリケーションが、そのソフトウエアアプリケーションの新たなリリースにアップグレードされる。ステップ２０４ではプレ（事前の）マイグレーション手順がデータベースに実行される。ステップ２０６ではデータベースのスキーマのフェーズ的なマイグレーションが実行される。このステップでは、インストールされるソフトウエアバージョンが現在インストール済みのソフトウエアより新しい複数のフェーズバージョンであったならば、複数のフェーズ的なマイグレーションが実行されてもよい。ステップ２０８では新たにインストールされたソフトウエアリリースが開始される。ステップ２１０ではマイグレーション手順の後に必要な如何なるものも実行される。
【００２２】
図３ではフェーズマイグレーションプロセスのステップ２０２の具体例が示される。ステップ２０２はインストール済みのソフトウエアアプリケーションをそのソフトウエアの新たなフェーズバージョンにアップデートすることを含むことが示されている。ステップ２０２のプロセスはステップ３０２から始まり、ソフトウエアのアップグレードに関するライセンスが有効であるか否かが判定される。そのライセンスが有効でなかったならば、プロセスはフローから出る。ライセンスが有効であったならば、プロセスはステップ３０４に続き、ソフトウエアアップグレードに必要なリソースが利用可能か否かが判定される。必要なリソースが利用可能でなかったならば、プロセスはフローから出る。要求されるリソースが利用可能であったならば、プロセスはステップ３０６に続き、必要なリソース全てが適切に構築されたか否かが判定される。何らかのリソースが適切に構築されなかったならば、プロセスはステップ３０８に続き、構築を要するリソースが構成される。必要なリソースが全て構築されると、ステップ３０６からでも３０８からでも、プロセスはステップ３１０に続き、現在インストールされているソフトウエアバージョンが（以前のリリースであるか以前のフェーズバージョンであるかによらず）アンインストールされる。しかしながらデータベースはアンインストールされない。ステップ３１２では新たなソフトウエアリリースバージョンがインストールされる。ここでもデータベースは影響を受けない。そしてプロセスはステップ２０４に続く。
【００２３】
図４ではフェーズマイグレーションプロセスのステップ２０４の具体例が示される。ステップ２０４はデータベースに対するプレマイグレーション手順を事前に決めることを含む。ステップ４０２ではソフトウエアアプリケーションで使用されるデータベースを移行するのに使用されるデータベース管理システムが必要に応じてアップグレードされる。ステップ４０４ではデータベースのサイズ及び構造が必要に応じて調整される。ステップ４０６ではデータベースのメタモデル(metamodel)が複製される。ステップ４０８では制御ファイルを修正すること等のようなプレデータベースマイグレーション処理が実行される。そして本プロセスはステップ２０６に続く。
【００２４】
図５ではフェーズマイグレーションプロセスのステップ２０６の具体例が示される。ステップ２０６はデータベースのスキーマのフェーズワイズマイグレーションを含む。フェーズワイズマイグレーションはソフトウエアリリースの進展のフェーズ各々に従って進行する。例えば図５に示される例ではマイグレーションはフェーズ２−５００−２及びフェーズ４−５００−４に加えて他のフェーズ（図示せず）でも実行される。各フェーズでは、フェーズマイグレーションに必要なデータベース調整、何らかの特定のオブジェクトに対する認可変更、テーブルスペースの作成／名称変更等のようなプレフェーズマイグレーション処理５０２が実行される。そして、モジュールＡ５００Ａ、モジュールＢ５００Ｂ等のようなモジュールによりフェーズマイグレーションが実行される。各モジュールはＤＤＬ５０６Ａのようなデータ定義言語（DDL:  data  definition  language）部及びＤＭＬ５０８Ａのようなデータ操作言語（DML:  data  manipulation  language）部を一般に有する。ＤＤＬはデータを規定するためのコンピュータ言語である。例えばＤＤＬスキーマはデータベース中のデータの構造を規定するのに一般に使用される。ＳＱＬ内の命令の部分集合は一般的に使用されるＤＤＬを形成する。ＤＭＬはデータベース内でデータを検索する、挿入する、消去する及び更新するためにコンピュータプログラム又はデータベースユーザによって使用されるコンピュータ言語の一員である。ＤＭＬのような一般的な例はＳＱＬである。各モジュールのＤＤＬ及びＤＭＬは、データベースがソフトウエアリリースのフェーズに従うようにデータベースに対する変更を行う。手順を再コンパイリングし、許可を与え、マイグレーションスクリプトで使用されるリソースを整頓すること等のような事後（ポスト）フェーズマイグレーション処理５１０は、フェーズマイグレーションが行われた後に実行される。
【００２５】
図６ではフェーズマイグレーションプロセスのステップ２０８の具体例が示される。ステップ２０８は新たにインストールされたソフトウエアリリースの開始を含む。ステップ６０２ではポストデータベースマイグレーション処理が実行される。ステップ６０４でのデータベースでの再同期は、プロシジャ再生成、スキーマオブジェクトの確認、構文整理用のデータベーステーブル通知等を含む。ステップ６０６では移行されたデータベースによる処理を始めるために、新たにインストールされたソフトウエアリリースが開始される。
【００２６】
図７ではフェーズマイグレーションプロセスのステップ２１０の具体例が示される。ステップ２１０はマイグレーションプロシジャ後に必要な如何なるステップをも実行することを含む。例えばステップ７０２ではソフトウエアアプリケーションに実行することを要求するマイグレーションスクリプトが実行される。ステップ７０４ではデータベースデフラグメンタ(defragmenter)が起動される。ステップ７０６ではデータベースの一貫性検査が実行される。
【００２７】
好ましくはフェーズマイグレーションはフレームワークを通じて達成され、そのフレームワークは開発者のデータベースに対する付加的なスキーマ変更を許容するようにデータベース管理者により開発される。一般にテンプレートスクリプトは開発者に彼ら自身のマイグレーションスクリプトを書くように用意される。そしてスキーマ修正は結合されてもよい。
【００２８】
フェーズマイグレーションは次のような利益をもたらす：
・システムテストは以前のデータセットを除去することを要しない。
【００２９】
・開発チームはスキーマ変更の彼らの部分を、彼らの開発の一部及びユニットテストとして開発及びテストする。
【００３０】
・カスタマサポートチームはカスタマデータベースを現在の開発フェーズへ移行可能であり、最終製品リリース前にソフトウエアリリース用に顧客に移行することができる。そのようなソフトウエアリリースはベータソフトウエア又は一般化前に利用可能なソフトウエアとして分類される。
【００３１】
・フェーズロードの間のシステムテスト／統合及び開発インストレーションでの時間節約（スキーマは再インストールされるのではなく移行される。）。
【００３２】
開発環境における簡易なスキーマ変更の具体例は以下のものを含む：
・新たな列を加えること。
【００３３】
・列を修正すること：列のサイズ若しくは列のタイプ又は双方を修正することを含む。
【００３４】
・新たなテーブルを加えること。
【００３５】
場合によっては所与のリリースにおいて１回より多くスキーマテーブルが変更されてもよい。同じテーブルが反復的に変更され、それがパフォーマンスの問題をかかえる場合には、影響するスクリプトが書き換えられるべきである。これらのスクリプトは第１フェーズから直接的に向かう最終的なリリースディレクトリ内に維持される。
【００３６】
本発明は新たなソフトウエアが複数フェーズで開発される如何なるデータベースソフトウエアアプリケーションにも適用可能である。そのようなデータベースソフトウエアアプリケーションの具体例はネットワーク管理アプリケーションであり、そのアプリケーションでは、要素の接続トポロジを含む複数のネットワーク要素の特徴がデータベースに格納される。例えば富士通ネットスマート1500(FUJITSU  NETSMART  1500)（登録商標）ネットワーク管理アプリケーションはそのようなソフトウエアアプリケーションである。ネットスマート（NETSMART）（登録商標）アプリケーションに関するフェーズマイグレーションプロセス８００の具体例は図８に示される。ステップ８０２，８０２’ではソフトウエアアプリケーションの構成要素についての修正及び対応するデータベースの修正が受け入れられる。ステップ８０４ではソフトウエア開発プロセスのフェーズ２が始まる。ステップ８０６，８０６’では、ステップ８０２，８０２’で受け入れられた修正が実行され−構成要素コードが修正され、データベーススキーマ修正スクリプトが記載／修正される。フェーズ２スキーママイグレーションが実行される。ステップ８０８ではコード開発が幾つかの構成要素について行われ、ステップ８１０ではこれがフェーズ２バージョンに併合される。ステップ８１２では付加的なコード開発が幾つかの構成要素について行われ、ステップ８１４ではこれがフェーズ５バージョンに併合される。一方、ステップ８１６ではコード開発が別の構成要素について実行される。ステップ８１８にて、競合するスキーマ変更がフェーズ４又はフェーズ５で進行していたならば、スキーママイグレーションスクリプトが書き直される。ステップ８２０ではこれらはフェーズ６開発に併合される。ステップ８２２では以前のフェーズからデータベースを移行し及びバックアップをとることで統合が行われる。ステップ８２４ではフェーズ６ラベルが公表される。ステップ８２８ではフェーズ７のフェーズマイグレーションディレクトリが作成される。ステップ８３９ではフェーズ６バージョンがリリースされる。
【００３７】
図９には本発明が使用されるコンピュータシステムのブロック図の具体例が示される。典型的にはシステム９００はパーソナルコンピュータ、ワークステーション、サーバシステム及びミニコンピュータ又はメインフレームコンピュータ等のようなプログラムされた汎用コンピュータシステムである。システム９００は１以上のプロセッサ（ＣＰＵ）９０２Ａ−９０２Ｎ、入力／出力回路９０４、ネットワークアダプタ９０６及びメモリ９０８を含む。ＣＰＵ９０２Ａ−９０２Ｎは本発明による機能を実行するためにプログラム命令を実行する。一般的にはＣＰＵ９０２Ａ−９０２Ｎはインテルペンティアム(INTEL  PENTIUM(登録商標))プロセッサのような１以上のマイクロプロセッサである。図９はシステム９００がマルチプロセッサコンピュータシステムとして実施される例を示し、そのシステムではマルチプロセッサ９０２Ａ−９０２Ｎはメモリ９０８、入力／出力回路９０４及びネットワークアダプタ９０６のようなシステムリソースを共用する。しかしながら本発明はシステム９００が複数のネットワーク化されたコンピュータシステムとして実施される例をも想定しており、そのシステムはシングルプロセッサコンピュータシステム、マルチプロセッサコンピュータシステム又はそれらの混合でもよい。
【００３８】
入力／出力回路９０４はデータベース／システム９００にデータを入力する或いはそこからデータを出力する機能を与える。例えば入力／出力回路はキーボード、マウス、タッチパッド、トラックボール、スキャナ等のような入力装置、ビデオアダプタ、モニタ、プリンタ等のような出力装置及びモデム等のような入出力装置を含んでもよい。ネットワークアダプタ９０６はデータベース／システム９００とインターネット／イントラネット９１０との間のインターフェースをとる。インターネット／イントラネット９１０は、イーサーネット（登録商標）、トークンリング、インターネット又はプライベート若しくはプロプラエタリＬＡＮ／ＷＡＮのような１以上の標準的なローカルエリアネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含んでもよい。
【００３９】
メモリ９０８は、システム９００の機能を実行するために、ＣＰＵ９０２で実行されるプログラム命令、及びＣＰＵ９０２により使用され処理されるデータを格納する。メモリ９０８は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、プログラマブルリードオンリメモリ（ＰＲＯＭ）、電気的消去可能プログラム可能なリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ等のような電子メモリ装置や、磁気ディスクドライブ、テープドライブ、光ディスクドライブ等のような電気機械メモリ等を含んでよく、それらは機能強化されたＩＥＤ（ＥＩＤＥ）又はウルトラダイレクトメモリアクセス（ＵＤＭＡ）のような統合ドライブエレクトロニクス（ＩＤＥ）インターフェース又はその変形若しくは機能拡張物、高速ＳＣＳＩ、ワイドＳＣＳＩ、ファースト−ワイドＳＣＳＩのような小型コンピュータシステムインターフェース（ＳＣＳＩ）ベースのインターフェース又はそれらの変形若しくは機能拡張物、又はファイバチャネルループ調整（ＦＣ−ＡＬ）インターフェースを使用してもよい。
【００４０】
メモリ９０８の内容(コンテンツ)はシステム９００が実行するプログラムの機能に依存して変わる。しかしながら当業者はこれらの機能がその機能に関連するメモリ内容と共に１つのシステムに包含されてもよいし、周知の技術的考察に基づいて複数のシステム間に分散されてもよいことを認識するであろう。本発明はそのような態様のどれでもを及び全てを想定している。
【００４１】
図９に示される例では、メモリ９０８はデータベースソフトウエアアプリケーション９１２、マイグレーションソフトウエア９１４、データベース９１６，データベーススキーマ９１８、データ９２０及びオペレーティングシステム９２２を含む。データベースソフトウエアアプリケーションはデータベース９１６と共に所望の機能を実行するソフトウエアである。データベース９１６はデータベーススキーマ９１８を含み、それはデータベーステーブル、テーブルそれらの中の列、テーブル間の関係等の名称及び定義のようなデータベースの構造及び内容の定義である。データベース９１６はデータ９２０を含み、データはデータベーステーブルを含む、データベースに包含される実際のデータである。マイグレーションソフトウエア９１４はデータベースのフェーズワイズマイグレーションを実行し、データベーススキーマ９１８の修正に加えて他のプレマイグレーション及びポストマイグレーション手順を含む。オペレーティングシステム９２２は全体的なシステム機能をもたらす。
【００４２】
図９に示されるように、本発明は１つ又は複数のシステムで実施されることを想定し、そのシステムは複数のプロセッサ、マルチタスクコンピューティング、複数のプロセス及び／又は複数のスレッド処理を用意し、それに加えて本発明はただ１つのプロセッサ、１つのスレッド処理しか用意しないシステムで実施されることも想定している。マルチプロセッサ処理は１より多くのプロセッサを使用する演算を実行することを含む。マルチタスクコンピューティングは１より多くのオペレーティングシステムタスクを用いる演算を実行することを含む。タスクは、実行されるプログラムとオペレーティングシステムで使用されるブックキーピング情報との組み合わせを示すオペレーティングシステム概念である。プログラムが実行されるときはいつでも、オペレーティングシステムはそのために新たなタスクを生成する。タスクはそのプログラムに関する包みのようなものであり、その中でタスク番号によりプログラムを確認し、他のブックキーピング情報をそれに付する。ユニックス(UNIX（登録商標）)、OS/2(登録商標)及びウインドウズ(WINDOWS(登録商標))を含む多くのオペレーティングシステムは、同時に多くのタスクを実行することができ、マルチタスクオペレーティングシステムと呼ばれる。マルチタスク処理は１より多くを同時に実行できるオペレーティングシステムの機能である。実行可能な各々は各自自信のアドレス空間で動作し、これは実行可能なものがそれらのメモリの如何なるものも共用しないことを意味する。これは利点を有する、なぜならシステムで走っている他のどのプログラムの実行でもそれを妨げることはどのプログラムも不可能だからである。しかしながらプログラムはオペレーティングシステム以外に（又はファイルシステムに格納されたファイルを読み取ることによって）如何なる情報を交換する手段も有しない。タスク及びプロセス(処理)はしばしば交換可能に使用されるので、マルチプロセス処理はマルチタスク処理と同様であるが、或るオペレーティングシステムはそれら２者を区別する。
【００４３】
以上本発明の特定の実施例が説明されてきたが、説明された実施例に均等な他の実施例が存在することは当業者に理解されるであろう。従って本発明は具体的に例示された実施例に制限されず、添付の特許請求の範囲によってのみ限定されることが理解されるべきである。
【００４４】
以下、本発明により教示される手段が例示的に列挙される。
【００４５】
（付記１）
データベースソフトウエアアプリケーションのフェーズマイグレーションのための方法であって、
複数の開発フェーズでデータベースソフトウエアアプリケーションを開発するステップであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とするところのステップと、
データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップと、
を有することを特徴とする方法。
【００４６】
（付記２）
フェーズに関するマイグレーションの各々について、データベースの構造に対する修正を規定するデータ定義言語ステートメントにより及びデータベース内のデータに対する修正を指定するデータ操作言語ステートメントにより前記スキーマが修正される
ことを特徴とする付記１記載の方法。
【００４７】
（付記３）
データベースのフェーズに関するマイグレーションを実行する前に、データベースソフトウエアアプリケーションのインストレーションを新たなフェーズにアップグレードするステップ
を更に有することを特徴とする付記１記載の方法。
【００４８】
（付記４）
データベースソフトウエアアプリケーションで使用されるデータベースを管理するのに使用されるデータベース管理システムをアップグレードすること、
データベースのサイズ及び構造を調整すること、及び
データベースのメタモデルを増やすこと、
の少なくとも１つをデータベースのフェーズに関するマイグレーションを実行する前に実行する
ことを特徴とする付記３記載の方法。
【００４９】
（付記５）
データベースソフトウエアアプリケーションの新たなフェーズの実行を開始すること、
プロシジャの再生成、スキーマオブジェクトの確認又は構文整理のためのメタモデルのCMテーブルへの通知を含むデータベース再同期を実行すること、
データベースソフトウエアアプリケーションを走らせることを要するマイグレーションスクリプトを走らせること、
データベースをデフラグメントすること、及び
データベースの一貫性を検査すること、
の少なくとも１つをデータベースのフェーズに関するマイグレーションの実行後に実行する
ことを特徴とする付記４記載の方法。
【００５０】
（付記６）
複数の開発フェーズで開発されるデータベースソフトウエアアプリケーションのフェーズマイグレーションを実行するためのコンピュータプログラムプロダクトであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とし、当該コンピュータプログラムプロダクトは、
コンピュータ読み取り可能な媒体と、
データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップをプロセッサに実行させる、前記コンピュータ読み取り可能な媒体に記録されたコンピュータプログラム命令と、
を有することを特徴とするコンピュータプログラムプロダクト。
【００５１】
（付記７）
フェーズに関するマイグレーションの各々について、データベースの構造に対する修正を規定するデータ定義言語ステートメントにより及びデータベース内のデータに対する修正を指定するデータ操作言語ステートメントにより前記スキーマが修正される
ことを特徴とする付記６記載のコンピュータプログラムプロダクト。
【００５２】
（付記８）
データベースのフェーズに関するマイグレーションを実行する前に、データベースソフトウエアアプリケーションのインストレーションを新たなフェーズにアップグレードするステップ
を更に実行させることを特徴とする付記６記載のコンピュータプログラムプロダクト。
【００５３】
（付記９）
データベースソフトウエアアプリケーションで使用されるデータベースを管理するのに使用されるデータベース管理システムをアップグレードすること、
データベースのサイズ及び構造を調整すること、及び
データベースのメタモデルを増やすこと、
の少なくとも１つをデータベースのフェーズに関するマイグレーションを実行する前に実行させる
ことを特徴とする付記８記載のコンピュータプログラムプロダクト。
【００５４】
（付記１０）
データベースソフトウエアアプリケーションの新たなフェーズの実行を開始すること、
プロシジャの再生成、スキーマオブジェクトの確認又は構文整理のためのメタモデルのCMテーブルへの通知を含むデータベース再同期を実行すること、
データベースソフトウエアアプリケーションを走らせることを要するマイグレーションスクリプトを走らせること、
データベースをデフラグメントすること、及び
データベースの一貫性を検査すること、
の少なくとも１つをデータベースのフェーズに関するマイグレーションの実行後に実行させる
ことを特徴とする付記９記載のコンピュータプログラムプロダクト。
【００５５】
（付記１１）
複数の開発フェーズで開発されるデータベースソフトウエアアプリケーションのフェーズマイグレーションを実行するためのシステムであって、前記複数の開発フェーズの少なくとも一部は前記データベースソフトウエアアプリケーションで使用されるデータベースのスキーマの変更を必要とし、当該システムは、
コンピュータプログラム命令を実行するプロセッサと、
前記プロセッサで実行可能なコンピュータプログラム命令を格納するメモリと、
データベースのスキーマの変更を必要とする開発フェーズの各々について、各フェーズで必要とされるデータベースのスキーマの変更に基づいてデータベースのスキーマを順に修正することでデータベースのフェーズに関するマイグレーションを実行するステップをプロセッサに実行させる、前記メモリに記憶されたコンピュータプログラム命令と、
を有することを特徴とするシステム。
【００５６】
（付記１２）
フェーズに関するマイグレーションの各々について、データベースの構造に対する修正を規定するデータ定義言語ステートメントにより及びデータベース内のデータに対する修正を指定するデータ操作言語ステートメントにより前記スキーマが修正される
ことを特徴とする付記１１記載のシステム。
【００５７】
（付記１３）
データベースのフェーズに関するマイグレーションを実行する前に、データベースソフトウエアアプリケーションのインストレーションを新たなフェーズにアップグレードする
ことを特徴とする付記１１記載のシステム。
【００５８】
（付記１４）
データベースソフトウエアアプリケーションで使用されるデータベースを管理するのに使用されるデータベース管理システムをアップグレードすること、
データベースのサイズ及び構造を調整すること、及び
データベースのメタモデルを増やすこと、
の少なくとも１つをデータベースのフェーズに関するマイグレーションを実行する前に実行する
ことを特徴とする付記１３記載のシステム。
【００５９】
（付記１５）
データベースソフトウエアアプリケーションの新たなフェーズの実行を開始すること、
プロシジャの再生成、スキーマオブジェクトの確認又は構文整理のためのメタモデルのCMテーブルへの通知を含むデータベース再同期を実行すること、
データベースソフトウエアアプリケーションを走らせることを要するマイグレーションスクリプトを走らせること、
データベースをデフラグメントすること、及び
データベースの一貫性を検査すること、
の少なくとも１つをデータベースのフェーズに関するマイグレーションの実行後に実行する
ことを特徴とする付記１４記載のシステム。
【図面の簡単な説明】
【００６０】
【図１】本発明が使用されるシステム例を示す図である。
【図２】本発明によるフェーズマイグレーションのプロセスに関するフローチャート例を示す図である。
【図３】本発明によるフェーズマイグレーションのプロセスの１工程に関するフローチャート例を示す図である。
【図４】本発明によるフェーズマイグレーションのプロセスの１工程に関するフローチャート例を示す図である。
【図５】本発明によるフェーズマイグレーションのプロセスの１工程に関するフローチャート例を示す図である。
【図６】本発明によるフェーズマイグレーションのプロセスの１工程に関するフローチャート例を示す図である。
【図７】本発明によるフェーズマイグレーションのプロセスの１工程に関するフローチャート例を示す図である。
【図８】本発明によるフェーズマイグレーションのプロセスに関するフローチャート例を示す図である。
【図９】本発明が使用されるコンピュータシステム例のブロック図を示す。
【符号の説明】
【００６１】
１０２，１０８  ソフトウエア
１０４  データベース
１０６  スキーマ
９００  コンピュータシステム
９０２  ＣＰＵ
９０４  入力／出力
９０６  ネットワークアダプタ
９０８  メモリ
９１０  インターネット／イントラネット
９１２  データベースソフトウエアアプリケーション
９１４  マイグレーションソフトウエア
９１６  データベース
９１８  データベーススキーマ
９２０  データ
９２２  オペレーティングシステム
【図１】
2006323825.tif 000003
【図２】
2006323825.tif 000004
【図３】
2006323825.tif 000005
【図４】
2006323825.tif 000006
【図５】
2006323825.tif 000007
【図６】
2006323825.tif 000008
【図７】
2006323825.tif 000009
【図８】
2006323825.tif 000010
【図９】
2006323825.tif 000011