The present invention relates to computer systems. More specifically, the invention relates to providing the capability to undrop objects and dependent objects in a database system.
In general, a database management system (DBMS) is the computer software that controls the organization, storage, retrieval, security, and integrity of information in a database. Information in a database can be stored utilizing numerous types of objects. For example, information can be stored in tables and access to tables can be facilitated by indices. Other commons objects include nested tables, partial tables, index organized tables (IOTs), large objects (LOBs), constraints, triggers, and the like.
For any number of reasons, a user may decide to purge or delete an object. For example, the user may feel that the object is no longer necessary, to make more storage space available or it may be accidental. Regardless of the reason for the purge, a user occasionally changers her mind and desires to have the object back.
With database applications today, the current state of the database is stored periodically. Additionally, a list of transactions that are performed on the database since that state are also stored. When a user desires to retrieve an object that has been purged, the database is rolled back to the last stored state. After the rollback, the transactions that were performed after the state was stored can be executed from the list of transactions.
Although this solution can retrieve a purged object, it has a disadvantage that it is relatively time consuming. More importantly, it has the disadvantage that during the rollback and roll forward of the database, new transactions typically can not be excepted by the database. Thus, the database is in effect shut down during the retrieval of a purged object.
It would be beneficial to have innovative techniques for improving the way objects are purged in a database system. Additionally, it would be beneficial to have innovative techniques that allow the retrieval of objects without requiring the database to be shut down.