US2001056428A1PendingUtilityA1

Method and system for improved access to non-relational databases

Priority: Jul 8, 1999Filed: May 3, 2001Published: Dec 27, 2001
Est. expiryJul 8, 2019(expired)· nominal 20-yr term from priority
G06F 16/252Y10S707/99931Y10S707/99932Y10S707/99934
38
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.