Schema tool for non-relational databases
First Claim
Patent Images
1. A computer-implemented method comprising:
- identifying, using one or more processors, a non-relational database including a nested object;
obtaining, using the one or more processors, a data structure of the non-relational database, wherein the non-relation database is semi-structured in that it lacks consistency ensured by a logical schema;
obtaining, using the one or more processors, a selection of the nested object by a user;
generating, using the one or more processors, a virtual, relational schema that includes a first virtual, relational table and a second virtual, relational table and, at least partially, normalizes the nested object to the second virtual, relational table, andwherein generating the virtual, relational schema includes;
generating a mapping of the data structure of the non-relational database to the first virtual, relational table and the second virtual, relational table, anddefining a relation between the first virtual, relational table and the second virtual, relational table so that the virtual, relational schema is usable to obtain data, stored in the non-relational database, from the non-relational database responsive to a relational query;
receiving the relational query, the relational query using a relational language;
translating, using the virtual, relational schema, the relational query into a non-relational query for the non-relational database;
receiving a first result from the non-relational database responsive to the non-relational query;
translating, using the virtual, relational schema, the first result from the non-relational database into a second result, the second result using the relational language; and
transmitting the second result in response to the relational query.
6 Assignments
0 Petitions
Accused Products
Abstract
A system and method for defining a relational schema for a non-relational database are disclosed. In one embodiment, the system identifies a non-relational database; obtains a data structure of the non-relational database; determines a relational schema type; generates a relational schema based on the determined schema type; determines whether the relational schema includes a plurality of relational tables; and responsive to determining that the relational schema includes a plurality of relational tables, defines a relation between at least two of the relational tables in the relational schema.
32 Citations
19 Claims
-
1. A computer-implemented method comprising:
-
identifying, using one or more processors, a non-relational database including a nested object; obtaining, using the one or more processors, a data structure of the non-relational database, wherein the non-relation database is semi-structured in that it lacks consistency ensured by a logical schema; obtaining, using the one or more processors, a selection of the nested object by a user; generating, using the one or more processors, a virtual, relational schema that includes a first virtual, relational table and a second virtual, relational table and, at least partially, normalizes the nested object to the second virtual, relational table, and wherein generating the virtual, relational schema includes; generating a mapping of the data structure of the non-relational database to the first virtual, relational table and the second virtual, relational table, and defining a relation between the first virtual, relational table and the second virtual, relational table so that the virtual, relational schema is usable to obtain data, stored in the non-relational database, from the non-relational database responsive to a relational query; receiving the relational query, the relational query using a relational language; translating, using the virtual, relational schema, the relational query into a non-relational query for the non-relational database; receiving a first result from the non-relational database responsive to the non-relational query; translating, using the virtual, relational schema, the first result from the non-relational database into a second result, the second result using the relational language; and transmitting the second result in response to the relational query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 16, 18, 19)
-
-
8. A computer program product comprising a non-transitory computer usable medium including a computer readable program, wherein the computer readable program when executed on a computing device causes the computing device to:
-
identify a non-relational database including a nested object; obtain a data structure of the non-relational database, wherein the non-relation database is semi-structured in that it lacks consistency ensured by a logical schema; obtain a selection of the nested object by a user; and generate a virtual, relational schema that includes a first virtual, relational table and a second virtual, relational table, and at least partially, normalizes the nested object to the second virtual, relational table, wherein generating the virtual, relational schema includes generating a mapping of the data structure of the non-relational database to the first virtual, relational table and the second virtual, relational table and defining a relation between the first virtual, relational table and the second virtual, relational table so that the virtual, relational schema is usable to obtain data, stored in the non-relational database, from the non-relational database responsive to a relational query; receive the relational query, the relational query using a relational language; translate, using the virtual, relational schema, the relational query into a non-relational query for the non-relational database; receive a first result from the non-relational database responsive to the non-relational query; translate, using the virtual, relational schema, the first result from the non-relational database into a second result, the second result using the relational language; and transmit the second result in response to the relational query.
-
-
9. A system comprising:
-
a processor; a memory storing instructions that, when executed, cause the system to; identify a non-relational database including a nested object; obtain a data structure of the non-relational database, wherein the non-relation database is semi-structured in that it lacks consistency ensured by a logical schema; obtain a selection of the nested object by a user; generate a virtual, relational schema that includes a first virtual, relational table and a second virtual, relational table, and at least partially, normalizes the nested object to the second virtual, relational table, wherein generating the virtual, relational schema includes generating a mapping of the data structure of the non-relational database to the first virtual, relational table and the second virtual, relational table and defining a relation between the first virtual, relational table and the second virtual, relational table so that the virtual, relational schema is usable to obtain data, stored in the non-relational database, from the non-relational database responsive to a relational query; receive the relational query, the relational query using a relational language; translate, using the virtual, relational schema, the relational query into a non-relational query for the non-relational database; receive a first result from the non-relational database responsive to the non-relational query; translate, using the virtual, relational schema, the first result from the non-relational database into a second result, the second result using the relational language; and transmit the second result in response to the relational query. - View Dependent Claims (10, 11, 12, 13, 14, 15, 17)
-
Specification