# US 11,907,195 B2 · Relationship analysis using vector representations of database tables

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

- Number: US 11,907,195 B2
- Document ID: US11907195B2
- Status: Granted
- Kind: B2
- Application number: 18/113,864
- Filed: 2023-02-24
- Published: 2023-07-06
- Granted: 2024-02-20
- Earliest claimed: 2021-08-11
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Jan Portisch; Sandra Bracholdt
- Web page: https://patentgrep.com/patent/US11907195B2

## CPC

- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 16/211: {Schema design and management}
- G06F 16/2456: {Join operations}
- G06F 16/248: Presentation of query results
- G06F 16/285: {Clustering or classification}
- G06F 16/3347: {using vector based model}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented method includes representing a plurality of database tables as respective vectors in a multi-dimensional vector space, receiving an indication that a first database table represented by a first vector and a second database table represented by a second vector are related to each other, moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space in response to the indication, and grouping the plurality of database tables into one or more table clusters based on positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space.

## Claims

### Claim 1

A computer-implemented method comprising:
representing a plurality of database tables as respective vectors in a multi-dimensional vector space;
receiving an indication that a first database table represented by a first vector and a second database table represented by a second vector are related to each other;
responsive to the indication, moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space; and
grouping the plurality of database tables into one or more table clusters based on the positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space,
wherein the indication comprises a foreign key relationship between the first database table and the second database table or a view statement involving the first database table and the second database table.

### Claim 2 (depends on 1)

The method of claim 1, further comprising placing database tables contained in a table cluster in a common host machine.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
responsive to a query command involving a database table contained in a table cluster, recommending a different database table from the table cluster.

### Claim 4 (depends on 1)

The method of claim 1, wherein moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space comprises moving the second vector closer to the first vector.

### Claim 5 (depends on 4)

The method of claim 4, wherein moving the second vector closer to the first vector comprises reducing a distance between the first vector and the second vector by a decrement size, wherein the decrement size progressively decreases when the distance between the first vector and the second vector decreases.

### Claim 6 (depends on 1)

The method of claim 1, wherein moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space comprises moving a third vector representing a third database table other than the first and second database tables away from the first vector.

### Claim 7 (depends on 6)

The method of claim 6, wherein moving the third vector away from the first vector comprises increasing a distance between the first vector and the third vector by an increment size, wherein the increment size progressively decreases when the distance between the first vector and the third vector increases.

### Claim 8 (depends on 1)

The method of claim 1, wherein the indication comprises a join operation between the first database table and the second database table.

### Claim 9 (depends on 1)

The method of claim 1, wherein grouping the plurality of database tables comprises measuring distances or angles between respective vectors representing the plurality of database tables in the multi-dimensional vector space.

### Claim 10

A computing system comprising:
memory;
one or more hardware processors coupled to the memory; and
one or more computer readable storage media storing instructions that, when loaded into the memory, cause the one or more hardware processors to perform operations comprising:
representing a plurality of database tables as respective vectors in a multi-dimensional vector space;
receiving an indication that a first database table represented by a first vector and a second database table represented by a second vector are related to each other;
responsive to the indication, moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space; and
grouping the plurality of database tables into one or more table clusters based on the positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space,
wherein the indication comprises a foreign key relationship between the first database table and the second database table or a view statement involving the first database table and the second database table.

### Claim 11 (depends on 10)

The system of claim 10, wherein the operations further comprise placing database tables contained in a table cluster in a common host machine.

### Claim 12 (depends on 10)

The system of claim 10, wherein the operations further comprise:
responsive to a query command involving a database table contained in a table cluster, recommending a different database table from the table cluster.

### Claim 13 (depends on 10)

The system of claim 10, wherein moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space comprises moving the second vector closer to the first vector.

### Claim 14 (depends on 10)

The system of claim 10, wherein moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space comprises moving vectors representing database tables other than the first and second database tables away from the first vector.

### Claim 15 (depends on 10)

The system of claim 10, wherein the indication comprises a join operation between the first database table and the second database table.

### Claim 16 (depends on 10)

The system of claim 10, wherein the act of moving the respective vectors representing the plurality of database tables in the multi-dimensional vector space is repeated a predefined number of times responsive to the indication.

### Claim 17 (depends on 10)

The system of claim 10, wherein grouping the plurality of database tables comprises:
measuring distances or angles between respective vectors representing the plurality of database tables in the multi-dimensional vector space; and
assigning two or more database tables in a table cluster responsive to determining that the distances or angles between respective vectors representing the two or more database tables are below a predefined threshold value.

### Claim 18

One or more non-transitory computer-readable media having encoded thereon computer-executable instructions causing one or more processors to perform a method comprising:
representing a plurality of database tables as respective vectors in a multi-dimensional vector space;
receiving an indication that a first database table represented by a first vector and a second database table represented by a second vector are related to each other, wherein the indication comprises a join operation between the first database table and the second database table, a foreign key relationship between the first database table and the second database table, or a view statement involving the first database table and the second database table;
responsive to the indication, moving positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space; and
grouping the plurality of database tables into one or more table clusters based on the positions of the respective vectors representing the plurality of database tables in the multi-dimensional vector space.
