# US 2017/0286482 A1 · Deep filter propagation using explicit dependency and equivalency declarations in a data model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286482 A1
- Document ID: US20170286482A1
- Status: Published application
- Kind: A1
- Application number: 15/086,733
- Filed: 2016-03-31
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Edgardo Gildo Koenig; Steffen Siegmund; Arndt Effern; Guenter Briam
- Web page: https://patentgrep.com/patent/US20170286482A1

## CPC

- G06F 16/24534: {Query rewriting; Transformation}
- G06F 16/212: {with details for data modelling support}
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/24542: {Plan optimisation}
- G06F 16/2455: Query execution
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The disclosure generally describes methods, software, and systems, including a method for defining and using dependencies and equivalences for data elements in the data model in order to improve query efficiency. At design time of a data model, dependencies and equivalences for data elements in the data model are received over a computer network. The dependencies and equivalences are stored in persistent storage with the data model. A request is received over the computer network, the request to be executed to obtain results from a database associated with the data model. An optimized query is generated using the received request and the dependencies and equivalences. The optimized query is optimized relative to the received request.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, over a computer network and at design time of a data model, dependencies and equivalences for data elements in the data model;
storing, in persistent storage with the data model, the dependencies and equivalences;
receiving, over the computer network, a request to be executed to obtain results from a database associated with the data model; and
generating, using the received request and using the dependencies and equivalences, an optimized query, wherein the optimized query is optimized relative to the received request.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising executing the optimized query in place of the received request.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the data elements are columns in a database or expressions on columns in the database.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein generating the optimized query includes moving query elements to a new position in the optimized query that makes the optimized query more run-time efficient than the received request.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein moving the query elements to the new position in the optimized query includes pushing the query elements to a lower position in the optimized query relative to a non-optimized position in the query.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the query elements that are moved are normal filters or semantically equivalent filters, including table joins, function parameters, and procedure parameters.

### Claim 7

A system comprising:
memory storing databases and data models associated with the databases; and
one or more processors performing operations, using the memory, the operations including:
receiving, over a computer network and at design time of a data model, dependencies and equivalences for data elements in the data model;
storing, in persistent storage with the data model, the dependencies and equivalences;
receiving, over the computer network, a request to be executed to obtain results from a database associated with the data model; and
generating, using the received request and using the dependencies and equivalences, an optimized query, wherein the optimized query is optimized relative to the received request.

### Claim 8 (depends on 7)

The system of claim 7, the operations further comprising executing the optimized query in place of the received request.

### Claim 9 (depends on 7)

The system of claim 7, wherein the data elements are columns in a database or expressions on columns in the database.

### Claim 10 (depends on 7)

The system of claim 7, wherein generating the optimized query includes moving query elements to a new position in the optimized query that makes the optimized query more run-time efficient than the received request.

### Claim 11 (depends on 10)

The system of claim 10, wherein moving the query elements to the new position in the optimized query includes pushing the query elements to a lower position in the optimized query relative to a non-optimized position in the query.

### Claim 12 (depends on 11)

The system of claim 11, wherein the query elements that are moved are normal filters or semantically equivalent filters, including table joins, function parameters, and procedure parameters.

### Claim 13

A non-transitory computer-readable media encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
receiving, over a computer network and at design time of a data model, dependencies and equivalences for data elements in the data model;
storing, in persistent storage with the data model, the dependencies and equivalences;
receiving, over the computer network, a request to be executed to obtain results from a database associated with the data model; and
generating, using the received request and using the dependencies and equivalences, an optimized query, wherein the optimized query is optimized relative to the received request.

### Claim 14 (depends on 13)

The non-transitory computer-readable media of claim 13, the operations further comprising executing the optimized query in place of the received request.

### Claim 15 (depends on 13)

The non-transitory computer-readable media of claim 13, wherein the data elements are columns in a database or expressions on columns in the database.

### Claim 16 (depends on 13)

The non-transitory computer-readable media of claim 13, wherein generating the optimized query includes moving query elements to a new position in the optimized query that makes the optimized query more run-time efficient than the received request.

### Claim 17 (depends on 16)

The non-transitory computer-readable media of claim 16, wherein moving the query elements to the new position in the optimized query includes pushing the query elements to a lower position in the optimized query relative to a non-optimized position in the query.

### Claim 18 (depends on 17)

The non-transitory computer-readable media of claim 17, wherein the query elements that are moved are normal filters or semantically equivalent filters, including table joins, function parameters, and procedure parameters.
