System and method for performing database queries using a...

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

C707S793000, C707S793000, C707S793000

Reexamination Certificate

active

06253194

ABSTRACT:

FIELD OF THE INVENTION
The present invention generally relates to database software applications. More particularly, the present invention relates to performing database queries using a stack-language interface between the database application and the underlying database engine.
BACKGROUND OF THE INVENTION
An Application Program Interface (API) is a set of software routines that a software application uses to request and carry out lower-level services performed by a computer's operating system. A database application, such as the MICROSOFT MONEY software application marketed by the Microsoft Corporation of Redmond, Washington, makes use of a “database API” to query and access a database, such as a financial database. For the purpose of this discussion, the database application is termed the “client application.” Many such client applications make use of an Indexed Sequential Access Method (ISAM) database. The ISAM standard, known in the art, presents stored data as tables, with rows and columns representing data items and their fields. Rows can be traversed in the order in which they naturally occur, or in an order imposed by a related data structure serving as an index into a given table.
The database API provides the client application with the ability to query the ISAM database for specific records or sets of records. Many database APIs are written to conform to the Structured Query Language (SQL) or other similar language. SQL is a relational database language that consists of a set of facilities for defining, manipulating, and controlling data within a database. Querying a database using an SQL API requires passing SQL instructions to the SQL API, which are then parsed within the SQL API to form a filter. The filter is then used to identify the records in the database which satisfy the desired criteria of the query.
Unfortunately, there are several problems with the SQL language. For instance, the SQL language is text-based, which creates two related problems. First, to evaluate a SQL instruction, the SQL API must include software code to parse and lexically analyze the text instruction into a query plan that lends itself to analysis via a well-understood algorithm. The additional code to parse and lexically analyze the text instruction increases the executable size and execution time of the SQL API. Second, the text-based nature of SQL makes complex parameterized queries difficult to manipulate within the SQL API. In a SQL instruction having several conditions, passing the string from one function to another while tracking runtime parameters becomes very unwieldy.
Another problem is that the SQL language is not extensible. SQL is generally defined by an American National Standards Institute standard. Programmers cannot easily add conditions or parameters for SQL instructions without adding extra code, such as runtime libraries, to support stored procedures or custom expressions. The additional code again increases the overall executable size and may affect the performance of the SQL API.
In addition to those problems, the SQL API represents the ISAM database to the client application as tables of rows and columns. This feature makes SQL poorly suited for use with object-oriented programming languages, such as C++ and Java. Today's programmers prefer to take advantage of object-oriented programming due to its simplicity. Accordingly, a need exists for a database API which is easy to learn and which represents its underlying database as objects to the client application rather than as lower-level table rows and columns.
SUMMARY OF THE INVENTION
The present invention meets the above-described needs by specifying database queries for a database, such as an ISAM database, using a stack-language query structure. The invention can be implemented in a database API accessible to a client application constructed in accordance with the present invention. The database API resides as a software layer between a client application, such as a financial management software program, and the database containing the data for the client application. The client application accesses the database by issuing commands to, or “calling,” the database API. The database API performs the lower-level file access and searching functions.
To perform a search for a set of desired database records, the client application builds a query by combining one or more “operands” and “operators,” to form a search expression. The operands and operators together identify the desired search. For this discussion, the term “commands” may be used to collectively refer to operands and operators. Each operand defines a value for a parameter of an object in the database. For instance, an operand may be “(acct=checking).” That operand represents a request that the search results include objects having an “account” parameter equal to checking. Another operand may be “(date>1/1/98).” That operand represents a request that the search results include objects having a “date” parameter greater than Jan. 1, 1998. An operator represents a logical relationship between two or more operands. Operators are logical connectors, such as logical AND, OR, and NOT. Each operand or operator is a simple command defining a single search criterion. Accordingly, the database API does not need additional code to parse or lexically evaluate the search expression because the search expression is pre-formatted in separable portions which are easily understood by the database API.
The client application then passes the search expression to the database API. The search expression may include a single operand, or may include multiple operands with operators defining the logical relationship between the operands. The database API searches the database to retrieve records satisfying the search criteria by comparing each record to the stack. For each record, the database API executes the search expression on the stack machine to determine if the record matches the search criteria as defined by the operands and operators in the search expression. The database API may then pass the retrieved records to the client application as objects, or may pass a list of the retrieved records as a result set.
The present invention overcomes the disadvantages in the prior art because the commands in the search expression passed to the database API are used to build the query directly. The client application need not construct a complex, text-based search instruction to pass to the database API. The database API does not need excess code to parse and lexically analyze the search expression. Rather, the commands within the search expression may be executed directly by a stack machine to identify records in the database. In contrast, a client application sends a SQL API a text-based instruction string which must be parsed into particular sub-instructions and lexically analyzed before a search filter may be constructed.
Another advantage of the present invention is that the underlying database is represented as objects to the client application rather than as tables of rows and columns. An “object” is a software programming construct which encapsulates a group of data or information into a package. The object-oriented nature of the database API further simplifies the commands passed to the database API. Therefore, a programmer can more easily program a client application to search a database by using operands to define desired values for the object parameters, and operators to define the desired logical relationship between operands. Other features, aspects, and advantages of the present invention will become apparent upon reading the following detailed description of the embodiments, taken in conjunction with the drawings and the claims.


REFERENCES:
patent: 5317742 (1994-05-01), Bapat
patent: 5590362 (1996-12-01), Baum et al.
patent: 5594899 (1997-01-01), Knudsen et al.
patent: 5596752 (1997-01-01), Knudsen et al.
patent: 5682535 (1997-10-01), Knudsen
patent: 5694608 (1997-12-01), Shostak
patent: 5701456 (1997-12-01), Jacopi et al.
Extracting

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

System and method for performing database queries using a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for performing database queries using a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for performing database queries using a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2528978

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