The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will be understood best by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The principles of the present invention are applicable to a variety of computer hardware and software configurations. The term “computer hardware” or “hardware,” as used herein, refers to any machine or apparatus that is capable of accepting, performing logic operations on, storing, or displaying data, and includes without limitation processors and memory. The term “computer software” or “software,” refers to any set of instructions operable to cause computer hardware to perform an operation. A “computer,” as that term is used herein, includes without limitation any useful combination of hardware and software, and a “computer program” or “program” includes without limitation any software operable to cause computer hardware to accept, perform logic operations on, store, or display data. A computer program may, and often is, comprised of a plurality of smaller programming units, including without limitation subroutines, modules, functions, methods, and procedures. Thus, the functions of the present invention may be distributed among a plurality of computers and computer programs. The invention is described best, though, as a single computer program that configures and enables one or more general-purpose computers to implement the novel aspects of the invention. For illustrative purposes, the inventive computer program will be referred to as the “Derived Field Calculator” (DFC).
Additionally, the DFC is described below with reference to an exemplary network of hardware devices, as depicted in
DFC 200 typically is stored in a memory, represented schematically as memory 220 in
Language component adds a new “DERIVE” column datatype for the DDL “CREATE” command. The DERIVE column datatype is followed by an expression referencing other columns in the CREATE command. The DERIVE column field is referred to as the “derived field.” The column fields referenced by the DERIVE column's expression are “makeup fields.” The DERIVE column datatype can also be used with other DDL commands such as “ALTER.” An example of the modified CREATE command with the DERIVE datatype follows:
The above command, using the steps shown in
Likewise, definition component 400 saves the identified makeup fields in makeup fields table 280 in database metadata 260 (422). For example, two rows are reserved in makeup fields table 280 with the following commands:
If there are any other derived fields in the DDL command, definition component 400 repeats steps 416-422 for each derived field (424). If there are no derived fields, or after all the derived fields have been saved to database metadata 260, definition component 400 completes normal processing of the DDL command by performing such actions as creating or altering a table in relational database such as relational database 250 (426), and stops (428).
Referring to
Responsive to such a command issuing from application 240, manipulation component 500 reads the manipulated fields in the DML command (512) and references the contents in derived fields table 270 and makeup fields table 280 in database metadata 260 (514). If the DML command directs updates to a derived field (516), which is prohibited, manipulation component 500 returns an error (518) and stops (536). If no derived fields (516) or no makeup fields are modified (520), manipulation component 500 completes processing of the DML command normally (534) and stops (536). If the DML command modifies a makeup field (520), manipulation component 500 saves the changes to makeup fields table 280 (522). Manipulation component 500 gathers all the corresponding makeup fields from makeup fields table 280 (524) and calculates the derived field (526). Manipulation component 500 saves the calculated value to derived fields table 270 (528). Manipulation component 500 transforms the DML command to include the updated derived field (530). For example, the above DML command issued by application 240 would be transformed to:
If there are other modifications to a derived field (532), manipulation component 500 repeats steps 522-530. Once all the makeup fields and all the derived fields have been updated in derived fields table 270 and makeup fields table 280 in database metadata 260, manipulation component 500 executes the transformed DML command normally (534), updates relational database 250, and stops (536).
Because all the of DFC's 200 calculations and updates to derived fields occur in response to standard SQL commands, any application using the SQL standard can modify or query the data without running ORM tools. Moreover, the derived fields are only calculated in response to manipulations to makeup fields, rather than in response to a query, reducing the requisite overhead for applications with a high query rate.
A preferred form of the invention has been shown in the drawings and described above, but variations in the preferred form will be apparent to those skilled in the art. The preceding description is for illustration purposes only, and the invention should not be construed as limited to the specific form shown and described. The scope of the invention should be limited only by the language of the following claims.