US20010056428A1 - Method and system for improved access to non-relational databases - Google Patents
Method and system for improved access to non-relational databases Download PDFInfo
- Publication number
- US20010056428A1 US20010056428A1 US09/848,181 US84818101A US2001056428A1 US 20010056428 A1 US20010056428 A1 US 20010056428A1 US 84818101 A US84818101 A US 84818101A US 2001056428 A1 US2001056428 A1 US 2001056428A1
- Authority
- US
- United States
- Prior art keywords
- relational
- data source
- data sources
- relational data
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Definitions
- Databases are an important tool for the storage and management of information for businesses. Both relational and non-relational databases exist for this purpose. Examples of relational databases include ORACLE, DB2, AND INFORMIX. Examples of non-relational databases include custom databases created with the 4690 operating system, developed by INTERNATIONAL BUSINESS MACHINES CORPORATION. The 4690 operating system allows programmers to created custom databases which support keyed, sequential, and binary file types. Database Management Systems (DBMS) provide users the capabilities of controlling read/write access, specifying report generation, and analyzing usage.
- DBMS Database Management Systems
- DataJoiner is a multi-database server which uses the Structured Query Language (SQL) and Open Database Connectivity (ODBC), to provide client access to diverse data sources that reside on different platforms.
- SQL Structured Query Language
- ODBC Open Database Connectivity
- FIG. 1 illustrates a computer system which uses DataJoiner.
- the computer system 100 comprises clients 102 in various platforms, a DataJoiner server 104 , and data sources 106 of various types.
- the Data Joiner server 104 allows the clients 102 to transparently access data from the different data sources 106 .
- FIG. 2 is a block diagram illustrating the basic architecture of DataJoiner.
- DataJoiner 202 is a DBMS which includes ODBC software and drivers for a variety of data sources.
- DataJoiner 202 allows for transparent access to multiple data sources in a heterogeneous environment.
- the Generic Access Applications Programming Interface (API) 204 allows for customized access to home-grown or other data sources 208 not already supported by DataJoiner.
- Generic Data Access Modules 206 containing Custom ODBC compliant drivers for these data sources may be written and installed on the same system as DataJoiner 202 and used by DataJoiner 202 to access the data sources 208 .
- the Generic Access API 204 defines the calls which must be provided by the custom ODBC drivers in order for DataJoiner 202 to access the custom data source 208 .
- DataJoiner can perform data changes across multiple databases sources within a single operation, while guaranteeing that changes to one source can be rolled back if changes to another source within the same transaction fail.
- the two-phase commit is the mechanism for implementing this. For example, someone may be trying to wire some money electronically to another location. A debit would need to be written against one account maintained by a first DBMS, and a credit would have to be reflected in another account maintained by a second DBMS.
- the two-phase commit protocol ensures that either all of the DBMS involved commit the changes required by the transaction or none do. However, keyed, sequential, and binary file systems cannot participate in this function.
- Referential integrity is a technique where the consistency of data within a DBMS is ensured by referring to one piece of data during an operation on another piece of data.
- An example would be to refer to a department table to ensure that a valid department number is being used when a new employee is being added to the database.
- Referential integrity is incorporated in many of the conventional relational DBMS and is being enforced at the database level to ensure that all applications adhere to any constraints and thus ensure the integrity of the data.
- indices of the data may be created for data elements other than the key or record number. Once created, these indices may be used as an alternative form of data access which provides a more efficient processing of the query.
- 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.
- SPDAL store place data access layer
- 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.
- SQL Structured Query Language
- 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.
- FIG. 1 is a diagram illustrating a computer system which uses DataJoiner.
- FIG. 2 is a block diagram illustrating the basic architecture of DataJoiner.
- FIG. 3 is a block diagram illustrating a preferred embodiment of the architecture of the method and system in accordance with the present invention.
- FIG. 4 is a block diagram illustrating the X/OPEN DTP model used in accordance with the present invention.
- FIG. 5 is a flow chart illustrating the two-phase commit process provided by the method and system in accordance with the present invention.
- FIG. 6 is a block diagram illustrating an example of a two-phase commit performed in accordance with the present invention.
- FIG. 7 is a preferred embodiment of metadata tables provided for non-relational databases in accordance with the present invention.
- FIG. 8 is a flow chart illustrating the referential integrity process provided by the method and system in accordance with the present invention.
- FIG. 9 is a block diagram illustrating a preferred embodiment of the Index Manager in accordance with the present invention.
- FIG. 10 is a flow chart illustrating the creation of indices by the Index Manager in accordance with the present invention.
- FIG. 11 is a flow chart illustrating the use of the indices in satisfying a user query in accordance with the present invention.
- the present invention relates to a method and system for providing improved access to non-relational databases in a computer system.
- the following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements.
- Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments.
- the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
- FIG. 3 is a block diagram illustrating a preferred embodiment of the architecture of the method and system of the present invention.
- the Store Place Data Access Layer (SPDAL) architecture 300 comprises an Open Database Connectivity Applications Programming Interface 302 (ODBC API) which functions with DataJoiner 304 .
- the SPDAL ODBC API 302 works with the Generic Access API 306 of DataJoiner 304 to provide a single access point for heterogeneous data source manipulations.
- An ODBC Driver 308 may be created to function with the SPDAL ODBC API 302 to access keyed, sequential, and binary file types, such as a 4690 data source 316 .
- the ODBC Driver 308 comprises an ODBC Driver Manager 310 , a Generic Driver 312 , and a SQL Engine 314 .
- the ODBC Driver Manager 310 is an ODBC Driver Manager, known in the art.
- SPDAL 300 improves access to non-relational databases by providing the following capabilities: (1) true two-phase commit, (2) performance of SQL operations from within a single application across heterogeneous file systems, (3) referential integrity, and (4) indices for queries.
- a two-phase commit process for keyed, sequential, and binary file systems is provided by the preferred embodiment of the method and system of the present invention.
- the two-phase commit is provided with an X/OPEN Distributed Transaction Processing (DTP) model using “XA interface” in SPDAL 302 .
- DTP Distributed Transaction Processing
- X/OPEN, and its XA interface is a standard protocol for access to databases.
- FIG. 4 is a block diagram illustrating the X/OPEN DTP model used in accordance with the present invention.
- the X/OPEN DTP model comprises three software components:
- An application program 402 which defines transaction boundaries and specifies actions that constitute a transaction.
- Resource managers 404 which provide access to shared resources.
- a transaction manager 406 which assigns identifiers to transactions, monitors their progress and takes responsibility for transaction completion and for failure recovery.
- the XA Interface 408 is implemented with the X/OPEN DTP model as an intercept layer in the Generic Driver 312 .
- the intercept layer would act as a resource manager for each file system, i.e., it would assume the role of a data source.
- DataJoiner 304 would act as the transaction manager. This would make the keyed, sequential, or binary file system appear to DataJoiner 304 as a fully functional relational database implementing an XA interface 408 .
- the XA Interface 408 implements XA calls which allow for interaction between the transaction manager/DataJoiner 304 and the data source 316 . This two-phase commit protocol provided by the present invention can be used to manage data changes across multiple data base sources within a single operation.
- FIG. 5 is a flow chart illustrating the two-phase commit process provided by the method and system in accordance with the present invention.
- a first database is a non-relational database and a second database is a relational database and a request requires a two-phase commit between them.
- DataJoiner 304 as the transaction manager, sends a request to the non-relational database, via step 510 , through the intercept layer in the Generic Driver 312 .
- the intercept layer implements the appropriate XA calls to facilitate interaction between DataJoiner 304 and the non-relational database.
- the non-relational database replies to the request and waits, via step 520 .
- DataJoiner 304 also sends a request to the relational database, via step 530 .
- the relational database replies to the request and waits, via step 540 . If both the non-relational and relational databases commit to the request, via step 550 , the request is performed, via step 560 . Otherwise, the transaction fails, via step 570 .
- xa_close Frees any dedicated two-phase commit resources.
- xa_commit Unlock the section of the file previously locked, this will make the data changes available to other applications.
- xa_complete Used by the transaction manager to wait for asynchronous operations. Return control to the transaction manager when the operation identified by the handle is complete.
- xa_end Free any dedicated resources acquired during xa_start processing.
- xa_forget Release resources associated with a xid.
- xa_open Initialize any dedicated two-phase commit resources.
- xa_prepare Obtain a write lock on the portion of the keyed, sequential, or binary file that will be changed. By acquiring a write lock, the resource manager intercept layer can guarantee that the subsequent write and commit will occur.
- the prepared write instruction location in the file and buffer to write should be saved in case a rollback is required.
- xa_recover Return to the transaction manager any prepared but not committed transactions.
- xa_rollback Undo the write operation staged with xa_prepare.
- xa_start Initialize any dedicated resources required for a transaction.
- the transaction manager In completing this transaction, first the transaction manager, DataJoiner 304 , sends a request to the 4690 Keyed File, DS 1 602 , to debit $1000 from the first account, via step 510 .
- the request is sent through the Generic Access API 306 to the Intercept Layer in the Generic Driver 312 .
- the Intercept Layer implements the appropriate XA calls to facilitate the portion of the transaction involving DS 1 602 .
- DS 1 602 replies to the XA calls and waits, via step 520 .
- DS 1 's 602 reply is sent to the transaction manager by the Intercept Layer.
- the transaction manager also sends a request to DS 2 604 to credit the second account $1000, via step 530 .
- DS 2 604 replies and waits, via step 540 . This ends phase one of the two-phase commit process.
- DS 1 602 or DS 2 604 indicates that they are unable to make the requested credit/debit, i.e., if either data source fails to commit, via step 550 , the transaction fails, via step 570 , and the transaction manager moves on to the next transaction. If both DS 1 602 and DS 2 604 indicate they are able to make the requested credit/debit, i.e., both data sources commit, via step 550 , then the credit and debit are performed, via step 560 . This ends phase two of the two-phase commit process.
- the ability to perform SQL operations from within a single application is provided.
- the present invention implements this capability by providing additional metadata tables in a database in addition to the metadata tables of DataJoiner 304 .
- These additional metadata tables describe the keyed, sequential, and binary file content such that the files within those file systems can be accessed by the SPDAL ODBC API 302 of the present invention, and manipulate it using relational operations.
- the metadata content itself is described and held as a relational table, so that this data is publicly available to all users and applications, and can be used in conjunction with DataJoiner 304 to perform single relational operations across relational data sources and keyed, sequential, and binary file data concurrently.
- the metadata information of the present invention is used by DataJoiner 304 via the SPDAL ODBC API 302 to service requests from applications, thus removing the burden of individual applications to code to the specifics of the data's physical design and location.
- LogicalEntity Table maps a LogicalEntityName to one or more physical entities. (See Table 1, FIG. 7)
- RecordDescription Table describes the metadata information for records that exist within keyed, sequential, or binary files. (See Table 3, FIG. 7)
- ForeignKey Table describes the metadata information for parent-child relationships. These relationships are used to enforce referential integrity across all SPDAL data, as will be described in more detail later in this specification. This includes relational databases as well as non-relational databases. Relationships can be established between attributes within the same file system (for example between two relational tables) or between attributes across different file systems (for example between a relational table and a keyed file). (See Table 6, FIG. 7)
- Index Table describe, set, and maintain indexes on keyed, sequential, binary files. The use of this table will be described in more detail later in this specification. (See Table 7, FIG. 7)
- DataJoiner 304 When DataJoiner 304 receives a SQL query which involves both a relational and a non-relational data source, DataJoiner 304 “splits” the query. It passes “as is” to the SPDAL ODBC API 302 the portion of the query which deals with the non-relational data source 316 , and it passes the other portion to the relational data source through its native ODBC driver.
- the SQL engine 314 interprets the SQL query into the low level calls for access to the non-relational data source 316 . The requested data is returned in response to these low level calls. This result is then returned to DataJoiner 304 , which combines it with the result returned from the relational data source. DataJoiner 304 then returns the combined result to the SQL query.
- Metadata By providing the metadata in accordance with the present invention, advanced relational concepts, such as referential integrity, can be used across relational database management systems, and keyed, sequential, and binary file systems in the same operation.
- metadata content structure is described as standard relational tables, making the metadata publicly available to any user or application.
- the metadata allows for a logical view for access to the underlying keyed or sequential file data. This enables an application to code to a logical model without having to be concerned with the underlying physical data store, or changes to the underlying physical data store.
- the method and system of the present invention provides for referential integrity across both relational and non-relational databases.
- referential integrity is implemented in the SPDAL ODBC API 302 by combining the metadata described above with a relational database engine that can process the results of relational operations from outside data sources to ensure referential integrity across both the relational database and keyed, sequential, and binary file systems.
- the relational database engine is a SQL engine 314 which has the ability to perform queries which implement referential integrity, as described below.
- the metadata is used to describe the referential constraints within the keyed, sequential, and binary file systems, and between these file systems and the relational file systems.
- the metadata is implemented by providing the following information in its ForeignKey Table:
- FIG. 8 is a flowchart illustrating the referential integrity process provided by the method and system of the present invention.
- the database access is through ODBC or X/OPEN CLI interfaces. Both are widely accepted and implemented by conventional competitive relational database management systems.
- the SPDAL ODBC API 302 captures an end user query before it is passed to DataJoiner 304 , via step 810 .
- the query is preprocessed in the SPDAL ODBC API 302 based on information in the metadata tables, via step 820 , specifically, the information in the ForeignKey Table.
- the SPDAL ODBC API 302 determines if the end user query requires any referential integrity processing, via step 822 .
- the SPDAL ODBC API 302 would formulate the queries to execute and enforce the referential constraints, via step 824 .
- the end user query is passed to DataJoiner 304 for processing, via step 840 .
- DataJoiner 304 determines if the query requires non-relational data, via step 850 . If not, DataJoiner processes the query for the relational data, via step 860 , and returns the result, via step 870 . If so, then the query is processed on the non-relational data source, via step 880 . In this processing, the queries which execute and enforce the referential contraint is passed to the SQL Engine 314 , via step 826 .
- DELETE Use the delete rules specified in the metadata to delete restrict, set null, or cascade.
- the ODBC driver of the present invention may need to make several calls into the relational DBMS in order to complete the requested action.
- INSERT Issue a SELECT ODBC call on the parent table to ensure that each row conforms to the referential constraint prior to passing the INSERT to the original relational DBMS ODBC driver. If the constraint does not pass, then the ODBC driver of the present invention will generate an error message and return control directly to the application program. From the application's viewpoint, it looks as if the underlying relational DBMS detected the referential constraint violation and returned the error.
- UPDATE Issue a SELECT ODBC call on the parent table to ensure that each row conforms to the referential constraint prior to passing the UPDATE to the original relational DBMS ODBC driver. If the constraint does not pass, then the ODBC driver of the present invention will generate an error message and return control directly to the application program. From the application's viewpoint, it looks as if the underlying relational DBMS detected the referential constraint violation and returned the error.
- the method and system of the present invention provides a more efficient performance of queries, including ad-hoc queries, for non-relational databases.
- the efficiency is increased through the creation of an Index Manager which allows for the creation of indices for hash-keyed and sequential files.
- the indices are created based on the data selection criteria commonly used to satisfy user-defined ad-hoc queries.
- the user decides, based on the frequency that the query will be issued, along with the required response time to obtain the result set, which indices should be created.
- the Index Manager 902 is located next to the SQL Engine 314 .
- the Index Manager 902 is accessed by the SQL Engine 314 during the satisfying of an end user query.
- the Index Manager comprises the following:
- Index Manager API 904 allows users to maintain their indices and access the data contained within the indices. This interface is available for use by external application programs that require access to the indices.
- Index Manager Hash-keyed and Sequential File Interface 906 provides a means of updating indices to reflect additions, updates, and deletions of data from indices when the corresponding source data files change. This interface is context sensitive in that it depends on the file maintenance mechanism available on the data source.
- Index Manager B-Tree Function 908 index entries are maintained in a B-Tree structure within the Index Manager to maintain the index entries.
- B-Tree structures are well known in the art and will not be discussed further here.
- Index Manager Support Functions 910 include error logging and audit logging facilities, as well as a means of obtaining information about the data being indexed, i.e., the meta data.
- FIG. 10 is a flow chart illustrating the creation of indices by the Index Manager 802 in accordance with the present invention.
- hash-keyed and/or sequential files are created, via step 1010 .
- the Index Manager API 904 is used to specify an index or indices to be created on a field or fields within a file, via step 1020 .
- the Index Manager 902 then creates an index on the specified field or fields, via step 1030 . This index is kept up to date when changes are occurring in the source data files via the Index Manager Hash-keyed and Sequential File Interface 906 .
- FIG. 11 is a flowchart illustrating the use of the indices in satisfying a user query in accordance with the present invention.
- the query is sent to the SQL Engine 314 , via step 1120 .
- the SQL Engine 314 then accesses the Index Manager 902 via the Index Manager API 904 to see whether an index exists that helps satisfy the query, via step 1130 . If so, the Index Manager API 904 makes function calls to retrieve the indexed data, via step 1140 . If not, then every record in the file needs to be read and compared to the selection criteria, via step 1150 .
- the Index Manager 902 determines if the index alone satisfies the query, via step 1160 . If it does, then the result of the query is returned to DataJoiner 304 via the SQL Engine 314 , via step 1170 . If not, the rows based on the keyed file keys or binary sequential file offsets found in the index are also retrieved via the SQL Engine 314 , via step 1180 . Then the result is returned, via step 1170 .
- indexing capabilities are provided to hash-keyed, sequential and binary files.
- the efficiency in the execution of other queries is also greatly improved.
- By allowing the query application processing to only retrieve data that is known based on indices to satisfy the user defined query there will be less network traffic when the application issuing the query resides on a machine other than the one where the source data files are stored.
- the cost of disk space to store indices is lowered.
- a method and system for improved access to non-relational databases in a computer system has been disclosed.
- the method and system provides capabilities for a two-phase commit, performance of SQL operations from within a single application across heterogeneous file systems, referential integrity, and indices for ad-hoc and other queries for non-relational databases.
- These capabilities 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 when some or all of the data is stored in 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.
Description
- The present invention relates to computer systems, and more particularly to the access of databases in the computer system.
- Databases are an important tool for the storage and management of information for businesses. Both relational and non-relational databases exist for this purpose. Examples of relational databases include ORACLE, DB2, AND INFORMIX. Examples of non-relational databases include custom databases created with the 4690 operating system, developed by INTERNATIONAL BUSINESS MACHINES CORPORATION. The 4690 operating system allows programmers to created custom databases which support keyed, sequential, and binary file types. Database Management Systems (DBMS) provide users the capabilities of controlling read/write access, specifying report generation, and analyzing usage.
- Some businesses, particularly large organizations, maintain multiple database types, both relational and non-relational. The simultaneous access to these databases then becomes an issue. For example, a company may wish to combine and compare customer preference information in the marketing department's ORACLE database with the current customer issues tracked in the customer service department's DB2 database. One conventional way of accessing these databases is through the DB2 DATAJOINER (“DataJoiner”) products, developed by INTERNATIONAL BUSINESS MACHINES CORPORATION. DataJoiner is a multi-database server which uses the Structured Query Language (SQL) and Open Database Connectivity ( ODBC), to provide client access to diverse data sources that reside on different platforms.
- FIG. 1 illustrates a computer system which uses DataJoiner. The
computer system 100 comprisesclients 102 in various platforms, a DataJoinerserver 104, anddata sources 106 of various types. The Data Joinerserver 104 allows theclients 102 to transparently access data from thedifferent data sources 106. - FIG. 2 is a block diagram illustrating the basic architecture of DataJoiner. DataJoiner202 is a DBMS which includes ODBC software and drivers for a variety of data sources. DataJoiner 202 allows for transparent access to multiple data sources in a heterogeneous environment. The Generic Access Applications Programming Interface (API) 204 allows for customized access to home-grown or
other data sources 208 not already supported by DataJoiner. GenericData Access Modules 206 containing Custom ODBC compliant drivers for these data sources may be written and installed on the same system as DataJoiner 202 and used by DataJoiner 202 to access thedata sources 208. The Generic Access API 204 defines the calls which must be provided by the custom ODBC drivers in order for DataJoiner 202 to access thecustom data source 208. - However, DataJoiner is not able to provide certain features for access to the non-relational databases. In particular, DataJoiner202 does not provide (1) a two-phase commit, (2) performance of SQL operations from within a single application across heterogeneous file systems, (3) referential integrity, and (4) indices for queries across heterogeneous file systems which include non-relational data sources, such as 4690 keyed, sequential, and binary file systems.
- DataJoiner can perform data changes across multiple databases sources within a single operation, while guaranteeing that changes to one source can be rolled back if changes to another source within the same transaction fail. The two-phase commit is the mechanism for implementing this. For example, someone may be trying to wire some money electronically to another location. A debit would need to be written against one account maintained by a first DBMS, and a credit would have to be reflected in another account maintained by a second DBMS. The two-phase commit protocol ensures that either all of the DBMS involved commit the changes required by the transaction or none do. However, keyed, sequential, and binary file systems cannot participate in this function.
- Conventional relational DBMS's employ two underlying data storage concepts in order to facilitate relational operations on that data: (1) data is stored in tables with each table having a fixed number of columns; and (2) system catalogs, or data dictionaries, are generated for each table. These data dictionaries (metadata) describe the column layout, index structure, and other data access information. These concepts allow one application to create data, and other applications totally unrelated to the first, to analyze and update the data.
- However, with keyed, sequential, and binary file systems, there are several inhibitors that prevent these file systems from having the above flexibility. These include: (1) data is not held in a fixed table format; (2) data access is via a buffer that passes the entire record, with no public or obvious field delineation available; and (3) the structure, or field layout, of keyed, sequential, and binary records is not stored in a publicly available catalog. With these inhibitors, relational operations cannot be performed on the keyed, sequential, and binary file systems, making SQL operations from within a single application across heterogeneous file systems which include these file systems difficult or impossible.
- Referential integrity is a technique where the consistency of data within a DBMS is ensured by referring to one piece of data during an operation on another piece of data. An example would be to refer to a department table to ensure that a valid department number is being used when a new employee is being added to the database. Referential integrity is incorporated in many of the conventional relational DBMS and is being enforced at the database level to ensure that all applications adhere to any constraints and thus ensure the integrity of the data.
- However, the concept of referential integrity, and a file system mechanism to enforce it, does not exist for keyed, sequential, and binary file systems. Without this function, heterogeneous DBMS can not implement referential integrity between the relational and non-relational data. Using the above example, if the valid department list is in a keyed file system and the new employee data was to be stored in a relational database, there would be no way that the underlying data stores could enforce the referential integrity during the employee add operation.
- A need often arises to access keyed and sequential data based on data selection criteria different from the key or record number traditionally used to access the data. Queries based on this type of selection criteria are referred to as ad-hoc queries. For instance, instead of retrieving an employee record by an employee number there may be a need to retrieve all of the employees who are employed in department “X”. The employee records are keyed by an employee identification number yet the selection criteria is based on the department number in which the employee is employed.
- For relational databases, ad-hoc queries may be efficiently satisfied since indices of the data may be created for data elements other than the key or record number. Once created, these indices may be used as an alternative form of data access which provides a more efficient processing of the query.
- However, to satisfy queries using conventional file access mechanisms available for hash-keyed or sequential files, every record in the file must be read and compared to the selection criteria since indices are not available for these files. This causes performance problems both in accessing the file and in creating the network traffic when the querying application resides on a machine other than the source data files.
- Accordingly, there exists a need for a method and system for improved access to non-relational databases in a computer system. The method and system should increase the flexibility and efficiency of access to the databases. The present invention addresses such a need.
- 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.
- FIG. 1 is a diagram illustrating a computer system which uses DataJoiner.
- FIG. 2 is a block diagram illustrating the basic architecture of DataJoiner.
- FIG. 3 is a block diagram illustrating a preferred embodiment of the architecture of the method and system in accordance with the present invention.
- FIG. 4 is a block diagram illustrating the X/OPEN DTP model used in accordance with the present invention.
- FIG. 5 is a flow chart illustrating the two-phase commit process provided by the method and system in accordance with the present invention.
- FIG. 6 is a block diagram illustrating an example of a two-phase commit performed in accordance with the present invention.
- FIG. 7 is a preferred embodiment of metadata tables provided for non-relational databases in accordance with the present invention.
- FIG. 8 is a flow chart illustrating the referential integrity process provided by the method and system in accordance with the present invention.
- FIG. 9 is a block diagram illustrating a preferred embodiment of the Index Manager in accordance with the present invention.
- FIG. 10 is a flow chart illustrating the creation of indices by the Index Manager in accordance with the present invention.
- FIG. 11 is a flow chart illustrating the use of the indices in satisfying a user query in accordance with the present invention.
- The present invention relates to a method and system for providing improved access to non-relational databases in a computer system. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
- The present invention provides improved access to non-relational databases through an expansion upon the capabilities of DataJoiner. FIG. 3 is a block diagram illustrating a preferred embodiment of the architecture of the method and system of the present invention. The Store Place Data Access Layer (SPDAL)
architecture 300 comprises an Open Database Connectivity Applications Programming Interface 302 (ODBC API) which functions withDataJoiner 304. TheSPDAL ODBC API 302 works with theGeneric Access API 306 ofDataJoiner 304 to provide a single access point for heterogeneous data source manipulations. AnODBC Driver 308 may be created to function with theSPDAL ODBC API 302 to access keyed, sequential, and binary file types, such as a 4690data source 316. TheODBC Driver 308 comprises anODBC Driver Manager 310, aGeneric Driver 312, and aSQL Engine 314. In the preferred embodiment, theODBC Driver Manager 310 is an ODBC Driver Manager, known in the art. -
SPDAL 300 improves access to non-relational databases by providing the following capabilities: (1) true two-phase commit, (2) performance of SQL operations from within a single application across heterogeneous file systems, (3) referential integrity, and (4) indices for queries. - A two-phase commit process for keyed, sequential, and binary file systems is provided by the preferred embodiment of the method and system of the present invention. The two-phase commit is provided with an X/OPEN Distributed Transaction Processing (DTP) model using “XA interface” in
SPDAL 302. X/OPEN, and its XA interface, is a standard protocol for access to databases. - FIG. 4 is a block diagram illustrating the X/OPEN DTP model used in accordance with the present invention. The X/OPEN DTP model comprises three software components:
- An
application program 402 which defines transaction boundaries and specifies actions that constitute a transaction. -
Resource managers 404 which provide access to shared resources. - A
transaction manager 406 which assigns identifiers to transactions, monitors their progress and takes responsibility for transaction completion and for failure recovery. - In the preferred embodiment, the
XA Interface 408 is implemented with the X/OPEN DTP model as an intercept layer in theGeneric Driver 312. The intercept layer would act as a resource manager for each file system, i.e., it would assume the role of a data source.DataJoiner 304 would act as the transaction manager. This would make the keyed, sequential, or binary file system appear toDataJoiner 304 as a fully functional relational database implementing anXA interface 408. TheXA Interface 408 implements XA calls which allow for interaction between the transaction manager/DataJoiner 304 and thedata source 316. This two-phase commit protocol provided by the present invention can be used to manage data changes across multiple data base sources within a single operation. - FIG. 5 is a flow chart illustrating the two-phase commit process provided by the method and system in accordance with the present invention. For this illustration, assume that a first database is a non-relational database and a second database is a relational database and a request requires a two-phase commit between them. First,
DataJoiner 304, as the transaction manager, sends a request to the non-relational database, viastep 510, through the intercept layer in theGeneric Driver 312. The intercept layer implements the appropriate XA calls to facilitate interaction betweenDataJoiner 304 and the non-relational database. The non-relational database replies to the request and waits, viastep 520.DataJoiner 304 also sends a request to the relational database, viastep 530. The relational database replies to the request and waits, viastep 540. If both the non-relational and relational databases commit to the request, viastep 550, the request is performed, viastep 560. Otherwise, the transaction fails, viastep 570. - Examples of functions for each XA API call comprise the below:
- xa_close: Frees any dedicated two-phase commit resources.
- xa_commit: Unlock the section of the file previously locked, this will make the data changes available to other applications.
- xa_complete: Used by the transaction manager to wait for asynchronous operations. Return control to the transaction manager when the operation identified by the handle is complete.
- xa_end: Free any dedicated resources acquired during xa_start processing.
- xa_forget: Release resources associated with a xid.
- xa_open: Initialize any dedicated two-phase commit resources.
- xa_prepare: Obtain a write lock on the portion of the keyed, sequential, or binary file that will be changed. By acquiring a write lock, the resource manager intercept layer can guarantee that the subsequent write and commit will occur. The prepared write instruction (location in the file and buffer to write) should be saved in case a rollback is required.
- xa_recover: Return to the transaction manager any prepared but not committed transactions.
- xa_rollback: Undo the write operation staged with xa_prepare.
- xa_start: Initialize any dedicated resources required for a transaction.
- FIG. 6 illustrates an example of a two-phase commit performed in accordance with the present invention. In this example, assume that a request is received by DataJoiner to transfer $1000 from a first account at a first bank to a second account in a second bank. The first bank maintains its accounts in a non-relational database602 (DS1), such as a 4690 data source. The second bank maintains its accounts in a relational database 604 (DS2), such as a DB2 data source. The banks do not want to perform the credit without also performing the debit and vice versa. In completing this transaction, first the transaction manager,
DataJoiner 304, sends a request to the 4690 Keyed File,DS1 602, to debit $1000 from the first account, viastep 510. The request is sent through theGeneric Access API 306 to the Intercept Layer in theGeneric Driver 312. The Intercept Layer implements the appropriate XA calls to facilitate the portion of thetransaction involving DS1 602.DS1 602 replies to the XA calls and waits, viastep 520. DS1's 602 reply is sent to the transaction manager by the Intercept Layer. The transaction manager also sends a request toDS2 604 to credit the second account $1000, viastep 530.DS2 604 replies and waits, viastep 540. This ends phase one of the two-phase commit process. - If either
DS1 602 orDS2 604 indicates that they are unable to make the requested credit/debit, i.e., if either data source fails to commit, viastep 550, the transaction fails, viastep 570, and the transaction manager moves on to the next transaction. If bothDS1 602 andDS2 604 indicate they are able to make the requested credit/debit, i.e., both data sources commit, viastep 550, then the credit and debit are performed, viastep 560. This ends phase two of the two-phase commit process. - In the above manner, a two-phase commit process is provided by the method and system of the present invention.
- With the preferred embodiment of the method and system of the present invention, the ability to perform SQL operations from within a single application is provided. The present invention implements this capability by providing additional metadata tables in a database in addition to the metadata tables of
DataJoiner 304. These additional metadata tables describe the keyed, sequential, and binary file content such that the files within those file systems can be accessed by theSPDAL ODBC API 302 of the present invention, and manipulate it using relational operations. In addition, the metadata content itself is described and held as a relational table, so that this data is publicly available to all users and applications, and can be used in conjunction withDataJoiner 304 to perform single relational operations across relational data sources and keyed, sequential, and binary file data concurrently. - The metadata information of the present invention is used by
DataJoiner 304 via theSPDAL ODBC API 302 to service requests from applications, thus removing the burden of individual applications to code to the specifics of the data's physical design and location. - A summary of the metadata tables of the present invention follows. A more detailed description of fields in the metadata tables are provided in FIG. 7:
- LogicalEntity Table: maps a LogicalEntityName to one or more physical entities. (See Table 1, FIG. 7)
- PhysicalEntity Table: describes metadata information that is defined for each relational database table or keyed, sequential, and binary file. (See Table 2, FIG. 7)
- RecordDescription Table: describes the metadata information for records that exist within keyed, sequential, or binary files. (See Table 3, FIG. 7)
- Attribute Table: describes the metadata information for all fields in a keyed, sequential, binary file. The definition of a field provides the physical layout structure that an application would use to process the data within the field. (See Table 4, FIG. 7)
- ValidAttributeValuesTable: describes the discrete values that are valid within an attribute. (See Table 5, FIG. 7)
- ForeignKey Table: describes the metadata information for parent-child relationships. These relationships are used to enforce referential integrity across all SPDAL data, as will be described in more detail later in this specification. This includes relational databases as well as non-relational databases. Relationships can be established between attributes within the same file system (for example between two relational tables) or between attributes across different file systems (for example between a relational table and a keyed file). (See Table 6, FIG. 7)
- Index Table: describe, set, and maintain indexes on keyed, sequential, binary files. The use of this table will be described in more detail later in this specification. (See Table 7, FIG. 7)
- Although the present invention is described with the metadata tables as illustrated in FIG. 7, one of ordinary skill in the art will understand that other access mechanisms for keyed, binary, and sequential file types may be used without departing from the spirit and scope of the present invention.
- When
DataJoiner 304 receives a SQL query which involves both a relational and a non-relational data source,DataJoiner 304 “splits” the query. It passes “as is” to theSPDAL ODBC API 302 the portion of the query which deals with thenon-relational data source 316, and it passes the other portion to the relational data source through its native ODBC driver. TheSQL engine 314 then interprets the SQL query into the low level calls for access to thenon-relational data source 316. The requested data is returned in response to these low level calls. This result is then returned toDataJoiner 304, which combines it with the result returned from the relational data source.DataJoiner 304 then returns the combined result to the SQL query. - By providing the metadata in accordance with the present invention, advanced relational concepts, such as referential integrity, can be used across relational database management systems, and keyed, sequential, and binary file systems in the same operation. In addition, the metadata content structure is described as standard relational tables, making the metadata publicly available to any user or application. Finally, the metadata allows for a logical view for access to the underlying keyed or sequential file data. This enables an application to code to a logical model without having to be concerned with the underlying physical data store, or changes to the underlying physical data store.
- The method and system of the present invention provides for referential integrity across both relational and non-relational databases. In the preferred embodiment, referential integrity is implemented in the
SPDAL ODBC API 302 by combining the metadata described above with a relational database engine that can process the results of relational operations from outside data sources to ensure referential integrity across both the relational database and keyed, sequential, and binary file systems. The relational database engine is aSQL engine 314 which has the ability to perform queries which implement referential integrity, as described below. - The metadata is used to describe the referential constraints within the keyed, sequential, and binary file systems, and between these file systems and the relational file systems. The metadata is implemented by providing the following information in its ForeignKey Table:
- Parent/child relationships between files
- Primary key fields
- Cardinality between the parent and child
- List of fields that comprise a foreign key
- Delete rules
- Table 6 in FIG. 7 provides in more detail the above listed information.
- FIG. 8 is a flowchart illustrating the referential integrity process provided by the method and system of the present invention. In the preferred embodiment, the database access is through ODBC or X/OPEN CLI interfaces. Both are widely accepted and implemented by conventional competitive relational database management systems. First, the
SPDAL ODBC API 302 captures an end user query before it is passed toDataJoiner 304, viastep 810. The query is preprocessed in theSPDAL ODBC API 302 based on information in the metadata tables, viastep 820, specifically, the information in the ForeignKey Table. In the preprocessing, theSPDAL ODBC API 302 determines if the end user query requires any referential integrity processing, viastep 822. Is so, theSPDAL ODBC API 302 would formulate the queries to execute and enforce the referential constraints, viastep 824. Then, the end user query is passed toDataJoiner 304 for processing, viastep 840.DataJoiner 304 determines if the query requires non-relational data, viastep 850. If not, DataJoiner processes the query for the relational data, viastep 860, and returns the result, viastep 870. If so, then the query is processed on the non-relational data source, viastep 880. In this processing, the queries which execute and enforce the referential contraint is passed to theSQL Engine 314, viastep 826. TheSQL Engine 314 translates these queries to commands compatible with thenon-relational data source 316, viastep 828. TheSQL Engine 314 next executes these commands, viastep 830. DataJoiner also processes the query for the relational data, viastep 860. The results from both the relational and non-relational data sources are returned, viastep 870. - The following is a summary of ODBC calls which may be made by the
ODBC API 302 to implement referential constraints in accordance with the method and system of the present invention: - DELETE: Use the delete rules specified in the metadata to delete restrict, set null, or cascade. The ODBC driver of the present invention may need to make several calls into the relational DBMS in order to complete the requested action.
- INSERT: Issue a SELECT ODBC call on the parent table to ensure that each row conforms to the referential constraint prior to passing the INSERT to the original relational DBMS ODBC driver. If the constraint does not pass, then the ODBC driver of the present invention will generate an error message and return control directly to the application program. From the application's viewpoint, it looks as if the underlying relational DBMS detected the referential constraint violation and returned the error.
- UPDATE: Issue a SELECT ODBC call on the parent table to ensure that each row conforms to the referential constraint prior to passing the UPDATE to the original relational DBMS ODBC driver. If the constraint does not pass, then the ODBC driver of the present invention will generate an error message and return control directly to the application program. From the application's viewpoint, it looks as if the underlying relational DBMS detected the referential constraint violation and returned the error.
- In this manner, referential integrity is provided within a keyed, sequential, or binary file system in accordance with the method and system of the present invention. The present invention provides dynamic real-time enforcement of the referential integrity constraints, at the data store level, across both relational databases and keyed, sequential, and binary file systems.
- The method and system of the present invention provides a more efficient performance of queries, including ad-hoc queries, for non-relational databases. The efficiency is increased through the creation of an Index Manager which allows for the creation of indices for hash-keyed and sequential files. The indices are created based on the data selection criteria commonly used to satisfy user-defined ad-hoc queries. The user decides, based on the frequency that the query will be issued, along with the required response time to obtain the result set, which indices should be created.
- As illustrated in FIG. 9, the
Index Manager 902 is located next to theSQL Engine 314. TheIndex Manager 902 is accessed by theSQL Engine 314 during the satisfying of an end user query. In the preferred embodiment, the Index Manager comprises the following: - Index Manager API904: allows users to maintain their indices and access the data contained within the indices. This interface is available for use by external application programs that require access to the indices.
- Index Manager Hash-keyed and Sequential File Interface906: provides a means of updating indices to reflect additions, updates, and deletions of data from indices when the corresponding source data files change. This interface is context sensitive in that it depends on the file maintenance mechanism available on the data source.
- Index Manager B-Tree Function908: index entries are maintained in a B-Tree structure within the Index Manager to maintain the index entries. B-Tree structures are well known in the art and will not be discussed further here.
- Index Manager Support Functions910: include error logging and audit logging facilities, as well as a means of obtaining information about the data being indexed, i.e., the meta data.
- FIG. 10 is a flow chart illustrating the creation of indices by the Index Manager802 in accordance with the present invention. First, hash-keyed and/or sequential files are created, via
step 1010. Next, theIndex Manager API 904 is used to specify an index or indices to be created on a field or fields within a file, viastep 1020. TheIndex Manager 902 then creates an index on the specified field or fields, viastep 1030. This index is kept up to date when changes are occurring in the source data files via the Index Manager Hash-keyed andSequential File Interface 906. - FIG. 11 is a flowchart illustrating the use of the indices in satisfying a user query in accordance with the present invention. When the user executes a query, via
step 1110, the query is sent to theSQL Engine 314, viastep 1120. TheSQL Engine 314 then accesses theIndex Manager 902 via theIndex Manager API 904 to see whether an index exists that helps satisfy the query, viastep 1130. If so, theIndex Manager API 904 makes function calls to retrieve the indexed data, viastep 1140. If not, then every record in the file needs to be read and compared to the selection criteria, viastep 1150. Once the index data is retrieved, theIndex Manager 902 determines if the index alone satisfies the query, viastep 1160. If it does, then the result of the query is returned toDataJoiner 304 via theSQL Engine 314, viastep 1170. If not, the rows based on the keyed file keys or binary sequential file offsets found in the index are also retrieved via theSQL Engine 314, viastep 1180. Then the result is returned, viastep 1170. - With the
Index Manager 902 of the present invention, indexing capabilities are provided to hash-keyed, sequential and binary files. The efficiency in the execution of other queries is also greatly improved. By allowing the query application processing to only retrieve data that is known based on indices to satisfy the user defined query, there will be less network traffic when the application issuing the query resides on a machine other than the one where the source data files are stored. In addition, the cost of disk space to store indices is lowered. - A method and system for improved access to non-relational databases in a computer system has been disclosed. The method and system provides capabilities for a two-phase commit, performance of SQL operations from within a single application across heterogeneous file systems, referential integrity, and indices for ad-hoc and other queries for non-relational databases. These capabilities 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 when some or all of the data is stored in non-relational databases. By adding these capabilities, significant flexibility is added to the computer system.
- Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
Claims (35)
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 , wherein the relational features comprise:
claim 1
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 , wherein the server is a DB2 DataJoiner.
claim 1
4. The system of , 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.
claim 3
5. The system of , wherein the SPDAL comprises:
claim 1
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 , wherein the Generic Driver comprises:
claim 5
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 , further comprising:
claim 5
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 , wherein the index manager comprises:
claim 7
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 , wherein the server is a DB2 DataJoiner.
claim 9
11. The system of , wherein the DB2 DataJoiner comprises a Generic Access API which allows for customized access to data sources not already supported by DataJoiner.
claim 10
12. The system of , wherein the SPDAL comprises:
claim 9
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 , wherein the Generic Driver comprises:
claim 12
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 , further comprising:
claim 12
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 , wherein the index manager comprises:
claim 14
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 , 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.
claim 16
18. The system of , wherein the index manager comprises:
claim 16
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 , further comprising:
claim 19
(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 , wherein the preprocessing step (b) comprises:
claim 22
(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 , further comprising the steps of:
claim 22
(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 , wherein the processing step (d) comprises:
claim 24
(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 , wherein the creating step (a) comprises:
claim 27
(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 , wherein the utilizing step (b) comprises:
claim 27
(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.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/848,181 US20010056428A1 (en) | 1999-07-08 | 2001-05-03 | Method and system for improved access to non-relational databases |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/349,607 US6502088B1 (en) | 1999-07-08 | 1999-07-08 | Method and system for improved access to non-relational databases |
US09/848,181 US20010056428A1 (en) | 1999-07-08 | 2001-05-03 | Method and system for improved access to non-relational databases |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/349,607 Division US6502088B1 (en) | 1999-07-08 | 1999-07-08 | Method and system for improved access to non-relational databases |
Publications (1)
Publication Number | Publication Date |
---|---|
US20010056428A1 true US20010056428A1 (en) | 2001-12-27 |
Family
ID=23373186
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/349,607 Expired - Fee Related US6502088B1 (en) | 1999-07-08 | 1999-07-08 | Method and system for improved access to non-relational databases |
US09/848,181 Abandoned US20010056428A1 (en) | 1999-07-08 | 2001-05-03 | Method and system for improved access to non-relational databases |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/349,607 Expired - Fee Related US6502088B1 (en) | 1999-07-08 | 1999-07-08 | Method and system for improved access to non-relational databases |
Country Status (3)
Country | Link |
---|---|
US (2) | US6502088B1 (en) |
JP (1) | JP2001051879A (en) |
CA (1) | CA2305122A1 (en) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046298A1 (en) * | 2001-08-31 | 2003-03-06 | Borland Software Corporation | Transaction processing system providing improved methodology for two-phase commit decision |
US20050049992A1 (en) * | 2003-08-20 | 2005-03-03 | International Business Machines Corporation | Method and system for optimizing database performance |
US20050091210A1 (en) * | 2000-06-06 | 2005-04-28 | Shigekazu Inohara | Method for integrating and accessing of heterogeneous data sources |
US20050138041A1 (en) * | 2003-12-18 | 2005-06-23 | International Business Machines Corporation | Accessing a non-relational store with a container-managed persistence bean via a web service function |
US7251659B1 (en) * | 2003-12-04 | 2007-07-31 | Sprint Communications Company L.P. | Method and system for managing resource indexes in a networking environment |
WO2008020932A2 (en) * | 2006-07-10 | 2008-02-21 | Elephantdrive, Llc | Abstracted and optimized online backup and digital asset management service |
US20080065698A1 (en) * | 2006-08-25 | 2008-03-13 | Steven Michael French | Method and apparatus for emulating alternate data streams across heterogeneous file systems |
CN101963985A (en) * | 2010-09-28 | 2011-02-02 | 北京神州泰岳软件股份有限公司 | Communication method and system between data persistence frame and database agent |
US20110099430A1 (en) * | 2004-02-27 | 2011-04-28 | James Lloyd | Method and system to monitor a diverse heterogeneous application environment |
US20110258179A1 (en) * | 2010-04-19 | 2011-10-20 | Salesforce.Com | Methods and systems for optimizing queries in a multi-tenant store |
US20110289092A1 (en) * | 2004-02-27 | 2011-11-24 | Ebay Inc. | Method and system to monitor a diverse heterogeneous application environment |
US9098548B1 (en) * | 2010-06-14 | 2015-08-04 | Open Invention Network, Llc | Method and apparatus for accessing a data source from a client using a driver |
US9535948B1 (en) * | 2013-12-16 | 2017-01-03 | Amazon Technologies, Inc. | Data access statement translation |
US10162851B2 (en) | 2010-04-19 | 2018-12-25 | Salesforce.Com, Inc. | Methods and systems for performing cross store joins in a multi-tenant store |
US10867004B2 (en) * | 2008-11-03 | 2020-12-15 | Salesforce.Com, Inc. | Publicly providing web content of a tenant using a multi-tenant on-demand database service |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1109115A1 (en) * | 1999-12-14 | 2001-06-20 | Sun Microsystems, Inc. | Merging driver for accessing multiple database sources |
US6694325B2 (en) * | 2000-10-16 | 2004-02-17 | Frank Jas | Database method implementing attribute refinement model |
US7904358B2 (en) * | 2001-02-28 | 2011-03-08 | Goldman Sachs & Co. | Computerized interface for monitoring financial information and executing financial transactions |
US6904428B2 (en) * | 2001-04-18 | 2005-06-07 | Illinois Institute Of Technology | Intranet mediator |
US7165104B2 (en) * | 2001-04-23 | 2007-01-16 | Microsoft Corporation | Method and apparatus for managing computing devices on a network |
AUPR796801A0 (en) * | 2001-09-27 | 2001-10-25 | Plugged In Communications Pty Ltd | Computer user interface tool for navigation of data stored in directed graphs |
US7243108B1 (en) * | 2001-10-14 | 2007-07-10 | Frank Jas | Database component packet manager |
JP2005535947A (en) * | 2002-05-31 | 2005-11-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | System and method for accessing different types of back-end data stores |
US20040193656A1 (en) * | 2003-03-28 | 2004-09-30 | Pizzo Michael J. | Systems and methods for caching and invalidating database results and derived objects |
US7110997B1 (en) * | 2003-05-15 | 2006-09-19 | Oracle International Corporation | Enhanced ad-hoc query aggregation |
US7174479B2 (en) * | 2003-09-10 | 2007-02-06 | Microsoft Corporation | Method and system for rollback-free failure recovery of multi-step procedures |
US20050192962A1 (en) * | 2004-02-26 | 2005-09-01 | Patricia Furrer | Apparatus, system, method for enabling web-applications to access enterprise managed data |
US7624376B1 (en) * | 2004-04-08 | 2009-11-24 | Sprint Communications Company L.P. | Integration of COTS software data stores into integrated data access layer |
US7899680B2 (en) * | 2005-03-04 | 2011-03-01 | Netapp, Inc. | Storage of administrative data on a remote management device |
US8090810B1 (en) | 2005-03-04 | 2012-01-03 | Netapp, Inc. | Configuring a remote management module in a processing system |
US7805629B2 (en) * | 2005-03-04 | 2010-09-28 | Netapp, Inc. | Protecting data transactions on an integrated circuit bus |
US8291063B2 (en) * | 2005-03-04 | 2012-10-16 | Netapp, Inc. | Method and apparatus for communicating between an agent and a remote management module in a processing system |
US8719250B2 (en) * | 2005-04-18 | 2014-05-06 | Oracle International Corporation | Integrating RDF data into a relational database system |
US7797291B1 (en) * | 2005-07-11 | 2010-09-14 | Sprint Communications Company L.P. | Data retention auditing |
US20070168720A1 (en) * | 2005-11-30 | 2007-07-19 | Oracle International Corporation | Method and apparatus for providing fault tolerance in a collaboration environment |
US8868577B2 (en) * | 2006-03-31 | 2014-10-21 | Sap Se | Generic database manipulator |
US8214354B2 (en) * | 2006-03-31 | 2012-07-03 | Oracle International Corporation | Column constraints based on arbitrary sets of objects |
US7933916B2 (en) * | 2008-02-28 | 2011-04-26 | Microsoft Corporation | Querying nonSQL data stores with a SQL-style language |
US9396227B2 (en) * | 2012-03-29 | 2016-07-19 | Hewlett Packard Enterprise Development Lp | Controlled lock violation for data transactions |
KR101296778B1 (en) | 2012-09-18 | 2013-08-14 | (주)카디날정보기술 | Method of eventual transaction processing on nosql database |
US9715515B2 (en) | 2014-01-31 | 2017-07-25 | Microsoft Technology Licensing, Llc | External data access with split index |
US10049772B1 (en) | 2014-07-09 | 2018-08-14 | Loyola University Of Chicago | System and method for creation, operation and use of a clinical research database |
CN104361000A (en) * | 2014-09-24 | 2015-02-18 | 广东电网有限责任公司佛山供电局 | Access method and system for relational database based on self-built database connection pool |
US20160217190A1 (en) * | 2015-01-22 | 2016-07-28 | Bank Of America Corporation | System for extracting records from a non-relational database based on one or more relational database management system (rdbms) language statements |
US9547508B2 (en) | 2015-05-11 | 2017-01-17 | Red Hat, Inc. | Universal database driver |
US10817203B1 (en) | 2017-08-29 | 2020-10-27 | Amazon Technologies, Inc. | Client-configurable data tiering service |
US11151081B1 (en) | 2018-01-03 | 2021-10-19 | Amazon Technologies, Inc. | Data tiering service with cold tier indexing |
US10579597B1 (en) | 2018-01-09 | 2020-03-03 | Amazon Technologies, Inc. | Data-tiering service with multiple cold tier quality of service levels |
US11176173B2 (en) * | 2018-07-10 | 2021-11-16 | Comptel Oy | Arrangement for enriching data stream in a communications network and related method |
US11221782B1 (en) | 2019-03-27 | 2022-01-11 | Amazon Technologies, Inc. | Customizable progressive data-tiering service |
US11943226B2 (en) | 2021-05-14 | 2024-03-26 | International Business Machines Corporation | Container and resource access restriction |
WO2023181221A1 (en) * | 2022-03-23 | 2023-09-28 | 日本電信電話株式会社 | Transaction processing device, transaction processing method, and transaction processing program |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3020500B2 (en) | 1988-01-29 | 2000-03-15 | 株式会社日立製作所 | Database system having memo information and method of managing memo information |
JP2545436B2 (en) * | 1988-03-28 | 1996-10-16 | 沖電気工業株式会社 | Distributed database commitment processor |
US5146590A (en) | 1989-01-13 | 1992-09-08 | International Business Machines Corporation | Method for sorting using approximate key distribution in a distributed system |
JPH02310665A (en) | 1989-05-25 | 1990-12-26 | Toshiba Corp | Data restoration method for distributed transaction processing system |
US5604899A (en) | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
US5379419A (en) * | 1990-12-07 | 1995-01-03 | Digital Equipment Corporation | Methods and apparatus for accesssing non-relational data files using relational queries |
JPH04299459A (en) | 1991-03-27 | 1992-10-22 | Nec Corp | Data base access system |
JPH0797782B2 (en) | 1991-09-18 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | How to coordinate heterogeneous transactions |
US5280612A (en) | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
GB9204450D0 (en) | 1992-03-02 | 1992-04-15 | Ibm | Concurrent access to indexed data files |
US5749079A (en) | 1992-03-04 | 1998-05-05 | Singapore Computer Systems Limited | End user query facility including a query connectivity driver |
JPH0756652B2 (en) | 1992-03-24 | 1995-06-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Search for video frame sequence |
US5452445A (en) | 1992-04-30 | 1995-09-19 | Oracle Corporation | Two-pass multi-version read consistency |
US5335343A (en) | 1992-07-06 | 1994-08-02 | Digital Equipment Corporation | Distributed transaction processing using two-phase commit protocol with presumed-commit without log force |
US5978811A (en) * | 1992-07-29 | 1999-11-02 | Texas Instruments Incorporated | Information repository system and method for modeling data |
US5649183A (en) | 1992-12-08 | 1997-07-15 | Microsoft Corporation | Method for compressing full text indexes with document identifiers and location offsets |
US5630114A (en) | 1993-01-22 | 1997-05-13 | Serra; Bill | Database management system embedded in an operating system command |
US5440732A (en) | 1993-02-05 | 1995-08-08 | Digital Equipment Corp., Pat. Law Gr. | Key-range locking with index trees |
JP2557192B2 (en) | 1993-03-15 | 1996-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Transaction processing synchronization method, transaction processing monitoring method, and transaction commit processing method |
US5918225A (en) * | 1993-04-16 | 1999-06-29 | Sybase, Inc. | SQL-based database system with improved indexing methodology |
US5455946A (en) | 1993-05-21 | 1995-10-03 | International Business Machines Corporation | Method and means for archiving modifiable pages in a log based transaction management system |
US5560007A (en) | 1993-06-30 | 1996-09-24 | Borland International, Inc. | B-tree key-range bit map index optimization of database queries |
US5432930A (en) | 1993-09-30 | 1995-07-11 | Eagle Crest Limited | System for accessing cobol data files by generating a dictionary of NF.sup.2 |
US5553279A (en) | 1993-10-08 | 1996-09-03 | International Business Machines Corporation | Lossless distribution of time series data in a relational data base network |
GB2283591B (en) | 1993-11-04 | 1998-04-15 | Northern Telecom Ltd | Database management |
US5550965A (en) | 1993-12-27 | 1996-08-27 | Lucent Technologies Inc. | Method and system for operating a data processor to index primary data in real time with iconic table of contents |
US5499359A (en) | 1994-01-18 | 1996-03-12 | Borland International, Inc. | Methods for improved referential integrity in a relational database management system |
US5764973A (en) | 1994-02-08 | 1998-06-09 | Enterworks.Com, Inc. | System for generating structured query language statements and integrating legacy systems |
US5737736A (en) | 1994-07-29 | 1998-04-07 | Oracle Corporation | Method and apparatus for storing objects using a c-structure and a bind descriptor |
US5603025A (en) | 1994-07-29 | 1997-02-11 | Borland International, Inc. | Methods for hypertext reporting in a relational database management system |
US5611076A (en) | 1994-09-21 | 1997-03-11 | Micro Data Base Systems, Inc. | Multi-model database management system engine for databases having complex data models |
US5768577A (en) * | 1994-09-29 | 1998-06-16 | International Business Machines Corporation | Performance optimization in a heterogeneous, distributed database environment |
US5764949A (en) * | 1994-09-29 | 1998-06-09 | International Business Machines Corporation | Query pass through in a heterogeneous, distributed database environment |
US6381595B1 (en) * | 1994-09-29 | 2002-04-30 | International Business Machines Corporation | System and method for compensation of functional differences between heterogeneous database management systems |
US5659728A (en) | 1994-12-30 | 1997-08-19 | International Business Machines Corporation | System and method for generating uniqueness information for optimizing an SQL query |
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
US5758145A (en) | 1995-02-24 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries |
US5729733A (en) | 1995-05-05 | 1998-03-17 | Harris Corporation | Method of operating a distributed databse based on object ownership and transaction classification utilizing an aggressive reverse one phase commit protocol |
US5644763A (en) | 1995-06-28 | 1997-07-01 | Sybase, Inc. | Database system with improved methods for B-tree maintenance |
US5781910A (en) * | 1996-09-13 | 1998-07-14 | Stratus Computer, Inc. | Preforming concurrent transactions in a replicated database environment |
US5924074A (en) * | 1996-09-27 | 1999-07-13 | Azron Incorporated | Electronic medical records system |
US5761494A (en) | 1996-10-11 | 1998-06-02 | The Sabre Group, Inc. | Structured query language to IMS transaction mapper |
US5970490A (en) * | 1996-11-05 | 1999-10-19 | Xerox Corporation | Integration platform for heterogeneous databases |
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
US6161103A (en) * | 1998-05-06 | 2000-12-12 | Epiphany, Inc. | Method and apparatus for creating aggregates for use in a datamart |
-
1999
- 1999-07-08 US US09/349,607 patent/US6502088B1/en not_active Expired - Fee Related
-
2000
- 2000-04-12 CA CA002305122A patent/CA2305122A1/en not_active Abandoned
- 2000-06-23 JP JP2000188656A patent/JP2001051879A/en active Pending
-
2001
- 2001-05-03 US US09/848,181 patent/US20010056428A1/en not_active Abandoned
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091210A1 (en) * | 2000-06-06 | 2005-04-28 | Shigekazu Inohara | Method for integrating and accessing of heterogeneous data sources |
US6799188B2 (en) * | 2001-08-31 | 2004-09-28 | Borland Software Corporation | Transaction processing system providing improved methodology for two-phase commit decision |
US20030046298A1 (en) * | 2001-08-31 | 2003-03-06 | Borland Software Corporation | Transaction processing system providing improved methodology for two-phase commit decision |
US20090094194A1 (en) * | 2003-08-20 | 2009-04-09 | Sanjay Gupta | Method and system for optimizing database performance |
US20050049992A1 (en) * | 2003-08-20 | 2005-03-03 | International Business Machines Corporation | Method and system for optimizing database performance |
US8055666B2 (en) * | 2003-08-20 | 2011-11-08 | International Business Machines Corporation | Method and system for optimizing database performance |
US7516115B2 (en) * | 2003-08-20 | 2009-04-07 | International Business Machines Corporation | Method and system for optimizing performance in non-relational databases |
US7251659B1 (en) * | 2003-12-04 | 2007-07-31 | Sprint Communications Company L.P. | Method and system for managing resource indexes in a networking environment |
US20050138041A1 (en) * | 2003-12-18 | 2005-06-23 | International Business Machines Corporation | Accessing a non-relational store with a container-managed persistence bean via a web service function |
US8037103B2 (en) * | 2003-12-18 | 2011-10-11 | International Business Machines Corporation | Accessing a non-relational store with a container-managed persistence bean via a web service function |
US20080288508A1 (en) * | 2003-12-18 | 2008-11-20 | International Business Machines Corporation | Accessing a non-relational store with a container-managed persistence bean via a web service function |
US7457806B2 (en) * | 2003-12-18 | 2008-11-25 | International Business Machines Corporation | Accessing a non-relational store with a container-managed persistence bean via a web service function |
US8983966B2 (en) * | 2004-02-27 | 2015-03-17 | Ebay Inc. | Method and system to monitor a diverse heterogeneous application environment |
US8621259B2 (en) | 2004-02-27 | 2013-12-31 | Ebay Inc. | Method and system to monitor a diverse heterogeneous application environment |
US20110099430A1 (en) * | 2004-02-27 | 2011-04-28 | James Lloyd | Method and system to monitor a diverse heterogeneous application environment |
US9576010B2 (en) | 2004-02-27 | 2017-02-21 | Ebay Inc. | Monitoring an application environment |
US20110289092A1 (en) * | 2004-02-27 | 2011-11-24 | Ebay Inc. | Method and system to monitor a diverse heterogeneous application environment |
WO2008020932A3 (en) * | 2006-07-10 | 2008-09-04 | Elephantdrive Llc | Abstracted and optimized online backup and digital asset management service |
WO2008020932A2 (en) * | 2006-07-10 | 2008-02-21 | Elephantdrive, Llc | Abstracted and optimized online backup and digital asset management service |
US20080065698A1 (en) * | 2006-08-25 | 2008-03-13 | Steven Michael French | Method and apparatus for emulating alternate data streams across heterogeneous file systems |
US10867004B2 (en) * | 2008-11-03 | 2020-12-15 | Salesforce.Com, Inc. | Publicly providing web content of a tenant using a multi-tenant on-demand database service |
US8447754B2 (en) * | 2010-04-19 | 2013-05-21 | Salesforce.Com, Inc. | Methods and systems for optimizing queries in a multi-tenant store |
US9507822B2 (en) | 2010-04-19 | 2016-11-29 | Salesforce.Com, Inc. | Methods and systems for optimizing queries in a database system |
US20110258179A1 (en) * | 2010-04-19 | 2011-10-20 | Salesforce.Com | Methods and systems for optimizing queries in a multi-tenant store |
US10162851B2 (en) | 2010-04-19 | 2018-12-25 | Salesforce.Com, Inc. | Methods and systems for performing cross store joins in a multi-tenant store |
US10649995B2 (en) | 2010-04-19 | 2020-05-12 | Salesforce.Com, Inc. | Methods and systems for optimizing queries in a multi-tenant store |
US9098548B1 (en) * | 2010-06-14 | 2015-08-04 | Open Invention Network, Llc | Method and apparatus for accessing a data source from a client using a driver |
US9419853B1 (en) * | 2010-06-14 | 2016-08-16 | Open Invention Network Llc | Method and apparatus for configuring a data source name (DSN) for use during a data source access |
CN101963985A (en) * | 2010-09-28 | 2011-02-02 | 北京神州泰岳软件股份有限公司 | Communication method and system between data persistence frame and database agent |
US9535948B1 (en) * | 2013-12-16 | 2017-01-03 | Amazon Technologies, Inc. | Data access statement translation |
Also Published As
Publication number | Publication date |
---|---|
US6502088B1 (en) | 2002-12-31 |
JP2001051879A (en) | 2001-02-23 |
CA2305122A1 (en) | 2001-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6502088B1 (en) | Method and system for improved access to non-relational databases | |
US7346628B2 (en) | Time in databases and applications of databases | |
US9898549B1 (en) | Tenant-aware database for software as a service | |
US8166070B2 (en) | Techniques for sharing persistently stored query results between multiple users | |
AU764720B2 (en) | Method and system for fast memory-resident processing of transaction data | |
US7269604B2 (en) | System of and method for transparent management of data objects in containers across distributed heterogenous resources | |
US7287249B2 (en) | Method and system for tracking and exchanging incremental changes to hierarchical objects | |
CN101263492B (en) | Transparent archiving | |
JP5421269B2 (en) | Non-overlapping ETL-less system and method for reporting OLTP data | |
US7552149B2 (en) | Querying past versions of data in a distributed database | |
US5995973A (en) | Storing relationship tables identifying object relationships | |
US6345272B1 (en) | Rewriting queries to access materialized views that group along an ordered dimension | |
US20110238703A1 (en) | Time in databases and applications of databases | |
US20130110873A1 (en) | Method and system for data storage and management | |
US8103624B2 (en) | Apparatus and method for automating the logging of table changes in a database | |
US7213208B2 (en) | Data container for interaction between a client process and software applications | |
US20020093857A1 (en) | System and method for managing information objects | |
US20040015486A1 (en) | System and method for storing and retrieving data | |
Narang | Database management systems | |
US20040054640A1 (en) | Interaction between a client process and software applications | |
US20240119071A1 (en) | Relationship-based display of computer-implemented documents | |
Orlunwo Placida et al. | DISTRIBUTED DATABASE MANAGEMENT SYSTEM (DBMS) ARCHITECTURES AND DISTRIBUTED DATA INDEPENDENCE | |
Gupta et al. | Challenges in supporting materialized views | |
Sinha | Implementation of the 2VNL Data Warehousing Technique in an Object-Relational DBMS | |
Carnes | An update gathering architecture for data warehouses and external trigger processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |