Query generation based on a logical data model with one-to-one joins

US12259889B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12259889-B2
Application numberUS-202418599389-A
CountryUS
Kind codeB2
Filing dateMar 8, 2024
Priority dateApr 23, 2019
Publication dateMar 25, 2025
Grant dateMar 25, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods for query generation based on a logical data model with one-to-one joins are described. For example, methods may include accessing a join graph representing tables in a database; receiving a first query; selecting a connected subgraph of the join graph that includes the two or more tables referenced in the first query; accessing an indication that a directed edge of the connected subgraph corresponds to a one-to-one join; modifying the connected subgraph based on the indication to obtain a modified subgraph; generating one or more leaf queries based on the modified subgraph; generating a query graph that specifies joining of results from queries based on the one or more leaf queries; invoking a transformed query on the database that is based on the query graph and the queries based on the one or more leaf queries.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: obtaining, by a data analysis system, a database query for obtaining results data, wherein the database query is expressed in accordance with a defined structured data access language implemented by a database, wherein obtaining the database query includes: automatically generating, by the data analysis system, the database query in accordance with a transformed database agnostic representation of the database query; and prior to automatically generating the database query, automatically generating, by the data analysis system, the transformed database agnostic representation of the database query by: obtaining, by the data analysis system, user input data, wherein the results data is responsive to the user input data; prior to obtaining the user input data, obtaining, by the data analysis system, a join graph, wherein the join graph indicates a first join between a first table stored in the database and a second table stored in the database, wherein relationship data indicating that the first join is a one-to-one join is unavailable from the join graph; automatically generating, by the data analysis system, in response to the user input data, a database agnostic representation of the database query; and transforming, by the data analysis system, the database agnostic representation to obtain the transformed database agnostic representation, wherein transforming the database agnostic representation includes: obtaining, by the data analysis system, from the join graph, a connected subgraph, wherein the connected subgraph includes a first vertex representing the first table, a second vertex representing the second table, and a first unidirectional edge extending from the first vertex to the second vertex representing the first join; accessing, by the data analysis system, the relationship data; in response to the relationship data, obtaining, by the data analysis system, a modified subgraph by modifying the connected subgraph, wherein the modified subgraph includes the first vertex representing the first table, the second vertex representing the second table, and a second unidirectional edge extending from the second vertex to the first vertex, and wherein the modified subgraph omits the first unidirectional edge; and automatically generating, by the data analysis system, in response to the modified subgraph, a query graph including a root vertex corresponding to the database query; obtaining, by the data analysis system, from the database, the results data, responsive to execution of the database query by the database; and outputting, by the data analysis system, at least a portion of the results data for presentation to a user. 2. The method of claim 1 , wherein: the connected subgraph includes a first cardinality of root vertices; and the modified subgraph includes a second cardinality of root vertices that is less than the first cardinality. 3. The method of claim 1 , wherein: obtaining the modified subgraph includes determining, by the data analysis system, that the connected subgraph omits an edge representing a many-to-one join between the first table and a fourth table. 4. The method of claim 1 , wherein obtaining the query graph includes including, in the query graph, a non-root vertex representing a database agnostic representation of a second database query that references the second table, wherein the second vertex is a root vertex of the modified subgraph. 5. The method of claim 4 , wherein obtaining the query graph includes automatically generating the database agnostic representation of the second database query. 6. The method of claim 1 , wherein obtaining the query graph includes including, in the query graph, a non-root vertex representing a database agnostic representation of a second database query that references the first table, wherein the first table includes a measure column referenced in the user input data. 7. The method of claim 6 , wherein obtaining the query graph includes automatically generating the database agnostic representation of the second database query. 8. A data analysis system, comprising: a memory; and a processor that executes instructions stored in the memory to: obtain a database query for obtaining results data, wherein the database query is expressed in accordance with a defined structured data access language implemented by a database, wherein to obtain the database query the processor executes the instructions to: automatically generate the database query in accordance with a transformed database agnostic representation of the database query; and prior to the generation of the database query, automatically generate the transformed database agnostic representation of the database query, wherein to automatically generate the transformed database agnostic representation of the database query the processor executes the instructions to: obtain user input data, wherein the results data is responsive to the user input data; prior to obtaining the user input data, obtain a join graph, wherein the join graph indicates a first join between a first table stored in the database and a second table stored in the database, wherein relationship data that indicates that the first join is a one-to-one join is unavailable from the join graph; automatically generate, in response to the user input data, a database agnostic representation of the database query; and transform the database agnostic representation to obtain the transformed database agnostic representation, wherein to transform the database agnostic representation the processor executes the instructions to:  obtain, from the join graph, a connected subgraph, wherein the connected subgraph includes a first vertex representing the first table, a second vertex representing the second table, and a first unidirectional edge extending from the first vertex to the second vertex representing the first join;  access the relationship data;  in response to the relationship data, obtain a modified subgraph by modification of the connected subgraph, wherein the modified subgraph includes the first vertex representing the first table, the second vertex representing the second table, and a second unidirectional edge extending from the second vertex to the first vertex, and wherein the modified subgraph omits the first unidirectional edge; and  automatically generate, in response to the modified subgraph, a query graph including a root vertex corresponding to the database query; obtain, from the database, the results data, responsive to execution of the database query by the database; and output at least a portion of the results data for presentation to a user. 9. The data analysis system of claim 8 , wherein: the connected subgraph includes a first cardinality of root vertices; and the modified subgraph includes a second cardinality of root vertices that is less than the first cardinality. 10. The data analysis system of claim 8 , wherein: to obtain the modified subgraph the processor executes the instructions to determine that the connected subgraph omits an edge representing a many-to-one join between the first table and a fourth table. 11. The data analysis system of claim 8 , wherein to obtain the query graph the processor executes the instructions to include, in the query graph, a non-root vertex representing a database agnostic representation of a second database query that references the second table, wherein the second vertex is a root vertex of the modified subgraph. 12. The data analysis system of claim 11 , wherein to obtain the query graph the processor executes the instructions to automatically genera

Assignees

Inventors

Classifications

  • Trees, e.g. B+trees · CPC title

  • Tablespace storage structures; Management thereof · CPC title

  • Schema design and management · CPC title

  • Query rewriting; Transformation · CPC title

  • Join operations · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12259889B2 cover?
Systems and methods for query generation based on a logical data model with one-to-one joins are described. For example, methods may include accessing a join graph representing tables in a database; receiving a first query; selecting a connected subgraph of the join graph that includes the two or more tables referenced in the first query; accessing an indication that a directed edge of the conn…
Who is the assignee on this patent?
Thoughtspot Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/24534. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 25 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).