Claims
- 1. A method for reducing the persistent size and optimizing the performance of a relational database system, comprising the computer implemented steps of:
storing in an index a copy of each non-integer unique data element that would occur in a database table; sequentially assigning to each entry in the index an integer identifier; populating the database table with the integer identifiers corresponding to each data element; and keeping a reference count for each data element to control its lifetime.
- 2. The method of claim 1, further comprising the steps of:
accepting a database query containing a queried data element; searching the index to determine the integer identifier corresponding to the queried data element; in response to determining the integer identifier corresponding to the queried data element, searching the database table to locate a record containing the integer identifier corresponding to the queried data element; and processing the query.
- 3. The method of claim 2, wherein the index is a hashed index; and
wherein searching the index comprises evaluating a hashing function.
- 4. The method of claim 2, wherein the step of searching the database table comprises:
creating a cursor for the database table; populating the cursor with information from the database query and the integer identifier corresponding to the queried data element; and using the populated cursor to perform a binary search on the database table, so as to identify the corresponding integer data element in the database table.
- 5. The method of claim 1, further comprising the step of adding a temporary row to the database table to store integer identifiers corresponding to temporary data elements.
- 6. The method of claim 1, further comprising the step of adding a temporary column to the database table to store integer identifiers corresponding to temporary data elements.
- 7. The method of claim 5, further comprising the step of:
modifying the integer identifiers corresponding to data elements and temporary data elements; wherein the modifications to integer identifiers corresponding to the data elements persist, but the modifications to the integer identifiers corresponding to temporary data elements do not persist.
- 8. A computer-readable medium having stored thereon the computer-implemented steps of claim 1.
- 9. A method for reducing the persistent size and optimizing the performance of a relational database system, comprising the computer implemented steps of:
storing in an index a copy of each non-integer unique data element that would occur in a database table; sequentially assigning to each entry in the index an integer identifier; populating the database table with the integer identifiers corresponding to each data element; keeping a reference count for each data element to control its lifetime; and adding a temporary column to the database table to store a plurality of temporary data elements, the temporary data elements not persisting in the database table.
- 10. The method of claim 9, further comprising the step of adding a temporary row to the database table to store the temporary data elements.
- 11. A method for installing an upgraded second version of a software product onto a computer system comprising the computer implemented steps of:
providing a first installation database table corresponding to first version of a software product; providing a second installation database table corresponding to a second version of the software product; recording in a database transform the differences between the first installation database table and the second installation database table; providing an upgraded first installation database table corresponding to an upgraded first version of the software product; applying the database transform to the upgraded first installation database table to produce an upgraded second installation database corresponding to an upgraded second version of the software product; and using a database-driven installation program to install the upgraded second version of the software product onto the target computer via the upgraded second installation database table.
- 12. The method of claim 11, wherein the first version of the software product is adapted for a first language; and
wherein the second version of the software product is adapted for a second language.
- 13. A computer-readable medium having stored thereon the computer-implemented steps of claim 8.
- 14. A method of providing a custom installation of a software product onto a plurality of computer systems, comprising:
providing to multiple computer systems an original installation database table corresponding to a software product; at one of the computer systems, modifying the original installation database table to effect a custom installation of the software product; recording the differences between the original installation database table and the modified installation database table in a database transform; and applying the database transform to the original installation database tables at the remaining computer systems, so that the software product will be installed according to the custom installation onto each of the remaining computer systems.
- 15. A computer-readable medium having stored thereon the computer-implemented steps of claim 14.
- 16. A method for providing a patch to an existing software product comprising the computer implemented steps of:
providing to an end-user an original installation database table corresponding to a software product; modifying the original installation database table to add a patch to the software product; recording the differences between the original installation database table and the modified installation database table in a database transform; and providing the database transform to the end-user, so that the database transform may be applied to the original installation database table.
- 17. A computer-readable medium having stored thereon the computer-implemented steps of claim 16.
- 18. A method for creating a final installation database for a software product, comprising:
logically dividing the software product into a plurality of features; creating a feature installation database for each of the features; and merging the feature installation databases into a final installation database for the software product.
- 19. The method of claim 18, wherein one of the plurality of features is logically divided into a plurality of components;
wherein a component installation database is created for each of the components; and wherein each component installation database is merged into the corresponding feature installation database.
RELATED APPLICATIONS
[0001] This application is related to the following applications, all of which are filed on the same day and assigned to the same assignee as the present application:
[0002] “Use of Relational Databases for Software Installation”—Ser. No._______;
[0003] “System and Method for Repairing a Damaged Application”—Ser. No._______;
[0004] “Method and System for Restoring a Computer to its Original State After an Unsuccessful Installation Attempt”—Ser. No. _______; “A Method for Categorizing and Installing Selected Software Components”—Ser. No._______;
[0005] “System and Method for Managing Locations of Software Components Via a Source List”—Ser. No._______;
[0006] “Software Installation and Validation Using Custom Actions”—Ser. No._______;
[0007] “Internal Database Validation”—Ser. No._______;
[0008] “Management of Non-persistent Data in a Persistent Database”—Ser. No._______;
[0009] “Method and System for Advertising Applications”—Ser. No._______; and
[0010] “Software Implementation Installer Mechanism”—Ser. No._______.
Divisions (1)
|
Number |
Date |
Country |
| Parent |
09157853 |
Sep 1998 |
US |
| Child |
09792661 |
Feb 2001 |
US |