IP Library Granted Patent US 9,842,137
Granted Patent B2
US 9,842,137 · App. 14/590,769 · Granted Dec 12, 2017

Performing complex operations in a database using a semantic layer

Inventors: Franz Faerber (Walldorf, DE); Daniel Baeumges (Viersen, DE); Tobias Mindnich (Walldorf, DE); Christoph Weyerhaeuser (Heidelberg, DE)
Assignee: SAP SE
G06F17/30463G06F17/30315G06F17/30433G06F17/30471
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,842,137
App. No.
14/590,769
Granted
Dec 12, 2017
Kind
B2
Abstract

The present invention includes a database with a semantic layer for performing standard SQL and complex operations custom to one or more application. In one embodiment the present invention includes receiving a data request from an application in a database, the data request specifying standard SQL operations and custom application operations to be performed for said application. The data request is processed in a semantic layer of the database. The semantic layer processes the standard SQL operations and the custom application operations and generates a logical execution plan comprising the standard SQL operations and the custom application operations. The logical execution plan is converted into a physical execution plan, which is executed by the database to generate a data result. The data result may be sent back to the application.

Claims (54)

1. A computer-implemented method, comprising:

implementing a database executing on a computer system;

receiving a data request from an application in the database executing on the computer system, the data request specifying standard structured query language (SQL) operations and custom application operations to be performed for said application, wherein the custom application operations include a plurality of functions, and wherein at least two of the plurality of functions are free of side effects;

processing, on the computer system, the data request in a semantic layer of the database, the semantic layer processing the standard SQL operations and the custom application operations, and wherein, in response to receiving the data request, the semantic layer generates a logical execution plan comprising said standard SQL operations and said custom application operations;

converting, on the computer system, the logical execution plan into a physical execution plan using algebraic transformations and cost based optimizations based on database statistics, wherein the physical execution plan comprises native executable database operations for performing the standard SQL operations and the custom application operations, and wherein the physical execution plan indicates that the at least two of the plurality of functions that are free of side effects are executed in parallel;

executing the physical execution plan on the database, and in accordance therewith, generating a data result, wherein the at least two of the plurality of functions that are free of side effects are executed in parallel; and

sending the data result from the database to the application.

2. The method of claim 1 , further comprising:

receiving, in the data request, a script specifying the custom application operations;

parsing the request; and

incorporating the custom application operations from the script into the logical execution plan.

3. The method of claim 2 , wherein the script is incorporated into an acyclic graphical model comprising a plurality of nodes, each node representing an operation, wherein one or more nodes represent said custom application operations.

4. The method of claim 1 , wherein the data request specifies a custom application planning operation.

5. The method of claim 4 , wherein the planning operation is a disaggregation operation.

6. The method of claim 1 , wherein the data request specifies a custom application multi-dimensional expression (MDX) operation.

7. The method of claim 1 , wherein the custom application operations are specified in a procedural programming language.

8. The method of claim 7 , wherein the procedural programming language accesses pre-stored objects in the database to perform one or more data operations.

9. The method of claim 1 , wherein the data request specifies a custom application statistical operation.

10. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:

implementing a database executing on a computer system;

receiving a data request from an application in the database executing on the computer system, the data request specifying standard structured query language (SQL) operations and custom application operations to be performed for said application, wherein the custom application operations include a plurality of functions, and wherein at least two of the plurality of functions are free of side effects;

processing, on the computer system, the data request in a semantic layer of the database, the semantic layer processing the standard SQL operations and the custom application operations, and wherein, in response to receiving the data request, the semantic layer generates a logical execution plan comprising said standard SQL operations and said custom application operations;

converting, on the computer system, the logical execution plan into a physical execution plan using algebraic transformations and cost based optimizations based on database statistics, wherein the physical execution plan comprises native executable database operations for performing the standard SQL operations and the custom application operations, and wherein the physical execution plan indicates that the at least two of the plurality of functions that are free of side effects are executed in parallel;

executing the physical execution plan on the database, and in accordance therewith, generating a data result, wherein the at least two of the plurality of functions that are free of side effects are executed in parallel; and

sending the data result from the database to the application.

11. The non-transitory computer readable storage medium of claim 10 , further comprising:

receiving, in the data request, a script specifying the custom application operations;

parsing the request; and

incorporating the custom application operations from the script into the logical execution plan.

12. The non-transitory computer readable storage medium of claim 11 , wherein the script is incorporated into an acyclic graphical model comprising a plurality of nodes, each node representing an operation, wherein one or more nodes represent said custom application operations.

13. The non-transitory computer readable storage medium of claim 10 , wherein the data request specifies a custom application planning operation.

14. The non-transitory computer readable storage medium of claim 10 , wherein the data request specifies a custom application multi-dimensional expression (MDX) operation.

15. The non-transitory computer readable storage medium of claim 10 , wherein the custom application operations are specified in a procedural programming language.

16. A system comprising:

one or more processors;

memory; and

one or more executable software components, executable by said processors to:

implement a database executing on a computer system;

receive a data request from an application in the database executing on the computer system, the data request specifying standard structured query language (SQL) operations and custom application operations to be performed for said application, wherein the custom application operations include a plurality of functions, and wherein at least two of the plurality of functions are free of side effects;

process the data request in a semantic layer of the database, the semantic layer processing the standard SQL operations and the custom application operations, and wherein, in response to receiving the data request, the semantic layer generates a logical execution plan comprising said standard SQL operations and said custom application operations;

convert the logical execution plan into a physical execution plan using algebraic transformations and cost based optimizations based on database statistics, wherein the physical execution plan comprises native executable database operations for performing the standard SQL operations and the custom application operations, and wherein the physical execution plan indicates that the at least two of the plurality of functions that are free of side effects are executed in parallel;

execute the physical execution plan on the database, and in accordance therewith, generating a data result, wherein the at least two of the plurality of functions that are free of side effects are executed in parallel; and

send the data result from the database to the application.

17. The system of claim 16 , wherein the executable software components are further executable by said processors to:

receive, in the data request, a script specifying the custom application operations;

parse the request;

incorporate the custom application operations from the script into an acyclic graphical model comprising a plurality of nodes, each node representing an operation, wherein one or more nodes represent said custom application operations; and

incorporate the custom application operations from the script into the logical execution plan.

18. The system of claim 16 , wherein the script is incorporated into an acyclic graphical model comprising a plurality of nodes, each node representing an operation, wherein one or more nodes represent said custom application operations.

19. The system of claim 16 , wherein the data request specifies a custom application planning operation.

20. The system of claim 16 , wherein the executable software components are further executable by said processors to:

compile one of the custom application operations into intermediate code;

when the one of the custom application operations is called a first time, compile the intermediate code into a runtime object for execution; and

when the one of the custom application operations is called a subsequent time, reuse the runtime object.

Assignments (2)
CHANGE OF NAME Recorded Aug 2, 2017
From: SAP AG
To: SAP SE
Reel/Frame 043418/0981 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2017
From: FAERBER, FRANZ; BAEUMGES, DANIEL; MINDNICH, TOBIAS; WEYERHAEUSER, CHRISTOPH
To: SAP AG
Reel/Frame 043102/0111 →
Continuity (3)
Continuation 12979236 · Dec 27, 2010
Provisional Application 61334964 · May 14, 2010
Related Publication 20150120699A1 · Apr 30, 2015