IP Library Granted Patent US 9,128,979
Granted Patent B2
US 9,128,979 · App. 14/166,442 · Granted Sep 8, 2015

Enriching database query responses using data from external data sources

Inventors: Anthony Nino Bice (Seattle, WA); David Robinson (Snohomish, WA); Hariharan Sivaramakrishnan (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F17/30418G06F17/3043
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,128,979
App. No.
14/166,442
Granted
Sep 8, 2015
Kind
B2
Abstract

The subject disclosure is directed towards enriching database query responses using data from external data sources. When processing a database query seeking enriched data from an external data source, a request is communicated to the external data source based on the database query. An enriched database query response is generated based on data provided by the external data source. The enriched database query response may be combined with data returned via an internal database query operation, and/or inserted into a local database table.

Claims (29)

1. At a computing device, a method performed at least in part on at least one processor, comprising:

formulating a database query, the database query including first parameters, second parameters, and an enrichment parameter, the database query directed to a database, the first parameters representing a database command indicating that values for identified entities are to be retrieved, the second parameters indicating that values for any of the identified entities available from the database are to be retrieved from the database, the enrichment parameter indicating that values for at least one identified entity not available from the database is to be retrieved from a second data source, the enrichment parameter directing a database engine to enrich values for a first subset of identified entities retrieved from the database with values for a second subset of identified entities, wherein values for the second subset of identified entities are not available in the database, the database query configured to use values retrieved from the database for an identified entity, from among the first subset of identified entities, to specify what values to retrieve for the second subset of identified entities from the second data source, the enrichment parameter is used to define a protocol corresponding to the second data source;

submitting the database query to the database engine for processing; and

receiving an enriched database query response, the enriched database query response including values retrieved from the database for the first subset of identified entities and values retrieved from the second data source for the second subset of identified entities, values retrieved from the second data source having been specified by values retrieved from the database for the identified entity.

2. The method of claim 1 , wherein the enrichment parameter includes an entity identifier parameter identifying a specified type of enrichment data.

3. The method of claim 2 , wherein the entity identifier parameter is used to communicate with the one or more other data sources, including the second data source.

4. The method of claim 1 , further comprising the enrichment parameter being used to access an associated directory entry, the associated directory entry defining the protocol corresponding to the second data source.

5. The method of claim 1 , wherein receiving an enriched database query response comprises receiving one or more of: a view corresponding to the enriched query response or a populated table data with the enriched query response.

6. The method of claim 1 , wherein receiving an enriched query response comprises receiving an enriched query response that includes data associated with an internal database operation merged with the enrichment data.

7. The method of claim 1 , wherein receiving an enriched query response comprises receiving an enriched query response that includes enrichment data merged with one of: structured data or rational database data.

8. A computer program product for use at a computer system, the computer program product for implementing a method, the computer program product comprising one or more computer storage memories having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform the method, including the following:

formulate a database query, the database query including first parameters, second parameters, and an enrichment parameter, the database query directed to a database, the first parameters representing a database command indicating that values for identified entities are to be retrieved, the second parameters indicating that values for any of the identified entities available from the database are to be retrieved from the database, the enrichment parameter indicating that values for at least one identified entity not available from the database is to be retrieved from a second data source, the enrichment parameter directing a database engine to enrich values for a first subset of identified entities retrieved from the database with values for a second subset of identified entities, wherein values for the second subset of identified entities are not available in the database, the database query configured to use values retrieved from the database for an identified entity, from among the first subset of identified entities, to specify what values to retrieve for the second subset of identified entities from the second data source, the enrichment parameter is used to define a protocol corresponding to the second data source;

submit the database query to the database engine for processing; and

receive an enriched database query response, the enriched database query response including values retrieved from the database for the first subset of identified entities and values retrieved from the second data source for the second subset of identified entities, values retrieved from the second data source having been specified by values retrieved from the database for the identified entity.

9. The computer program product of claim 8 , wherein the enrichment parameter includes an entity identifier parameter identifying a specified type of enrichment data.

10. The computer program product of claim 9 , wherein the entity identifier parameter is used to communicate with the one or more other data sources, including the second data source.

11. The computer program product of claim 8 , further comprising computer-executable instructions that, when executed, cause the computer system to configure the enrichment parameter to be used by the database engine to access an associated directory entry, the associated directory entry defining the protocol for communicating with the second data source.

12. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to receive an enriched database query response comprise computer-executable instructions that, when executed at a processor, cause the computer system to receive one or more of: a view corresponding to the enriched query response or a populated table data with the enriched query response.

13. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to receive an enriched query response comprise computer-executable instructions that, when executed, cause the computer system to receive an enriched query response that includes data associated with an internal database operation merged with the enrichment data.

14. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to receive an enriched query response comprise computer-executable instructions that, when executed, cause the computer system to receive an enriched query response that includes enrichment data merged with one of: structured data or rational database data.

15. A computer system, the computer system comprising:

one or more processors;

system memory;

one or more computer storage devices having stored thereon computer-executable instructions configured to:

formulate a database query, the database query including first parameters, second parameters, and an enrichment parameter, the database query directed to a database, the first parameters representing a database command indicating that values for identified entities are to be retrieved, the second parameters indicating that values for any of the identified entities available from the database are to be retrieved from the database, the enrichment parameter indicating that values for at least one identified entity not available from the database is to be retrieved from a second data source, the enrichment parameter directing a database engine to enrich values for a first subset of identified entities retrieved from the database with values for a second subset of identified entities, wherein values for the second subset of identified entities are not available in the database, the database query configured to use values retrieved from the database for an identified entity, from among the first subset of identified entities, to specify what values to retrieve for the second subset of identified entities from the second data source, the enrichment parameter is used to define a protocol corresponding to the second data source;

submit the database query to the database engine for processing; and

receive an enriched database query response, the enriched database query response including values retrieved from the database for the first subset of identified entities and values retrieved from the second data source for the second subset of identified entities, values retrieved from the second data source having been specified by values retrieved from the database for the identified entity.

16. The computer system of claim 15 , wherein the enrichment parameter includes an entity identifier parameter identifying a specified type of enrichment data.

17. The computer system of claim 16 , wherein the entity identifier parameter is used to communicate with the one or more other data sources, including the second data source.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
Continuity (2)
Continuation 13159666 · Jun 14, 2011
Related Publication 20140143266A1 · May 22, 2014