Mechanism for sharing ancillary data between a family of...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06421666

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to mechanisms for executing functions in an executable statement.
BACKGROUND OF THE INVENTION
A family of functions is a set of functions applied to each record of a data set, such as the rows of a table or objects of an object collection. For example, the following family of functions f
1
( ), . . . ,fn( ) operate on the data set D, which contains records r
1
, r
2
, . . . , rm.
f
1
(r
2
, . . . , p
1
, . . . ), . . . , fn(r
1
, . . . , p
1
, . . . ),
f
1
(r
2
, . . . , p
1
, . . . ), . . . , fn(r
2
, . . . , p
1
, . . . ).
. . .
f
1
(rm, . . . , p
1
, . . . ), . . . , fn(rm, . . . , p
1
, . . . )
The functions operate on a record from the data set and may include one or more additional parameters. The functions within a family are related when the evaluation of one function may use data generated during the evaluation of another function. Data generated during the evaluation of a first function that may be used during the evaluation of a second function or routine is herein referred to as ancillary data. Data may be shared “horizontally”, that is, between each evaluation of a function that operates on the same records, or “vertically”, between each evaluation of the same function on different records, or both.
For example, the following query A contains a family of functions. Query A is written in SQL, a database language supported by many database servers. Query A follows.
SELECT Score(e.resume, ‘Oracle’)
FROM emp e
WHERE
Contains(e.resume, ‘Oracle’)
Query A contains two operators, Contains and Score. An operator is a function that operates on one or more operands. Routines used to implement an operator are referred to as operator routines.
The Contains operator accepts two parameters O
1
and O
2
, O
1
corresponds to ‘e.resume’, O
2
to ‘Oracle’. Both parameters are of the data type VARCHAR
2
, a string. O
1
and O
2
are each strings that identify data structures (e.g. columns, constants) that hold data for the first and second entities (O
1
is the first parameter, O
2
is the second parameter). Contains returns a TRUE/FALSE flag, referred to herein as a contains flag, that indicates whether a first entity contains the text of a second entity. In computing the value of the contains flag, the operator routine generates an intermediate result that specifies the number of instances of the second entity in the first entity. However, this intermediate result is not returned as a function value or parameter of Contains.
Scores takes the same parameters as Contains. However, it returns the number of instances of the second entity within the first. The number is herein referred to as a score value. The operator routine re-computes the score value, leading to multiple and duplicative re-computations of the same information.
When executing query A, a database server applies the operator Contains and Score to each row in table emp. The term “applies” refers to executing an operator routine using an item of data, such as a row or a column in a row, as input to the operator routine of an operator. For each row, the database server first executes the Contains operator routine, which ends up generating the score value for the row in addition to returning Contains flag. Likewise, when the database server executes the Score operator routine, it re-computes the score value for the entry.
Based on the foregoing, it is desirable to provide a method of accessing data computed by one function that may be used by another function, thus avoiding the overhead of re-computing the data.
SUMMARY OF THE INVENTION
The foregoing needs and objects, and other needs and objects that will become apparent from the following description, are achieved by the present invention, which comprises, in one aspect, a mechanism for accessing ancillary data, and for generating and accessing ancillary data more efficiently. According to an aspect of the present invention, ancillary data is generated during execution of the operator routine of a primary operator. The ancillary data is stored, and may be accessed through ancillary operators associated with the primary operator. Metadata is used to define a primary operator and ancillary operators associated with the primary operator. A DBMS, for example, receives a statement that includes a primary and at least one of its ancillary operators, and executes routines that implement the primary operator and the ancillary operator. During execution of the routine that implements the primary operator, ancillary data is generated. During the execution of the routine that implements the ancillary operator, the ancillary data is used.


REFERENCES:
patent: 4202041 (1980-05-01), Kaplow et al.
patent: 4692858 (1987-09-01), Redford et al.
patent: 5167016 (1992-11-01), Bagley et al.
patent: 5767854 (1998-06-01), Anwar
patent: 5809212 (1998-09-01), Shasha
patent: 5809501 (1998-09-01), Noven
patent: 5845129 (1998-12-01), Wendorf et al.
patent: 5942741 (1999-08-01), Longacre, Jr. et al.
patent: 5960427 (1999-09-01), Goel et al.
patent: 6061678 (2000-05-01), Klein et al.
patent: 6070169 (2000-05-01), Shorter
patent: 6154742 (2000-11-01), Herriot
patent: 6285996 (2001-09-01), Jou et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Mechanism for sharing ancillary data between a family of... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Mechanism for sharing ancillary data between a family of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Mechanism for sharing ancillary data between a family of... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2839973

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.