Method and system for improved access to non-relational databases
Abstract
The method and system of the present invention provides improved access to databases in a computer system. The present invention includes a plurality of data sources, the data sources including at least one non-relational data source; a server coupled to the plurality of data sources, the server capable of providing client access to the plurality of data sources; and a store place data access layer (SPDAL) coupled to the server and the at least one non-relational data source, the SPDAL providing relational features to the at least one non-relational data source. In the preferred embodiment, the relational features provided include a two-phase commit process; a process for performing Structured Query Language (SQL) operations from within a single application; a referential integrity process; and a process for providing indices for non-relational data source files. These features allow the computer system to perform data changes across multiple database sources within a single operation; perform SQL operations from a single application across heterogeneous file systems; provide referential integrity of data in both relational and non-relational databases; and perform ad-hoc queries of data and other queries efficiently in non-relational databases. By adding these features, significant flexibility is added to the computer system.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system for improved access to databases in a computer system, comprising:
a plurality of data sources, the data sources including at least one non-relational data source; a server coupled to the plurality of data sources, the server capable of providing client access to the plurality of data sources; and a store place data access layer (SPDAL) coupled to the server and the at least one non-relational data source, the SPDAL providing relational features to the at least one non-relational data source.
2 . The system of claim 1 , wherein the relational features comprise:
a two-phase commit process; a process for performing Structured Query Language (SQL) operations from within a single application; a referential integrity process; and a process for providing indices for non-relational data source files.
3 . The system of claim 1 , wherein the server is a DB2 DataJoiner.
4 . The system of claim 3 , wherein the DB2 DataJoiner comprises a Generic Access Applications Programming Interface (API) which allows for customized access to data sources not already supported by DataJoiner.
5 . The system of claim 1 , wherein the SPDAL comprises:
a SPDAL Open Database Connectivity (ODBC) API coupled to the server; an ODBC Driver Manager coupled to a Generic Access API; a Generic Driver coupled to the ODBC Driver Manager; and a SQL Engine coupled to the Generic Driver.
6 . The system of claim 5 , wherein the Generic Driver comprises:
an intercept layer, the intercept layer functioning as a resource manager for the at least one non-relational database during a two-phase commit process.
7 . The system of claim 5 , further comprising:
an index manager coupled to the SQL Engine, the index manager allowing for the creation of indices for the at least one non-relational data source.
8 . The system of claim 7 , wherein the index manager comprises:
an index manager API; a hash-keyed and sequential file interface; a B-Tree function; and a support function.
9 . A system for improved access to databases in a computer system, comprising:
a plurality of data sources, the data sources including at least one non-relational data source; a server coupled to the plurality of data sources, the server capable of providing client access to the plurality of data sources; and a SPDAL coupled to the server and the at least one non-relational data source, the SPDAL providing relational features to the at least one non-relational data source, wherein the relational features comprises: a two-phase commit process; a process for performing SQL operations from within a single application; a referential integrity process; and a process for providing indices for non-relational data source files.
10 . The system of claim 9 , wherein the server is a DB2 DataJoiner.
11 . The system of claim 10 , wherein the DB2 DataJoiner comprises a Generic Access API which allows for customized access to data sources not already supported by DataJoiner.
12 . The system of claim 9 , wherein the SPDAL comprises:
a SPDAL ODBC API coupled to the server; an ODBC Driver Manager coupled to a Generic Access API; a Generic Driver coupled to the ODBC Driver Manager; and a SQL Engine coupled to the Generic Driver.
13 . The system of claim 12 , wherein the Generic Driver comprises:
an intercept layer, the intercept layer functioning as a resource manager for the at least one non-relational database during a two-phase commit process.
14 . The system of claim 12 , further comprising:
an index manager coupled to the SQL Engine, the index manager allowing for the creation of indices for the at least one non-relational data source.
15 . The system of claim 14 , wherein the index manager comprises:
an index manager API; a hash-keyed and sequential file interface; a B-Tree function; and a support function.
16 . A system for improved access to databases in a computer system, comprising:
a plurality of data sources, the data sources including at least one non-relational data source; a server coupled to the plurality of data sources, the server capable of providing client access to the plurality of data sources; and a SPDAL coupled to the server and the at least one non-relational data source, the SPDAL providing relational features to the at least one non-relational data source,
wherein the relational features comprises:
a two-phase commit process; a process for performing SQL operations from within a single application; a referential integrity process; and a process for providing indices for non-relational data source files; wherein the SPDAL comprises: a SPDAL ODBC API coupled to the server; an ODBC Driver Manager coupled to a Generic Access API; a Generic Driver coupled to the ODBC Driver Manager, the Generic Driver comprising an intercept layer, the intercept layer functioning as a resource manager for the at least one non-relational database during the two-phase commit process; a SQL Engine coupled to the Generic Driver; and an index manager coupled to the SQL Engine, the index manager allowing for the creation of indices for the at least one non-relational data source.
17 . The system of claim 16 , wherein the server is a DB2 DataJoiner, the DB2 DataJoiner comprising a Generic Access API which allows for customized access to data sources not already supported by DataJoiner.
18 . The system of claim 16 , wherein the index manager comprises:
an index manager API; a hash-keyed and sequential file interface; a B-Tree function; and a support function.
19 . A method for performing a two-phase commit process in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, comprises the steps of:
(a) sending a first request to the at least one non-relational data source for commitment to a transaction; (b) receiving a first reply from the at least one non-relational data source in response to the first request; (c) sending a second request to another of the plurality of data sources for commitment to the transaction; (d) receiving a second reply from the other of the plurality of data sources in response to the second request; (e) determining if the first and second replies both indicate a commitment to the transaction; and (f) performing the transaction if the first and second replies both indicate a commitment to the transaction.
20 . The method of claim 19 , further comprising:
(g) indicating a failure of the transaction if the first and second replies do not both indicate a commitment to the transaction.
21 . A method for performing SQL operations in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, comprising the steps of:
(a) providing a plurality of metadata tables, the metadata tables describing a content of the at least one non-relational data source; and (b) utilizing the metadata tables to gain access to the at least one non-relational data source and the other data source wherein the SQL operation is performed from within a single application.
22 . A method for performing referential integrity in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, comprising the steps of:
(a) capturing an end user query; (b) preprocessing the end user query based upon information in metadata tables, the metadata tables describing a content of the at least one non-relational data source; (c) returning the end user query to the server.
23 . The method of claim 22 , wherein the preprocessing step (b) comprises:
(b1) determining referential integrity is required for the end user query; (b2) formulating at least one query to execute and enforce referential constraint for the end user query.
24 . The method of claim 22 , further comprising the steps of:
(d) processing the end user query on the at least one non-relational data source; and (e) returning a result of the end user query.
25 . The method of claim 24 , wherein the processing step (d) comprises:
(d1) translating the at least one query to a command understandable by the at least one non-relational data source; and (d2) executing the command.
26 . A method for performing referential integrity in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, comprising the steps of:
(a) capturing an end user query; (b) determining referential integrity is required for the end user query; (c) formulating at least one query to execute and enforce referential constraint for the end user query; (d) returning the end user query to the server; (e) determining if the end user query requires data from the at least one non-relational data source; (f) translating the at least one query to a command understandable by the at least one non-relational data source if data from the at least one non-relational data source is required; (g) executing the command; and (h) returning a result of the end user query to the server.
27 . A method for providing indices in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, comprising the steps of:
(a) creating indices for the at least one non-relational data source; and (b) utilizing the indices in executing a query.
28 . The method of claim 27 , wherein the creating step (a) comprises:
(a1) creating hash-keyed and sequential files for the at least one non-relational data source; (a2) specifying at least one field of the hash-keyed and/or sequential files; and (a3) creating an index for the at least one field.
29 . The method of claim 27 , wherein the utilizing step (b) comprises:
(b1) determining if an index exists which assists the performance of a query; (b2) retrieving the index if the index exists; (b3) determining if the index alone satisfies the query; and (b4) retrieving additional data from the at least one non-relational data source based upon the index if the index alone does not satisfy the query.
30 . A method for providing indices in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, comprising the steps of:
(a) creating hash-keyed and sequential files for the at least one non-relational data source; (b) specifying at least one field of the hash-keyed and/or sequential files; (c) creating an index for the at least one field; (d) determining if an index exists which assists the performance of a query; (e) retrieving the index if the index exists; (f) determining if the index alone satisfies the query; and (g) retrieving additional data from the at least one non-relational data source based upon the index if the index alone does not satisfy the query.
31 . A computer readable medium with program instructions for performing a two-phase commit process in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, program instructions for:
(a) sending a first request to the at least one non-relational data source for commitment to a transaction; (b) receiving a first reply from the at least one non-relational data source in response to the first request; (c) sending a second request to another of the plurality of data sources for commitment to the transaction; (d) receiving a second reply from the other of the plurality of data sources in response to the second request; (e) determining if the first and second replies both indicate a commitment to the transaction; and (f) performing the transaction if the first and second replies both indicate a commitment to the transaction.
32 . A computer readable medium with program instructions for performing SQL operations in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, program instructions for:
(a) providing a plurality of metadata tables, the metadata tables describing a content of the at least one non-relational data source; and (b) utilizing the metadata tables to gain access to the at least one non-relational data source and the other data source wherein the SQL operation is performed from within a single application.
33 . A computer readable medium with program instructions for performing referential integrity in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, program instructions for:
(a) capturing an end user query; (b) preprocessing the end user query based upon information in metadata tables, the metadata tables describing a content of the at least one non-relational data source; (c) returning the end user query to the server.
34 . A computer readable medium with program instructions for performing referential integrity in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, program instructions for:
(a) capturing an end user query; (b) determining referential integrity is required for the end user query; (c) formulating at least one query to execute and enforce referential constraint for the end user query; (d) returning the end user query to the server; (e) determining if the end user query requires data from the at least one non-relational data source; (f) translating the at least one query to a command understandably by the at least one non-relational data source; (g) executing the command; and (h) returning the end user query to the server.
35 . A computer readable medium with program instructions for providing indices in a computer system, the computer system including a plurality of data sources, the plurality of data sources including at least one non-relational data source, program instructions for:
(a) creating indices for the at least one non-relational data source; and (b) utilizing the indices in executing a query.Join the waitlist — get patent alerts
Track US2001056428A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.