IP Library Granted Patent US 7,734,608
Granted Patent B2
US 7,734,608 · App. 11/534,510 · Granted Jun 8, 2010

System, method and computer program product for querying data relationships over a network

Assignee: salesforce.com, inc.
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 7,734,608
App. No.
11/534,510
Granted
Jun 8, 2010
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for querying data relationships over a network. These mechanisms and methods for querying data relationships over a network can enable embodiments to provide the capability to query for more than a single entity at a time. The ability of embodiments to query for more than a single entity at a time can enable improved network throughput, faster response time and more efficient utilization of resources.

Claims (55)

1. A method for querying data relationships over a network, comprising:

receiving a query including at least one relationship between a first entity and a second entity over a network, the query received utilizing a web services protocol including at least one of simple object access protocol (SOAP) and extensible markup language (XML), and the query including at least one hierarchical relationship between the first entity and the second entity;

retrieving, from at least one database, only that amount of data related to the first entity and the second entity that is able to be efficiently returned responsive to the query, the at least one database including a multi-tenant database system; and

transmitting data related to the first entity and the second entity over the network in response to the query, the data related to the first entity and the second entity being transmitted in response to a single query;

wherein the query is constructed utilizing a query language.

2. The method of claim 1 , wherein receiving a query including at least one relationship between a first entity and a second entity over a network includes:

receiving the query over a network that is asynchronous and latent.

3. The method of claim 1 , wherein at least one of the first entity and the second entity includes a custom entity.

4. The method of claim 1 , wherein receiving a query including at least one relationship between a first entity and a second entity over a network includes:

receiving the query utilizing a server.

5. The method of claim 1 , wherein the first entity includes an account and the second entity includes at least one contact.

6. The method of claim 1 , wherein retrieving, from at least one database, only that amount of data related to the first entity and the second entity that is able to be efficiently returned responsive to the query includes:

cursoring over the first entity and the second entity.

7. The method of claim 6 , further comprising tracking a total number of entities.

8. The method of claim 7 , further comprising determining whether the total number of the entities exceeds a threshold.

9. The method of claim 8 , further comprising deleting at least one of the entities when the threshold is exceeded.

10. The method of claim 1 , wherein the relationship has a unique label.

11. The method of claim 10 , wherein a first label is assigned to the first entity for identifying the relationship and a second label is assigned to the second entity for identifying the relationship.

12. The method of claim 11 , wherein the first label and the second label are different.

13. The method of claim 1 , wherein a pointer exists between the first entity and the second entity.

14. The method of claim 1 , wherein the query includes a describe call that identifies the relationship.

15. The method of claim 1 , wherein retrieving, from at least one database, only that amount of data related to the first entity and the second entity that is able to be efficiently returned responsive to the query includes:

generating at least one database query based on the query for querying a database for the data.

16. The method of claim 15 , wherein generating at least one database query based on the query for querying a database for the data includes:

generating the at least one database query to include join conditions.

17. The method of claim 1 , wherein the query including the at least one relationship between the first entity and the second entity provides the single query for requesting a plurality of entities for improving network throughput, faster response time and more efficient utilization of resources than otherwise provided by utilizing a plurality of queries, each for requesting a different one of the plurality of entities.

18. The method of claim 1 , wherein the at least one relationship between the first entity and the second entity that is included in the query includes a parent-child relationship.

19. A computer readable storage medium storing a computer program, the computer program comprising:

computer code for receiving a query including at least one relationship between a first entity and a second entity over a network, the query received utilizing a web services protocol including at least one of simple object access protocol (SOAP) and extensible markup language (XML), and the query including at least one hierarchical relationship between the first entity and the second entity;

computer code for retrieving, from at least one database, only that amount of data related to the first entity and the second entity that is able to be efficiently returned responsive to the query, the at least one database including a multi-tenant database system; and

computer code for transmitting data related to the first entity and the second entity over the network, in response to the query, the data related to the first entity and the second entity being transmitted in response to a single query;

wherein the computer program is operable such that the query is constructed utilizing a query language.

20. A system, comprising:

a processor;

a multi-tenant database;

an application program interface (API) for interfacing a client with the multi- tenant database over a network;

wherein the processor is operable such that, in response to a query including at least one relationship between a first entity and a second entity, the API retrieves, from the multi-tenant database, only that amount of data related to the first entity and the second entity and able to efficiently returned responsive to the query and transmits data related to the first entity and the second entity from the multi-tenant database over the network;

wherein the processor is operable such that the query is received utilizing a web services protocol including at least one of simple object access protocol (SOAP) and extensible markup language (XML);

wherein the processor is operable such that transmitting data related to the first entity and the second entity over the network in response to the query includes:

transmitting data related to the first entity and the second entity in response to a single query;

wherein the query includes at least one hierarchical relationship between the first entity and the second entity;

wherein the processor is operable such that the query is constructed utilizing a query language.

21. A computer readable storage medium storing a computer program, the computer program comprising:

computer code for transmitting a query including at least one relationship between a first entity and a second entity over a network; and

computer code for receiving data related to the first entity and the second entity over the network, the data retrieved from at least one database such that only that amount of data able to be efficiently returned responsive to the query is retrieved;

wherein the computer program is operable such that the query is transmitted utilizing a web services protocol including at least one of simple object access protocol (SOAP) and extensible markup language (XML);

wherein the computer program is operable such that the data is received in response to a single query;

wherein the query includes at least one hierarchical relationship between the first entity and the second entity;

wherein the at least one database includes a multi-tenant database system;

wherein the computer program product is operable such that the query is constructed utilizing a query language.

22. A method for transmitting code for querying data relationships over a network, the method comprising:

transmitting code to receive a query including at least one relationship between a first entity and a second entity over a network, the query received utilizing a web services protocol including at least of simple object access protocol (SOAP) and extensible markup language (XML), and the including at least one hierarchical relationship between the first entity and the second entity;

transmitting code to retrieve, from at least one database, only that amount of data related to the first entity and the second entity that is able to be efficiently returned responsive to the query, the at least one database including a multi-tenant database system; and

transmitting code to transmit data related to the first entity and the second entity over the network in response to the query, the data related to the first entity and the second entity being transmitted in response to a single query;

wherein the query is constructed utilizing a query language.

Assignments (2)
CHANGE OF NAME Recorded Oct 24, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0555 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2007
From: FELL, SIMON Z.; JASIK, BENJI H.; MAWSON, SVEN E.; WEISSMAN, CRAIG
To: SALESFORCE.COM, INC.
Reel/Frame 018912/0168 →
Continuity (1)
Related Publication 20080077566A1 · Mar 27, 2008