Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1999-06-25
2001-04-24
Homere, Jean R. (Department: 2177)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000, C709S203000, C709S219000, C709S241000
Reexamination Certificate
active
06223179
ABSTRACT:
BACKGROUND
The present invention relates to a language manager for a database management system (DBMS).
The advent of powerful, yet economical computers has made these machines an integral part of many organizations. An important class of application for these computers includes a database, which is a body of information that is logically organized so that the information can be stored, searched and retrieved by a “database engine”—a collection of software methods for manipulating data in the database. The database allows users to perform operations such as locating, adding, deleting and updating records stored in the computer without a detailed knowledge of how the information making up the records actually is stored in the computer.
One powerful type of DBMS is known as a relational DBMS where stored information appears to the user as a set of tables, each of which is termed a “relation”. In each relation, the information is arranged in rows and columns, with columns of data being related to each other by one or more predetermined functions. Further, each column has an attribute and each attribute has a domain which includes data values in that column. The structure of a relational database can be modified by selectively redefining relationships between the tables.
A database engine may perform complex searches on a relational database quickly and easily by using any of various database query protocols such as the method expressed by the Structured Query Language (SQL) or by other mechanisms. The relationships between the tables enable results of a search to be cross-referenced automatically with corresponding information in other tables in the database. A variety of operations made be performed on the tables in the database, including join, project and select operations. These operations may be made to standard as well as to user-defined data types.
To access a particular item of information in the relational DBMS, a query compiler converts a user request typically expressed in SQL into a set of operations to be performed on one or more input relations to yield a solution in response to the user request. Moreover, the user request may, under certain predetermined conditions, cause one or more user-defined routines (UDRs) to be executed. These UDRs may be implemented either as internal programs or external programs.
An internal program is a program that executes within the execution environment managed by the DBMS. The internal program typically is written in an interpretated language that is supported only within the DBMS environment. In contrast, an external program is capable of running in an environment managed by an operating system. External programs typically are expressed in a high level language which may be proprietary or may be a standard language such as Ada, Basic, C, C++, Cobol, Java, Pascal, or a fourth generation programming language, among others.
Although most relational database management systems support predefined procedures implemented as internal programs, not all systems support external programs. Moreover, in systems that support external programs, the language supported may be interpreted, as opposed to compiled, leading to suboptimal processing performance. Other systems hard-code their support of specific languages. These systems are inflexible in that a modification of an existing language or an addition of a new language is tedious.
SUMMARY
A computer-operated apparatus supports one or more User Defined Routines (UDRs) capable of being expressed in one or more languages. The apparatus first determines a language native to the UDR by looking up a system catalog. Next, the apparatus checks if a language manager associated with the native language already has been loaded and if not, the apparatus loads the language manager into a server memory. The apparatus then checks if the UDR already has been instantiated and if not, instantiates and initializes the UDR. The apparatus then creates an execution context for the UDR, after which the UDR is executed. The loading of the language manager is handled by a general language interface capable of initializing the language manager, loading the language manager, creating a language manager context, and executing the language manager.
Advantages of the invention may include one or more of the following. The system described here enables UDRs to be executed in a relational DBMS in a manner that is independent of the UDRs' implementation details. Moreover, a support facility for multiple languages is provided. A database language manager allows a particular language and its UDR support environment to be developed subsequent to a database engine development. Moreover, an alternative support environment can be developed for an existing language. Additionally, repairs can be made without replacing the server or code modules. The UDRs can be implemented in a number of languages. The support of multiple languages reduces the complexity in implementing the UDRs, as software can be coded to take advantage of specific strengths of specific languages. Further, language interpreters may be added or modified on demand on a running system. Similarly, UDRs may be added or modified on demand on a running system. These UIRs may perform arbitrary processing, including implementing new data types and operations for the database engine.
Other features and advantages will be apparent from the following description and the claims.
REFERENCES:
patent: 5230049 (1993-07-01), Chang et al.
patent: 5257366 (1993-10-01), Adair et al.
patent: 5442779 (1995-08-01), Barber et al.
patent: 5450583 (1995-09-01), Inada
patent: 5566332 (1996-10-01), Adair et al.
patent: 5613117 (1997-03-01), Davidson et al.
patent: 5657447 (1997-08-01), Leung et al.
patent: 5680618 (1997-10-01), Freund
patent: 5689633 (1997-11-01), Cotner et al.
patent: 5765179 (1998-06-01), Sumita et al.
patent: 5870562 (1999-02-01), Butman et al.
patent: 6006235 (1999-12-01), Macdonald et al.
M.Stonebraker et al., “Extendability in Postgres,” Dept.of El.Engineering and Computer Sciences, UC Berkeley, Bulletin of the Computer Society of the IEEE, vol.10, No.2, Jun. 1987, pp. 16-23.
D.Goldhirsch et al., “Extensibilty in the PROBE Database System,” Computer Corporation of America, Cambridge, MA, Bulletin of the Computer Society of the IEEE, vol.10, No.2, Jun. 1987, pp. 24-31.
J.McPherson et al., “An Overview of Extensibility in Starburst,” IBM Almaden Research Center San Jose, CA, Bulletin of the Computer Society of the IEEE, vol.10, No.2, Jun. 1987, pp. 32-39.
Anton Jeffrey A.
Schippling Michael F.
Fish & Richardson PC
Homere Jean R.
Informix Software, Inc.
LandOfFree
Database server for handling a plurality of user defined... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Database server for handling a plurality of user defined..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Database server for handling a plurality of user defined... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2485307