專利名稱::還原數(shù)據(jù)庫系統(tǒng)中的對(duì)象和從屬對(duì)象的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般地涉及計(jì)算機(jī)系統(tǒng)。更具體地說,本發(fā)明涉及提供還原數(shù)據(jù)庫系統(tǒng)中的對(duì)象和從屬對(duì)象的能力
背景技術(shù):
通常,數(shù)據(jù)庫管理系統(tǒng)(DBMS)是控制數(shù)據(jù)庫中的信息的完整性、組織、存儲(chǔ)、檢索和安全性的計(jì)算機(jī)軟件。數(shù)據(jù)庫中的信息可以使用多種類型的對(duì)象來存儲(chǔ)。例如,信息可以存儲(chǔ)在表中,并且可以使用索引來便利對(duì)表的訪問。其它常用對(duì)象包括嵌套表、部分表(partialtable)、索引組織表(IOT)、大對(duì)象(LOB)、約束、觸發(fā)等。出于種種原因,用戶可能決定清除或刪除對(duì)象。例如,用戶可能覺得不再需要對(duì)象、要獲得更多的可用存儲(chǔ)空間、或者出于偶然性。不管清除的原因如何,用戶有時(shí)會(huì)改變他的主意而想要重新獲得對(duì)象。對(duì)于當(dāng)今的數(shù)據(jù)庫應(yīng)用,數(shù)據(jù)庫的當(dāng)前狀態(tài)是被周期性存儲(chǔ)的。此外,還存儲(chǔ)了從該狀態(tài)起對(duì)數(shù)據(jù)庫執(zhí)行的事務(wù)列表。當(dāng)用戶想要檢索已經(jīng)被清除的對(duì)象時(shí),數(shù)據(jù)庫將回滾到最后存儲(chǔ)的狀態(tài)。在回滾之后,可以根據(jù)事務(wù)列表執(zhí)行在狀態(tài)被存儲(chǔ)之后執(zhí)行的事務(wù)。盡管該方案可以檢索被清除的對(duì)象,但是它有相對(duì)耗時(shí)的缺點(diǎn)。更為重要的是,它還有下述缺點(diǎn)在數(shù)據(jù)庫的回滾和前滾期間,數(shù)據(jù)庫一般不能排除新的事務(wù)。這樣,在檢索被清除的對(duì)象期間數(shù)據(jù)庫實(shí)際上被關(guān)斷。用于改進(jìn)數(shù)據(jù)庫系統(tǒng)中的對(duì)象清除方式的創(chuàng)新技術(shù)是有益的。此外,允許檢索對(duì)象而不用要求數(shù)據(jù)庫關(guān)斷的創(chuàng)新技術(shù)是有益的。
發(fā)明內(nèi)容本發(fā)明提供了用于還原數(shù)據(jù)庫中的對(duì)象和從屬對(duì)象的創(chuàng)新技術(shù)。通常,當(dāng)用戶想要丟棄或去除對(duì)象時(shí),對(duì)象被移出或被置于回收站中。從屬于該對(duì)象的對(duì)象也會(huì)被轉(zhuǎn)移到回收站。隨后,如果用戶想要檢索該對(duì)象,則該對(duì)象可以被移出回收站。這樣,對(duì)象的檢索可以很快,并且不需要數(shù)據(jù)庫在檢索期間被關(guān)斷。下文描述了本發(fā)明的一些具體實(shí)施例。在一個(gè)實(shí)施例中,本發(fā)明提供了一種允許在數(shù)據(jù)庫系統(tǒng)中進(jìn)行還原的方法。丟棄數(shù)據(jù)庫中的對(duì)象的命令被接收。該對(duì)象被移到回收站,并且如果存在從屬于該對(duì)象的從屬對(duì)象,則從屬對(duì)象被移到回收站。在接收到還原對(duì)象的命令之后,對(duì)象被移出回收站。在另一實(shí)施例中,本發(fā)明提供了一種允許在數(shù)據(jù)庫系統(tǒng)中進(jìn)行還原的方法。丟棄數(shù)據(jù)庫中的對(duì)象的命令被接收。該對(duì)象被移到回收站,并且如果存在從屬于該對(duì)象的從屬對(duì)象,則從屬對(duì)象被移到回收站。在接收到還原對(duì)象的命令之后,對(duì)象被移出回收站。如果需要更多的空間,則對(duì)象被清除以提供更多的存儲(chǔ)空間。在閱讀了下面的說明以及相關(guān)的附圖之后,本發(fā)明的其它特征和優(yōu)點(diǎn)將變得顯而易見,附圖中相同或相似的結(jié)構(gòu)用相同的標(biāo)號(hào)來指示。圖1示出了用于數(shù)據(jù)庫管理系統(tǒng)的三層體系結(jié)構(gòu)示例;圖2圖示了結(jié)合本發(fā)明實(shí)施例使用的計(jì)算機(jī)系統(tǒng)的框圖;圖3示出了數(shù)據(jù)庫中的一些示例性對(duì)象的框圖;圖4示出了還原數(shù)據(jù)庫中的對(duì)象(如果存在從屬對(duì)象,則也包括從屬對(duì)象)的過程流程圖;圖5示出了可以從回收站移除對(duì)象的多種方式的過程流程圖;圖6示出了從回收站清除對(duì)象以獲得更多存儲(chǔ)空間的過程流程圖;圖7示出了可以用來實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)中的回收站的表模式示例;圖8示出了用于已被丟棄在回收站中的對(duì)象(例如,表)和從屬對(duì)象的圖7表中的條目示例。具體實(shí)施例方式在下面的說明中,將參考還原數(shù)據(jù)庫環(huán)境中的對(duì)象和從屬對(duì)象的實(shí)施例來描述本發(fā)明。然而,本發(fā)明的實(shí)施例不限于任何具體體系結(jié)構(gòu)、環(huán)境、應(yīng)用或?qū)崿F(xiàn)方式。例如,盡管將要描述用于數(shù)據(jù)庫管理系統(tǒng)的示例性三層體系結(jié)構(gòu),但是本發(fā)明也可以方便地應(yīng)用于數(shù)據(jù)庫應(yīng)用或體系結(jié)構(gòu)。因此,下文對(duì)實(shí)施例的說明是處于舉例說明的目的而非限制的目的。十分常用的數(shù)據(jù)庫管理系統(tǒng)體系結(jié)構(gòu)是如圖1所示的三層體系結(jié)構(gòu)。在數(shù)據(jù)庫管理系統(tǒng)的核心是存儲(chǔ)數(shù)據(jù)庫3的中央存儲(chǔ)裝置1。數(shù)據(jù)庫3一般存儲(chǔ)在一個(gè)或多個(gè)硬盤上,數(shù)據(jù)庫3一般是較大計(jì)算機(jī)系統(tǒng)的一部分。信息可以利用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)以多種格式存儲(chǔ)在數(shù)據(jù)庫3中,其中關(guān)系型數(shù)據(jù)庫管理系統(tǒng)十分依賴于表來存儲(chǔ)信息。數(shù)據(jù)庫服務(wù)器5是與數(shù)據(jù)庫3交互的程序?qū)嵗?。?shù)據(jù)庫服務(wù)器的每個(gè)實(shí)例能夠但不限于獨(dú)立地查詢數(shù)據(jù)庫3并在其中存儲(chǔ)信息。數(shù)據(jù)庫服務(wù)器5可能不包括對(duì)用戶友好的界面(例如圖形用戶界面)。此外,一個(gè)或多個(gè)應(yīng)用服務(wù)器7可以向數(shù)據(jù)庫服務(wù)器5提供用戶接口。例如,應(yīng)用服務(wù)器7可以是因特網(wǎng)(或其它網(wǎng)絡(luò))上的網(wǎng)頁應(yīng)用服務(wù)器。應(yīng)用服務(wù)器7可以提供用戶友好機(jī)制,以通過數(shù)據(jù)庫服務(wù)器5訪問數(shù)據(jù)庫3。網(wǎng)頁瀏覽器9可以用來訪問應(yīng)用服務(wù)器7。圖2示出了實(shí)現(xiàn)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)中的組件框圖。計(jì)算機(jī)系統(tǒng)101包括處理器103,用于執(zhí)行來自計(jì)算機(jī)程序(包括操作系統(tǒng))的指令。盡管處理器一般還具有高速緩存,但是處理器103使用存儲(chǔ)器105來存儲(chǔ)指令或計(jì)算機(jī)代碼和數(shù)據(jù)。固定存儲(chǔ)裝置107可以存儲(chǔ)計(jì)算機(jī)程序與數(shù)據(jù),使得它一般是持久性的并且與存儲(chǔ)器105相比提供了更多的存儲(chǔ)。目前,用于數(shù)據(jù)庫的常用固定存儲(chǔ)裝置是多(例如,陣列式)硬盤??梢瞥鎯?chǔ)裝置109向存儲(chǔ)于其上的計(jì)算機(jī)程序和/或數(shù)據(jù)提供移動(dòng)性??梢瞥鎯?chǔ)裝置的示例是軟盤、磁帶、CD/ROM、閃存設(shè)備等。存儲(chǔ)器105、固定存儲(chǔ)裝置107和可移除存儲(chǔ)裝置109提供可以用來存儲(chǔ)和獲取計(jì)算機(jī)程序、本發(fā)明使用的數(shù)據(jù)等的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)示例,其中計(jì)算機(jī)程序包括實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)代碼。此外,以載波實(shí)現(xiàn)的數(shù)據(jù)信號(hào)(例如,在包括因特網(wǎng)在內(nèi)的網(wǎng)絡(luò)中)可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。輸入111允許用戶與系統(tǒng)進(jìn)行交互。輸入可以通過使用鍵盤、鼠標(biāo)、按鈕、撥號(hào)或任何其它輸入機(jī)制來實(shí)現(xiàn)。輸出113允許系統(tǒng)向用戶提供輸出。輸出可以通過監(jiān)視器、顯示屏、LED、打印機(jī)或任何其它輸出機(jī)制來提供。網(wǎng)絡(luò)接口115允許系統(tǒng)用接口連接它所連接到的網(wǎng)絡(luò)。計(jì)算機(jī)系統(tǒng)101的系統(tǒng)總線體系結(jié)構(gòu)由箭頭117來表示。圖2所示的組件可以在許多計(jì)算機(jī)系統(tǒng)中找到。然而,組件可以被添加、刪除和合并。例如,固定存儲(chǔ)裝置107可以是通過網(wǎng)絡(luò)連接訪問的文件服務(wù)器。因此,圖2是出于舉例說明的目的而非限制的目的?,F(xiàn)在,已經(jīng)描述了示例性數(shù)據(jù)庫應(yīng)用與環(huán)境,下面討論數(shù)據(jù)庫中的示例性對(duì)象會(huì)是有益的。圖3示出了在數(shù)據(jù)庫中可能存在的對(duì)象和從屬對(duì)象。示出的表201包括大對(duì)象(LOB)203。表是用來在數(shù)據(jù)庫中存儲(chǔ)信息的常用對(duì)象。信息一般被存儲(chǔ)在表的字段中,并且可以包括諸如數(shù)字、字符串、指針、嵌套表等的數(shù)據(jù)類型。除了諸如嵌套表、分區(qū)表、IOT等的一般表外,還有很多種表。出于舉例說明的目的,所示出的LOB203代表可以在表中存儲(chǔ)的另一類型數(shù)據(jù)。LOB可以存儲(chǔ)諸如二進(jìn)制圖像和聲音文件的信息。為了更有效地訪問表201,示出了索引205和207。索引一般使用關(guān)鍵字字段來更有效地訪問表。LOB203和索引205與207是從屬對(duì)象的示例,因?yàn)樗鼈儚膶儆诹硪粚?duì)象(本例中的表201)。它們是從屬對(duì)象,因?yàn)槿绻麤]有它們所從屬的對(duì)象,則從屬對(duì)象將幾乎或根本沒有價(jià)值。一些從屬對(duì)象是可重建的,意味著如果從屬對(duì)象被清除,則它能夠被重建。索引205和207是能夠被重建的從屬對(duì)象的示例。LOB203是一旦被清除一般不能被重建的從屬對(duì)象示例。從屬對(duì)象的其它示例包括約束和觸發(fā),但是本發(fā)明可以方便地用于與任何類型的從屬對(duì)象一起工作。數(shù)據(jù)庫一般要比圖3所示的復(fù)雜得多。然而,該圖在描述本發(fā)明實(shí)施例方面是有益的。圖4示出了還原來自數(shù)據(jù)庫的對(duì)象的過程流程圖。與這里所示出的所有流程圖一樣,在不背離本發(fā)明精神和范圍的條件下,可以添加、刪除、組合或重排步驟。在步驟301,接收命令來丟棄對(duì)象。命令一般是從用戶接收的,并且可以通過諸如圖形用戶界面或命令行的界面而輸入。通過丟棄對(duì)象,用戶表示她認(rèn)為不再需要該對(duì)象(例如,表)。在步驟303,對(duì)象被移到回收站?;厥照臼沁@樣的倉庫,其用于存儲(chǔ)已被丟棄的對(duì)象,直到用戶還原它們,用戶明確清除它們或者數(shù)據(jù)庫清除它們以便獲得更多的存儲(chǔ)空間。可以通過改變用于定義回收站中有什么的變量來執(zhí)行對(duì)對(duì)象的移動(dòng)。在一些實(shí)施例中,回收站被實(shí)現(xiàn)為字典表。當(dāng)對(duì)象被丟棄時(shí),在該表中產(chǎn)生一個(gè)條目并且這些對(duì)象可以被還原?;厥照局械膶?duì)象的空間仍舊可以分配給合適的用戶,即使它們被丟棄。一個(gè)實(shí)施例的其它細(xì)節(jié)將參考圖7和圖8在下文中描述。在步驟305,確定是否存在從屬于已被丟棄的對(duì)象的任何從屬對(duì)象。如果存在從屬對(duì)象,則在步驟307從屬對(duì)象被移動(dòng)到回收站。例如,參考圖3,如果用戶指示表201應(yīng)當(dāng)被丟棄,則系統(tǒng)將把LOB203和索引205與207識(shí)別為表201的從屬對(duì)象,所以它們將被移到回收站。參考圖4,在接收到還原對(duì)象的命令之后,在步驟309,該對(duì)象被移出回收站。通過將對(duì)象移出回收站,數(shù)據(jù)庫系統(tǒng)能夠還原表而不要求在檢索期間數(shù)據(jù)庫被實(shí)際關(guān)斷。當(dāng)對(duì)象被還原并且被移出回收站時(shí),回收站中存在的所有從屬對(duì)象也可以被移出回收站(即,還原)。在一些實(shí)例中,為了獲得更多存儲(chǔ)空間,可重建從屬對(duì)象可能已從回收站被清除。在數(shù)據(jù)庫系統(tǒng)處于處理要求間歇或任何其它時(shí)間時(shí),當(dāng)需要可重建對(duì)象時(shí),可重建從屬對(duì)象可以在其所從屬的對(duì)象被還原時(shí)被重建。圖4示出了對(duì)象和從屬對(duì)象會(huì)被如何移到回收站的示例。圖5示出了可從回收站移出對(duì)象的方式。更具體地說,圖5示出了可從回收站移除對(duì)象和從屬對(duì)象的過程流程圖。如果在步驟351,數(shù)據(jù)庫處于不需要更多存儲(chǔ)空間的狀態(tài),則用戶可以執(zhí)行命令來從回收站移除對(duì)象和從屬對(duì)象。例如,在步驟353,用戶可以從回收站353明確清除對(duì)象或從屬對(duì)象。一旦對(duì)象或從屬對(duì)象被清除,如果用戶改變她的主意,則可能需要執(zhí)行回滾和前滾,以便檢索對(duì)象或從屬對(duì)象。此外,在步驟355,用戶可以還原對(duì)象或從屬對(duì)象。通過還原對(duì)象或從屬對(duì)象,對(duì)象或從屬對(duì)象被移出回收站并且可用,如同它們從來沒有被丟棄一樣。如果需要存儲(chǔ)空間,則在步驟357,數(shù)據(jù)庫將選擇要清除的對(duì)象。在步驟359,數(shù)據(jù)庫可以清除從屬于在步驟357中所選對(duì)象的從屬對(duì)象。在步驟361,所選對(duì)象被清除。如上所述,在一些實(shí)施例中,如果需要更多存儲(chǔ)空間,則數(shù)據(jù)庫選擇要清除的對(duì)象和從屬對(duì)象(如果有的話)。在其它實(shí)施例中,用戶可以介入該過程,例如選擇要清除的(一個(gè)或多個(gè))對(duì)象。由于回收站中的對(duì)象仍舊占用存儲(chǔ)空間,所以當(dāng)用戶請(qǐng)求新的對(duì)象(或者數(shù)據(jù)庫需要?jiǎng)?chuàng)建對(duì)象)時(shí),將確定需要更多的存儲(chǔ)空間。圖6示出了通過清除回收站中的一個(gè)或多個(gè)對(duì)象來獲得更多存儲(chǔ)空間的過程流程圖。在步驟401,接收對(duì)存儲(chǔ)空間量的請(qǐng)求。在步驟403,選擇最久的對(duì)象來進(jìn)行清除。盡管在一些實(shí)施例中,選擇了最久的對(duì)象,但是其它實(shí)施例可以使用任意特性來選擇要被清除的對(duì)象。在步驟405,確定所選的對(duì)象是否被分區(qū)。如果所選對(duì)象沒有被分區(qū),則在步驟407對(duì)象被清除。從屬于被清除對(duì)象的對(duì)象也可被清除。然而,如果由于步驟407處對(duì)對(duì)象的清除提供了所請(qǐng)求的存儲(chǔ)空間因而在此時(shí)不需要清除從屬對(duì)象,則可以將從屬對(duì)象的清除推遲到較晚的時(shí)候。例如,在一些實(shí)施例中,一個(gè)守護(hù)程序(daemon)在后臺(tái)運(yùn)行,并且識(shí)別回收站中已被標(biāo)記為可清除但還未被清除的從屬對(duì)象。守護(hù)程序可以隨后在方便的時(shí)候清除這些從屬對(duì)象。在步驟409,確定是否還需要更多的存儲(chǔ)空間,如果“是”,則流程回到步驟403。否則,已得到所請(qǐng)求的存儲(chǔ)空間?,F(xiàn)在回到步驟405,如果對(duì)象被分區(qū),則在步驟411清除一個(gè)或多個(gè)分區(qū)。在一些實(shí)施例中,所有分區(qū)被清除。但是,如果為了獲得所請(qǐng)求的存儲(chǔ)空間不是所有的分區(qū)都需要被清除的話,則僅有那些分區(qū)被立刻清除。如上所述,其它分區(qū)可以被標(biāo)記為可清除,并且守護(hù)程序可以在較晚的時(shí)候從回收站清除這些程序。這樣,對(duì)象的一部分(例如,一個(gè)或多個(gè)分區(qū))可以被標(biāo)記為將來清除。通過僅清除獲得所請(qǐng)求的存儲(chǔ)空間所需的對(duì)象或分區(qū)可以看出,用戶(或數(shù)據(jù)庫)僅需等待獲得存儲(chǔ)空間所需的時(shí)間。這樣,用戶不需要對(duì)為她所不需要的存儲(chǔ)空間而清除從屬對(duì)象或分區(qū)這一過程進(jìn)行等待。為此,在一些實(shí)施例中,當(dāng)用戶明確清除對(duì)象時(shí),該對(duì)象、所有從屬對(duì)象和所有分區(qū)被立刻清除(即,沒有守護(hù)程序延遲清除),因?yàn)槭怯脩舭l(fā)出的命令所以會(huì)引起處理的延遲。示例如上所述,回收站可以被實(shí)現(xiàn)為表。該表可以包括已被丟棄的每個(gè)對(duì)象的條目。圖7示出了用來實(shí)現(xiàn)回收站的表模式示例,并且下文將說明表的具體字段。OBJ#存儲(chǔ)被丟棄對(duì)象的原始對(duì)象號(hào)。該字段被用來表示字典表中的對(duì)象。OBJ#對(duì)于數(shù)據(jù)庫中的所有對(duì)象來說是唯一的,因此形成了用于對(duì)象的唯一標(biāo)識(shí)符。對(duì)于分區(qū)的情形,在其被移到回收站時(shí)將創(chuàng)建一個(gè)新的對(duì)象,因此一個(gè)新的OBJ#可以被分配給它。這個(gè)新的OBJ#隨后可以用來標(biāo)識(shí)相關(guān)分區(qū)。在一些實(shí)施例中,如果分區(qū)被還原,則它將被恢復(fù)為新對(duì)象。OWNER#被用來存儲(chǔ)對(duì)象的原始擁有者的USER#。在丟棄對(duì)象時(shí),該對(duì)象的擁有者信息可能被修改。如果用戶還原對(duì)象,則它應(yīng)當(dāng)被復(fù)原給原始擁有者,這可以利用該字段來實(shí)現(xiàn)。ORIGINAL_NAME#保持對(duì)象的原始名稱。對(duì)象的名稱在其被移到回收站時(shí)可能改變。維護(hù)對(duì)象的原始名稱只是為了用戶的方便。OPERATION規(guī)定對(duì)對(duì)象執(zhí)行的DDL操作。該字段可以用來區(qū)分對(duì)象是被丟棄還是被截短,從而可以適當(dāng)?shù)靥幚韺?duì)象。該字段可以保持下述兩個(gè)有效值之一0-對(duì)象被丟棄(DROP)以及1-對(duì)象被截短(TRUNCATE)。TYPE#存儲(chǔ)被丟棄對(duì)象的對(duì)象類型。下面是可被支持用于還原的類型示例表、常規(guī)索引、位圖索引、嵌套表、LOB、LOB索引、域索引、IOT頂索引、IOT溢出段、IOT映射表、觸發(fā)、約束、表分區(qū)、表合成分區(qū)、索引分區(qū)、索引合成分區(qū)、LOB分區(qū)、LOB合成分區(qū)等。TS#提供了被丟棄且現(xiàn)在被移到回收站的對(duì)象的表空間號(hào)。這對(duì)于試圖為接近于填滿的表空間釋放空間來說會(huì)是有益的。從仍具有大量空間的表空間回收空間不會(huì)解決空間壓力問題,因此僅為幾乎填滿且需要一些空間的表空間從回收站回收空間是有益的。FILE#存儲(chǔ)對(duì)象的段頭的文件號(hào)。與TS#和BLOCK#一道,可以獲得唯一的SEG$條目。BLOCK#提供對(duì)象的段頭的塊號(hào)。與TS#和FILE#一道,可以獲得唯一的SEG$條目。該字段可以用來在有空間壓力時(shí)有效訪問段頭。DROPTIME存儲(chǔ)當(dāng)對(duì)象被丟棄時(shí)的系統(tǒng)時(shí)間。該字段的值可以用來計(jì)算對(duì)象已經(jīng)存在于回收站中的時(shí)間。在有空間壓力的情況下,可以以對(duì)象被丟棄的順序從回收站回收對(duì)象。這樣,該字段被用來維持回收站中的對(duì)象的基于時(shí)間的排序。DROPSCN提供引起對(duì)象丟棄的SCN。這對(duì)于閃回(FlashBack)查詢來說會(huì)是有用的。PARTITIOM_NAME保持被丟棄的分區(qū)的名稱。在非分區(qū)表中,該字段為NULL。因此,使用該字段僅僅是為了用戶的方便。FLAGS保持回收站中的對(duì)象的多個(gè)標(biāo)志。該字段的多個(gè)位之一可以用來保持跟蹤對(duì)象是否可被還原。如果增量方法被用于空間回收,則很可能僅有屬于對(duì)象的少范圍(extent)被釋放而其它范圍仍舊存在于回收站中。如果沒有任何被分配給該對(duì)象的范圍已被釋放,則對(duì)象可以被還原。如果即使只有屬于對(duì)象的一個(gè)范圍被釋放,它也不應(yīng)被還原。RELATED標(biāo)識(shí)所考量的對(duì)象的父對(duì)象的OBJ#。BO存儲(chǔ)引起該對(duì)象被丟棄并被置于回收站中的基表的OBJ#。PURGEOBJ提供下述對(duì)象的OBJ#,其中所述對(duì)象(例如,索引或表)在想要從系統(tǒng)清除該特定對(duì)象并釋放空間的情況下由于空間壓力而將被清除。BASE_TS#存儲(chǔ)基對(duì)象(例如,表)的表空間號(hào)。BASE_OWNER#保持基對(duì)象的擁有者的用戶號(hào)。SPACE提供對(duì)象的大小。該字段可以用來顯示回收站中的對(duì)象使用了多少空間(例如,以塊數(shù)目的形式)。CON#存儲(chǔ)在由于約束而構(gòu)建的索引的情形下的約束ID。否則它將是NULL。SPARE1、SPARE2和SPARE3可以在將來的實(shí)現(xiàn)中使用。現(xiàn)在,已經(jīng)說明了圖7中的表模式,下面討論被丟棄并被置于回收站中的對(duì)象和從屬對(duì)象的示例是有益的。當(dāng)用戶丟棄對(duì)象時(shí),對(duì)象被置于回收站中。該對(duì)象在OBJ$中被標(biāo)記為被丟棄(但是未被清除)。用戶可以按照自己的想法清除該對(duì)象,或者該對(duì)象將由于空間壓力而被自動(dòng)清除。圖8示出了已被丟棄的對(duì)象與從屬對(duì)象的條目。這些條目指示已經(jīng)丟棄的表TABLE1和索引INDEX1(從屬對(duì)象)。當(dāng)TABLE1被丟棄時(shí),這些條目被添加到表中。如圖所見,RELATED字段指示INDEX1與TABLE1有關(guān)。因此,INDEX1由于TABLE1被丟棄而被置于回收站中。用戶在沒有首先還原TABLE1的條件下,不能夠還原INDEX1,但是如果沒有回收來自有關(guān)對(duì)象的空間,則還原TABLE1也將還原INDEX1。當(dāng)對(duì)象需要被恢復(fù)(被還原)時(shí),將使用來自回收站的原始所有者信息(例如,OWNER#),以將對(duì)象重分配給它。只有當(dāng)對(duì)象被清除(由用戶或空間回收過程)時(shí),它將從回收站中被移除,從而請(qǐng)求空間的事務(wù)可以重新使用該空間。盡管上文對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行了完整的說明,但是可以使用多種替換形式、修改形式和等同形式。很明顯,通過對(duì)上述實(shí)施例進(jìn)行修改,同樣可以應(yīng)用本發(fā)明。例如,盡管可以使用表模式來實(shí)現(xiàn)回收站,但是本發(fā)明不限于上述具體示例。因此,上面的說明不應(yīng)作為對(duì)本發(fā)明范圍的限制,本發(fā)明的范圍由權(quán)利要求及其所有等同物的界線和范圍所限定。權(quán)利要求1.一種允許在數(shù)據(jù)庫系統(tǒng)中進(jìn)行還原的方法,包括接收丟棄數(shù)據(jù)庫中的對(duì)象的命令;將所述對(duì)象移到回收站;如果存在從屬于所述對(duì)象的從屬對(duì)象,則將所述從屬對(duì)象移到所述回收站;以及在接收到還原所述對(duì)象的命令后,將所述對(duì)象移出所述回收站。2.如權(quán)利要求1所述的方法,還包括清除所述回收站中的所述對(duì)象。3.如權(quán)利要求2所述的方法,其中所述對(duì)象被清除以獲取更多存儲(chǔ)空間。4.如權(quán)利要求1所述的方法,還包括接收對(duì)存儲(chǔ)空間量的請(qǐng)求。5.如權(quán)利要求4所述的方法,還包括清除所述回收站中的對(duì)象以獲得所述存儲(chǔ)空間量。6.如權(quán)利要求4所述的方法,還包括清除從屬于被清除的所述對(duì)象的從屬對(duì)象。7.如權(quán)利要求4所述的方法,還包括如果需要獲得所述存儲(chǔ)空間量則清除從屬于被清除的所述對(duì)象的從屬對(duì)象,并且將所有其它的所述從屬對(duì)象標(biāo)記為將來清除。8.如權(quán)利要求4所述的方法,還包括如果對(duì)象的一部分不需要被清除以獲得所述存儲(chǔ)空間量,則將所述部分標(biāo)記為將來清除。9.如權(quán)利要求1所述的方法,其中所述回收站是表。10.如權(quán)利要求1所述的方法,其中所述表包括標(biāo)識(shí)從屬對(duì)象所從屬的對(duì)象的字段。11.一種允許在數(shù)據(jù)庫系統(tǒng)中進(jìn)行還原的計(jì)算機(jī)程序產(chǎn)品,包括用于接收丟棄數(shù)據(jù)庫中的對(duì)象的命令的計(jì)算機(jī)代碼;用于將所述對(duì)象移到回收站的計(jì)算機(jī)代碼;用于如果存在從屬于所述對(duì)象的從屬對(duì)象則將所述從屬對(duì)象移到所述回收站的計(jì)算機(jī)代碼;用于在接收到還原所述對(duì)象的命令后將所述對(duì)象移出所述回收站的計(jì)算機(jī)代碼;以及存儲(chǔ)所述計(jì)算機(jī)代碼的計(jì)算機(jī)可讀介質(zhì)。12.如權(quán)利要求11所述的計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算機(jī)可讀介質(zhì)是CD-ROM、軟盤、磁帶、閃存、系統(tǒng)存儲(chǔ)器、硬盤或者以載波實(shí)現(xiàn)的數(shù)據(jù)信號(hào)。13.一種數(shù)據(jù)庫系統(tǒng),包括數(shù)據(jù)庫,用于在表中存儲(chǔ)信息,并且包括實(shí)現(xiàn)回收站的表,所述實(shí)現(xiàn)回收站的表指示已被丟棄的對(duì)象,從而用戶可以還原所述回收站中的對(duì)象。14.如權(quán)利要求13所述的數(shù)據(jù)庫系統(tǒng),其中所述表包括標(biāo)識(shí)從屬對(duì)象所從屬的對(duì)象的字段。15.一種允許在數(shù)據(jù)庫系統(tǒng)中進(jìn)行還原的方法,包括接收丟棄數(shù)據(jù)庫中的對(duì)象的命令;將所述對(duì)象移到回收站;如果存在從屬于所述對(duì)象的從屬對(duì)象,則將所述從屬對(duì)象移到所述回收站;在接收到還原所述對(duì)象的命令后,將所述對(duì)象移出所述回收站;以及如果需要更多的存儲(chǔ)空間,則清除所述對(duì)象以提供更多的存儲(chǔ)空間。16.如權(quán)利要求15所述的方法,還包括接收對(duì)存儲(chǔ)空間量的請(qǐng)求。17.如權(quán)利要求15所述的方法,還包括清除從屬于被清除的所述對(duì)象的從屬對(duì)象。18.如權(quán)利要求15所述的方法,還包括如果需要獲得所述存儲(chǔ)空間量則清除從屬于被清除的所述對(duì)象的從屬對(duì)象,并且將所有其它的所述從屬對(duì)象標(biāo)記為將來清除。19.如權(quán)利要求15所述的方法,還包括如果對(duì)象的一部分不需要被清除以獲得所述存儲(chǔ)空間量,則將所述部分標(biāo)記為將來清除。20.如權(quán)利要求15所述的方法,其中所述回收站是表。21.如權(quán)利要求15所述的方法,其中所述表包括標(biāo)識(shí)從屬對(duì)象所從屬的對(duì)象的字段。22.一種允許在數(shù)據(jù)庫系統(tǒng)中進(jìn)行還原的計(jì)算機(jī)程序產(chǎn)品,包括用于接收丟棄數(shù)據(jù)庫中的對(duì)象的命令的計(jì)算機(jī)代碼;用于將所述對(duì)象移到回收站的計(jì)算機(jī)代碼;用于如果存在從屬于所述對(duì)象的從屬對(duì)象則將所述從屬對(duì)象移到所述回收站的計(jì)算機(jī)代碼;用于在接收到還原所述對(duì)象的命令后將所述對(duì)象移出所述回收站的計(jì)算機(jī)代碼;用于如果需要更多的存儲(chǔ)空間則清除所述對(duì)象以提供更多的存儲(chǔ)空間的計(jì)算機(jī)代碼;以及存儲(chǔ)所述計(jì)算機(jī)代碼的計(jì)算機(jī)可讀介質(zhì)。23.如權(quán)利要求22所述的計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算機(jī)可讀介質(zhì)是CD-ROM、軟盤、磁帶、閃存、系統(tǒng)存儲(chǔ)器、硬盤或者以載波實(shí)現(xiàn)的數(shù)據(jù)信號(hào)。24.一種數(shù)據(jù)庫系統(tǒng),包括數(shù)據(jù)庫,用于在表中存儲(chǔ)信息,并且包括實(shí)現(xiàn)回收站的表,所述實(shí)現(xiàn)回收站的表指示已被丟棄的對(duì)象,從而用戶可以還原所述回收站中的對(duì)象;其中如果需要更多存儲(chǔ)空間,則從所述回收站清除對(duì)象。25.如權(quán)利要求24所述的數(shù)據(jù)庫系統(tǒng),其中所述表包括標(biāo)識(shí)從屬對(duì)象所從屬的對(duì)象的字段。全文摘要本發(fā)明提供了用于還原數(shù)據(jù)庫中的對(duì)象(例如,表)和從屬對(duì)象的技術(shù)。當(dāng)對(duì)象被丟棄時(shí),對(duì)象被移到回收站,對(duì)象在回收站中一直駐留到用戶還原對(duì)象或者對(duì)象被清除。從屬對(duì)象也和它們所從屬的對(duì)象一起被移到回收站中。對(duì)象可以由用戶明確地從回收站清除,或者當(dāng)需要更多存儲(chǔ)空間時(shí)從回收站清除。如果不需要獲得更多的存儲(chǔ)空間,則可以延遲從屬對(duì)象和分區(qū)的清除。文檔編號(hào)G06F17/30GK1791873SQ200480013535公開日2006年6月21日申請(qǐng)日期2004年4月7日優(yōu)先權(quán)日2003年5月27日發(fā)明者韋尼特·瑪瓦申請(qǐng)人:甲骨文國際公司