IP Library Granted Patent US 11,042,516
Granted Patent B2
US 11,042,516 · App. 15/033,512 · Granted Jun 22, 2021

Flexible schema table

Inventors: Benjamin M Vandiver (Cambridge, MA); Lyric Pankaj Doshi (Cambridge, MA); James George Fraumeni (Cambridge, MA)
Assignee: MICRO FOCUS LLC
G06F16/213G06F16/2282G06F16/2454G06F16/2455H04L63/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,042,516
App. No.
15/033,512
Filed
Apr 29, 2016
Granted
Jun 22, 2021
Kind
B2
Art Unit
2166
USPC
707/803
Abstract

In an example, a flexible schema table may be schematized. Records from the flexible schema table may be queried and, for keys in the records, a data type is estimated for each key. View columns may then be selected from the keys based on a predetermined condition. A view of the flexible schema table may be created from the selected view columns, wherein the view includes the view columns and the data types for the view columns.

Claims (26)

1. A method for schematization of flexible schema tables, comprising: querying, by a processor, records in a flexible schema table to identify keys of a same name in the flexible schema table, wherein the records in the flexible schema table have a key-value format; determining, by the processor, a frequency of occurrence for each of the keys in the flexible schema table; placing, by the processor, the keys identified in the flexible schema table in a first column of a keys table and the frequency of occurrence for each of the keys in a second column of the keys table; estimating, by the processor, data types for the keys in the keys table, including retrieving values associated with each of the keys from the flexible schema table, and executing an aggregate function on the values associated with each of the keys to determine a data type that represents all of the values associated with each of the keys; placing, by the processor, the data types for the keys in a third column of the keys table; selecting view columns of the keys based on a predetermined condition related to the frequency of occurrence for each of the keys; and creating a view of the flexible schema table from the selected view columns, wherein the created view includes the selected view columns of the keys and the data types for the keys in the selected view columns.

2. The method of claim 1 , comprising: inserting annotations for the keys in the keys table.

3. The method of claim 1 , wherein selecting the view columns of the keys based on the predetermined condition comprises: defining the predetermined condition based on the frequency of occurrence for each of the keys in the flexible schema table and at least one of a usage of the keys in previous queries, a database schema constraint, and an annotation for one of the keys.

4. The method of claim 1 , wherein selecting the view columns of the keys based on the predetermined condition comprises: defining the predetermined condition as a security policy, wherein, in the security policy, the keys that match a specific pattern are included or excluded from the view of the flexible schema table.

5. The method of claim 1 , wherein the creating of the view of the flexible schema table comprises: defining the selected view columns as virtual columns.

6. The method of claim 5 , further comprising: converting the virtual columns into explicit columns of the flexible schema table.

7. The method of claim 1 , wherein the creating of the view of the flexible schema table from the selected view columns comprises creating multiple views of the flexible schema table based on different predetermined conditions.

8. A system for schematization of flexible schema tables, comprising: a processor; and a memory storing instructions that are executable to cause the processor to: query records in a flexible schema table to identify keys of a same name in the flexible schema table; determine a frequency of occurrence for each of the keys in the flexible schema table; place the keys identified in the flexible schema table in a first column of a keys table and the frequency of occurrence for each of the keys in a second column of the keys table; estimate data types for the keys in the keys table, including instructions to cause the processor to retrieve values associated with each of the keys, and execute an aggregate function on the values associated with each of the keys to determine a data type that represents all of the values associated with each of the keys; place the data types for the keys in a third column of the keys table; select view columns of the keys based on a predetermined condition related to the frequency of occurrence for each of the keys; and create a view of the flexible schema table from the selected view columns, wherein the created view includes the selected view columns of the keys and the data types for the keys in the selected view columns.

9. The system of claim 8 , wherein the instructions are executable to cause the processor to define the predetermined condition based on the frequency of occurrence for each of the keys in the flexible schema table and at least one of a usage of the keys in previous queries, a database schema constraint, a security policy, and an annotation for one of the keys.

10. The system of claim 8 , wherein the instructions are executable to cause the processor to define the selected view columns as virtual columns of the flexible schema table and to convert the virtual columns into explicit columns of the flexible schema table.

11. A non-transitory computer readable medium including machine readable instructions executable by a processor to:

query records in a flexible schema table to identify keys of a same name in the flexible schema table, wherein the records in the flexible schema table have a key-value format;

determine a frequency of occurrence for each of the keys in the flexible schema table;

place the keys identified in the flexible schema table in a first column of a keys table and the frequency of occurrence for each of the keys in a second column of the keys table;

estimate data types for the keys in the keys table, including causing the processor to retrieve values associated with each of the keys from the flexible schema table and execute an aggregate function on the values associated with each of the keys to identify a data type for each of the keys that represents all of the values associated with each of the keys;

place the data types for the keys in a third column of the keys table;

select view columns of the keys based on a predetermined condition related to the frequency of occurrence for each of the keys; and

create a view of the flexible schema table from the selected view columns, wherein the created view includes the selected view columns of the keys and the data types for the keys in the selected view columns.

12. The non-transitory computer readable medium of claim 11 , wherein, to select the view columns of the keys based on the predetermined condition, the machine readable instructions are executable by the processor to:

define the predetermined condition based on the frequency of occurrence for each of the keys in the keys table and at least one of a usage of the keys in previous queries, a database schema constraint, and an annotation for one of the keys.

13. The non-transitory computer readable medium of claim 11 , wherein, to select the view columns of the keys based on the predetermined condition, the machine readable instructions are executable by the processor to:

define the predetermined condition as a security policy, wherein, in the security policy, the keys that match a specific pattern are included or excluded from the view of the flexible schema table.

14. The non-transitory computer readable medium of claim 11 , wherein, to select the view columns of the keys based on the predetermined condition, the machine readable instructions are executable by the processor to:

select view columns of a subset of the keys in the keys table based on the frequency of occurrence of the subset of the keys being above a predetermined threshold.

15. The system of claim 8 , wherein, to select the view columns of the keys based on the predetermined condition, the instructions are executable to cause the processor to: select view columns of a subset of the keys in the keys table based on the frequency of occurrence of the subset of the keys being above a predetermined threshold.

16. The method of claim 1 , wherein selecting the view columns of the keys based on the predetermined condition comprises: selecting view columns of a subset of the keys in the keys table based on the frequency of occurrence of the subset of the keys being above a predetermined threshold.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2016
From: VANDIVER, BENJAMIN M.; DOSHI, LYRIC PANKAJ; FRAUMENI, JAMES GEORGE
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 038982/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2016
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 039114/0001 →
Continuity (1)
Related Publication 20160283527A1 · Sep 29, 2016
Cited By (2)
US 12,333,035 US 12,360,978