Dynamic external control of rule-based decision making through user rule inheritance for database performance optimization
Abstract
A method for providing persistent, dynamic external control of rule-based decision making through inherited user defined rules (UDRs) within a computer controlled relational database management system (RDBMs). Within the novel system, objects are grouped together in a parent-child hierarchy where a child has one parent and each parent can have multiple children. Each object can have one or more pre-defined ("hardcoded") rules associated with it; these hardcoded rules are executed in a sequence to arrive at parameter values which, when applied, tune the database environment. The novel system provides a mechanism for creating UDRs which are associated with a particular object and used by particular hardcoded rules which process the particular object. For a given hardcoded rule, if a processed object does not have a UDR defined within, then a search is made up the object's ancestry (e.g., its parentage) until a defined UDR is located within an ancestor object; this value is then used to modify the behavior of the hardcoded rule. The root of the object hierarchy contains defined UDRs ("base UDRs") for all hardcoded rules, so the above search is effective for all user rules. Before a hardcoded rule is executed, it automatically allows its associated UDR to customize data and/or execute a procedure. The UDRs offer a mechanism for customizing the performance tuning session based on external (user supplied) information and defining the scope of the attribute represented by the UDR from different levels of the object hierarchy.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. In a computer controlled database system having a processor coupled to a bus and a memory coupled to said bus, a method for tailoring hardcoded rules for a database environment, said method comprising the steps of: a) storing into said memory a parent-child hierarchy of objects of said database system wherein said parent-child hierarchy comprises a root object, parent objects, and child objects, wherein each child object has one parent object and wherein each parent object has one or more child objects; b) defining a plurality of user rules applicable to said database environment wherein, for each respective user rule, each object of said parent-child hierarchy either contains an explicit user rule definition for said respective user rule or inherits its definition for said respective user rule from its closest ancestor object having an explicit user rule definition for said respective user rule; c) accessing from said memory a plurality of hardcoded rules which, when executed, tune said database system by operating on objects of said parent-child hierarchy wherein respective hardcoded rules each have at least one user rule defined therein; and d) performance tuning said database system to said database environment by executing said plurality of hardcoded rules, wherein the execution of a respective hardcoded rule on a respective object is preceded by the execution of an identified user rule defined with respect to said respective object and which supplies a value used to influence execution of said respective hardcoded rule.
2. A method as described in claim 1 wherein said step b) comprises the steps of: b1) explicitly defining values for said plurality of user rules within a first set of objects of said parent-child hierarchy; and b2) for each respective user rule, a child object inheriting a defined value for said respective user rule from its closest ancestor object having an explicit definition for said respective user rule as given in step b1).
3. A method as described in claim 2 wherein said step d) comprises the steps of: d1) determining if said identified user rule is explicitly defined within said respective object; d2) responsive to said d1), provided said identified user rule is so explicitly defined, returning said identified user rule for said respective object; and d3) responsive to step d1), provided said identified user rule is not so explicitly defined, searching up ancestor objects from said respective object within said parent-child hierarchy until said identified user rule is explicitly defined within an ancestor object and thereupon returning said identified user rule for said respective object.
4. A method as described in claim 2 further comprising the step of e) defining a base user rule for each user rule of said plurality of rule rules wherein each base user rule contains an explicit default user rule definition and is located within said root object of said parent-child hierarchy.
5. A method as described in claim 1 wherein said step of b) comprises the steps of: b1) receiving a definition from a user of a first user rule, said definition of said first user rule including a particular object identifier, a particular hardcoded rule identifier, a particular data type, and a particular data value; b2) receiving a definition from a user of a second user rule, said definition of said second user rule including a particular object identifier, a particular hardcoded rule identifier, a particular data type, and a particular data value; b3) recording said first user rule into a first location of a data structure by recording its particular object identifier, its particular hardcoded rule identifier, its particular data type, and its particular data value; and b4) recording said second user rule into a second location of said data structure by recording its particular object identifier, its particular hardcoded rule identifier, its particular data type, and its particular data value.
6. A method as described in claim 1 wherein said database system is a relational database management system.
7. In a database system, a method of performance tuning attributes organized within objects of a parent-child hierarchy of objects, said method comprising the steps of: a) defining a plurality of user rules applicable to a database environment within said parent-child hierarchy of objects wherein, for each respective user rule, each object of said parent-child hierarchy either contains an explicit user rule definition for said respective user rule or inherits its definition for said respective user rule from its closest ancestor object having an explicit user rule definition for said respective user rule; and b) performance tuning said database system to said database environment by executing a plurality of hardcoded rules, wherein the execution of a respective hardcoded rule on a respective object is preceded by the execution of an identified user rule defined with respect to said respective object and which supplies a value used to influence execution of said respective hardcoded rule, said step b) comprising the steps of: b1) determining if said identified user rule is explicitly defined within said respective object; b2) responsive to said b1), provided said identified user rule is so explicitly defined, returning said identified user rule for said respective object; and b3) responsive to step b1), provided said identified user rule is not so explicitly defined, searching up ancestor objects from said respective object within said parent-child hierarchy until said identified user rule is explicitly defined within an ancestor object and thereupon returning said identified user rule for said respective object.
8. A method as described in claim 7 wherein said step a) comprises the steps of: a1) explicitly defining values for said plurality of user rules within a first set of objects of said parent-child hierarchy; and a2) for each respective user rule, a child object inheriting a defined value for said respective user rule from its closest ancestor object having an explicit definition for said respective user rule as given in step b1).
9. A method as described in claim 7 further comprising the step of c) explicitly defining a base user rule definition for each user rule of said-plurality of user rules wherein each base rule is located within a root object of said parentchild hierarchy.
10. A method as described in claim 7 wherein said step of a) comprises the steps of: a1) receiving a definition from a user of a first user rule, said definition of said first user rule including a particular object identifier, a particular hardcoded rule identifier, a particular data type, and a particular data value; a2) receiving a definition from a user of a second user rule, said definition of said second user rule including a particular object identifier, a particular hardcoded rule identifier, a particular data type, and a particular data value; a3) recording said first user rule into a first location of a data structure by recording its particular object identifier, its particular hardcoded rule identifier, its particular data type, and its particular data value; and a4) recording said second user rule into a second location of said data structure by recording its particular object identifier, its particular hardcoded rule identifier, its particular data type, and its particular data value.
11. A method as described in claim 7 wherein said database system is a relational database management system.
12. A computer readable medium containing program instructions stored therein that implement a method a method of performance tuning attributes organized within a parent-child hierarchy of objects, said instructions implementing the steps of: a) defining a plurality of user rules applicable to a database environment within said parent-child hierarchy of objects wherein, for each respective user rule, each object of said parent-child hierarchy either contains an explicit user rule definition for said respective user rule or inherits its definition for said respective user rule from its closest ancestor object having an explicit user rule definition for said respective user rule; and b) performance tuning said database system to said database environment by executing a plurality of hardcoded rules, wherein the execution of a respective hardcoded rule on a respective object is preceded by the execution of an identified user rule defined with respect to said respective object and which supplies a value used to influence execution of said respective hardcoded rule, said step b) comprising the steps of: b1) determining if said identified user rule is explicitly defined within said respective object; b2) responsive to said b1), provided said identified user rule is so explicitly defined, returning said identified user rule for said respective object; and b3) responsive to step b1), provided said identified user rule is not so explicitly defined, searching up ancestor objects from said respective object within said parent-child hierarchy until said identified user rule is explicitly defined within an ancestor object and thereupon returning said identified user rule for said respective object.
13. A computer readable medium as described in claim 12 wherein step a) comprises the steps of: a1) explicitly defining values for said plurality of user rules within a first set of objects of said parent-child hierarchy; and a2) for each respective user rule, a child object inheriting a defined value for said respective user rule from its closest ancestor object having an explicit definition for said respective user rule as given in step b1).
14. A computer readable medium as described in claim 13 wherein said instructions implement the further step of c) explicitly defining a base user rule definition for each user rule of said plurality of user rules wherein each base rule is located within a root object of said parent-child hierarchy.
15. A computer readable medium as described in claim 13 wherein said step of a) comprises the steps of: a1) receiving a definition from a user of a first user rule, said definition of said first user rule including a particular object identifier, a particular hardcoded rule identifier, a particular data type, and a particular data value; a2) receiving a definition from a user of a second user rule, said definition of said second user rule including a particular object identifier, a particular hardcoded rule identifier, a particular data type, and a particular data value; a3) recording said first user rule into a first location of a data structure by recording its particular object identifier, its particular hardcoded rule identifier, its particular data type, and its particular data value; and a4) recording said second user rule into a second location of said data structure by recording its particular object identifier, its particular hardcoded rule identifier, its particular data type, and its particular data value.
16. A computer readable medium as described in claim 13 wherein said database system is a relational database management system.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.