JP4242056B2 - データベース用スキーマ変更方法 - Google Patents
データベース用スキーマ変更方法 Download PDFInfo
- Publication number
- JP4242056B2 JP4242056B2 JP2000503496A JP2000503496A JP4242056B2 JP 4242056 B2 JP4242056 B2 JP 4242056B2 JP 2000503496 A JP2000503496 A JP 2000503496A JP 2000503496 A JP2000503496 A JP 2000503496A JP 4242056 B2 JP4242056 B2 JP 4242056B2
- Authority
- JP
- Japan
- Prior art keywords
- schema
- change
- version
- stage
- complex
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/213—Schema design and management with details for schema evolution support
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
(発明の分野)
本発明は、データベース内でスキーマ変更を遂行する方法に関する。
【0002】
本発明は、特に、複雑スキーマ変更がソフトかハードかどうかにかかわらず、その変更を遂行する方法に関する。しかしながら、本発明の方法を単純スキーマ変更を達成することにもまた等しく応用できることは、云うまでもない。
【0003】
(発明の背景)
異なったトランザクションによって異なったやり方で連続的に更新され又は変更されるテーブルをデータベース内に使用することは長く知られてきている。このような変更は、スキーマ変更と呼ばれる。スキーマ変更を生じないトランザクションもまたある。
【0004】
スキーマとは、データベース内のテーブルの支配的構成を意味する。この構成は、次を含むことがある。
【0005】
− テーブルの書式、すなわち、テーブル名、プロパティ(properti
es)、断片化、及び異なった安全アスペクト。
【0006】
− 異なったテーブル・カラムに割り当てられた属性、すなわち、それらの属
性が記憶できる情報の型式。
【0007】
− どんなキ−が存在するか、すなわち、いかに外部参照が内部参照に翻訳さ
れるか。
【0008】
− どんな外部キーが見付けられるか、すなわち、テーブル間の異なったリン
クの性質。
【0009】
− どんな異なった指標が見付けられるか、すなわち、どんな探索経路がテー
ブル内の異なった属性に対して見付けられるか。
【0010】
− どんなトリガがテーブルに結合されるか、すなわち、テーブル内のデータ
の変更がその変更に従ってかつ現存するキー、ことによると、外部キーに従
って他のテーブルの更新をトリガすると云うように、他の事象を開始する、
「トリガする」特別事象。
【0011】
しかしながら、用語スキーマは、上に説明したことより遥かに多くを暗に意味するが、この用語のこれらの意味は、しかしながら、本発明についての次の説明と関連して使用される意味のうちの或るいくつかである。
【0012】
分散型データベース内で、異なったテーブルが複数の異なった断片に分割される。このような断片は、立ち代わって、テーブルの同じ部分についてのいくつもの複写又は複製を含む。異なった断片及びそれらのそれぞれの複写は、相互に調和する(co−operating)コンピュータのシステム内の異なったノード内に物理的に見付けられる。システムの信頼性は、断片に属する種々の複写を分散することによって改善される。それは、このことが、たとえ1つ以上のシステムノードがクラッシュしても、情報をシステム内のどこかで利用可能にするからである。
【0013】
それゆえ、分散型データベース内のスキーマ変更は、比較的複雑である。それは、スキーマ変更によって影響された断片の全ての複写をその変更に従って更新しなければならないからである。
【0014】
データベース内のスキーマ変更は、異なった条件に基づいておりかつ多数の異なった参加者(partcipants)をしばしば含み、スキーマ変更を引き起こして、異なったテーブル内に及び/又は、データベースが分散型データベースであるとき、そのデータベースの1つ以上のテーブルの異なった部分、断片内に変更を発生させる。
【0015】
スキーマ変更は、データベースの全ての利用者に対する条件にかつまたこれらの利用者間のトランザクションに対する条件に変更を生じる。このことは、スキーマ変更が第1スキーマ・バージョンを第2スキーマ・バージョンで以て置換する結果となる異なったスキーマ・バージョンについてもまた云うことができる。
【0016】
スキーマ変更は、異なったいくつかのカテゴリに分割することができる。第1に、スキーマ変更は、「単純」又は「複雑」であることがあり、及び第2に、「ソフト」又は「ハード」であることがある。これらの変更特性は、部分的に、互いに無関係である。複雑スキーマ変更がハード又はソフトのどちらかであることがあるのに反して、単純スキーマ変更は常にソフトである。
【0017】
単純スキーマ変更は、スキーマをもっぱら変更しかつ影響されるテーブル内のデータを変更しない。複雑スキーマ変更は、1つ以上のテーブル内のスキーマ及びデータの両方を変更する。
【0018】
簡単に云うと、第1及び第2スキーマ・バージョンがソフト・スキーマ変更においては互換である。しかしながら、第2スキーマ・バージョンは、ハード・スキーマ変更の場合に、第1スキーマ・バージョンと互換でない。
【0019】
互換性とは、第1スキーマ・バージョンに従うトランザクションが、写像又は関数を経て、第2スキーマ・バージョンに従ってテーブル内のデータを更新でき、かつ第2スキーマ・バージョンに従うトランザクションが、写像又は関数を経て、第1スキーマ・バージョンに従ってテーブル内のデータを更新できることを意味する。
【0020】
それゆえ、先行及び後続スキーマ・バージョンが互換であるソフト・スキーマ変更は、トランザクションを両スキーマ・バージョンに従って同時に実行することを可能とする。
【0021】
ハード・スキーマ変更の場合、第2スキーマ・バージョン内のテーブルを第1スキーマ・バージョンからのデータで以て、又はこの逆に、それを通して更新できる写像又は関数は可逆的でない。換言すれば、第1スキーマ・バージョン内のテーブルを第2スキーマ・バージョンからのデータで以て、又はこの逆に、更新することができない。
【0022】
それゆえ、開始したトランザクションがユニットに影響を及ぼし、これらのユニットが、立ち代わって、ハード・スキーマ変更によって影響を受けるような全ての開始したトランザクションは、或る1つのスキーマ変更を開始できるにはその前に第1スキーマ・バージョンに従って終結されなければならない。そのスキーマ変更を完了したときに限り、トランザクションを第2スキーマ・バージョンに従って開始できる。
【0023】
それゆえ、進行中のトランザクションを終結しかつ関連したスキーマ変更を実行するのに要する時間中は、第2スキーマ変更に従うトランザクションを開始できない。これらのトランザクションは、第1スキーマ・バージョンに従うトランザクションの終結を及びこのスキーマ変更が実行されるのを待機しなければならず、結果としてかなりの時間損失になる。
【0024】
複雑スキーマ変更は本質的にデータ及びスキーマの両方に影響するから、これらの変更はいくつかの段階で或る1つの変更を必要とする。複雑スキーマ変更は、いくつもの相互に順序に並ぶスキーマ変更とトランザクションとを含む。
【0025】
次の刊行物は、スキーマ変更を遂行する方法に関連する既知の技術を説明し、及びまた種々のかつこの分野で遭遇する問題を開示する。
【0026】
R・J・ペーターズ及びM・T・エーツによる「オブジェクトベース内のダイナミック・スキーム発展の公理化」、データ工学に関する第11回国際会議、1995年3月、156〜164頁、(“Axiomatization of Dynamic Scheme Evolution in Qbjectbases”,11th International Conference on Data Engineering, Mar.1995,pp.156−164,by R.J.Peters and M.T.Oezsu.)
【0027】
B・S・レーナー及びA・N・ヘーベルマンによる「スキーマ発展を越えてデータベース再編成へ」、ACM OOOPSLA/ECOOP ’90資料、67〜76頁、オッタワ、カナダ、1990年10月(“Beyond Schema Evolution to Data−base Reorgnaization”,Proc.,ACM OOOPSLA/ECOOP ’90,pp.67−76,Ottawa,Canada,Oct.1990,by B.S.Lerner and A.N.Habermann.)
【0028】
B・S・レーナーによる「複素型変更に対する型式発展支援」、技術報告UM−CS−94−71、マサチューセッツ大学、エマースト、1994年10月31日(“Type Evolution Support for Complex Type Changes”,Technical Repport UM−CS−94−71,University of Massachusetts; Amherst,Oct.31, 1994,by B.S.Lerner.)
【0029】
S・M・クレーメンによる「スキーマ発展及び積分、分散型及び並列データベース」、2巻、1994年1月1日、ISSN 0926−8782(“Schema Evolution and Integration,Distributed and Parallel Data−bases”,Vol.2,Jan.1,1994,ISSN 0926−8782,by S.M.Clemen.)
【0030】
データベースと関連して云わゆるSAGAトランザクションの使用がこの分野で知られていることにまた言及しておかなければならない。これに関しては、第1トランザクションを、この第1トランザクションによって引き起こされた変更を取り消すことになる後続第2トランザクションを利用する可能性を伴って遂行できる。
【0031】
この特定分野における技術のもっと早期の立場に関しては、コンピュータ・システム内でソフトウェアを変更するとき、新ソフトウェアを旧ソフトウェアと並列にインストールすることが知られていると述べることができる。
【0032】
このインストールの結果として、旧ソフトウェアを除去する前に新ソフトウェアを評価又は試験できる。もしもその試験が新ソフトウェアが満足に機能しないことを示すならば、そのソフトウェアを除去しかつ旧ソフトウェアを再び使用に供することができる。もし試験が新ソフトウェアが満足に機能することを示すならば、新ソフトウェアを使用に供しかつ旧ソフトウェアを除去する。米国特許第5,410,703号は、このような方法の例を与える。
【0033】
(発明の要約)
(技術的問題)
前述したような先行技術の状態を考えるとき、技術的問題はデータベース内で複雑スキーマ変更を遂行する方法を提供すると云う問題であることが判ろう。
【0034】
他の技術的問題は、複雑ソフト・スキーマ変更のような又は複雑ハード・ソフト・スキーマ変更のような複雑スキーマ変更をそれで以て実行できる方法であってかつ第1スキーマ・バージョンに従うトランザクションの遂行を完了するのを待機する間及び実スキーマ変更を達成するのを待機する間のシステム停止のために複雑ハード・スキーマ変更に起こる時間損失の減少を可能とする方法を提供すると云う問題である。
【0035】
他の技術的問題は、複雑スキーマ変更を異なった段階に分割することを可能とし、それぞれの段階が、それら自体内に、単純スキーマ変更又はテーブル更新を含むと云う問題である。
【0036】
他の技術的問題は、スキーマ変更がソフト変更かハード変更かどうか考慮に入れるが、しかし両方の場合に機能する方法を提供することに存する。
【0037】
他の技術的問題は、第1スキーマ・バージョンを除去するのに先立ち第2スキーマ・バージョンを所望機能に関して評価するのを許す方法を提供すると云う問題である。
【0038】
他の技術的問題は、新たに実施されたソフトウェアを新ソフトウェアの実施と関連して必要とされたスキーマ変更と組み合わせて評価するのを可能とする方法であって、前記評価をソフトウェアの実施及びそれによって引き起こされたスキーマ変更を完了するべきか否かに関する決定の基礎として使用できる方法を提供すると云う問題である。
【0039】
他の技術的問題は、第2スキーマ・バージョンが要件を満たさないことが発見されるとき第1スキーマ・バージョンへの復帰を行うことができる方法を提供すると云う問題である。
【0040】
他の技術的問題は、複雑スキーマ変更において割り込みをハンドルする方法であって、かつスキーマ変更を連続することができる又は割り込みにかかわらず元のスキーマ・バージョンへの復帰を行うことができる方法を提供すると云う問題である。
【0041】
(解 決)
前述の技術的問題の1つ以上を解決する意図を以て、本発明は、スキーマ変更に先立つ第1スキーマ・バージョンがそのスキーマ変更後の第2スキーマ・バージョンと互換である複雑ソフト・スキーマ変更、又はスキーマ変更の前の第1スキーマ・バージョンが前記スキーマ変更の後の第2スキーマ・バージョンと非互換である複雑ハード・スキーマ変更のような複雑スキーマ変更をデータベース内で遂行する方法を提供する。
【0042】
このようなスキーマ変更の遂行をいくつもの段階に分割することが特に提案される。
【0043】
異なった複雑スキーマ変更に対する全般方法を提供する意図を以て、複雑スキーマ変更を3段階に分割できることが本発明によれば提案される。
【0044】
第1段階は、第1スキーマ・バージョンに従うトランザクションを完了する条件を保持する間に第2スキーマ・バージョンに従うトランザクションを開始する条件を作成することを含む準備段階を含む。
【0045】
第1スキーマ・バージョンから第2スキーマ・バージョンへデータを転送する意図を以て、第2段階は、第2スキーマ・バージョンに従うデータへの第1スキーマ・バージョンに従うデータ転送を含む走査段階を含む。
【0046】
全スキーマ変更は、スキーマ変更の完了の際に残っていないことになるユニットの除去を含む終結段階を含む第3段階で以て終結される。
【0047】
第2スキーマ・バージョンの機能の評価及び第1スキーマ・バージョンへの復帰を行うことを可能とする目的を以て、2中間段階を走査段階と終結段階との間に使用できることが本発明によれば提案される。
【0048】
第1中間段階は、或る種の評価トランザクションが第2スキーマ・バージョンに従って遂行され、それによって前記第2スキーマ・バージョンの機能を評価できる評価段階で構成される。
【0049】
この段階に第2中間段階が続き、第2中間段階は決定段階を含み、決定段階ではスキーマ変更を完了するべきか打ち切るべきかどうかが決定され、この決定は評価段階の結果に基づいている。
【0050】
複雑スキーマ変更がソフト・スキーマ変更でありかつその目的が第1及び第2スキーマ・バージョンを並列に動作させるのを可能とするとき、準備段階が異なったトリガ、キー、外部キー及び/又は指標の応用を含み、それによって第2スキーマ・バージョンを第1スキーマ・バージョンに影響するトランザクションに従って更新でき、かつトリガ、キー、外部キー及び/又は指標によって第1スキーマ・バージョンを第2スキーマ・バージョンに影響するトランザクションに従って更新できることが提案される。
【0051】
この場合、評価トランザクションは、第2スキーマ・バージョンに従う通常トランザクションであってよい。
【0052】
変更がソフト・スキーマ変更であるならば、たとえ第1スキーマ・バージョンに従うトランザクションがまだ進行中であっても、第2スキーマ・バージョンに従う通常トランザクションをデータ転送の完了の際直ちに、又は、中間段階が選択されるときは、決定段階においてそのスキーマ変更を完了する決定がなされたならば直ちに開始するのを許すことができる。
【0053】
複雑スキーマ変更が複雑ハード・スキーマ変更であるとき、準備段階が異なったトリガ、キー、外部キー及び/又は指標の応用を含み、それによって第2スキーマ・バージョンを第1スキーマ・バージョンに影響するトランザクションに従って更新でき、又はトリガ、キー、外部キー及び/又は指標の応用によって、これら2つのスキーマ・バージョン間の支配的互換性に従ってデータを転送できる方向次第で、第1スキーマ・バージョンを第2スキーマ・バージョンに影響するトランザクションに従って更新できることが本発明によれば提案される。
【0054】
第1スキーマ・バージョンと第2スキーマ・バージョンとが互換でないから、評価トランザクションが第1スキーマ・バージョンへの有害な影響を伴うことなく第2スキーマ・バージョンに従って遂行できる特別に設計された制御トランザクションで構成されることが本発明によれば提案される。
【0055】
この特定の場合、第2スキーマ・バージョンに従う通常トランザクションが、第1スキーマ・バージョンに従う全てのトランザクションが完遂されるや直ちに及び、もし中間段階が選択されるならば、スキーマ変更を完了するように決定段階において決定がなされるや直ちに開始するのを許される。
【0056】
中間段階は、スキーマ変更がハード変更かソフト変更かどうかにかかわらず、第1スキーマ・バージョンに従う全てのトランザクションが完遂された後、及び、もし中間段階が選択されるならば、スキーマ変更を完遂する決定に関して決定段階において到達した決定に従って、開始される。
【0057】
終結段階は、スキーマ変更の後に支配的であるスキーマ・バージョンによって使用されない全てのトリガ、キー、外部キー、指標及び/又は他のユニットの除去を含む。
【0058】
実施されることになるソフトウェアの評価を可能とするために、新ソフトウェアを実施するときに必要とされるスキーマ変更をその実施と並列に実行することが本発明によれば提案される。
【0059】
本発明の一実施例によれば、スキーマ変更の評価段階における評価トランザクションとして新ソフトウェアによって発生されるトランザクションが新ソフトウェアを検査するときに使用される。
【0060】
評価段階で以て得られた結果が新ソフトウェアの実施を終わらせるべきか否かに関する決定の、及びまたスキーマ変更を完了するべきか否かに関する決定の基礎として使用される。
【0061】
割り込みの場合に第1スキーマ・バージョンを回復する又はスキーマ変更を完了することを可能とする意図を以て、スキーマ変更が云わゆるSAGAテーブル内の情報の記憶を含むことが本発明によれば提案される。
【0062】
本発明によれば、この情報はUNDO情報及びREDO情報を含み、UNDO情報は、スキーマ変更が準備段階、走査段階、評価段階又は決定段階においてなんらかの理由で打ち切られたスキーマ変更の場合に第1スキーマ・バージョンを再確立するために必要とされる情報を含み、及びREDO情報は、何らかの理由で終結段階において打ち切られたスキーマ変更の場合にスキーマ変更を終わらせる又は完了するために必要とされる情報を含む。
【0063】
本発明の一実施例によれば、準備段階は必要なUNDO情報の記憶を含み、及び走査段階、又は、中間段階が選択されるとき、決定段階が必要なREDO情報を記憶することを含む。
【0064】
(利点)
発明の方法によって第1に与えられる利点は、複雑スキーマ変更がソフトかハードかどうかにかかわず、これらのスキーマ変更を遂行することの可能性にあり、この方法ではスキーマ変更及び、或る種の場合には、第1スキーマ・バージョンに従う全てのトランザクションの終結に先立ち第2スキーマ・バージョンに従うトランザクションをまた開始できる。実用的には、第1スキーマ・バージョンに従うトランザクションを終結する前に、終結段階を除いて、スキーマ変更の全体を実行でき、このことがスキーマ変更を開始できるにはその前に第1スキーマ・バージョンに従う全てのトランザクションを終結するのを待機することが必要である場合に対してかなりの時間利得を与える。
【0065】
本発明によって提供される他の利点は、第1スキーマ・バージョンが喪失する前に第2スキーマ・バージョンを評価するのが可能であることである。本発明はまた、第2スキーマ・バージョンの評価がこのスキーマ・バージョンが満足に機能しないことを示すとき第1スキーマ・バージョンへ復帰するのを可能にする。
【0066】
本発明はまた、スキーマ変更を完了する又は打ち切るのを可能とし、及びスキーマ変更によって影響されたテーブルを記憶する又はハンドルするハードウェアのクラッシュの場合におけるように、スキーマ変更の不随意な割り込みの場合に第1スキーマ・バージョンへの復帰を行うのを可能とする。
【0067】
本発明による方法の主特性は、前掲の請求項1の特性表示部分に記載されている。
【0068】
本発明がいっそう容易に理解されかつ更に他の特徴が明らかになるように、本発明をその例証実施例を参照してかつまた添付図面を参照して詳細に説明する。
【0069】
(好適実施例の詳細な説明)
図1の流れ図は、本発明に従う方法を示す。
【0070】
この方法に従うスキーマ変更は、第1スキーマ・バージョンを第2スキーマ・バージョンに変更することを引き起こす。図1に示されたように、スキーマ変更は、その変更をいくつもの段階1、2、3、4、5に分割することによって遂行される。
【0071】
本発明の概念によれば、複雑スキーマ変更が3段階1、2、3に分割される。本方法は、第1スキーマ・バージョンを除去する前に第2スキーマ・バージョンを評価するのを可能とするように、2つの更に、中間段階4、5を含むのを許し得る。
【0072】
もっぱら3基本段階を使用することは第2スキーマ・バージョンを使用し出す前にこれを評価するのを可能とはしないから不正確性が増すことになるが、3基本的段階1、2、3のみの使用は、或る種の場合にかなり高速の方法を提供する。更になお、或るハード・スキーマ変更の場合には2中間段階を使用するのが困難であることがある。
【0073】
第1段階1は準備段階であって、この段階では第1スキーマ・バージョンに従うトランザクションを続行するのを許す条件を保持する間に、第2スキーマ・バージョンに従うトランザクションを開始するのを可能とする条件が発生される。
【0074】
第2段階2は走査段階であって、この段階は第1スキーマ・バージョンに従うデータの第2スキーマ・バージョンに従うデータへの転送を含む。
【0075】
第3段階3は終結段階であって、この段階はスキーマ変更を完了した後に残っていないことになるユニットの除去を含む。
【0076】
前述の段階1、2、3は、3基本段階である。
【0077】
第1中間段階4は、絶対的に必要ではないが、6で選択可能であって、評価段階である。この段階は、2つの中間段階のうちの最初でありかつ第2スキーマ・バージョンに従う或る種の評価トランザクションを遂行することを含み、それによって前記第2スキーマ・バージョンの機能を評価することができる。
【0078】
スキーマ変更において、第2スキーマ・バージョンを、なにが可能でかつ望ましいか次第で、異なった程度に評価することができる。
【0079】
或るいくつかのソフト・スキーマ変更においては、いくつもの評価トランザクションを遂行することを含む総合システム試験を実行するのが可能であり、それによって異なった利用者の機能及び彼らの可能な要件が評価される。
【0080】
かなり少数の特別トランザクションを含む機能試験で充分であることが可能である。
【0081】
或るいくつかのハード・スキーマ変更の場合、これら2スキーマ・バージョン間に不整合を生じることなく評価トランザクションを第2スキーマ・バージョンにおいて遂行できる程度次第で、単純試験、基本試験を実施すること又は試験を全くしないことが可能であるに過ぎないこともある。
【0082】
第2中間段階5は、評価段階4が6で選択されるとき実行され、かつ決定段階でありこの段階においてスキーマ変更を完了するべきか打ち切るべきかどうかについての決定が行われる。決定は、評価段階4からの結果に基づく。
【0083】
複雑スキーマ変更がソフト変更であるとき、準備段階1が異なったトリガ、キー、外部キー及び/又は指標の応用を含むことが本発明によれば提案される。
【0084】
これらのトリガ及びキーは、第2スキーマ・バージョンを第1スキーマ・バージョンに影響するトランザクションに従って更新することを可能とする。トリガ、キー、外部キー及び/又は指標がまた応用されることによって、第1スキーマ・バージョンを第2スキーマ・バージョンに影響するトランザクションに従って更新することができる。
【0085】
これは、トリガするトランザクションが第1スキーマ・バージョンに従うか又は第2スキーマ・バージョンに従うかどうかにかかわらず、1つのスキーマ・バージョンに従うトランザクションがそのトランザクション及び応用されたキーに従って他のスキーマ・バージョンの更新をトリガすることになるのを意味する。
【0086】
もっぱら3基本段階を使用する概念によれば、たとえ第1スキーマ・バージョンに従うトランザクションがまだ進行中であっても、第2スキーマ・バージョンに従う通常トランザクションを、走査段階2が実行されたならば、すなわち、第1スキーマ・バージョンからのデータが第2スキーマ・バージョンへ転送されたとき、直ちに開始するのを許すことができる。
【0087】
複雑スキーマ変更がハード・スキーマ変更であるとき、準備段階1が異なったトリガ、キー、外部キー、及び/又は指標を含み、このことが第2スキーマ・バージョンを第1スキーマ・バージョンに影響するトランザクションに従って更新するのを可能とし、又はトリガ、キー、外部キー及び/又は指標の応用によって第1スキーマ・バージョンを第2スキーマ・バージョンに影響するトランザクションに従って更新できることが本発明によれば提案される。
【0088】
この場合、キーは、それら2スキーマ・バージョン間の互換性の欠如のせいで1方向にしか機能することができない。
【0089】
ハード・スキーマ変更の場合、第2スキーマ・バージョンに従う通常トランザクションは、第1スキーマ・バージョンに従う全てのトランザクションを完了する否や開始するのを許される。
【0090】
終結段階は、スキーマ変更がハード変更かソフト変更かどうかにかかわらず、第1スキーマ・バージョンに従う全てのトランザクションを完了したとき開始される。
【0091】
2中間段階4、5をソフト・スキーマ変更において使用するとき、評価トランザクションが第2スキーマ・バージョンに従う通常トランザクションの選択を含んでよいことが本発明によれば提案される。
【0092】
たとえ第1スキーマ・バージョンに従うトランザクションがまだ進行中であっても、第2スキーマ・バージョンに従う通常トランザクションを、決定段階5においてスキーマ変更を完了する決定に到達したならば、直ちに開始するのを許すことができる。
【0093】
2つの中間段階4、5をハード・スキーマ変更において使用するとき、評価トランザクションが特別に設計された制御トランザクションであって、これらのトランザクションは第1スキーマ・バージョン又はデータベースに有害な影響を与えないで第2スキーマ・バージョンに従って遂行されるように設計されることが本発明によれば提案される。
【0094】
有害な影響とはそれら2スキーマ・バージョン間に不整合が起こらないことを意味し、制御トランザクションが、前記制御トランザクションを実行するにかかわらず、それら2スキーマ・バージョン内の情報が等しいか又は整合していると云うような仕方で構成されなければならないことを意味する。
【0095】
それで、第2スキーマ・バージョンに従う通常トランザクションを、評価段階5においてスキーマ変更を続行する決定に到達するや直ちに、及び第1スキーマ・バージョンに従う全てのトランザクションを完了するや直ちに、開始するのを許すことができる。
【0096】
2中間段階4、5を使用するとき、終結段階3は決定段階5において到達した決定に従って開始され、かつ、もし決定がスキーマ変更を完了することであるならば、変更が第1スキーマ・バージョンに従う全てのトランザクションを完了した後に実行されることが本発明によればまた提案される。
【0097】
2中間段階が使用されるか否かにかかわらず、かつ決定段階でなされることがあるどの決定にもかかわらず、第2スキーマ・バージョンによって使用されないあらゆるトリガ、キー、外部キー、指標及び/又は他のユニットがスキーマ変更を完了するとき除去され、他方、決定段階は、スキーマ変更が割り込まれる又は打ち切られるとき、第1スキーマ・バージョンによって使用されないあらゆるトリガ、キー、外部キー、指標及び/又は他のユニットの除去を含む。
【0098】
本発明がいっそう容易に理解されるように、スキーマ変更のいくつもの具体的例及びいかにこれらを前述に従って異なった段階に分解できるかをこれから説明する。
【0099】
第1例が図2を通して示されておりかつ第1スキーマ・バージョンAを構成する10属性を有するテーブルA1を2テーブルB1、B2に垂直分割することを伴い、これら2テーブルは、それぞれ、4属性及び5属性を有しかつ第2スキーマ・バージョンBを形成し、旧テーブルA1内の最初の6属性は第1新テーブルB1を形成するものとし及び旧テーブルA1内の最後の4属性は第2新テーブルB2を形成するものとする。これは複雑ソフト・スキーマ変更である。
【0100】
上の変更は異なったやり方で遂行でき、かつ下記の説明はいかにこのようなスキーマ変更を本発明に従って遂行できるかについてのほんの一例に関するものである。
【0101】
準備段階1: 図3に示されたように、この準備段階は、4属性を有する完全に新しいかつ空のテーブルB2の作成に至るスキーマ変更を含む。
【0102】
10属性を有する旧テーブルA1は元のままである。これはソフト・スキーマ変更である。
【0103】
旧テーブルA1から新たに作成されたテーブルB2へデータを転送するために必要とされるトリガ及びキーAB1、AB2、AB3、…、ABnが、第1スキーマ・バージョンAに従う旧テーブルA1へのトランザクションに関して新たに作成されたテーブルB2を更新するために、更に他の属性ABを通して旧テーブルA1内に作成される。
【0104】
簡単のためにこの更に他の属性ABはこの図では単一属性として示されているが、実施では、この属性はいくつかの異なった属性で構成されてよい。これらの属性を作成する仕方は、当業者に明白であろう。同様のことは、下記の説明において同じやり方で作成される他の追加属性についても云える。
【0105】
第2スキーマ・バージョンに従う新テーブルB2へのトランザクションに関して旧テーブルA1を更新するために必要とされるトリガ及びキーBA1、BA2、BA3、…、BAnが、新たに作成されたテーブルB2内の追加属性BAを通してまた作成される。
【0106】
旧テーブルA1内の最初の6属性がまた新テーブルB1内の6属性を形成する。これは、旧テーブルA1内の最初の6属性と第1新テーブルB1間では更新のためにトリガ又はキーが必要でないことを意味する。それは、第1新テーブルB1に影響することになる第2スキーマ・バージョンBに従うトランザクションが旧テーブルA1内の最初の6属性に直接作用することになるからであり、かつ旧テーブルA1内の最初の6属性に影響することになる第1スキーマ・バージョンAに従うトランザクションが第1新テーブルB1に直接作用することになるからである。
【0107】
現存するテーブルA1内の各行が検査フラグAlfを割り当てられ、このフラグは「0」にセットされておりかつこの行内の第1スキーマ・バージョンAに従う情報が第2スキーマ・バージョンBへ転送されたとき「1」に変更される。
【0108】
この検査フラグは、それぞれの行から第2スキーマ・バージョンBへ情報を転送してしまうのに先立ち属性AB内のキーAB1、AB2、AB3、…、ABnを「NULL」にセットすることによってまた実施でき、その後、それぞれのキーAB1、AB2、AB3、…、ABnはそれぞれの行について転送を行うことに関連してテーブルB2内の正しい行を指摘するようにセットされる。
【0109】
それゆえ、特定の行又はライン(line)に対する値「NULL」を有する属性ABからのポインタが、新たに作成されたテーブルB2内の対応する行に対して意図された旧テーブルA1から新たに作成されたテーブルB2への情報がまだ転送されていないこと、及び旧テーブルA1内のこの行を変更するとき新たに作成されたテーブルB2内の対応する行を更新するべきでないことを示す。
【0110】
走査段階2: 旧テーブルA1内の最後の4属性が走査されかつ応用されたキーAB1、AB2、AB3、…、ABnに従って第2新テーブルB2へ転送され、及び検査フラグALfが使用されるとき、このフラグが「0」から「1」へセットされる。
【0111】
第2新テーブルB2は、第1スキーマ・バージョンに従うまだ進行中であるトランザクションに従って連続的に更新され、かつ旧テーブルA1内の最後の4属性に関連する。情報の走査及び転送を完了したとき、第2スキーマ・バージョンBに従うトランザクションは、まだ完了されていない第1スキーマ・バージョンAに従うトランザクションと並列に開始するのを許されることがあり、それら4属性に関連するトランザクションが第2新テーブルB2へ実行され、及び第1新テーブルB1内の6属性に関連するトランザクションが旧テーブルA1内の6つの最初の属性へ実行される。
【0112】
第2スキーマ・バージョンBに従うトランザクションが開始するのを許されるとき、旧テーブルA1は、第2の新たに作成されたテーブルB2内の属性BA内のキーBA1、BA2、BA3、…、BAnを通して、新たに作成されたテーブルB2に影響するトランザクションに関して更新される。
【0113】
それゆえ、整合が2スキーマ・バージョンA、B間に得られ、及び正しいデータが利用可能であって、まだ完了しないかもしれないかつ旧テーブルA1内の最後の4属性に関連する第1スキーマ・バージョンAに従うあらゆるトランザクションに対して旧テーブルA1が正しいデータを含むことを保証する。
【0114】
評価段階4: 第2スキーマ・バージョンに従う限定された数のトランザクションが、第2スキーマ・バージョンが正しく機能するか否かを確定するために、開始することを許される。
【0115】
決定段階5: 第2スキーマ・バージョンが正しく機能するとき、スキーマ変更を完了する、又は終わらせる決定がなされる。不正確な機能は、そのスキーマ変更を打ち切る決定を生じる。
【0116】
スキーマ変更を完了する決定がなされるとき、第2スキーマ・バージョンBに従う通常トランザクションが第1スキーマ・バージョンAに従う残りのトランザクションを完了するのと同時に行われるのを許される。
【0117】
スキーマ変更を打ち切る決定がなされるとき、第1スキーマ・バージョンAに従う進行中のトランザクションが完了され、かつ第2スキーマ・バージョンBに従う通常トランザクションは開始されない。
【0118】
終結段階3: 決定段階5においてスキーマ変更を完了する決定がなされるとき、第1スキーマ・バージョンAに従う全ての進行中のトランザクションの終結を待機する。次いで、第2スキーマ・バージョンBに使用されない旧テーブルA1の部分、すなわち、最後の4属性が図4に従って除去される。
【0119】
もし決定段階5においてスキーマ変更を打ち切る決定がなされるならば、新たに作成されたテーブルB2が除去され、かつ旧テーブルA1は元のままに維持される。これは、第1スキーマ・バージョンAに従う全ての進行中のトランザクションの終結を待機することなく行うことができる。
【0120】
決定段階5においてなされた決定にかかわらず、異なったテーブルに関連するトランザクションにおいてそれぞれのテーブルを更新するために作成された更に他の属性内の全ての検査フラグAlf、トリガ、及びキーが除去される。ただし、それらが最終スキーマ・バージョンに使用されないならばである。
【0121】
それゆえ、テーブルの垂直分割を伴う複雑ソフト・スキーマ変更が5段階に分割されており、それらのうち第1段階及び最終段階は単純スキーマ変更であり、第2段階は情報の転送をもっぱら含み、及び第3段階及び第4段階は第2スキーマ・バージョン上の検査を構成し、このことが第1スキーマ・バージョンA及び第2スキーマ・バージョンBの両方に従うトランザクションを同時に処理するのを許す。
【0122】
第2例は、テーブル内の属性の変更で以て確証されるものであって、複雑ハード・スキーマ変更であることがある。図示された場合では、この変更は、事実、複雑ハード・スキーマ変更である。
【0123】
図5は、異なる人びとの1時間当たり賃金(hourly wage)を表示する属性A’1を含み、他方、他の属性A’2がそれぞれの人が1箇月の過程にわたって働いた時間数を表示する。これは第1スキーマ・バージョンA’である。
【0124】
行われる変更はこれら2属性A’1及びA’2を属性B’1で置換することを伴い、属性B’1はそれぞれの人の月給、又は月当たり賃金を表示する。
これは第2スキーマ・バージョンB’である。
【0125】
この例は、第1スキーマ・バージョンA’から第2スキーマ・バージョンB’への伝達関数「f」を含む。関数「f」は、「月給」=「時間給(hourly slary)」*「時間数」である。
【0126】
この場合、第2スキーマ・バージョンB’内の情報、すなわち、「月給」B’1を第1スキーマ・バージョンA’、すなわち、それぞれ「時間給」A’1及び「時間数」A’2へ転送する可能性はない。それは、「月給」B’1内の変更が「時間給」A’1内の又は「時間数」A’2の内の、又は、ことによると、これら両方内の変更のせいであるかどうか知られていないからである。
【0127】
したがって、それら2スキーマ・バージョンは互いに非互換性であり、かつそれゆえスキーマ変更がハード・スキーマ変更である。
【0128】
この例では、関連した属性のみが図示されている。しかしながら、これらの属性は、大方、また、おそらく、いくつかの属性を含むテーブルの部分であることは、云うまでもない。
【0129】
準備段階1: 図6は現存するテーブル内の属性B’1がいかに作成されるかを示し、この属性は第2スキーマ・バージョンB’に従う新属性「月給」を構成する。トリガA’B’1が作成され、それによって属性「時間給」A’1及び「時間数」A’2内のどれかの行内の変更がまた属性「月給」B’1内の対応する行の更新を生じる。
【0130】
走査段階2: この段階は属性「時間給」A’1及び「時間数」A’2内のそれぞれの行内の情報の走査を伴い、その後正しい情報が作成された関数「f」及びトリガA’B’1である媒体を通して属性「月給」B’1内に置かれる。これは、第1スキーマ・バージョンA’に従う全てのトランザクションを完了してしまう前に開始される。
【0131】
評価段階4: 第2スキーマ・バージョンB’に従う特別評価トランザクションが開始される。これらのトランザクションは、第1スキーマ・バージョンA’に従う情報に有害な影響を及ぼしてはならない、換言すれば、これらのトランザクションは、2スキーマ・バージョンA’、B’間の不整合のような、誤りをデータベース内に発生してはならない。
【0132】
1つのこのような評価トランザクションは、第2スキーマ・バージョンB’に従って月給を挿入することが意図されるとおりに、属性「月給」B’1に現在の、正しい月給を挿入することであるかもしれない。「月給」B’1の値は、情報が両スキーマ・バージョンA’及びB’内で正しくあるために、「時間給」A’1及び「時間数」A’2の対応する値との関係で正しくあるべきである。
【0133】
それゆえ、走査段階2における第1スキーマ・バージョンA’から第2スキーマ・バージョンB’への情報の転送が複数の評価トランザクションを伴うことが判る。
【0134】
この例は、評価トランザクションを通しての、第2スキーマ・バージョンB’の試験の限定された機能のみを与える。
【0135】
決定段階5: 正しい機能が確立されるとき、スキーマ変更を完了する決定がなされる。不正確な機能は、スキーマ変更を打ち切る決定を招く。
【0136】
スキーマ変更を完了する決定がなされるとき、第1スキーマ・バージョンA’に従う全てのトランザクションを完了するや否や第2スキーマ・バージョンB’に従う通常トランザクションが開始するのを許される。
【0137】
もしスキーマ変更を打ち切る決定がなされるならば、第1スキーマ・バージョンA’に従う進行中のトランザクションが続行されかつ第2スキーマ・バージョンB’に従うトランザクションは開始されない。
【0138】
終結段階3: スキーマ変更を完了するように決定段階5において決定がなされるとき、第1スキーマ・バージョンA’に従う全てのトランザクションの終結を待機する。それゆえ、総合スキーマ変更がハード・スキーマ変更を構成するのにかかわらず、前述のプロセスの全ては、トランザクションが第1スキーマ・バージョンA’に従って続行するのと同時に実行できる。
【0139】
第1スキーマ・バージョンに従うトランザクションが終結されるとき、第2スキーマ・バージョンB’に従う通常トランザクションが開始される。図7から明らかなように、第2スキーマ・バージョンB’において使用されない属性「時間給」A’1及び「時間数」A’2が除去される。
【0140】
もし決定段階5においてスキーマ変更を打ち切る決定がなされるならば、新たに作成された属性B’1が除去される。これは、第1スキーマ・バージョンA’に従うトランザクションの終結を待機することなく、実行できる。
【0141】
決定段階5においてなされた決定にかかわらず、属性「1時間当たり賃金」A’1及び「時間数」A’2に影響したトランザクション内の属性「月給」B’1を更新するために作成された全てのトリガA’B’1が除去される。
【0142】
それゆえ、前述の複雑ハード・スキーマ変更が5段階に分割されており、これらのうち第1段階及び最終段階は単純スキーマ変更でありかつこれらのうち第2段階は単に情報の転送を含み、前記段階は第1スキーマ・バージョンA’に従うトランザクションと第2スキーマ・バージョンB’の先回り(advanced)実施とを同時に実行するのを許す。
【0143】
前述で、スキーマ変更を2つの例を参照して説明したが、これらの例ではスキーマ変更によって直接影響されるテーブルのみを説明した。しかしながら、図3からまた判るように、スキーマ変更は、このスキーマ変更によって直接影響されるテーブル以外の他のテーブル、云わゆる外部テーブル(foreign table)にも影響する。それは、これらのテーブルがスキーマ変更によって影響される1つ又はいくつかのテーブルと、あれこれのやり方で、調和すると云う事実のせいである。この調和がそれを通して行われるキーは、外部キーと呼ばれる。
【0144】
上に説明したかつ図2、3及び4に示したソフト・スキーマ変更に基づいている図示の場合には、この調和は、外部テーブルC1内の1つの要素の変更が第1スキーマ・バージョンに従う旧テーブルA1内にまた変更を生じ、かつ外部テーブルC1内の対応する変更がまた第1新テーブルB1及び第2新テーブルB2の両方内にまた変更を生じると云うことに存する。
【0145】
第1スキーマ・バージョンAに従って存在する属性CA内の外部キーCA4は、外部テーブルC1を旧テーブルA1と接続するリンクである。
【0146】
前述のトリガ及び外部キーに加えて、スキーマ変更の準備段階において外部テーブルC1と第2新テーブルB2とを相互に調和することを可能とするトリガ及び外部キーCB4がまた作成される。外部テーブルC1はまた、属性CAに属する外部キーを通して第1新テーブルB1と調和する。
【0147】
簡単のために、それぞれの属性CA及びCB内の第4外部キーのみを示す。しかしながら、これらの属性が前述の調和に必要とされる全てのキーを含むことは、云うまでもない。
【0148】
変更の後に応用可能であるスキーマ・バージョンによって使用されない外部キーは、変更を完了するか否か次第で、終結段階において除去される。
【0149】
いかに外部テーブル及び外部キーをハンドルできるかについてのこの説明は、例としてのみ与えられる。このハンドル手順が異なったスキーマ変更と共に大きく変動することがあることは、明らかである。この手順は、上に説明した例におけるように、1つのかつ同じ例においても異なったやり方でまた実行できる。
【0150】
スキーマ変更がデータベースの異なった応用にまた影響することになると云う理由で、スキーマ変更をソフトウェアの起こり得る変更と、又はデータベース内の又はデータベース利用者の新ソフトウェアの実施と同期させるのが適当である。
【0151】
図8の流れ図は、いかにソフトウェア変更Yがスキーマ変更Xと並行に遂行されるかを示すことを意図している。
【0152】
スキーマ変更Xは、第1スキーマ・バージョンA’’から第2スキーマ・バージョンB’’への変更を伴いかつ準備段階X1及び走査段階X2で以て開始される。ソフトウェア変更Yの初期段階Y1が同時に開始され、この段階はソフトウェアの実施を含み、この実施は同ソフトウェアを評価するのに充分である。
【0153】
次いで、評価段階XY1が開始され、かつ第2スキーマ・バージョンB’’を使用するトランザクションが新ソフトウェアYによって発生されかつ評価段階XY1内の評価トランザクションを構成する。
【0154】
評価段階XY1内で実行された評価が第2スキーマ・バージョンB’’及び新ソフトウェアYの両方及びそれらの相互調和の評価を含む。
【0155】
新ソフトウェアYの実施を完了するか否かに関する決定が、評価段階XY1において得られた結果に基づいて決定段階XY2においてなされる。
【0156】
スキーマ変更X及びソフトウェアYは、決定段階XY2において到達した決定に従って、終結段階X3、Y2において完了されるか又は終結されるかのどちらかである。
【0157】
本発明はまた、好適実施例である実施例を提供し、この実施例ではスキーマ変更が云わゆるSAGAテーブル内の情報の記憶を含む。
【0158】
図9に示したように、SAGAテーブルはデータベースS1で構成され、このデータベースはスキーマ変更によって影響された分散型データベース内の1つ以上のノード・クラッシングの場合にスキーマ変更を完了する又は打ち切るのを可能とする情報を含む。
【0159】
本発明によれば、SAGAテーブルS1は、スキーマ変更中のハードウェア・クラッシュの場合にスキーマ変更を完了する又はデータベースを第1スキーマ変更バージョンへリセットするのに同じ可能性を与えるように、非分散型データベース内にもまた使用できる。
【0160】
SAGAテーブルS1の目的は、もっと早期に知られている技術に従うSAGAトランザクションの実施に類似したやり方でスキーマ変更を実施するのを可能とすることである。しかしながら、スキーマ変更と関連した実施は、スキーマ変更がデータ及びスキーマの両方に異なった変更を生じ得る一連のトランザクションを含むと云う事実のせいでいくらか複雑である。
【0161】
SAGAテーブルS1によって含まれた情報は、UNDO情報S1U及びREDO情報S1Rの両方で構成され、UNDO情報S1Uは何らかの理由で準備段階1又は走査段階2で及び、ことによると、評価段階4又は決定段階5でスキーマ変更の割り込みの場合に第1スキーマ変更Aをリセットするために必要とされる情報を含み、及びREDO情報S1Rはもしもスキーマ変更が何らかの理由で終結段階3において割り込まれるならばそのスキーマ変更を完了するために必要な情報を含む。
【0162】
スキーマ変更の割り込みは、例えば、第2スキーマ・バージョンの評価がこのバージョンが満足に機能しないことを示していると云う事実のせいでそのスキーマ変更を完了しない決定による、計画された割り込みであることがある。
【0163】
割り込み又は停止は、無計画であることがありかつ、例えば、分散型データベース内のスキーマ変更によって影響されるノードのクラッシュ、又は非分散型データべース内の或る型式のハードウェア・クラッシュによって引き起こされることがある。
【0164】
もし3つの基本段階1、2、3のみが使用されるならば、準備段階1がREDO情報S1Rの記憶を含むこと、及び走査段階2がUNDO情報S1Uの記憶を含むことが本発明によれば提案される。
【0165】
他方、もし2中間段階4、5がまた使用されるならば、準備段階1がREDO情報S1Rの記憶を含むこと、及び評価段階5がUNDO情報S1Uの記憶を含むことが本発明によれば提案される。
【0166】
本発明によれば、SAGAテーブルS1は、安全複写取り(safty copying)と関連してあらゆる2次複写又は全2次データベースの更新にまた使用されることがある。
【0167】
本発明がその前述したかつ図示した例証実施例に限定されないこと及び修正を前掲の特許請求の範囲に定義された本発明の概念の範囲内で行えることは、云うまでもない。
【図面の簡単な説明】
【図1】 本発明に従う方法を示す流れ図である。
【図2】 ソフト・スキーマ変更の例に関連した第1スキーマ・バージョン及び第2スキーマ・バージョンの概略説明図である。
【図3】 図2に従うスキーマ変更のパフォーマンスの部分の概略説明図であり、かつ外部テーブルのハンドリングを示す。
【図4】 図2に従うスキーマ変更の可能な結果を示す概略説明図である。
【図5】 ハード・スキーマ変更の例と関連した第1スキーマ・バージョン及び第2スキーマ・バージョンの概略説明図である。
【図6】 図5に従うスキーマ変更のパフォーマンスの部分の概略説明図である。
【図7】 図5に従うスキーマ変更の可能な結果を示す概略説明図である。
【図8】 組み合わせられたスキーマ変更とソフトウェア変更を示す流れ図である。
【図9】 本発明によるSAGAテーブルの概略説明図である。
Claims (16)
- スキーマ変更に先立つ第1スキーマ・バージョンが前記スキーマ変更後の第2スキーマ・バージョンと互換性である複雑ソフト・スキーマ変更のような、又はスキーマ変更前の第1スキーマ・バージョンが前記スキーマ変更後の第2スキーマ・バージョンと非互換性である複雑ハード・スキーマ変更のようなスキーマ変更をデータベース内で遂行する方法であって、スキーマ変更手順を以下の3段階、
・ 第1段階、準備段階、が前記第1スキーマ・バージョンに従うトランザクションを続行することを可能とする条件を保持する間に前記第2スキーマ・バージョンに従うトランザクションを開始することを可能とする条件を作成することを含み、この第1段階が単純スキーマ変更であり、
・ 第2段階、走査段階、が前記第1スキーマ・バージョンに従うデータの前記第2スキーマ・バージョンに従うデータへの転送を含み、
・ 第3段階、終結段階、が単純スキーマ変更であるスキーマ変更の完了の際に存在しないことになるトリガ、キー、外部キー及び/又は指標( indexes )のようなユニットの除去を含む
に分割し、
複雑スキーマ変更が複雑ソフト・スキーマ変更の場合は、前記第1段階における条件の作成は、前記第1スキーマ・バージョンに影響を及ぼすトランザクションを含んで前記第2スキーマ・バージョンが更新され得るような、1つ以上のトリガ、キー、外部キー及び/又は指標の使用、かつ、前記第2スキーマ・バージョンに影響を及ぼすトランザクションを含んで前記第1スキーマ・バージョンが更新され得るような、1つ以上のトリガ、キー、外部キー及び/又は指標の使用を含み、
前記複雑スキーマ変更が複雑ハード・スキーマ変更の場合は、前記第1段階における条件の作成は、前記第1スキーマ・バージョンに影響を及ぼすトランザクションを含んで前記第2スキーマ・バージョンが更新され得るような、1つ以上のトリガ、キー、外部キー及び/又は指標の使用、又は、前記第2スキーマ・バージョンに影響を及ぼすトランザクションを含んで前記第1スキーマ・バージョンが更新され得るような、1つ以上のトリガ、キー、外部キー及び/又は指標の使用を含むことを特徴とする方法。 - 請求項1記載の方法において、前記複雑スキーマ変更が複雑ソフト・スキーマ変更であり、たとえ前記第1スキーマ・バージョンに従うトランザクションがまだ進行中であっても、前記第2スキーマ・バージョンに従う通常トランザクションが前記データ転送の完了の際に直ちに開始するのを許されることを特徴とする方法。
- 請求項1記載の方法において、前記複雑スキーマ変更が複雑ハード・スキーマ変更であり、前記方法であって、前記第2スキーマ・バージョンに従う通常トンランザクションが、前記第1スキーマ・バージョンに従う全てのトランザクションを完了したならば直ちに開始するのを許されることを特徴とする方法。
- 請求項1記載の方法であって、前記終結段階が、前記第1スキーマ・バージョンに従う全てのトランザクションを完了した後に開始されることを特徴とする方法。
- 請求項1記載の方法であって、前記複雑スキーマ変更が2つの更に他の段階を含むことと、前記2段階が前記走査段階と前記終結段階との間に位置を定められ、
・ 第1中間段階、評価段階、が前記第2スキーマ・バージョンに従う或る種の評価トランザクションを遂行することを含み、それによって前記第2スキーマ・バージョンの機能を評価でき、
・ 第2中間段階、決定段階、が前記スキーマ変更を完了するべきか止めるべきかどうか決定し、この決定が前記第3評価段階の結果に基づいている
こととを特徴とする方法。 - 請求項5記載の方法において、前記複雑スキーマ変更が複雑ソフト・スキーマ変更であり、前記方法であって、前記評価トランザクションが特別に構成された制御トランザクションであることを特徴とする方法。
- 請求項5記載の方法において、前記複雑スキーマ変更が複雑ソフト・スキーマ変更であり、評価トランザクションが前記第2スキーマ・バージョンに従う通常トランザクションであることを特徴とする方法。
- 請求項5記載の方法において、前記複雑スキーマ変更が複雑ソフト・スキーマ変更であり、たとえ前記第1スキーマ・バージョンに従うトランザクションがまだ進行中であっても、前記第2スキーマ・バージョンに従う通常トランザクションが、前記スキーマ変更を完了するように前記決定段階において決定に達するや直ちに開始するのを許されることを特徴とする方法。
- 請求項5記載の方法において、前記複雑スキーマ変更が複雑ハード・スキーマ変更であり、評価トランザクションが、前記第1スキーマ・バージョンに有害な影響を伴うことなく前記第2スキーマ・バージョンに従って遂行できる特別に構成された制御トランザクションであることを特徴とする方法。
- 請求項5記載の方法において、前記複雑スキーマ変更が複雑ハード・スキーマ変更であり、前記第2スキーマ・バージョンに従う通常トランザクションが、前記スキーマ変更を完了するように前記評価段階において決定がなされるや直ちに、及び前記第1スキーマ・バージョンに従う全てのトランザクションを完了したならば直ちに開始するのを許されることを特徴とする方法。
- 請求項5記載の方法であって、前記終結段階が、前記評価段階において到達した決定に従って、及びもし前記決定が前記スキーマ変更を完了することであるならば前記第1スキーマ・バージョンに従う全てのトランザクションを完了した後に、開始されることを特徴とする方法。
- 請求項1記載の方法であって、前記第2スキーマ変更が実行されるとき、前記終結段階が前記第2スキーマ・バージョンによって使用されないあらゆるトリガ、キー、外部キー、指標及び/又は他のユニットの除去を含むことと、前記スキーマ変更が打ち切られるとき、前記終結段階が前記第1スキーマ・バージョンによって使用されないあらゆるトリガ、キー、外部キー、指標及び/又は他のユニットの除去を含むこととを特徴とする方法。
- 現在ソフトウェアを新ソフトウェアによって置換されることになる、又はもっと早期の対応するものを有さない新ソフトウェアが前記データベース内で又は前記データベースの利用者によって実施されることになるソフトウェア変更と関連した、請求項5記載の方法であって、前記スキーマ変更が前記ソフトウェア変更と同期させられることと、前記新ソフトウェアによって発生されるトランザクションが前記評価トランザクションを構成することと、前記評価段階における評価が前記第2スキーマ・バージョンの評価と、前記新ソフトウェアの評価と、それらの相互調和の評価とを含むことと、前記新ソフトウェアを実施するべきかどうか及び前記スキーマ変更を実行するべきかどうかに関する決定が前記評価段階から得られた結果に基づいてなされることを特徴とする方法。
- 請求項1又は5記載の方法であって、前記スキーマ変更がSAGAテーブル内の情報の記憶を含むことと、前記情報がUNDO情報とREDO情報との両方を含み、前記UNDO情報はスキーマ変更が何らかの理由で前記準備段階又は前記走査段階において及び、ことによると、評価段階又は決定段階において割り込みされる又は打ち切られる場合に前記第1スキーマ・バージョンをリセットするために必要とされる情報を含み、かつ前記REDO情報は前記スキーマ変更が何らかの理由で前記終結段階において割り込まれる又は打ち切られる場合に前記スキーマ変更を完了するために必要とされる情報を含むこととを特徴とする方法。
- 請求項1及び14記載の方法であって、前記準備段階が前記UNDO情報の記憶を含むことと、前記走査段階が前記REDO情報の記憶を含むこととを特徴とする方法。
- 請求項5及び14記載の方法であって、前記準備段階が前記UNDO情報の記憶を含むことと、前記評価段階が前記REDO情報の記憶を含むこととを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9702763-5 | 1997-07-21 | ||
SE9702763A SE521056C2 (sv) | 1997-07-21 | 1997-07-21 | Metod för genomförande av schemaförändringar i en databas |
PCT/SE1998/001335 WO1999004351A2 (en) | 1997-07-21 | 1998-07-07 | Schema change within a data-base |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001510918A JP2001510918A (ja) | 2001-08-07 |
JP4242056B2 true JP4242056B2 (ja) | 2009-03-18 |
Family
ID=20407794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000503496A Expired - Lifetime JP4242056B2 (ja) | 1997-07-21 | 1998-07-07 | データベース用スキーマ変更方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6216136B1 (ja) |
EP (1) | EP0998713B1 (ja) |
JP (1) | JP4242056B2 (ja) |
CN (1) | CN100392643C (ja) |
AU (1) | AU8365398A (ja) |
BR (1) | BR9810762A (ja) |
DE (1) | DE69832386D1 (ja) |
SE (1) | SE521056C2 (ja) |
WO (1) | WO1999004351A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8676786B2 (en) | 2010-12-17 | 2014-03-18 | Fujitsu Limited | Computer product, data conversion apparatus, and conversion method |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594167B1 (en) * | 1998-10-16 | 2009-09-22 | Open Invention Network, Llc | System and method for schema evolution in an e-commerce network |
US6460052B1 (en) * | 1999-08-20 | 2002-10-01 | Oracle Corporation | Method and system for performing fine grain versioning |
US7016906B1 (en) * | 2000-05-04 | 2006-03-21 | Unisys Corporation | Data processing method and apparatus employing OLE DB and having dual schema and auto update features |
US6993506B2 (en) | 2000-12-05 | 2006-01-31 | Jgr Acquisition, Inc. | Method and device utilizing polymorphic data in e-commerce |
US7076491B2 (en) * | 2001-11-09 | 2006-07-11 | Wuxi Evermore | Upward and downward compatible data processing system |
US20030092438A1 (en) * | 2001-11-14 | 2003-05-15 | Moore Brian J. | Method and apparatus for stabilizing calls during a system upgrade or downgrade |
US7024434B2 (en) * | 2002-11-01 | 2006-04-04 | Microsoft Corporation | Method and system for modifying schema definitions |
US7103394B2 (en) * | 2003-01-28 | 2006-09-05 | Morphy William F | Motorcycle audio system control device and method |
US7844639B2 (en) * | 2003-11-24 | 2010-11-30 | Ebay Inc. | Backward compatibility in database schemas |
US7562357B2 (en) * | 2004-03-08 | 2009-07-14 | Microsoft Corporation | Relational database schema version management |
JP2005259057A (ja) * | 2004-03-15 | 2005-09-22 | Oki Electric Ind Co Ltd | 更新履歴管理装置及び記録媒体 |
US7200624B2 (en) * | 2004-03-29 | 2007-04-03 | Microsoft Corporation | Systems and methods for versioning based triggers |
US20060155716A1 (en) * | 2004-12-23 | 2006-07-13 | Microsoft Corporation | Schema change governance for identity store |
US9286346B2 (en) * | 2005-02-18 | 2016-03-15 | International Business Machines Corporation | Replication-only triggers |
US8214353B2 (en) * | 2005-02-18 | 2012-07-03 | International Business Machines Corporation | Support for schema evolution in a multi-node peer-to-peer replication environment |
US7376675B2 (en) * | 2005-02-18 | 2008-05-20 | International Business Machines Corporation | Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events |
US8037056B2 (en) | 2005-02-18 | 2011-10-11 | International Business Machines Corporation | Online repair of a replicated table |
SE529676C2 (sv) * | 2006-03-02 | 2007-10-23 | Abb Ab | En metod för att utvärdera en applikation, ett automationssystem och en styrenhet |
US20080059469A1 (en) * | 2006-08-31 | 2008-03-06 | International Business Machines Corporation | Replication Token Based Synchronization |
US8346725B2 (en) * | 2006-09-15 | 2013-01-01 | Oracle International Corporation | Evolution of XML schemas involving partial data copy |
US20080120323A1 (en) * | 2006-11-17 | 2008-05-22 | Lehman Brothers Inc. | System and method for generating customized reports |
CN101611637A (zh) * | 2006-12-21 | 2009-12-23 | Gn瑞声达A/S | 具有用户接口的听力设备 |
US7925636B2 (en) * | 2007-06-08 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Repository system and method |
US8504593B2 (en) * | 2007-06-29 | 2013-08-06 | Microsoft Corporation | Server directory schema comparator |
US9275085B2 (en) * | 2008-05-05 | 2016-03-01 | Hewlett Packard Enterprise Development Lp | Data processing system and method |
EP2157517A1 (en) * | 2008-08-19 | 2010-02-24 | Siemens Aktiengesellschaft | A process and a system for updating a data structure in a relational database used within a manufacturing execution system |
EP2336904A1 (en) | 2009-12-18 | 2011-06-22 | Siemens Aktiengesellschaft | A method for safeguarding the integrity of a relational database in case of structural transaction execution |
US8244698B2 (en) * | 2010-07-23 | 2012-08-14 | Google Inc. | Encoding a schema version in table names |
US8832159B2 (en) * | 2012-05-22 | 2014-09-09 | Google Inc. | Systems and methods for asynchronous schema changes |
US20230095852A1 (en) * | 2021-09-29 | 2023-03-30 | Amazon Technologies, Inc. | Translating between versions of data object schemas for data producers and data consumers |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442783A (en) * | 1990-01-22 | 1995-08-15 | Motorola, Inc. | Method and apparatus for transferring data base information |
TW226047B (ja) * | 1990-03-27 | 1994-07-01 | Ibm | |
US5873088A (en) * | 1990-08-31 | 1999-02-16 | Fujitsu Limited | Derived data base processing system enabling one program to access a plurality of data basis |
US5280612A (en) * | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
JP2863805B2 (ja) * | 1993-11-26 | 1999-03-03 | 富士通株式会社 | 版数管理方式 |
JP3910221B2 (ja) * | 1993-12-28 | 2007-04-25 | 株式会社日立製作所 | オブジェクト指向データベース管理システム及び方法 |
JPH08202597A (ja) * | 1995-01-24 | 1996-08-09 | Nippon Telegr & Teleph Corp <Ntt> | スキーマ変換機構編成方式 |
US5717924A (en) * | 1995-07-07 | 1998-02-10 | Wall Data Incorporated | Method and apparatus for modifying existing relational database schemas to reflect changes made in a corresponding object model |
US5794030A (en) * | 1995-12-04 | 1998-08-11 | Objectivity, Inc. | System and method for maintenance and deferred propagation of schema changes to the affected objects in an object oriented database |
US5850554A (en) * | 1995-12-29 | 1998-12-15 | Intel Corporation | Compiler tool set for efficiently generating and easily managing multiple program versions of different types |
US5765171A (en) * | 1995-12-29 | 1998-06-09 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US5950210A (en) * | 1996-01-29 | 1999-09-07 | Nelson; Paul M. | Database row version differentiation process |
SE509645C2 (sv) * | 1996-02-08 | 1999-02-15 | Ericsson Telefon Ab L M | En metod för att samtidigt med protokollbaserad funktionsändring i en databas utföra verifiering av konverterad data |
US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
-
1997
- 1997-07-21 SE SE9702763A patent/SE521056C2/sv unknown
-
1998
- 1998-07-07 AU AU83653/98A patent/AU8365398A/en not_active Abandoned
- 1998-07-07 WO PCT/SE1998/001335 patent/WO1999004351A2/en active IP Right Grant
- 1998-07-07 EP EP98934049A patent/EP0998713B1/en not_active Expired - Lifetime
- 1998-07-07 DE DE69832386T patent/DE69832386D1/de not_active Expired - Lifetime
- 1998-07-07 BR BR9810762-3A patent/BR9810762A/pt not_active IP Right Cessation
- 1998-07-07 CN CNB988093413A patent/CN100392643C/zh not_active Expired - Lifetime
- 1998-07-07 JP JP2000503496A patent/JP4242056B2/ja not_active Expired - Lifetime
- 1998-07-15 US US09/115,905 patent/US6216136B1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8676786B2 (en) | 2010-12-17 | 2014-03-18 | Fujitsu Limited | Computer product, data conversion apparatus, and conversion method |
Also Published As
Publication number | Publication date |
---|---|
WO1999004351A2 (en) | 1999-01-28 |
EP0998713A2 (en) | 2000-05-10 |
EP0998713B1 (en) | 2005-11-16 |
AU8365398A (en) | 1999-02-10 |
CN1271440A (zh) | 2000-10-25 |
BR9810762A (pt) | 2000-08-15 |
DE69832386D1 (de) | 2005-12-22 |
US6216136B1 (en) | 2001-04-10 |
SE9702763L (sv) | 1999-01-22 |
WO1999004351A3 (en) | 1999-04-08 |
SE9702763D0 (sv) | 1997-07-21 |
SE521056C2 (sv) | 2003-09-23 |
JP2001510918A (ja) | 2001-08-07 |
CN100392643C (zh) | 2008-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4242056B2 (ja) | データベース用スキーマ変更方法 | |
US6243705B1 (en) | Method and apparatus for synchronizing information on two different computer systems | |
US7076778B2 (en) | Method and apparatus for upgrading a software application in the presence of user modifications | |
CN104793988B (zh) | 跨数据库分布式事务的实现方法和装置 | |
US8788457B2 (en) | Ensuring that the archival data deleted in relational source table is already stored in relational target table | |
US7054823B1 (en) | Clinical trial management system | |
US6038399A (en) | Computer manufacturing architecture with two data-loading processes | |
US5806075A (en) | Method and apparatus for peer-to-peer data replication | |
CN100576208C (zh) | 用于提供对关系数据库表的高性能数据修改的方法和系统 | |
US5991768A (en) | Finer grained quiescence for data replication | |
US7251669B1 (en) | System and method for database versioning | |
US8572027B2 (en) | Performing synchronization among relational database tables with minimal contention | |
EP3891621A1 (en) | System and method for augmenting database applications with blockchain technology | |
US20040073900A1 (en) | Software update management system with update chronology generator | |
US20040098425A1 (en) | Database System Providing Improved Methods For Data Replication | |
US20010016853A1 (en) | Method and apparatus for synchronizing information on two different computer systems | |
US20060004686A1 (en) | Real-time reporting, such as real-time reporting of extrinsic attribute values | |
US20120036166A1 (en) | Effective dating for table or relationship modifications | |
US20240143386A1 (en) | Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems | |
De Jong et al. | Zero-downtime SQL database schema evolution for continuous deployment | |
JP3991760B2 (ja) | データベース管理方法および装置およびその処理プログラム | |
JP3330006B2 (ja) | 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに | |
US20240126747A1 (en) | Control method, and adapter | |
Cobbs | Persistence programming | |
JP2009129414A (ja) | データベース同期化システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040128 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081117 |
|
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: 20081212 |
|
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: 20081224 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120109 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130109 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 |
|
EXPY | Cancellation because of completion of term |