# US 12,001,433 B2 · ETL-less zero-redundancy system and method for reporting OLTP data

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

- Number: US 12,001,433 B2
- Document ID: US12001433B2
- Status: Granted
- Kind: B2
- Application number: 17/893,916
- Filed: 2022-08-23
- Published: 2022-12-22
- Granted: 2024-06-04
- Earliest claimed: 2007-09-21
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Hasso Plattner; Anja Bog; Jan Schaffner; Jens Krueger; Alexander Zeier
- Web page: https://patentgrep.com/patent/US12001433B2

## CPC

- G06F 16/2455: Query execution
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F 16/284: {Relational databases}
- G06F 16/278: {Data partitioning, e.g. horizontal or vertical partitioning}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system includes a relational database management system component and a column-oriented data processing component. The relational database system component stores database information in a row format. The column-oriented data processing component stores the database information in a column format. In response to a database update request, the relational database management system component updates the database information stored in the row format; the relational database management system component notifies the column-oriented data processing component of the database update request; and the column-oriented data processing component updates the database information stored in said column format. In response to a query request, the column-oriented data processing component generates a query response based on the database information stored in said column format. In this manner, the system is able to generate up-to-date reports without the need for extraction, translation and loading procedures.

## Claims

### Claim 1

A computer-implemented method of processing database information for both transacting and reporting, comprising the steps of:
storing, by a computer system that includes a processor and a memory, said database information in a row format;
storing, by said computer system, said database information in a column format using vertical fragmentation;
in response to a database update request, updating said database information stored in said row format;
in response to said database update request, updating said database information stored in said column format, wherein said database information stored in said row format and said database information stored in said column format are updated concurrently and share a consistent view of said database information; and
in response to a query request to retrieve data, generating a query response based on said database information stored in said column format, wherein generating said query response accesses only one or more columns needed directly for generating said query response.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein storing said database information in said row format comprises storing said database information in said row format using a relational database management system; and
wherein storing said database information in said column format comprises storing said database information in said column format using a column-oriented data processing system.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein said column-oriented data processing system comprises a main index and a delta index, wherein said main index is configured to store main data corresponding to said database information, said method further comprising:
receiving said database update request;
updating, by said relational database management system in response to said database update request, said database information stored in said row format;
notifying, by said relational database management system, said column-oriented data processing system of said database update request using a delta updates access; and
controlling, by said column-oriented data processing system, said delta index to store delta data according to said delta updates access, wherein said delta data corresponds to a plurality of updated database information.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2, said method further comprising:
receiving said database update request;
updating, by said relational database management system in response to said database update request, said database information stored in said row format;
notifying, by said relational database management system, said column-oriented data processing system of said database update request; and
updating, by said column-oriented data processing system, said database information stored in said column format.

### Claim 5 (depends on 2)

The computer-implemented method of claim 2, said method further comprising:
receiving said query request; and
generating, by said column-oriented data processing system in response to said query request, said query response based on said database information stored in said column format.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein said computer system stores said database information in said column format using vertical fragmentation across a plurality of networked computers.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein said database update request implements an insert-only data model for said database information in said row format.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein said query request is an on-line analytical processing query, wherein generating said query response includes mapping said on-line analytical processing query into an aggregation call.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein said aggregation call includes an aggregation function, wherein said aggregation function includes at least one of a SUM function, a MIN function, a MAX function, an AVG function, and a COUNT function.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein said database update request operates on said database information stored in said column format and on said database information stored in said row format, and
wherein said query request operates on said database information stored in said column format and does not operate on said database information stored in said row format.

### Claim 11

A computer system storing a computer program for processing database information for both transacting and reporting, said computer program being executed by said computer system, said computer system comprising:
a processor; and
a memory storing said computer program, wherein said computer program, when executed by said processor, controls said computer system to perform a method including:
storing said database information in a row format,
storing said database information in a column format using vertical fragmentation,
in response to a database update request, updating said database information stored in said row format,
in response to said database update request, updating said database information stored in said column format, wherein said database information stored in said row format and said database information stored in said column format are updated concurrently and share a consistent view of said database information, and
in response to a query request to retrieve data, generating a query response based on said database information stored in said column format, wherein generating said query response accesses only one or more columns needed directly for generating said query response.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein said computer program, when executed by said processor, controls said computer system to perform the method further comprising:
mapping an on-line analytical processing query into an aggregation call; and
sending said aggregation call as said query request.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein said database information stored in said row format and said database information stored in said column format are stored in a main memory of said computer system.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein a column-oriented data processing component is configured to store said database information in said column format, wherein said column-oriented data processing component comprises:
a monitoring component, wherein said monitoring component is configured to merge delta data into main data according to a criterion.

### Claim 15 (depends on 11)

The computer system of claim 11, wherein a relational database management system component is configured to store said database information in said row format, wherein said relational database management system component comprises:
a plurality of database tables;
a queue of index objects; and
a kernel, wherein said kernel is configured to manage the plurality of database tables, wherein said kernel is configured to manage the queue of index objects, and wherein said kernel is configured to interact with a file system.

### Claim 16 (depends on 11)

The computer system of claim 11, wherein a relational database management system component is configured to store said database information in said row format, wherein a column-oriented data processing component is configured to store said database information in said column format, and wherein said relational database management system component is configured to communicate with said column-oriented data processing component via a delta updates access.

### Claim 17 (depends on 11)

The computer system of claim 11, wherein a relational database management system component is configured to store said database information in said row format, wherein a column-oriented data processing component is configured to store said database information in said column format, and wherein said column-oriented data processing component is configured to communicate with said relational database management system component via a persist data access.

### Claim 18 (depends on 11)

The computer system of claim 11, wherein said database information stored in said row format and said database information stored in said column format are a same data.

### Claim 19 (depends on 11)

The computer system of claim 11, wherein said database information includes a plurality of columns, wherein a column-oriented data processing component is configured to store said database information in said column format, and wherein said column-oriented data processing component is configured to store each of said plurality of columns as a plurality of tables, respectively, with a plurality of surrogate identifiers duplicated in each of said plurality of tables.

### Claim 20

A computer program embodied on a non-transitory computer-readable medium and implemented by a computer system for processing database information for both transacting and reporting, wherein said computer system includes a processor and a memory, said computer program being executed by said processor and controlling said computer system to perform a method comprising:
storing, by said computer system, said database information in a row format;
storing, by said computer system, said database information in a column format using vertical fragmentation;
in response to a database update request, updating said database information stored in said row format;
in response to said database update request, updating said database information stored in said column format, wherein said database information stored in said row format and said database information stored in said column format are updated concurrently and share a consistent view of said database information; and
in response to a query request to retrieve data, generating a query response based on said database information stored in said column format, wherein generating said query response accesses only one or more columns needed directly for generating said query response.
