国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)庫的模式改變方法

      文檔序號:6415834閱讀:695來源:國知局
      專利名稱:數(shù)據(jù)庫的模式改變方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及執(zhí)行數(shù)據(jù)庫內(nèi)模式改變的方法。
      本發(fā)明特別涉及執(zhí)行復(fù)雜的模式改變的方法,而不管這一改變是軟改變還是硬改變。然而,應(yīng)該理解,本發(fā)明的方法同樣可以應(yīng)用于實現(xiàn)簡單模式改變。
      很久以來就知道使用數(shù)據(jù)庫中的表,它們以不同方式由不同事務(wù)處理連續(xù)地更新或改變。這種改變稱為模式改變。還有一些不導(dǎo)致模式改變的事務(wù)處理。
      模式指的是數(shù)據(jù)庫中表的主要配置。該種配置可以包括- 表的格式,亦即表的名稱,屬性,分段和不同的安全狀況;- 分配給不同表列的屬性,亦即該屬性可以存儲的信息類型;- 存在什么鍵字,亦即外部引用如何翻譯為內(nèi)部引用;- 發(fā)現(xiàn)什么樣的外來鍵字,亦即在各表之間不同連接的本質(zhì);- 發(fā)現(xiàn)什么樣的不同索引,亦即對表中不同屬性發(fā)現(xiàn)什么樣的搜索路徑;- 對一個表連接有什么樣的觸發(fā)器,亦即啟動,“觸發(fā)”,另一事件的特殊事件,使得表中數(shù)據(jù)的變化觸發(fā)另一表按照該變化和按照現(xiàn)有鍵字,或許是外來鍵字,更新。
      然而,術(shù)語模式隱含比上述更多的內(nèi)容,但是該術(shù)語的上述意義是將與本發(fā)明下述說明結(jié)合使用的某些意義。
      在分布式數(shù)據(jù)庫中,把不同的表分成多個不同的段。這樣的段依次又包含該表同樣部分的一些拷貝或復(fù)制。不同段及其各自的拷貝物理上在相互協(xié)同操作的計算機(jī)的一個系統(tǒng)的不同節(jié)點中找到。系統(tǒng)的可靠性通過散布屬于一個段的各種拷貝而改善,因為這使信息在該系統(tǒng)中某個地方可以使用,即使一個或者多個系統(tǒng)節(jié)點崩潰。
      因此,分布式數(shù)據(jù)庫內(nèi)的模式改變可以相對復(fù)雜,因為由模式改變影響的段的所有拷貝必須根據(jù)這一改變而更新。
      數(shù)據(jù)庫中模式改變基于不同條件,常常包括一些不同的參加者,引起模式改變產(chǎn)生不同表和/或,當(dāng)數(shù)據(jù)庫是分布式數(shù)據(jù)庫時,產(chǎn)生數(shù)據(jù)庫中一或多個表的不同部分、段中的改變。
      模式改變導(dǎo)致該數(shù)據(jù)庫所有用戶的條件的改變和這些用戶之間的事務(wù)處理的條件的改變。還可以提及不同的模式版本,其中,模式改變導(dǎo)致用第二模式版本替換第一模式版本。
      模式改變可以分為不同類型。首先,模式改變可以是“簡單的”或“復(fù)雜的”,其次,可以是“軟改變”或“硬改變”。這些改變特性彼此部分獨立。復(fù)雜模式改變既可以是硬改變,也可以是軟改變,而簡單模式改變總是軟改變。
      簡單模式改變只改變模式,而不改變受影響表內(nèi)的數(shù)據(jù)。復(fù)雜的模式改變既改變模式,也改變一個或者多個表中的數(shù)據(jù)。
      簡而言之,第一和第二模式版本在軟模式改變中互相兼容。然而,在硬模式改變的場合,第二模式版本與第一模式版本不兼容。
      兼容性指的是,根據(jù)第一模式版本的事務(wù)處理通過映射或一個函數(shù)可以更新根據(jù)第二模式版本的表中的數(shù)據(jù),而根據(jù)第二模式版本的事務(wù)處理通過映射或一個函數(shù)可以更新根據(jù)第一模式版本的表中的數(shù)據(jù)。
      這樣,前后模式版本彼此兼容的軟模式改變允許同時根據(jù)兩種模式版本執(zhí)行事務(wù)處理。
      在硬模式改變的場合,使可用來自第一模式版本的數(shù)據(jù)更新第二模式版本中的表或反過來執(zhí)行的映射或函數(shù)是不可逆的,換句話說,第一模式版本中的表不能用第二模式版本中的數(shù)據(jù)更新,反之亦然。
      這樣,影響受硬模式改變影響的單元的所有開始的事務(wù)處理必需在一個模式改變可以開始前根據(jù)第一模式版本結(jié)束。僅當(dāng)模式改變已經(jīng)完成,事務(wù)處理才可以按照第二模式版本開始。
      這樣,在結(jié)束正在進(jìn)行的事務(wù)處理和執(zhí)行所關(guān)心的模式改變占用的時間期間不能開始根據(jù)第二模式版本的事務(wù)處理。這些事務(wù)處理必須等待根據(jù)第一模式版本的事務(wù)處理和要執(zhí)行的模式改變結(jié)束,導(dǎo)致相當(dāng)大的時間損失。
      復(fù)雜的模式改變需要幾個階段,因為這些改變本質(zhì)上既影響數(shù)據(jù)也影響模式。復(fù)雜的模式改變包括一些相互順序的模式改變和事務(wù)處理。
      下述出版物說明涉及執(zhí)行模式改變方法的公知的技術(shù),還公開了在該領(lǐng)域遇到的各種問題。
      由R.J.Peters和M.T.Oezsu發(fā)表的“對象庫中的動態(tài)模式發(fā)展的公理化”,第11屆國際數(shù)據(jù)工程會議,1995年3月,156-164頁。
      由B.S.Lerner和A.N.Habermann發(fā)表的“超越模式發(fā)展到數(shù)據(jù)庫重組”,論文集,ACM OOOPSLA/ECOOP’90,67-76頁,渥太華,加拿大,1990年10月。
      由B.S.Lerner發(fā)表的“為復(fù)雜類型改變的類型發(fā)展支持”,技術(shù)報告UM-CS-94-71,馬薩諸塞州立大學(xué);Amherst,1994年10月31日。
      S.M.Clemen所著″模式發(fā)展和集成,分布式和并行數(shù)據(jù)庫″,第2卷,1994年1月1日,ISSN0926-8782。
      還應(yīng)該提到,在本領(lǐng)域中公知所謂的SAGA事務(wù)處理與數(shù)據(jù)庫的結(jié)合使用。在這一方面,有可能使用后繼第二事務(wù)處理執(zhí)行第一事務(wù)處理,第二事務(wù)處理將取消由第一事務(wù)處理引起的改變。
      至于在這一特定領(lǐng)域中較早的技術(shù)觀點,可以提到,當(dāng)改變一個計算機(jī)系統(tǒng)中的軟件時,公知與舊軟件并行安裝新軟件。
      隨著這一安裝,在舊軟件清除前可以評估或測試新軟件。如果測試表明新軟件不能滿意地工作,則可以將其清除,再次取舊軟件使用。如果測試表明新軟件能滿意地工作,則取用新軟件,清除舊軟件。US-A5410703給出這種方法的一個例子。
      當(dāng)考慮上述現(xiàn)有技術(shù)狀態(tài)時,可以看出,一個技術(shù)問題是為執(zhí)行數(shù)據(jù)庫內(nèi)復(fù)雜模式改變提供一種方法。
      另一技術(shù)問題是提供這樣一種方法,使用這種方法可以執(zhí)行復(fù)雜的模式改變,諸如復(fù)雜的軟模式改變或復(fù)雜的硬模式改變,而且該種方法能減少發(fā)生在復(fù)雜硬模式改變中由系統(tǒng)停止同時等待根據(jù)第一模式版本的事務(wù)處理的執(zhí)行完成和等待實際模式改變實現(xiàn)引起的時間損失。
      另一技術(shù)問題是使復(fù)雜模式改變分成不同階段,其中,各階段自身可以包括簡單的模式改變或表更新。
      另一技術(shù)問題在于提供一種方法,它考慮該模式改變是軟改變還是硬改變,但它在這兩種場合都工作。
      另一技術(shù)問題是提供一種方法,它允許在清除第一模式版本前相對于一個希望的功能評估第二模式版本。
      另一技術(shù)問題是提供一種方法,它能使新實現(xiàn)的軟件與結(jié)合新軟件的實現(xiàn)需要的模式改變結(jié)合起來評估,此時所述評估可以用作決定新軟件的實現(xiàn)及由此引起的模式改變是否應(yīng)實行的基礎(chǔ)。
      另一技術(shù)問題是提供一種方法,其中,當(dāng)發(fā)現(xiàn)第二模式版本不滿足需要時可以返回到第一模式版本。
      另一技術(shù)問題是提供處理復(fù)雜模式改變中的中斷的一種方法,其中,模式改變可以繼續(xù)或可以返回到原來的模式版本而不管該中斷。
      為了解決上述一個或者多個技術(shù)問題,本發(fā)明提供執(zhí)行數(shù)據(jù)庫中復(fù)雜模式改變的一種方法,諸如復(fù)雜模式改變在模式改變前的第一模式版本與模式改變后的第二模式版本兼容的復(fù)雜軟模式改變,或者在所述模式改變前的第一模式版本與所述模式改變后的第二模式版本不兼容的復(fù)雜硬模式改變。
      特別建議,這種模式改變的執(zhí)行分成一些階段。
      為給不同復(fù)雜模式改變提供一種通用方法,本發(fā)明建議可以把一個復(fù)雜模式改變分成3個階段。
      第一階段包括準(zhǔn)備階段,它包括為開始根據(jù)第二模式版本的事務(wù)處理建立條件,同時為完成根據(jù)第一模式版本的事務(wù)處理保持條件。
      為了從第一模式版本向第二模式版本傳輸數(shù)據(jù),第二階段包括掃描階段,它包括將根據(jù)第一模式版本的數(shù)據(jù)傳輸?shù)礁鶕?jù)第二模式版本的數(shù)據(jù)。
      整個模式改變由第三階段結(jié)束,它包括一個結(jié)束階段,該階段包括清除在該模式改變完成后不應(yīng)再保留的那些單元。
      為能夠評估第二模式版本的功能和返回第一模式版本的目的,本發(fā)明建議,可以在掃描階段和結(jié)束階段之間使用兩個中間階段。
      第一中間階段包括一個評估階段,其中,按照第二模式版本執(zhí)行某些評估事務(wù)處理,以之評估所述第二模式版本的功能。
      跟隨該階段的是第二中間階段,它包括決定階段,在其中決定所述模式改變是完成還是放棄,這一決定根據(jù)評估階段的結(jié)果作出。
      當(dāng)復(fù)雜模式改變是軟模式改變且目的是使第一和第二模式版本并行操作時,建議準(zhǔn)備階段包括應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,以之使第二模式版本可以根據(jù)影響第一模式版本的事務(wù)處理更新,以及應(yīng)用觸發(fā)器、鍵字、外來鍵字和/或索引,以之使第一模式版本可以根據(jù)影響第二模式版本的事務(wù)處理更新。
      在這一場合,評估事務(wù)處理可以是根據(jù)第二模式版本的普通事務(wù)處理。
      如果該改變是軟模式改變的話,可以允許根據(jù)第二模式版本的普通事務(wù)處理在數(shù)據(jù)傳輸完成后立即開始,或當(dāng)中間階段被選擇時,立即決定完成在決定階段的模式改變,即使根據(jù)第一模式版本的事務(wù)處理仍在進(jìn)行。
      當(dāng)復(fù)雜模式改變是復(fù)雜硬模式改變時,本發(fā)明建議,準(zhǔn)備階段包括應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,以之使第二模式版本可以根據(jù)影響第一模式版本的事務(wù)處理更新,或者應(yīng)用觸發(fā)器、鍵字、外來鍵字和/或索引,以之使第一模式版本可以根據(jù)影響第二模式版本的事務(wù)處理更新,這取決于根據(jù)在兩種模式版本之間的主要兼容性可以傳輸數(shù)據(jù)的方向。
      由于第一和第二模式版本彼此不兼容,因此本發(fā)明建議,評估事務(wù)處理包括特別設(shè)計的控制事務(wù)處理,它們可以根據(jù)第二模式版本執(zhí)行,而對第一模式版本沒有有害影響。
      在這一特定場合,允許在根據(jù)第一模式版本的所有事務(wù)處理完成后立即開始根據(jù)第二模式版本的普通事務(wù)處理,而且如果選擇中間階段的話,立即在決定階段作出完成該模式改變的決定。
      在根據(jù)第一模式版本的所有事務(wù)處理完成后,并且如果選擇中間階段的話,根據(jù)在決定階段關(guān)于完成該模式改變得出的決定開始結(jié)束階段,而不管該模式改變是硬改變或軟改變。
      結(jié)束階段還包括清除模式改變后主導(dǎo)模式版本不使用的所有觸發(fā)器、鍵字、外來鍵字、索引和/或其它單元。
      為能夠?qū)崿F(xiàn)的軟件進(jìn)行評估,本發(fā)明建議,在實現(xiàn)新軟件時需要的模式改變與該實現(xiàn)并行進(jìn)行。
      根據(jù)本發(fā)明的一個實施例,當(dāng)檢驗新軟件時使用由該新軟件在模式改變的評估階段作為評估事務(wù)處理產(chǎn)生的事務(wù)處理。
      在評估階段獲得的結(jié)果用作決定新軟件的實現(xiàn)是否進(jìn)行到底的基礎(chǔ),還用作決定該模式改變是否應(yīng)完成。
      為能在中斷事件下恢復(fù)第一模式版本或者完成模式改變,本發(fā)明建議,模式改變包括在所謂的SAGA表中存儲信息。
      根據(jù)本發(fā)明,這一信息包括UNDO信息和REDO信息兩種,UNDO信息包括在準(zhǔn)備、掃描、評估或決定階段由于任何原因放棄模式改變的場合下重新建立第一模式版本需要的信息,而REDO信息包括在結(jié)束階段由于某種原因在放棄模式改變的場合下進(jìn)行到底或完成該模式改變需要的信息。
      根據(jù)本發(fā)明的一個實施例,準(zhǔn)備階段包括存儲必要的UNDO信息,而掃描階段或,當(dāng)選擇中間階段的話,決定階段包括存儲必要的REDO信息。
      主要由本發(fā)明的方法提供的優(yōu)點在于,執(zhí)行復(fù)雜的模式改變的可能性,而不管這些改變是軟改變還是硬改變,其中,模式改變和在某些場合下根據(jù)第二模式版本的事務(wù)處理可以在根據(jù)第一模式版本的所有事務(wù)處理結(jié)束前開始。實際上,在根據(jù)第一模式版本的事務(wù)處理結(jié)束前除結(jié)束階段外可以執(zhí)行完全的模式改變,相對于必須等待根據(jù)第一模式版本的所有事務(wù)處理在模式改變可以開始之前結(jié)束的場合,它提供了明顯的時間增益。
      本發(fā)明提供的另一優(yōu)點是,可以在第一模式版本丟失前評估第二模式版本。本發(fā)明還能夠使在對第二模式版本的評估表明該版本不能滿意工作時返回到第一模式版本。
      本發(fā)明還允許模式改變被完成或放棄,和在該模式改變偶然中斷的事件下,諸如在存儲或處理受該模式改變影響的表的硬件崩潰的事件下,返回到第一模式版本。
      本發(fā)明的方法的主要特征在下面權(quán)利要求1的特征部分中敘述。
      為更容易理解本發(fā)明和使其另外的特征更為明顯,參考本發(fā)明的示范性實施例以及附圖詳細(xì)說明本發(fā)明,其中,

      圖1是說明本發(fā)明方法的流程圖;圖2是對與軟模式改變的一個例子關(guān)聯(lián)的第一和第二模式版本的概要說明;圖3是根據(jù)圖2的模式改變部分執(zhí)行的概要說明,并表示對一個外來表的處理;圖4概要說明根據(jù)圖2的模式改變的可能結(jié)果;圖5是對與硬模式改變的一個例子關(guān)聯(lián)的第一和第二模式版本的概要說明;圖6是根據(jù)圖5的模式改變的部分執(zhí)行的概要說明;圖7是對根據(jù)圖5的模式改變的可能結(jié)果的概要說明;
      圖8是說明組合的模式改變和軟件改變的流程圖;以及圖9概要說明根據(jù)本發(fā)明的SAGA表。
      參考圖1的流程圖,說明根據(jù)本發(fā)明的方法。
      根據(jù)這一方法的模式改變引起第一模式版本改變?yōu)榈诙J桨姹尽H鐖D1所示,通過把該改變分成一些階段1、2、3、4、5,執(zhí)行該模式改變。
      根據(jù)本發(fā)明的概念,復(fù)雜模式改變分成3個階段1、2、3。可以允許該方法包括兩個另外的中間階段4、5,以使在清除第一模式版本前評估第二模式版本。
      只使用3個基本階段1、2、3在某些場合提供更快的方法,雖然會增加不確定性,因為只使用3個基本階段不能使第二模式版本在取用前評估。另外,在某些硬模式改變的場合,可能很難使用兩個中間階段。
      第一階段1是準(zhǔn)備階段,其中產(chǎn)生能使根據(jù)第二模式版本的事務(wù)處理開始的條件,同時保持允許根據(jù)第一模式版本的事務(wù)處理繼續(xù)的條件。
      第二階段是掃描階段,它包括將根據(jù)第一模式版本的數(shù)據(jù)傳輸?shù)礁鶕?jù)第二模式版本的數(shù)據(jù)。
      第三階段是結(jié)束階段,它包括清除在完成模式改變后不應(yīng)留下的那些單元。
      上述階段1、2、3是3個基本階段。
      第一中間階段4是評估階段,它可在6選擇,雖然它不是絕對必需。該階段是兩個中間階段中的第一個,包括執(zhí)行根據(jù)第二模式版本的某些評估事務(wù)處理,從而對所述第二模式版本的功能進(jìn)行評估。
      在模式改變中,第二模式版本可以評估到不同程度,取決于什么是可能的和希望的。
      在某些軟模式改變中,有可能執(zhí)行總系統(tǒng)測試,它包括執(zhí)行一些評估事務(wù)處理,從而評估不同用戶的功能及其可能的需求。
      有可能包括較少數(shù)目的特定事務(wù)處理的功能測試便已足夠。
      在某些硬模式改變的場合,可能只能執(zhí)行簡單的基本測試,或者全然不能執(zhí)行測試,取決于在第二模式版本中可以執(zhí)行的評估事務(wù)處理,而不在兩個模式版本之間產(chǎn)生不一致的程度。
      當(dāng)在6選擇評估階段4時執(zhí)行第二中間階段5,它為決定階段,其中決定該模式改變是完成還是放棄。該決定基于來自評估階段4的結(jié)果。
      當(dāng)復(fù)雜的模式改變是軟改變時,本發(fā)明建議,準(zhǔn)備階段1包括應(yīng)用不同觸發(fā)器、鍵字、外來鍵字和/或索引。
      這些觸發(fā)器和鍵字使第二模式版本能根據(jù)影響第一模式版本的事務(wù)處理更新。還應(yīng)用觸發(fā)器、鍵字、外來鍵字和/或索引,使第一模式版本能根據(jù)影響第二模式版本的事務(wù)處理更新。
      這意味著,根據(jù)一種模式版本的事務(wù)處理將觸發(fā)根據(jù)該事務(wù)處理和所應(yīng)用的鍵字的另一模式版本的更新,而不管觸發(fā)事務(wù)處理是根據(jù)第一模式版本還是根據(jù)第二模式版本。
      根據(jù)只使用3個基本階段的概念,可以允許根據(jù)第二模式版本的普通事務(wù)處理在掃描階段2已經(jīng)執(zhí)行后立即開始,亦即當(dāng)數(shù)據(jù)從第一模式版本已經(jīng)傳輸?shù)降诙J桨姹緯r,即使根據(jù)第一模式版本的事務(wù)處理可能仍然在進(jìn)行。
      當(dāng)復(fù)雜的模式改變是硬模式改變時,本發(fā)明建議,準(zhǔn)備階段1包括應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,它使第二模式版本能根據(jù)影響第一模式版本的事務(wù)處理更新,或者應(yīng)用觸發(fā)器、鍵字、外來鍵字和/或索引,使第一模式版本可以根據(jù)影響第二模式版本的事務(wù)處理更新。
      在這一場合,鍵字只能在一個方向作用,因為在兩個模式版本之間缺少兼容性。
      在硬模式改變的場合,允許根據(jù)第二模式版本的普通事務(wù)處理在根據(jù)第一模式版本的所有事務(wù)處理一旦完成后開始。
      當(dāng)根據(jù)第一模式版本的所有事務(wù)處理已經(jīng)完成時開始結(jié)束階段,而不管該模式改變是硬改變還是軟改變。
      當(dāng)在軟模式改變中使用兩個中間階段4、5時,本發(fā)明建議,評估事務(wù)處理可以包括對根據(jù)第二模式版本的普通事務(wù)處理的選擇。
      然后允許根據(jù)第二模式版本的普通事務(wù)處理在決定階段5已作出要完成模式改變的決定時立即開始,即使根據(jù)第一模式版本的事務(wù)處理仍在進(jìn)行。
      當(dāng)在硬模式改變中使用兩個中間階段4、5時,本發(fā)明建議,評估事務(wù)處理是特別設(shè)計的控制事務(wù)處理,其設(shè)計為根據(jù)第二模式版本執(zhí)行,不對第一模式版本或數(shù)據(jù)庫產(chǎn)生有害影響。
      無有害影響指得是,在兩個模式版本之間不出現(xiàn)不一致,意味著必須以這樣的方式配置控制事務(wù)處理,使得盡管執(zhí)行所述控制事務(wù)處理,但在這兩個模式版本內(nèi)的信息相等或一致。
      然后允許根據(jù)第二模式版本的普通事務(wù)處理在評估階段5作出繼續(xù)該模式改變的決定和根據(jù)第一模式版本的所有事務(wù)處理完成時立即開始。
      本發(fā)明還建議,當(dāng)使用兩個中間階段4、5時,結(jié)束階段3根據(jù)在決定階段5作出的決定開始,而且如果該決定是完成模式改變,則在根據(jù)第一模式版本的所有事務(wù)處理已經(jīng)完成后執(zhí)行這一改變。
      不管是否使用這兩個中間階段,也不管在決定階段可能作出的任何決定,當(dāng)模式改變完成后,清除第二模式版本不用的任何觸發(fā)器、鍵字、外來鍵字、索引和/或其它單元,而在決定階段包括當(dāng)模式改變被中斷或者放棄時清除第一模式版本不用的任何觸發(fā)器、鍵字、外來鍵字、索引和/或其它單元。
      為使本發(fā)明更容易理解,現(xiàn)在說明模式改變和這些模式改變可以如何分成根據(jù)上述的不同階段的一些具體例子。
      第一個例子通過圖2說明,它包括豎直劃分具有10個屬性的表A1為分別具有6個和4個屬性的兩個表B1、B2,劃分前組成第一模式版本A,劃分后組成第二模式版本B,其中舊表A1中的頭6個屬性形成第一新表B1,舊表A1中后4個屬性形成第二新表B2。這是一個復(fù)雜軟模式改變。
      上述改變可以以不同方式執(zhí)行,下面的說明僅涉及這樣的模式改變可以如何根據(jù)本發(fā)明執(zhí)行的一個例子。
      準(zhǔn)備階段1如圖3所示,該準(zhǔn)備階段包括導(dǎo)致產(chǎn)生具有4個屬性的完全新的空表B2的模式改變。
      具有10個屬性的舊表A1保持不動。這是一個軟模式改變。
      從舊表A1向新建立的表B2傳輸數(shù)據(jù)需要的觸發(fā)器和鍵字AB1、AB2、AB3、…、ABn在舊表A1中建立,它們是通過相對于根據(jù)第一模式版本A的舊表的事務(wù)處理更新新建立的表B2的另一屬性AB建立的。
      在實踐中,這一另外的屬性AB可以包括幾個不同的屬性,雖然它在圖中為簡單起見表示為單一屬性。產(chǎn)生這些屬性的方式對熟悉本技術(shù)領(lǐng)域的人十分明顯。對在下面說明的以相同方式產(chǎn)生的其它附加屬性同樣適用。
      通過新建立的表B2中的附加屬性BA也產(chǎn)生相對于根據(jù)第二模式版本B的新表B2的事務(wù)處理更新舊表A1所需要的觸發(fā)器和鍵字BA1、BA2、BA3、…、BAn。
      舊表A1中的前6個屬性也形成新表B1中的6個屬性。這意味著對于在舊表A1的前6個屬性和第一新表B1之間的更新不需觸發(fā)器和鍵字,因為根據(jù)第二模式版本B的將要影響第一新表B1的事務(wù)處理將直接作用于舊表A1中的前6個屬性,以及因為根據(jù)第一模式版本A的將要影響舊表A1中的前6個屬性的事務(wù)處理將直接作用于第一新表B1。
      給在現(xiàn)有表A1中的每一行分配一個檢驗標(biāo)記A1f,它設(shè)定為“0”,并在該行中根據(jù)第一模式版本A的信息傳輸?shù)降诙J桨姹綛時改變?yōu)椤?”。
      該檢驗標(biāo)記也可以在從各行傳輸信息到第二模式版本B之前通過設(shè)定在屬性AB中的鍵字AB1、AB2、AB3、…、ABn為“空”實現(xiàn),之后,結(jié)合傳輸各行,設(shè)定各鍵字AB1、AB2、AB3、…、ABn指向表B2中的正確行。
      這樣,一特定行的具有值“空”的來自屬性AB的指針表示,從舊表A1到新建立的表B2的預(yù)定給新建立的表B2的相應(yīng)行的信息尚未傳輸,以及在新建立的表B2中的相應(yīng)行在改變舊表A1中的該行時不應(yīng)更新。
      掃描階段2掃描舊表A1中的后4個屬性,并根據(jù)應(yīng)用的鍵字AB1、AB2、AB3、…、ABn傳輸相關(guān)信息到第二新表B2,并在使用時把檢驗標(biāo)記A1f從“0”設(shè)定為“1”。
      第二新表B2根據(jù)按照第一模式版本仍在進(jìn)行的并且涉及舊表A1中的后4個屬性的事務(wù)處理繼續(xù)更新。當(dāng)掃描和信息傳輸完成時,可以允許根據(jù)第二模式版本B的事務(wù)處理開始,而與尚未完成的根據(jù)第一模式版本A的事務(wù)處理并行,此時,涉及4個屬性的事務(wù)處理對第二新表B2執(zhí)行,而涉及新表B1中的6個屬性的事務(wù)處理對舊表A1中的前6個屬性執(zhí)行。
      當(dāng)允許根據(jù)第二模式版本B的事務(wù)處理開始時,舊表A1通過在新建立的表B2中的屬性BA中的鍵字BA1、BA2、BA3、…、BAn相對于影響新建立的第二表B2的事務(wù)處理更新。
      這樣,在兩個模式版本A、B之間獲得了一致,可以獲得正確的數(shù)據(jù)來保證舊表A1將為涉及舊表A1中的后4個屬性且可能仍未完成的根據(jù)第一模式版本的事務(wù)處理包含正確數(shù)據(jù)。
      評估階段4允許有限數(shù)目的根據(jù)第二模式版本的事務(wù)處理開始,以便確認(rèn)第二模式版本是否正確工作。
      決定階段5在第二模式版本正確工作時做出完成該模式改變或?qū)⑵溥M(jìn)行到底的決定。不正確的工作產(chǎn)生放棄該模式改變的決定。
      當(dāng)做出完成模式改變的決定時,允許根據(jù)第二模式版本B的普通事務(wù)處理在剩余的根據(jù)第一模式版本A的事務(wù)處理完成的同一時間發(fā)生。
      當(dāng)做出放棄模式改變的決定時,完成正在進(jìn)行的根據(jù)第一模式版本A的事務(wù)處理,而不開始根據(jù)第二模式版本B的任何普通事務(wù)處理。
      結(jié)束階段3當(dāng)在決定階段5做出完成模式改變的決定時,等待結(jié)束所有正在進(jìn)行的根據(jù)第一模式版本A的事務(wù)處理。舊表A1中不在第二模式版本B中使用的部分,亦即后4個屬性,根據(jù)圖4去除。
      如果在決定階段5做出放棄該模式改變的決定,則清除新建立的表B2,保持舊表A1不動。不需等待所有正在進(jìn)行的根據(jù)第一模式版本A的事務(wù)處理結(jié)束執(zhí)行這一點。
      不管在決定階段5所做出的任何決定,清除為更新在涉及不同表的事務(wù)處理中的各自表中所建立的另外屬性AB、BA中的所有檢驗標(biāo)志A1f、觸發(fā)器和鍵字。
      這樣,把豎直劃分表的復(fù)雜軟模式改變分為5個階段,其中第一和最后階段是簡單模式改變,第二階段僅包括信息傳輸,而第三和第四階段檢驗第二模式版本,它允許根據(jù)第一和第二模式版本A、B兩者的事務(wù)處理被同時處理。
      第二個例子用在一個表中的屬性改變來說明,它可以是一個復(fù)雜的硬模式改變。在圖示例子中,實際上,這一改變是一個復(fù)雜的硬模式改變。
      圖5表示一個表,它包括屬性A′1和另一屬性A′2,前者指示不同人的小時工資,后者指示各人在1個月內(nèi)工作的小時數(shù)。這是第一模式版本A′。
      要做的改變包括用指示各人月薪或月工資的屬性B′替換這兩個屬性A′1、A′2。這是第二模式版本B′。
      該例包括從第一模式版本A′向第二模式版本B′轉(zhuǎn)換函數(shù)“f”。該函數(shù)“f”是“月薪”=“小時工資”*“小時數(shù)”。
      在該例中,不存在傳輸?shù)诙J桨姹綛′中的信息亦即“月薪”B′1到第一模式版本A′,亦即分別為“小時工資”A′1和“小時數(shù)”A′2的可能性,因為不知道“月薪”B′1的改變是由于“小時工資”A′1的改變引起還是“小時數(shù)”A′2的改變引起,或是由兩者引起。
      因此,這兩個模式版本彼此不兼容,從而其模式改變是硬模式改變。
      在該例中,圖中只表示出所涉及的屬性。然而應(yīng)該理解,這些屬性是或可能是包括若干屬性的表的一部分。
      準(zhǔn)備階段1圖6表示在現(xiàn)有表中如何產(chǎn)生屬性B′1,該屬性由根據(jù)第二模式版本B′的新屬性“月薪”構(gòu)成。產(chǎn)生觸發(fā)器A′B′1,以之使在屬性“小時工資”A′1和“小時數(shù)”A′2的任何行中的改變也導(dǎo)致在相應(yīng)行中屬性“月薪”B′1的更新。
      掃描階段2該階段包括掃描各行中在屬性“小時工資”A′1和“小時數(shù)”A′2中的信息,之后,在屬性“月薪”B′1中通過建立的函數(shù)“f”和觸發(fā)器A′B′1的媒介放置正確的信息。這在根據(jù)第一模式版本A′的所有事務(wù)處理完成前開始。
      評估階段4開始根據(jù)第二模式版本B′的專用評估事務(wù)處理。這些事務(wù)處理一定不能對根據(jù)第一模式版本A′的信息有害,換句話說,它們一定不能產(chǎn)生數(shù)據(jù)庫中的錯誤,諸如在這兩個模式版本A′、B′之間的不一致。
      一個這樣的評估事務(wù)處理可以是在屬性“月薪”B′1中插入打算根據(jù)第二模式版本B′被插入的當(dāng)前的、正確的月薪?!霸滦健盉′1的值對于“小時工資”A′1和“小時數(shù)”A′2的相應(yīng)值要正確,以便在兩個模式版本A′、B′中的信息都正確。
      從而可以看到,在掃描階段中從第一模式版本A′向第二模式版本B′的信息傳輸包括多個評估事務(wù)處理。
      該例通過評估事務(wù)處理只提供第二模式版本B′的有限測試功能。
      決定階段5當(dāng)確認(rèn)正確的功能時做出完成該模式改變的決定。不正確的功能產(chǎn)生放棄該模式改變的決定。
      當(dāng)做出完成模式改變的決定時,允許根據(jù)第二模式版本B′的普通事務(wù)處理在根據(jù)第一模式版本A的所有事務(wù)處理一完成時即開始。
      如果做出放棄模式改變的決定,繼續(xù)正在進(jìn)行的根據(jù)第一模式版本A′的事務(wù)處理,而不開始根據(jù)第二模式版本B′的任何事務(wù)處理。
      結(jié)束階段3當(dāng)在決定階段5做出完成模式改變的決定時,等待結(jié)束所有正在進(jìn)行的根據(jù)第一模式版本A’的事務(wù)處理。這樣在事務(wù)處理繼續(xù)根據(jù)第一模式版本A’進(jìn)行時,同時執(zhí)行所有前述過程,而不管總模式改變是硬模式改變。
      當(dāng)結(jié)束根據(jù)第一模式版本的事務(wù)處理時,開始根據(jù)第二模式版本B’的普通事務(wù)處理。從圖7可明顯看出,清除在第二模式版本B’中不用的屬性“小時工資”A’1和“小時數(shù)”A’2。
      如果在決定階段5做出放棄該模式改變的決定,則清除新建立的屬性B’1。不需等待結(jié)束正在進(jìn)行的根據(jù)第一模式版本A’的事務(wù)處理便執(zhí)行這一點。
      不管在決定階段5所做出的任何決定,清除為更新在事務(wù)處理中影響屬性“小時工資”A’1和“小時數(shù)”A’2的屬性“月薪”B1而建立的所有觸發(fā)器A’B’1。
      這樣,把前述復(fù)雜硬模式改變分為5個階段,其中第一和最后階段是簡單模式改變,第二階段僅包括信息傳輸,所述階段允許根據(jù)第一模式版本A’的事務(wù)處理和第二模式版本B’的提前實現(xiàn)同時執(zhí)行。
      上面,參考兩個例子說明模式改變,其中只敘述了由該模式改變直接影響的表。然而,從圖3可以看出,模式改變也可以影響除由該模式改變直接影響的表之外的表,所謂的外來表,由于它們與由該模式改變直接影響的一張或多張表以某種方式協(xié)同作用。這種協(xié)同作用賴以發(fā)生的鍵字稱為外來鍵字。
      在上述根據(jù)軟模式改變且示于圖2、3和4中的例子中,這一協(xié)同作用在于,在外來表C1中的一個元素的改變也導(dǎo)致根據(jù)第一模式版本的舊表A1的改變,其中在外來表C1中的改變還導(dǎo)致在第一新表B1和第二新表B2兩者中的改變。
      根據(jù)第一模式版本A提供的在屬性CA中的外來鍵字CA4是連接外來鍵字C1與舊表A1的鏈路。
      除上述觸發(fā)器和鍵字外,在模式改變的準(zhǔn)備階段還產(chǎn)生能使外來表C1和第二新表B2相互協(xié)同作用的觸發(fā)器和外來鍵字CB4。外來表C1還與第一新表B1通過屬于屬性CA的外來鍵字協(xié)同作用。
      為簡單起見,只表示出各屬性CA和CB中的第四外來鍵字。然而應(yīng)該理解,這些屬性包括為前述協(xié)同作用所需要的所有鍵字。
      取決于該模式改變是否完成,在結(jié)束階段清除不為改變后所用模式版本使用的外來鍵字。
      關(guān)于如何處理外來表和外來鍵字的說明僅作為例子給出。十分明顯,這一處理過程將隨不同模式改變變化很大。還可以在諸如上述例子的同一例子中以不同方式執(zhí)行。
      因為模式改變還影響數(shù)據(jù)庫的不同應(yīng)用,同步數(shù)據(jù)庫中的或者數(shù)據(jù)庫用戶的軟件或新軟件的實現(xiàn)的可能改變與模式改變是適宜的。
      圖8的流程圖意在表示軟件改變Y是如何與模式改變X并行執(zhí)行的。
      模式改變X包括從第一模式版本A″到第二模式版本B″的改變,并從準(zhǔn)備階段X1和掃描階段X2開始。軟件改變Y的初始階段Y1在同一時間開始,該階段包括足以評估這一改變的軟件的實現(xiàn)。
      然后開始評估階段XY1,并由新軟件Y產(chǎn)生使用第二模式版本B″的事務(wù)處理,組成評估階段XY1中的評估事務(wù)處理。
      在評估階段XY1執(zhí)行的評估包括第二模式版本B″和新軟件Y兩者以及它們的相互協(xié)同作用的評估。
      在決定階段XY2根據(jù)在評估階段XY1獲得的結(jié)果決定新軟件Y的實現(xiàn)是否要完成。
      根據(jù)在決定階段XY2做出的決定,在結(jié)束階段X3、Y2要么完成模式改變X和軟件改變Y,要么終止它們。
      本發(fā)明還提供一個優(yōu)選實施例,其中,模式改變包括在所謂SAGA表中的信息的存儲。
      如圖9所示,SAGA表由一個數(shù)據(jù)庫表S1組成,它包括能使一個模式改變完成或在分布式數(shù)據(jù)庫中受一個模式改變影響的一個或多個節(jié)點崩潰的事件下放棄的信息。
      根據(jù)本發(fā)明,SAGA表S1還可以用于非分布式數(shù)據(jù)庫,以提供完成模式改變或在該模式改變期間硬件故障的事件下復(fù)位數(shù)據(jù)庫到第一模式版本的同樣的可能性。
      SAGA表S1的目的是能使模式改變以和根據(jù)現(xiàn)有技術(shù)的SAGA事務(wù)處理的實現(xiàn)類似的方式實現(xiàn)模式改變。然而,與模式改變結(jié)合的實現(xiàn)較為復(fù)雜,由于模式改變包括一系列事務(wù)處理,它們可以導(dǎo)致數(shù)據(jù)和模式兩者不同的改變。
      SAGA表S1包含的信息由UNDO信息S1U和REDO信息S1R組成,其中,UNDO信息S1U包括在準(zhǔn)備階段1或掃描階段2、也可能在評估階段4或者決定階段5由于某種原因中斷該模式改變的事件下復(fù)位第一模式版本A所需要的信息,REDO信息包括如果由于某種原因在結(jié)束階段3中斷該模式改變,而為完成該模式改變所需要的信息。
      模式改變的中斷可以是計劃的中斷,例如由于對第二模式版本的評估表示該版本不能滿意工作而決定不完成該模式改變。
      中斷或者終止也可以是非計劃的,它由例如在分布式數(shù)據(jù)庫中受該模式改變影響的一個節(jié)點的故障引起,或者由在非分布式數(shù)據(jù)庫中的硬件故障引起。
      如果只使用3個基本階段的話,本發(fā)明建議,準(zhǔn)備階段1包括存儲REDO信息S1R,掃描階段2包括存儲UNDO信息S1U。
      另一方面,如果還使用兩個中間階段的話,則建議準(zhǔn)備階段1包括存儲REDO信息S1R和在評估階段5包括存儲UNDO信息S1U。
      根據(jù)本發(fā)明,SAGA表S1還可以在結(jié)合安全拷貝更新任何再生拷貝或全再生數(shù)據(jù)庫中使用。
      應(yīng)該理解,本發(fā)明不限制于前述和圖示示范性實施例,可以在下述權(quán)利要求定義的發(fā)明概念的范圍內(nèi)進(jìn)行修改。
      權(quán)利要求
      1.執(zhí)行數(shù)據(jù)庫中模式改變諸如復(fù)雜軟模式改變或復(fù)雜硬模式改變的一種方法,在軟模式改變中,在該模式改變前的第一模式版本與在該模式改變后的第二模式版本兼容,而在硬模式改變中,所述模式改變前的第一模式版本與所述模式改變后的第二模式版本不兼容,其特征在于,劃分模式改變過程為若干階段。
      2.根據(jù)權(quán)利要求1的方法,其特征在于,劃分復(fù)雜模式改變?yōu)?個階段,其中- 第一階段,準(zhǔn)備階段,包括建立能使根據(jù)所述第二模式版本的事務(wù)處理開始的條件,同時保持能使根據(jù)所述第一模式版本的事務(wù)處理繼續(xù)的條件,該第一階段是簡單模式改變;- 第二階段,掃描階段,包括傳輸根據(jù)所述第一模式版本的數(shù)據(jù)到根據(jù)所述第二模式版本的數(shù)據(jù);以及其中- 第三階段,結(jié)束階段,包括清除在模式改變完成后不應(yīng)存在的那些單元,它為簡單模式改變。
      3.根據(jù)權(quán)利要求2的方法,其中,所述復(fù)雜模式改變是復(fù)雜軟模式改變,其特征在于,所述準(zhǔn)備階段包括應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,使所述第二模式版本可以相對于影響所述第一模式版本的事務(wù)處理更新,以及包括應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,使所述第一模式版本可以相對于影響所述第二模式版本的事務(wù)處理更新。
      4.根據(jù)權(quán)利要求3的方法,其特征在于,允許根據(jù)所述第二模式版本的事務(wù)處理在所述數(shù)據(jù)傳輸完成后立即開始,即使根據(jù)所述第一模式版本的事務(wù)處理仍應(yīng)繼續(xù)。
      5.根據(jù)權(quán)利要求2的方法,其中,所述復(fù)雜模式改變是復(fù)雜硬模式改變,其特征在于,所述準(zhǔn)備階段包括應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,使所述第二模式版本可以根據(jù)影響所述第一模式版本的事務(wù)處理更新,或應(yīng)用不同的觸發(fā)器、鍵字、外來鍵字和/或索引,使所述第一模式版本可以根據(jù)影響所述第二模式版本的事務(wù)處理更新。
      6.根據(jù)權(quán)利要求5的方法,其特征在于,允許根據(jù)所述第二模式版本的事務(wù)處理在根據(jù)所述第一模式版本的所有事務(wù)處理已經(jīng)完成后立即開始。
      7.根據(jù)權(quán)利要求2的方法,其特征在于,所述結(jié)束階段在根據(jù)所述第一模式版本的所有事務(wù)處理完成后開始。
      8.根據(jù)權(quán)利要求2的方法,其特征在于,所述復(fù)雜模式改變包括另外兩個階段;所述這兩個階段位于所述掃描階段和所述結(jié)束階段之間,其中- 第一中間階段,評估階段,包括執(zhí)行根據(jù)所述第二模式版本的某些評估事務(wù)處理,從而能評估所述第二模式版本的功能;以及其中- 第二中間階段,決定階段,包括決定模式改變應(yīng)完成還是中斷,這一決定根據(jù)所述第三評估階段的結(jié)果做出。
      9.根據(jù)權(quán)利要求3和8的方法,其特征在于,所述評估事務(wù)處理是專門配置的控制事務(wù)處理。
      10.根據(jù)權(quán)利要求3和8的方法,其特征在于,所述評估事務(wù)處理是根據(jù)所述第二模式版本的普通事務(wù)處理。
      11.根據(jù)權(quán)利要求3和8的方法,其特征在于,允許根據(jù)所述第二模式版本的普通事務(wù)處理在所述決定階段做出完成所述模式改變的決定后立即開始,即使根據(jù)所述第一模式版本的事務(wù)處理仍在繼續(xù)。
      12.根據(jù)權(quán)利要求5和8的方法,其特征在于,所述評估事務(wù)處理是專門配置的控制事務(wù)處理,它們可以根據(jù)所述第二模式版本執(zhí)行而對所述第一模式版本無有害影響。
      13.根據(jù)權(quán)利要求5和8的方法,其特征在于,允許根據(jù)所述第二模式版本的普通事務(wù)處理在所述評估階段做出要完成所述模式改變的決定和在根據(jù)所述第一模式版本的所有事務(wù)處理已經(jīng)完成后立即開始。
      14.根據(jù)權(quán)利要求8的方法,其特征在于,所述結(jié)束階段根據(jù)在所述評估階段做出的決定、且如果所述決定是要完成所述模式改變,在根據(jù)所述第一模式版本的所有事務(wù)處理已經(jīng)完成后開始。
      15.根據(jù)權(quán)利要求3或5的方法,其特征在于,當(dāng)所述模式改變被執(zhí)行時,所述結(jié)束階段包括清除不由所述第二模式版本使用的任何觸發(fā)器、鍵字、外來鍵字、索引和/或其它單元;當(dāng)所述模式改變要被放棄時,所述結(jié)束階段包括清除不由所述第一模式版本使用的任何觸發(fā)器、鍵字、外來鍵字、索引和/或其它單元。
      16.根據(jù)權(quán)利要求8的方法,其與軟件改變相結(jié)合,所述軟件改變中當(dāng)前軟件要由新軟件替換,或者無較早對應(yīng)軟件的新軟件將在所述數(shù)據(jù)庫中或由所述數(shù)據(jù)庫的用戶實現(xiàn),其特征在于,所述模式改變與所述軟件改變同步;由所述新軟件產(chǎn)生的事務(wù)處理組成所述評估事務(wù)處理;在所述評估階段中的評估包括評估所述第二模式版本、評估所述新軟件和評估它們的相互協(xié)同作用;和根據(jù)從所述評估階段得到的結(jié)果做出是否要實現(xiàn)所述新軟件和執(zhí)行所述模式改變的決定。
      17.根據(jù)權(quán)利要求2或8的方法,其特征在于,所述模式改變包括存儲信息到SAGA表中;所述信息既包括UNDO信息,也包括REDO信息,其中所述UNDO信息包括在準(zhǔn)備階段或掃描階段、也可能在評估階段或者決定階段由于某種原因中斷或放棄該模式改變的事件下復(fù)位所述第一模式版本所需要的信息,以及所述REDO信息包括如果由于某種原因在所述結(jié)束階段中斷或放棄該模式改變的事件下為完成該模式改變所需要的信息。
      18.根據(jù)權(quán)利要求2和17的方法,其特征在于,所述準(zhǔn)備階段包括存儲所述UNDO信息,而所述掃描階段包括存儲所述REDO信息。
      19.根據(jù)權(quán)利要求8和17的方法,其特征在于,所述準(zhǔn)備階段包括存儲所述UNDO信息,而所述評估階段包括存儲所述REDO信息。
      全文摘要
      本發(fā)明涉及執(zhí)行數(shù)據(jù)庫中模式改變的方法,其中模式改變是復(fù)雜模式改變,諸如復(fù)雜軟模式改變,它導(dǎo)致在該模式改變前的第一模式版本與在該模式改變后的第二模式版本兼容;或復(fù)雜硬模式改變,它使在所述模式改變前的第一模式版本與所述模式改變后的第二模式版本不兼容。根據(jù)本方法,模式改變的執(zhí)行劃分為若干階段(1,2,3,4,5)。根據(jù)一個實施例,模式改變劃分為3個階段,準(zhǔn)備階段(1),掃描階段(2)和結(jié)束階段(3)。根據(jù)另一實施例,在掃描階段(2)和結(jié)束階段(3)之間可以執(zhí)行另外兩個階段。另外的這兩個階段是評估階段(4)和決定階段(5)。
      文檔編號G06F17/30GK1271440SQ9880934
      公開日2000年10月25日 申請日期1998年7月7日 優(yōu)先權(quán)日1997年7月21日
      發(fā)明者U·M·隆斯特倫 申請人:艾利森電話股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1