本發(fā)明涉及數(shù)據(jù)庫更新
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)庫更新方法及裝置。
背景技術(shù):
:在信息化社會,充分有效地管理和利用各類信息資源,是進(jìn)行科學(xué)研究和決策管理的前提條件。數(shù)據(jù)庫是管理信息系統(tǒng)、辦公自動化系統(tǒng)、決策支持系統(tǒng)等各類信息系統(tǒng)的核心部分,是進(jìn)行科學(xué)研究和決策管理的重要技術(shù)手段。隨著信息不斷的增加,如何及時(shí)更新數(shù)據(jù)庫中的數(shù)據(jù)成為業(yè)界關(guān)注的問題。相關(guān)技術(shù)中,產(chǎn)生新的數(shù)據(jù)后,會用該新的數(shù)據(jù)更新數(shù)據(jù)庫中的數(shù)據(jù)。更新方式有兩種,一種是全量替換,一種是增量更新,其中全量替換通常需要將完整數(shù)據(jù)發(fā)送給數(shù)據(jù)庫更新,這樣必然導(dǎo)致浪費(fèi)網(wǎng)絡(luò)流量;增量更新例如是僅將新的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫更新。發(fā)明人在對這兩種方式更新方式進(jìn)行研究的過程中發(fā)現(xiàn),如果更新過程出現(xiàn)異常,導(dǎo)致更新中斷,則需要從頭重新開始更新,這導(dǎo)致數(shù)據(jù)庫更新效率降低。故此,需要一種新的數(shù)據(jù)庫更新方法。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫更新方法及裝置,用以解決目前存在的由于數(shù)據(jù)庫更新過程中出現(xiàn)異常,便從頭開始更新,導(dǎo)致數(shù)據(jù)庫更新效率低的問題。本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫更新方法,包括:在預(yù)先生成的斷點(diǎn)庫中,獲取更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置;用預(yù)先下載的待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元;根據(jù)所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元的更新情況,更新所述斷點(diǎn)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度。進(jìn)一步地,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫更新裝置,包括:查詢模塊,用于在預(yù)先生成的斷點(diǎn)庫中,獲取更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置;數(shù)據(jù)庫更新模塊,用于用預(yù)先下載的待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元;數(shù)據(jù)單元進(jìn)度更新模塊,用于根據(jù)所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元的更新情況,更新所述斷點(diǎn)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度。本發(fā)明有益效果如下:本發(fā)明實(shí)施例提供的技術(shù)方案中支持?jǐn)帱c(diǎn)更新,即若更新過程中斷,則只對更新進(jìn)度為未完成的數(shù)據(jù)單元繼續(xù)進(jìn)行更新,之前成功更新的數(shù)據(jù)將無需重新更新,因此,本申請相對于現(xiàn)有技術(shù)中一旦更新過程中斷就得從頭開始更新的相比,本發(fā)明實(shí)施例可以提高數(shù)據(jù)庫的更新效率。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1所示為本發(fā)明實(shí)施例一中所述數(shù)據(jù)庫更新方法的流程示意圖;圖2a所示為本發(fā)明實(shí)施例二中所述數(shù)據(jù)區(qū)域的示意圖;圖2b所示為本發(fā)明實(shí)施例二中所述數(shù)據(jù)塊的示意圖;圖2c所示為本發(fā)明實(shí)施例二中所述數(shù)據(jù)單元的示意圖;圖3所示為本發(fā)明實(shí)施例二中所述數(shù)據(jù)庫更新裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫更新方法,在本發(fā)明實(shí)施例所述技術(shù)方案中,在預(yù)先生成的斷點(diǎn)庫中,獲取更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置;用預(yù)先下載的待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元;根據(jù)所述數(shù)據(jù)單元的更新情況,更新所述斷點(diǎn)庫中記錄的所述數(shù)據(jù)單元對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置的更新進(jìn)度。由此,本發(fā)明實(shí)施例提供的技術(shù)方案中支持?jǐn)帱c(diǎn)更新,即若更新過程中斷,則只對更新進(jìn)度為未完成的數(shù)據(jù)單元繼續(xù)進(jìn)行更新,之前成功更新的數(shù)據(jù)將無需重新更新,因此,本申請相對于現(xiàn)有技術(shù)中一旦更新過程中斷就得從頭開始更新的相比,本發(fā)明實(shí)施例可以提高數(shù)據(jù)庫的更新效率。為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一:如圖1所示,其為本發(fā)明實(shí)施例一中所述數(shù)據(jù)庫更新方法的流程示意圖,所述數(shù)據(jù)庫更新方法可包括以下步驟:步驟101:在預(yù)先生成的斷點(diǎn)庫中,獲取更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置。其中,在一個(gè)實(shí)施例中,更新進(jìn)度可以包括表示未開始更新的未開始更新狀態(tài)(該狀態(tài)可以用Init表示)、表示正在更新的更新中狀態(tài)(該狀態(tài)可以用Pro表示)、以及表示已經(jīng)完成更新的更新完成狀態(tài)(該狀態(tài)可以用Com表示)。當(dāng)然,根據(jù)實(shí)際需要,具體實(shí)施時(shí)可以增加和減少更新狀態(tài),例如更新狀態(tài)可以僅包括更新完成狀態(tài)和未更新狀態(tài),或者更新狀態(tài)可以根據(jù)更新的流程包括中間的狀態(tài),例如在更新中狀態(tài)中可能包括讀取數(shù)據(jù)、合成數(shù)據(jù)的過程等,那么可以將更新中狀態(tài)細(xì)分為讀數(shù)據(jù)狀態(tài)和合成數(shù)據(jù)狀態(tài)等以增加更新進(jìn)度。具體實(shí)施時(shí),可以根據(jù)實(shí)際需要設(shè)定,本發(fā)明實(shí)施例對此不做贅述。步驟102:用預(yù)先下載的待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元。步驟103:根據(jù)所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元的更新情況,更新所述斷點(diǎn)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度。其中,在一個(gè)實(shí)施例中,待更新數(shù)據(jù)包括至少一個(gè)數(shù)據(jù)區(qū)域;針對每個(gè)數(shù)據(jù)區(qū)域,該數(shù)據(jù)區(qū)域包括至少一個(gè)數(shù)據(jù)塊;針對每個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊包括至少一個(gè)數(shù)據(jù)單元。并且,在待更新數(shù)據(jù)中每個(gè)數(shù)據(jù)區(qū)域均有自己的數(shù)據(jù)區(qū)域標(biāo)識。同樣,每個(gè)數(shù)據(jù)塊均有自己的數(shù)據(jù)塊標(biāo)識、每個(gè)數(shù)據(jù)單元均有自己的數(shù)據(jù)單元標(biāo)識。這樣,數(shù)據(jù)單元隸屬于數(shù)據(jù)塊,數(shù)據(jù)塊隸屬于數(shù)據(jù)區(qū)域。具體實(shí)施時(shí)可以根據(jù)待更新數(shù)據(jù)的自身的特點(diǎn)建立斷點(diǎn)庫。例如可以根據(jù)數(shù)據(jù)區(qū)域標(biāo)識、數(shù)據(jù)塊標(biāo)識以及數(shù)據(jù)單元標(biāo)識,識別所述待更新數(shù)據(jù)中的各數(shù)據(jù)區(qū)域、各數(shù)據(jù)塊以及各數(shù)據(jù)單元。其中,一個(gè)數(shù)據(jù)區(qū)域?qū)?yīng)一個(gè)數(shù)據(jù)區(qū)域斷點(diǎn)位置、一個(gè)數(shù)據(jù)塊對應(yīng)一個(gè)數(shù)據(jù)塊斷點(diǎn)位置、一個(gè)數(shù)據(jù)單元對應(yīng)一個(gè)數(shù)據(jù)單元斷點(diǎn)位置。具體實(shí)施時(shí),可以用數(shù)據(jù)區(qū)域標(biāo)識表示數(shù)據(jù)區(qū)域斷點(diǎn)位置、數(shù)據(jù)塊標(biāo)識表示數(shù)據(jù)塊斷點(diǎn)位置、數(shù)據(jù)單元標(biāo)識表示數(shù)據(jù)單元斷點(diǎn)位置。這樣,所述斷點(diǎn)庫中可以包括數(shù)據(jù)區(qū)域斷點(diǎn)表、數(shù)據(jù)塊斷點(diǎn)表和數(shù)據(jù)單元斷點(diǎn)表這三個(gè)斷點(diǎn)表,其中:數(shù)據(jù)區(qū)域斷點(diǎn)表中包括各數(shù)據(jù)區(qū)域斷點(diǎn)位置及對應(yīng)的更新進(jìn)度;數(shù)據(jù)塊斷點(diǎn)表中包括各數(shù)據(jù)塊斷點(diǎn)位置及對應(yīng)的更新進(jìn)度;數(shù)據(jù)單元斷點(diǎn)表中包括各數(shù)據(jù)單元的斷點(diǎn)位置及對應(yīng)的更新進(jìn)度。當(dāng)然,需要說明的是,數(shù)據(jù)單元斷點(diǎn)位置可以不僅限于用數(shù)據(jù)單元標(biāo)識來表示,本發(fā)明對此不做限定。例如,具體實(shí)施時(shí),可以根據(jù)預(yù)設(shè)編號規(guī)則,對各數(shù)據(jù)單元進(jìn)行編號,然后用編號表示數(shù)據(jù)單元斷點(diǎn)位置。同理,數(shù)據(jù)塊斷點(diǎn)位置以及數(shù)據(jù)區(qū)域斷點(diǎn)位置的表示方法本發(fā)明也不做限定。這里,以一具體實(shí)施例說明斷點(diǎn)庫中各斷點(diǎn)表的建立方法:例如,在基于UpdateRegion的更新模式中,待更新數(shù)據(jù)可以包括至少一個(gè)UpdateRegion(即 數(shù)據(jù)區(qū)域),一個(gè)UpdateRegion包含至少一個(gè)BuildingBlock(即數(shù)據(jù)塊),一個(gè)BuildingBlock包含至少一個(gè)Table(即數(shù)據(jù)單元),Table可以是數(shù)據(jù)庫更新的最小單位,也是增量更新的最小單位。由此,斷點(diǎn)庫中則有三個(gè)斷點(diǎn)表,一個(gè)斷點(diǎn)表中包括至少一個(gè)UpdateRegion對應(yīng)的數(shù)據(jù)區(qū)域斷點(diǎn)位置及對應(yīng)的更新進(jìn)度(該斷點(diǎn)表以后簡稱為UrTable);一個(gè)斷點(diǎn)表中包括至少一個(gè)BuildingBlock對應(yīng)的數(shù)據(jù)塊斷點(diǎn)位置及對應(yīng)的更新進(jìn)度(該斷點(diǎn)表以后簡稱為BbTable);最后一個(gè)表中包括至少一個(gè)Table對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置及對應(yīng)的更新進(jìn)度(該斷點(diǎn)表以后簡稱為TbTable)。在初始時(shí),各斷點(diǎn)表中的更新進(jìn)度均處于未開始更新狀態(tài)。當(dāng)然,需要說明的是,一個(gè)Table中包含至少一條記錄,那么每一條記錄也可以作為數(shù)據(jù)庫更新的最小單位。若Table還可以繼續(xù)劃分,那么還可以將數(shù)據(jù)單元劃分為比Table更小的粒度。具體實(shí)施時(shí),對待更新數(shù)據(jù)劃分的粒度越小,數(shù)據(jù)庫更新則可以越接近非回溯的形式。但是斷點(diǎn)庫中維護(hù)的斷點(diǎn)表也越多,維護(hù)的數(shù)據(jù)也越多,故此,具體實(shí)施時(shí),可以根據(jù)實(shí)際需要劃分待更新數(shù)據(jù),并建立斷點(diǎn)庫,本發(fā)明實(shí)施例對此不做限定。這樣,將待更新數(shù)據(jù)按照層次劃分(即數(shù)據(jù)區(qū)域、數(shù)據(jù)塊和數(shù)據(jù)單元等),可以使數(shù)據(jù)庫更新過程分解成具有層次的子過程,也便于根據(jù)各個(gè)層次進(jìn)行數(shù)據(jù)庫更新。其中,在一個(gè)實(shí)施例中,斷點(diǎn)庫中若包括數(shù)據(jù)區(qū)域斷點(diǎn)表、數(shù)據(jù)塊斷點(diǎn)表和數(shù)據(jù)單元斷點(diǎn)表,步驟101(即在預(yù)先生成的斷點(diǎn)庫中,獲取更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置),可具體包括以下步驟:步驟B1:從數(shù)據(jù)區(qū)域斷點(diǎn)表中,獲取更新進(jìn)度為未完成的數(shù)據(jù)區(qū)域斷點(diǎn)位置。步驟B2:在數(shù)據(jù)塊斷點(diǎn)表中,查詢所述數(shù)據(jù)區(qū)域斷點(diǎn)位置對應(yīng)的數(shù)據(jù)塊斷點(diǎn)位置,并獲取其中更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置。步驟B3:在數(shù)據(jù)單元斷點(diǎn)表中,查詢獲取到的數(shù)據(jù)塊斷點(diǎn)位置對應(yīng)的數(shù) 據(jù)單元斷點(diǎn)位置,并獲取其中更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置。繼續(xù)上面的例子,假設(shè)數(shù)據(jù)區(qū)域斷點(diǎn)位置為U1的UpdateRegion對應(yīng)的數(shù)據(jù)塊斷點(diǎn)位置分別為B1、B2、B3、B4的4個(gè)BuildingBlock,而數(shù)據(jù)塊斷點(diǎn)位置為B1的BuildingBlock對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置分別為M1、M2的兩個(gè)Table、數(shù)據(jù)塊斷點(diǎn)位置為B3的BuildingBlock對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置分別為T1、T2、T3的三個(gè)Table,且Table為數(shù)據(jù)庫更新的最小單位。依據(jù)上述假設(shè)條件,查詢斷點(diǎn)的過程為:首先在數(shù)據(jù)區(qū)域斷點(diǎn)表(即UrTable)中查詢更新進(jìn)度為未完成的數(shù)據(jù)區(qū)域斷點(diǎn)位置(即查詢更新進(jìn)度不為Com狀態(tài)的數(shù)據(jù)區(qū)域斷點(diǎn)位置)。若從UrTable中查詢到的更新進(jìn)度為未完成的數(shù)據(jù)區(qū)域斷點(diǎn)位置為U1,且該數(shù)據(jù)區(qū)域斷點(diǎn)位置的更新進(jìn)度為Init,則說明該數(shù)據(jù)區(qū)域斷點(diǎn)位置對應(yīng)的數(shù)據(jù)區(qū)域未開始更新,對應(yīng)該數(shù)據(jù)區(qū)域斷點(diǎn)位置的數(shù)據(jù)單元即為斷點(diǎn)位置(例如M1為數(shù)據(jù)單元斷點(diǎn)位置)。若從UrTable中查詢到的數(shù)據(jù)區(qū)域斷點(diǎn)位置為U1,且該數(shù)據(jù)區(qū)域的更新進(jìn)度為Pro,則繼續(xù)從數(shù)據(jù)塊斷點(diǎn)表(即BbTable)中,查詢U1對應(yīng)的數(shù)據(jù)塊斷點(diǎn)位置B1、B2、B3、B4中,更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置。若查詢到的數(shù)據(jù)塊斷點(diǎn)位置為B2,且B2的更新進(jìn)度為Init,則說明該數(shù)據(jù)塊斷點(diǎn)位置對應(yīng)的數(shù)據(jù)塊未開始更新,則可以選擇T1為數(shù)據(jù)單元斷點(diǎn)位置;若B2的更新進(jìn)度為Pro,則繼續(xù)從數(shù)據(jù)單元斷點(diǎn)表(即TbTable)中,查詢與B2對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置中更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置。這樣,從數(shù)據(jù)區(qū)域斷點(diǎn)表到數(shù)據(jù)單元斷點(diǎn)表的順序依次查詢斷點(diǎn)表,可以快速確定哪些數(shù)據(jù)區(qū)域或數(shù)據(jù)塊存在斷點(diǎn)。當(dāng)然,具體實(shí)施時(shí),也可以按照從數(shù)據(jù)單元斷點(diǎn)表到數(shù)據(jù)區(qū)域斷點(diǎn)表的順序依次查詢斷點(diǎn)表,本發(fā)明實(shí)施例對此不做限定。其中,在一個(gè)實(shí)施例中,若數(shù)據(jù)庫中包括數(shù)據(jù)塊斷點(diǎn)表時(shí),該數(shù)據(jù)塊斷點(diǎn)表需要根據(jù)數(shù)據(jù)塊的更新進(jìn)度進(jìn)行更新,以保證斷點(diǎn)庫信息的準(zhǔn)確性。對此,本發(fā)明實(shí)施例可執(zhí)行為判斷同一數(shù)據(jù)塊斷點(diǎn)位置對應(yīng)的所有數(shù)據(jù)單元斷點(diǎn)位 置在數(shù)據(jù)單元斷點(diǎn)表中對應(yīng)的更新進(jìn)度是否均為更新完成,若是,則將所述數(shù)據(jù)塊斷點(diǎn)位置在所述數(shù)據(jù)塊斷點(diǎn)表中對應(yīng)的更新進(jìn)度更新為更新完成。其中,在一個(gè)實(shí)施例中,若數(shù)據(jù)庫中包括數(shù)據(jù)區(qū)域斷點(diǎn)表時(shí),該數(shù)據(jù)區(qū)域斷點(diǎn)表需要根據(jù)數(shù)據(jù)區(qū)域的更新進(jìn)度進(jìn)行更新,以保證斷點(diǎn)庫信息的準(zhǔn)確性。對此,本發(fā)明實(shí)施例可執(zhí)行為判斷同一數(shù)據(jù)區(qū)域斷點(diǎn)位置對應(yīng)的所有數(shù)據(jù)塊斷點(diǎn)位置在數(shù)據(jù)塊斷點(diǎn)表中對應(yīng)的更新進(jìn)度是否均為更新完成,若是,則將所述數(shù)據(jù)區(qū)域斷點(diǎn)位置在所述數(shù)據(jù)區(qū)域斷點(diǎn)表中對應(yīng)的更新進(jìn)度更新為更新完成。其中,在一個(gè)實(shí)施例中,在存儲時(shí),上述的數(shù)據(jù)單元可以是存儲的最小單位,即一個(gè)數(shù)據(jù)單元可以是一個(gè)獨(dú)立的文件。當(dāng)然,在具體實(shí)施時(shí),上述數(shù)據(jù)單元的劃分可以是邏輯上的劃分,而存儲時(shí)并非一個(gè)數(shù)據(jù)單元對應(yīng)一個(gè)獨(dú)立的文件,例如可以是一個(gè)數(shù)據(jù)塊存儲為一個(gè)文件。繼續(xù)上面的例子,一個(gè)UpdateRegion是一個(gè)文件夾,該文件夾下包括至少一個(gè)文件,其中一個(gè)文件就是一個(gè)BuildingBlock。那么Table就是邏輯上的劃分,至少一個(gè)Table共存于一個(gè)BuildingBlock(即一個(gè)文件中)。故此,所述待更新數(shù)據(jù)中可能包括至少一個(gè)文件、所述文件可能包括至少一個(gè)數(shù)據(jù)塊和至少一個(gè)數(shù)據(jù)單元。若數(shù)據(jù)庫更新過程中斷,可以執(zhí)行以下2種操作之一或組合,以保證數(shù)據(jù)庫更新的完整性和準(zhǔn)確性,為便于描述,以下操作簡稱為“數(shù)據(jù)庫中斷后處理操作”:1)、假若一個(gè)數(shù)據(jù)塊存儲為一個(gè)文件,在數(shù)據(jù)庫更新過程中若更新中斷,則可能已更新至數(shù)據(jù)庫中的文件已失效(即該文件丟失或損壞),這導(dǎo)致部分的更新操作將無效。本發(fā)明實(shí)施例為了重新進(jìn)行無效的更新操作,保證良好的完成數(shù)據(jù)庫更新,可執(zhí)行以下操作:判斷更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置在所述數(shù)據(jù)庫中對應(yīng)的文件是否有效;若無效,則將所述數(shù)據(jù)塊斷點(diǎn)位置在所述數(shù)據(jù)單元斷點(diǎn)表中對應(yīng)的所有數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度標(biāo)記為未完成。2)、其中,在一個(gè)實(shí)施例中,數(shù)據(jù)庫更新過程中斷,則有可能發(fā)生針對數(shù) 據(jù)庫的操作事務(wù)未提交,這樣,需要回滾操作事務(wù),對此,本發(fā)明實(shí)施例中可執(zhí)行為:判斷是否有針對所述數(shù)據(jù)庫的操作事務(wù)未提交;若是,則對所述數(shù)據(jù)庫進(jìn)行回滾操作。其中,在一個(gè)實(shí)施例中,若數(shù)據(jù)單元以數(shù)據(jù)表的形式存儲,數(shù)據(jù)庫更新過程中斷時(shí),數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)表可能無效,為了便于根據(jù)數(shù)據(jù)單元斷點(diǎn)位置對數(shù)據(jù)庫進(jìn)行更新,保證數(shù)據(jù)庫更新的完整性和準(zhǔn)確性,則步驟102(即用預(yù)先下載的待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元)可包括以下步驟:步驟A1:判斷所述數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)表是更新時(shí)新建的,還是對舊數(shù)據(jù)表進(jìn)行的更新。步驟A2:如果是更新時(shí)新建的,則刪除所述數(shù)據(jù)表,用預(yù)先下載的待更新數(shù)據(jù)中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元新建數(shù)據(jù)表。步驟A3:如果是對舊數(shù)據(jù)表進(jìn)行的更新,則用所述舊數(shù)據(jù)表的備份替換所述數(shù)據(jù)庫中的數(shù)據(jù)表,用預(yù)先下載的待更新數(shù)據(jù)中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元,對替換到所述數(shù)據(jù)庫中的舊數(shù)據(jù)表進(jìn)行更新。其中,在一個(gè)實(shí)施例中,數(shù)據(jù)庫通常情況下在為用戶提供服務(wù),如果更新正在提供服務(wù)的數(shù)據(jù)庫,那么該數(shù)據(jù)庫將中斷服務(wù),故此,為保證能夠繼續(xù)為用戶提供服務(wù),也避免數(shù)據(jù)庫更新過程中造成的數(shù)據(jù)庫損壞無法修復(fù),本發(fā)明實(shí)施例中,步驟101中進(jìn)行更新操作的數(shù)據(jù)庫,是提供服務(wù)的數(shù)據(jù)塊的備份數(shù)據(jù)庫。在完成更新后,將更新后的數(shù)據(jù)庫替換提供服務(wù)器的數(shù)據(jù)庫,這樣數(shù)據(jù)庫的更新流程結(jié)束。其中,在一個(gè)實(shí)施例中,開始更新時(shí),可以根據(jù)斷點(diǎn)庫建立任務(wù)列表,任務(wù)列表中包括待更新數(shù)據(jù)中的各數(shù)據(jù)單元對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置及對應(yīng)的更新進(jìn)度。數(shù)據(jù)庫更新時(shí),可以先根據(jù)該任務(wù)列表進(jìn)行更新。當(dāng)數(shù)據(jù)庫更新過程中斷,可以由斷點(diǎn)位置的任務(wù)構(gòu)成第一子任務(wù)列表,由斷點(diǎn)位置之后的未開始更新的任務(wù)構(gòu)成第二子任務(wù)列表。以便于根據(jù)第一子任務(wù)列表進(jìn)行數(shù)據(jù)庫中 斷后處理操作,例如回滾事務(wù)。此時(shí),為避免繼續(xù)更新數(shù)據(jù)庫中根據(jù)上述兩個(gè)子任務(wù)列表進(jìn)行更新,可以根據(jù)上述兩個(gè)子任務(wù)列表中的待更新數(shù)據(jù)重建一個(gè)新的任務(wù)列表,并根據(jù)重建的所述任務(wù)列表,更新數(shù)據(jù)庫。例如:綜上,本發(fā)明實(shí)施例中,通過建立斷點(diǎn)庫,使得數(shù)據(jù)庫可以支持?jǐn)帱c(diǎn)更新。相對于相關(guān)技術(shù)中數(shù)據(jù)庫更新中斷后,只能從頭開始,可以提高數(shù)據(jù)庫更新效率。此外,本發(fā)明實(shí)施例中,根據(jù)待更新數(shù)據(jù)建立斷點(diǎn)表,并根據(jù)斷點(diǎn)表,進(jìn)行數(shù)據(jù)庫更新,可以使得數(shù)據(jù)庫更新過程分解為具有層次的過程。便于根據(jù)層次實(shí)現(xiàn)對數(shù)據(jù)庫更新的控制。此外,本發(fā)明實(shí)施例中,通過數(shù)據(jù)庫中斷后處理操作,可以提高數(shù)據(jù)庫更新的完整性和準(zhǔn)確性。實(shí)施例二以更新電子地圖數(shù)據(jù)庫為例,對本發(fā)明實(shí)施例中數(shù)據(jù)庫更新方法進(jìn)行說明:例如,數(shù)據(jù)區(qū)域是電子地圖中按照行政區(qū)域劃分的數(shù)據(jù),待更新數(shù)據(jù)中包括北京地區(qū)以及上海地區(qū)的電子地圖數(shù)據(jù)。且每個(gè)數(shù)據(jù)區(qū)域的存儲形式為一個(gè)文件夾。例如圖2a所示的文件夾UR_11表示北京地區(qū)的電子地圖數(shù)據(jù);UR_12表示上海地區(qū)的電子地圖數(shù)據(jù)。如圖2b所示,為文件夾UR_11中包括的文件后綴為.NDS的至少一個(gè)文件。其中,一個(gè).NDS表示一個(gè)數(shù)據(jù)塊,各.NDS文件按照功能劃分。例如,名稱為BMD的.NDS文件表示地圖顯示相關(guān)數(shù)據(jù);名稱為ROUTING的.NDS文件表示道路數(shù)據(jù)相關(guān)數(shù)據(jù)。其中,每個(gè).NDS文件中包括至少一個(gè)數(shù)據(jù)表(每個(gè)數(shù)據(jù)表為一個(gè)數(shù)據(jù)單元),例如如圖2c所示為名稱為ROUTING的.NDS文件內(nèi)包括的各數(shù)據(jù)表。那么,數(shù)據(jù)區(qū)域斷點(diǎn)表可以如表1所示:其中BJ表示北京地區(qū)斷點(diǎn)位置,SH表示上海地區(qū)斷點(diǎn)位置;其中更新進(jìn)度包括Init(未開始更新狀態(tài))、Pro(更新中狀態(tài))以及Com(更新完成狀態(tài))。其中,Init和Pro均屬于更新進(jìn)度未完 成。表1數(shù)據(jù)區(qū)域斷點(diǎn)表數(shù)據(jù)區(qū)域斷點(diǎn)位置更新進(jìn)度BJProSHCom數(shù)據(jù)塊斷點(diǎn)表可以如表2所示:BMD表示道路數(shù)據(jù)相關(guān)斷點(diǎn)位置、POI表示POI相關(guān)信息斷點(diǎn)位置、TRAFFIC表示實(shí)時(shí)交通相關(guān)信息斷點(diǎn)位置;表2中與表1中相同字符的含義相同,在此不再贅述。表2數(shù)據(jù)塊斷點(diǎn)表數(shù)據(jù)單元斷點(diǎn)表可以如表3所示:T1-T4表示不同的數(shù)據(jù)單元斷點(diǎn)位置;且表3中與表2中相同字符的含義相同,在此不再贅述。表3數(shù)據(jù)單元斷點(diǎn)表需要說明的是,上述表1、表2、表3僅用來說明本發(fā)明實(shí)施例,并不用于限定本發(fā)明實(shí)施例,具體實(shí)施時(shí),可以根據(jù)實(shí)際需求,設(shè)計(jì)各斷點(diǎn)表。那么,根據(jù)上述條件可知,本發(fā)明實(shí)施例可實(shí)施為首先在表1中查找出更新進(jìn)度為未完成的數(shù)據(jù)區(qū)域斷點(diǎn)位置為BJ,然后在表2中,BJ對應(yīng)的數(shù)據(jù)塊斷點(diǎn)位置中可確定更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置可為屬于BJ的POI1,這之后,在表3中POI1對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置中可以確定更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置可為T3(1)。然后,用待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述T3(1)對應(yīng)的數(shù)據(jù)表。并,根據(jù)T3(1)對應(yīng)的數(shù)據(jù)單元的更新情況,更新表3中T3(1)的更新進(jìn)度。之后,可以返回在表1中查找出更新進(jìn)度為未完成的數(shù)據(jù)區(qū)域斷點(diǎn)位置的步驟,也可以根據(jù)表3繼續(xù)更新T3(1)后面更新進(jìn)度為未完成的T4(1)對應(yīng)的數(shù)據(jù)單元直至所有數(shù)據(jù)單元的更新進(jìn)度均為已完成為止。其中,在確定出數(shù)據(jù)單元斷點(diǎn)位置為T3(1)之后,可以進(jìn)行實(shí)施例一中所述的數(shù)據(jù)庫中斷后處理操作,以保證對數(shù)據(jù)庫更新的完整性和準(zhǔn)確性,具體的,包括:1)、判斷更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置(即POI1)在數(shù)據(jù)庫中對應(yīng)的文件(即屬于北京地區(qū)文件夾下的POI.NDS文件)是否有效;若無效,則將POI1對應(yīng)的所有數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度標(biāo)記為未完成(即將T2(1)、T3(1)對應(yīng)的更新進(jìn)度均標(biāo)記為Init。2)、判斷是否有針對所述數(shù)據(jù)庫的操作事務(wù)未提交;若是,則對所述數(shù)據(jù)庫進(jìn)行回滾操作。本發(fā)明實(shí)施例實(shí)現(xiàn)對電子地圖數(shù)據(jù)庫的斷點(diǎn)更新,例如A.NDS文件更新成功之后,若在更新B.NDS文件時(shí)發(fā)生更新中斷,則之前更新的A.NDS文件 將不受影響,若B.NDS若沒有失效,則更新時(shí)只需要更新其中的部分?jǐn)?shù)據(jù)表即可,由于數(shù)據(jù)表數(shù)據(jù)量很小,使得斷點(diǎn)更新接近非回溯的形式,相對于現(xiàn)有技術(shù)中一旦更新過程中斷,便從頭開始更新,本發(fā)明實(shí)施例可以提高電子地圖數(shù)據(jù)庫的更新效率。實(shí)施例三基于相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)庫更新裝置,如圖3所示,該裝置包括:查詢模塊301,用于在預(yù)先生成的斷點(diǎn)庫中,獲取更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置;數(shù)據(jù)庫更新模塊302,用于用預(yù)先下載的待更新數(shù)據(jù)中的數(shù)據(jù)單元,更新數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元;數(shù)據(jù)單元進(jìn)度更新模塊303,用于根據(jù)所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元的更新情況,更新所述斷點(diǎn)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度。其中,在一個(gè)實(shí)施例中,數(shù)據(jù)單元隸屬于數(shù)據(jù)塊,數(shù)據(jù)塊隸屬于數(shù)據(jù)區(qū)域,則所述斷點(diǎn)庫中包括數(shù)據(jù)區(qū)域斷點(diǎn)表、數(shù)據(jù)塊斷點(diǎn)表和數(shù)據(jù)單元斷點(diǎn)表,所述查詢模塊,具體包括:數(shù)據(jù)區(qū)域斷點(diǎn)位置獲取單元,用于從數(shù)據(jù)區(qū)域斷點(diǎn)表中,獲取更新進(jìn)度為未完成的數(shù)據(jù)區(qū)域斷點(diǎn)位置;數(shù)據(jù)塊斷點(diǎn)位置獲取單元,用于在數(shù)據(jù)塊斷點(diǎn)表中,查詢所述數(shù)據(jù)區(qū)域斷點(diǎn)位置對應(yīng)的數(shù)據(jù)塊斷點(diǎn)位置,并獲取其中更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置;數(shù)據(jù)單元斷點(diǎn)位置獲取單元,用于在數(shù)據(jù)單元斷點(diǎn)表中,查詢獲取到的數(shù)據(jù)塊斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元斷點(diǎn)位置,并獲取其中更新進(jìn)度為未完成的數(shù)據(jù)單元斷點(diǎn)位置。其中,在一個(gè)實(shí)施例中,所述裝置進(jìn)一步包括:數(shù)據(jù)塊進(jìn)度更新模塊,用于判斷同一數(shù)據(jù)塊斷點(diǎn)位置對應(yīng)的所有數(shù)據(jù)單元 斷點(diǎn)位置在數(shù)據(jù)單元斷點(diǎn)表中對應(yīng)的更新進(jìn)度是否均為更新完成,若是,則將所述數(shù)據(jù)塊斷點(diǎn)位置在所述數(shù)據(jù)塊斷點(diǎn)表中對應(yīng)的更新進(jìn)度更新為更新完成。其中,在一個(gè)實(shí)施例中,所述裝置進(jìn)一步包括:數(shù)據(jù)區(qū)域進(jìn)度更新模塊,用于判斷同一數(shù)據(jù)區(qū)域斷點(diǎn)位置對應(yīng)的所有數(shù)據(jù)塊斷點(diǎn)位置在數(shù)據(jù)塊斷點(diǎn)表中對應(yīng)的更新進(jìn)度是否均為更新完成,若是,則將所述數(shù)據(jù)區(qū)域斷點(diǎn)位置在所述數(shù)據(jù)區(qū)域斷點(diǎn)表中對應(yīng)的更新進(jìn)度更新為更新完成。其中,在一個(gè)實(shí)施例中,一個(gè)數(shù)據(jù)塊存儲為一個(gè)文件,所述裝置還包括:文件效用判斷模塊,用于判斷更新進(jìn)度為未完成的數(shù)據(jù)塊斷點(diǎn)位置在所述數(shù)據(jù)庫中對應(yīng)的文件是否有效;進(jìn)度修改模塊,用于若文件效用判斷模塊的判斷結(jié)果為無效,則將所述數(shù)據(jù)塊斷點(diǎn)位置在所述數(shù)據(jù)單元斷點(diǎn)表中對應(yīng)的所有數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的更新進(jìn)度標(biāo)記為未完成。其中,在一個(gè)實(shí)施例中,所述裝置還包括:未提交事務(wù)判斷模塊,用于判斷是否有針對所述數(shù)據(jù)庫的操作事務(wù)未提交;回滾模塊,用于若所述未提交事務(wù)判斷模塊的判斷結(jié)果為是,則對所述數(shù)據(jù)庫進(jìn)行回滾操作。其中,在一個(gè)實(shí)施例中,所述數(shù)據(jù)單元以數(shù)據(jù)表的形式存儲,所述數(shù)據(jù)庫更新模塊,具體包括:判斷單元,用于判斷所述數(shù)據(jù)庫中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)表是更新時(shí)新建的,還是對舊數(shù)據(jù)表進(jìn)行的更新;數(shù)據(jù)表新建單元,用于如果是更新時(shí)新建的,則刪除所述數(shù)據(jù)表,用預(yù)先下載的待更新數(shù)據(jù)中所述數(shù)據(jù)單元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元新建數(shù)據(jù)表;舊數(shù)據(jù)表更新單元,用于如果是對舊數(shù)據(jù)表進(jìn)行的更新,則用所述舊數(shù)據(jù)表的備份替換所述數(shù)據(jù)庫中的數(shù)據(jù)表,用預(yù)先下載的待更新數(shù)據(jù)中所述數(shù)據(jù)單 元斷點(diǎn)位置對應(yīng)的數(shù)據(jù)單元,對替換到所述數(shù)據(jù)庫中的舊數(shù)據(jù)表進(jìn)行更新。本發(fā)明實(shí)施例提供的數(shù)據(jù)庫更新裝置支持?jǐn)帱c(diǎn)更新,即若更新過程中斷,則則只對更新進(jìn)度為未完成的數(shù)據(jù)單元繼續(xù)進(jìn)行更新,之前成功更新的數(shù)據(jù)將無需重新更新,因此,本申請相對于現(xiàn)有技術(shù)中一旦更新過程中斷就得從頭開始更新的相比,本發(fā)明實(shí)施例可以提高數(shù)據(jù)庫的更新效率。關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、裝置、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(裝置)和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置上,使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè) 流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。當(dāng)前第1頁1 2 3