← Back to Patent Explorer
US6016497A Expired / Lapsed US ⏱️ 0.0 years remaining

Methods and system for storing and accessing embedded information in object-relational databases

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-12-24
•
Granted: 2000-01-18
•
Expires: 2017-12-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and computer-implemented methods for accessing and storing information embedded in a column of a database row, especially useful for complex data, that is, data which is logically multi-valued or hierarchical. Embedded data is not stored in a separate table but is stored directly in a complex column comprising embedded data a subtables. A row of data is physically stored in a tagged, variable-length object-relational format, which allows the data to be stored as atomic data values or embedded as collections of data values, data structures, or collections of data structures. The structures can have further levels of embedding, i.e. more collections and/or structures. Embedded data may further include typed data embedded in multiple tables and columns. The query language for accessing the data includes a series of extensions that provide additional access paths to the data. Searches can access data within tables and sub-tables, and can access data by user defined type (UDT) in a single table or across multiple tables.

Inventors

  • 👤 Christopher Allen Suver

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 06:12
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/284; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99934; Y10S707/99941; Y10S707/99942; Y10S707/99943; Y10S707/99944

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 206 words
A method for storing and accessing information in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each having a table name and comprising one or more rows of information, the method comprising the computer-implemented steps of: storing a plurality of data elements in a row of information, the row comprising one or more columns, the columns each having a column name, at least one of the columns being an embedded-data column for storing a plurality of the data elements; receiving a database command for accessing a selected data element, the database command comprising a selected table name and an extension corresponding to a selected column name representing the embedded-data column; and in response to receiving the database command, accessing a table represented by the selected table name; in response to accessing the table, accessing the embedded-data column represented by the selected column name; and in response to accessing the embedded-data column, accessing the selected data element, whereby a plurality of data elements may be stored in the embedded-data column and, by way of the extension to the database command, may subsequently be accessed from the embedded-data column as if the embedded-data column were a separate table.
Claim 2
Independent Claim 206 words
A method for storing and accessing information in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each having a table name and comprising one or more rows of information, the method comprising the computer-implemented steps of: storing a plurality of data elements in a row of information, the row comprising one or more columns, the columns each having a column name, at least one of the columns being an embedded-data column for storing a plurality of the data elements; receiving a database command for accessing a selected data element, the database command comprising a selected table name and an extension corresponding to a selected column name representing the embedded-data column; and in response to receiving the database command, accessing a table represented by the selected table name; in response to accessing the table, accessing the embedded-data column represented by the selected column name; and in response to accessing the embedded-data column, accessing the selected data element, whereby a plurality of data elements may be stored in the embedded-data column and, by way of the extension to the database command, may subsequently be accessed from the embedded-data column as if the embedded-data column were a separate table.
Claim 3
Dependent Claim 18 words
The method of claim 1, wherein the database command is received in a format generally defined as "TableName.ColumnName".
Claim 4
Dependent Claim 19 words
The method of claim 1, wherein the database command may be in any clause of a standard SQL statement.
Claim 5
Dependent Claim 51 words
The method of claim 1, wherein the object-relational database further comprises a dictionary; wherein the dictionary comprises table names and column names; and wherein the method further comprises the step of, in response to receiving the database command, accessing the dictionary to associate the selected column name with selected table name.
Claim 6
Dependent Claim 83 words
The method of claim 1, wherein accessing the embedded-data column represented by the selected column name comprises the steps of: retrieving a row of information from a physical memory storage device in the computer system; storing the retrieved row of information in a memory device in the computer system; parsing the retrieved row of information stored in the memory device to determine which columns have data elements; and creating an in-memory data structure that represents the contents of the retrieved row of information.
Claim 7
Dependent Claim 27 words
The method of claim 5 wherein accessing the selected data element comprises traversing the in-memory data structure to access the selected data element in the embedded-data column.
Claim 8
Dependent Claim 80 words
The method of claim 1, wherein each of the columns further comprise a column data type identifier being selected from the group consisting of an atomic value column data type identifier and an embedded-data column data type identifier, the atomic value column data type identifier identifying an atomic value column for storing one of the data elements, and the embedded-data column data type identifier identifying an embedded-data column for storing a further embedded-data column or an additional atomic value column.
Claim 9
Dependent Claim 25 words
The method of claim 7, wherein the atomic value column data type identifier indicates that the identified atomic value column stores a single data element.
Claim 10
Dependent Claim 20 words
The method of claim 8, wherein the single data element is delimited by at least one atomic value delimiter character.
Claim 11
Dependent Claim 24 words
The method of claim 7, wherein an embedded-data column data type identifier indicates that the identified embedded-data column stores a collection of data elements.
Claim 12
Dependent Claim 21 words
The method of claim 10, wherein the collection of data elements is delimited by at least one atomic value delimiter character.
Claim 13
Dependent Claim 67 words
The method of claim 7, wherein an embedded-data column data type identifier indicates that the identified embedded-data column stores a structure of data elements, the structure of data elements having a corresponding column name and comprising one or more subrows of information, the subrows of information each comprising one or more subcolumns, the subcolumns each having an associated subcolumn name and comprising one or more data elements.
Claim 14
Dependent Claim 21 words
The method of claim 12, wherein the structure of data elements is delimited by at least one predetermined structure delimiter character.
Claim 15
Dependent Claim 24 words
The method of claim 12, further comprising the step of automatically assigning a unique row identifier to each row in any table or structure.
Claim 16
Dependent Claim 40 words
The method of claim 14, further comprising the step of relating a first table to a second table by storing as a data element in the second table the row identifier associated with a selected row in the first table.
Claim 17
Dependent Claim 45 words
The method of claim 15, wherein a reference in the first table to data elements in the second table is made by storing the row identifier of a data element from the second table as a data element in a column in the first table.
Claim 18
Dependent Claim 32 words
The method of claim 16, wherein an embedded-data column in the first table stores a collection of data elements comprising a plurality of object identifiers of data elements from the second table.
Claim 19
Dependent Claim 29 words
The method of claim 1, wherein each row of information in the table is identified by a row identifier and delimited by at least one predetermined row delimiter character.
Claim 20
Dependent Claim 18 words
The method of claim 1, wherein each column is delimited by at least one predetermined column delimiter character.
Claim 21
Dependent Claim 16 words
A computer-readable medium having stored thereon computer-executable instructions for performing the method steps of claim 1.
Claim 22
Independent Claim 163 words
A method for accessing a selected data element stored in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each having a table name and comprising one or more rows of information, the rows of information each having a row identifier and comprising one or more columns, the columns each having a column name and comprising embedded-data elements or atomic data elements, the method comprising the computer-implemented steps of: receiving a database command for accessing a selected data element, the command comprising at least a table name and an extension corresponding to a column name, the column name representing an embedded-data column for storing embedded data elements; in response to receiving the database command, accessing a table represented by the table name; in response to accessing the table, accessing the embedded-data column represented by the column name in the database command; and in response to accessing the embedded-data column, accessing the selected data element.
Claim 23
Independent Claim 163 words
A method for accessing a selected data element stored in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each having a table name and comprising one or more rows of information, the rows of information each having a row identifier and comprising one or more columns, the columns each having a column name and comprising embedded-data elements or atomic data elements, the method comprising the computer-implemented steps of: receiving a database command for accessing a selected data element, the command comprising at least a table name and an extension corresponding to a column name, the column name representing an embedded-data column for storing embedded data elements; in response to receiving the database command, accessing a table represented by the table name; in response to accessing the table, accessing the embedded-data column represented by the column name in the database command; and in response to accessing the embedded-data column, accessing the selected data element.
Claim 24
Dependent Claim 48 words
The method of claim 21, wherein the object-relational database further comprises a dictionary; wherein the dictionary comprises table names and column names; and where the method further comprises the step of, in response to receiving the database command, accessing the dictionary to associate column names with table names.
Claim 25
Dependent Claim 18 words
The method of claim 21, wherein the database command is received in a format generally defined as "TableName.ColumnName".
Claim 26
Dependent Claim 19 words
The method of claim 21, wherein the database command may be in any clause of a standard SQL statement.
Claim 27
Dependent Claim 26 words
The method of claim 21, wherein the embedded-data elements comprise a collection, the collection comprising a plurality of atomic data elements or structures of data elements.
Claim 28
Dependent Claim 58 words
The method of claim 21, wherein the embedded-data elements comprise a structure, the structure having a corresponding column name and comprising one or more subrows of information, the subrows of information each having a row identifier and comprising one or more subcolumns, the subcolumns each having an associated column name and comprising embedded-data elements or atomic data elements.
Claim 29
Dependent Claim 77 words
The method of claim 21, wherein accessing the embedded-data column comprises the steps of: retrieving a row of information from a physical memory storage device in the computer system; storing the retrieved row of information in a memory device in the computer system; parsing the retrieved row of information stored in the memory device to determine which columns have data elements; and creating an in-memory data structure that represents the contents of the retrieved row of information.
Claim 30
Dependent Claim 27 words
The method of claim 27 wherein accessing the selected data element comprises traversing the in-memory data structure to access the selected data element in the embedded-data column.
Claim 31
Dependent Claim 110 words
The method of claim 21, wherein the database command further comprises a second extension corresponding to a second column name representing a second embedded-data column, the second embedded-data column being embedded within the embedded-data column; and wherein the method comprises: in response to receiving the database command, accessing the table corresponding to the table name, in response to accessing the table, accessing the embedded-data column represented by the column name in the database command, in response to accessing the embedded-data column, accessing the second embedded-data column represented by the second column name in the database command, and in response to accessing the second embedded-data column, accessing the selected data element.
Claim 32
Dependent Claim 24 words
The method of claim 21, wherein the database command may comprise an unlimited number of extensions, each representing a more deeply nested embedded-data column.
Claim 33
Dependent Claim 16 words
A computer-readable medium having stored thereon computer-executable instructions for performing the method steps of claim 21.
Claim 34
Independent Claim 250 words
A method for storing and accessing a user defined type of data (UDT) in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each comprising a table name and one or more rows, the rows each comprising one or more embedded data columns, the embedded data columns each having a type name and comprising a plurality of data elements, the method comprising the steps of: storing a UDT in one or more selected tables, the UDT being stored in an embedded-data column in each of the selected tables, a UDT-name being the type name for the embedded-data column in each of the selected tables; receiving a database command for accessing a selected data element, the database command comprising at least the UDT name; in response to receiving the database command, searching every table in the object-relational database to identify the selected tables storing the UDT; in response to identifying the selected tables, accessing each of the selected tables to identify an associated type name associated with the UDT name; in each of the selected tables, in response to identifying the associated type name, accessing the embedded-data column corresponding to the UDT name; and in each of the selected tables, in response to accessing the embedded data column, accessing the selected data element, whereby a UDT may be stored in selected tables in the object-relational database and subsequently accessed without specifying the table names for the selected tables in the database command.
Claim 35
Independent Claim 250 words
A method for storing and accessing a user defined type of data (UDT) in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each comprising a table name and one or more rows, the rows each comprising one or more embedded data columns, the embedded data columns each having a type name and comprising a plurality of data elements, the method comprising the steps of: storing a UDT in one or more selected tables, the UDT being stored in an embedded-data column in each of the selected tables, a UDT-name being the type name for the embedded-data column in each of the selected tables; receiving a database command for accessing a selected data element, the database command comprising at least the UDT name; in response to receiving the database command, searching every table in the object-relational database to identify the selected tables storing the UDT; in response to identifying the selected tables, accessing each of the selected tables to identify an associated type name associated with the UDT name; in each of the selected tables, in response to identifying the associated type name, accessing the embedded-data column corresponding to the UDT name; and in each of the selected tables, in response to accessing the embedded data column, accessing the selected data element, whereby a UDT may be stored in selected tables in the object-relational database and subsequently accessed without specifying the table names for the selected tables in the database command.
Claim 36
Dependent Claim 49 words
The method of claim 32, wherein the object-relational database further comprises a dictionary; wherein the dictionary comprises table names and type names; and wherein the method further comprises the step of, in response to receiving the database command, accessing the dictionary to associate the UDT name with table names.
Claim 37
Dependent Claim 47 words
The method of claim 32, wherein the database command comprises a UDT name and one or more selected table names; and wherein the method further comprises, in response to receiving the database command, searching only the tables in the object-relational database corresponding to the selected table names.
Claim 38
Dependent Claim 81 words
The method of claim 32, wherein accessing the embedded-data column comprises the steps of: retrieving a row of information from a physical memory storage device in the computer system; storing the retrieved row of information in a (random access) memory device in the computer system; parsing the retrieved row of information stored in the (random access) memory device to determine which columns have data elements; and creating an in-memory data structure that represents the contents of the retrieved row of information.
Claim 39
Dependent Claim 27 words
The method of claim 35, wherein accessing the selected data element comprises traversing the in-memory data structure to access the selected data element in the embedded-data column.
Claim 40
Dependent Claim 16 words
A computer-readable medium having stored thereon computer-executable instructions for performing the method steps of claim 32.
Claim 41
Independent Claim 274 words
A system for storing and accessing information in an object-relational database, the object-relational database comprising one or more tables, the tables each having a table name and comprising one or more rows of information, the rows of information each comprising one or more columns of data elements, the system comprising: a memory device for storing a plurality of data elements in a row of information, the row comprising a plurality of columns, the columns each having a column name and comprising at least one of the data elements; a dictionary comprising table names and column names; a processor (CPU) for receiving a database command for accessing a selected data element, the database command comprising a selected table name and an extension corresponding to a selected column name, the selected column name corresponding to an embedded-data column, the embedded-data column being one of the columns operative for storing a plurality of the data elements; and in response to receiving the database command, the processor being operative to: access the dictionary to associate the selected column name and the selected table name with a corresponding table and a corresponding embedded-data column, access the corresponding table corresponding to the selected table name, in response to accessing the corresponding table, accessing the embedded-data column corresponding to the selected column name, in response to accessing the embedded-data column, accessing the selected data element, whereby a plurality of data elements may be stored in a single embedded-data column of an object relational database and, by way of an extension to a database command, may subsequently be accessed from the embedded data column as if the embedded-data column were a table.
Claim 42
Independent Claim 274 words
A system for storing and accessing information in an object-relational database, the object-relational database comprising one or more tables, the tables each having a table name and comprising one or more rows of information, the rows of information each comprising one or more columns of data elements, the system comprising: a memory device for storing a plurality of data elements in a row of information, the row comprising a plurality of columns, the columns each having a column name and comprising at least one of the data elements; a dictionary comprising table names and column names; a processor (CPU) for receiving a database command for accessing a selected data element, the database command comprising a selected table name and an extension corresponding to a selected column name, the selected column name corresponding to an embedded-data column, the embedded-data column being one of the columns operative for storing a plurality of the data elements; and in response to receiving the database command, the processor being operative to: access the dictionary to associate the selected column name and the selected table name with a corresponding table and a corresponding embedded-data column, access the corresponding table corresponding to the selected table name, in response to accessing the corresponding table, accessing the embedded-data column corresponding to the selected column name, in response to accessing the embedded-data column, accessing the selected data element, whereby a plurality of data elements may be stored in a single embedded-data column of an object relational database and, by way of an extension to a database command, may subsequently be accessed from the embedded data column as if the embedded-data column were a table.
Claim 43
Independent Claim 264 words
A system for storing and accessing a user defined type of data (UDT) in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each comprising a table name and one or more rows, the rows each comprising one or more embedded data columns, the embedded data columns each having an column name and comprising a plurality of data elements, the system comprising: a memory device for storing a UDT in one or more selected tables, the UDT being stored in an embedded-data column in each of the selected tables, a UDT-name being the type name for the embedded-data column in each of the selected tables; a dictionary comprising type names and table names; a processor for receiving a database command for accessing a selected data element, the database command comprising at least the UDT name; and in response to receiving the database command, the processor being operative to: access the dictionary to identify the selected tables storing the UDT, in response to identifying the selected tables, access each of the selected tables to identify an associated type name associated with the UDT name, in each of the selected tables, in response to identifying the associated type name, access the embedded-data column corresponding to the UDT name, and in each of the selected tables, in response to accessing the embedded data column, access the selected data element, whereby a UDT may be stored in selected tables in the object-relational database and subsequently accessed without specifying the table names for the selected tables in the database command.
Claim 44
Independent Claim 264 words
A system for storing and accessing a user defined type of data (UDT) in an object-relational database stored in a computer system, the object-relational database comprising one or more tables, the tables each comprising a table name and one or more rows, the rows each comprising one or more embedded data columns, the embedded data columns each having an column name and comprising a plurality of data elements, the system comprising: a memory device for storing a UDT in one or more selected tables, the UDT being stored in an embedded-data column in each of the selected tables, a UDT-name being the type name for the embedded-data column in each of the selected tables; a dictionary comprising type names and table names; a processor for receiving a database command for accessing a selected data element, the database command comprising at least the UDT name; and in response to receiving the database command, the processor being operative to: access the dictionary to identify the selected tables storing the UDT, in response to identifying the selected tables, access each of the selected tables to identify an associated type name associated with the UDT name, in each of the selected tables, in response to identifying the associated type name, access the embedded-data column corresponding to the UDT name, and in each of the selected tables, in response to accessing the embedded data column, access the selected data element, whereby a UDT may be stored in selected tables in the object-relational database and subsequently accessed without specifying the table names for the selected tables in the database command.

References Cited (Backward Citations)

US5832481A Cited
US5713020A Cited
US5850544A Cited
US5873083A Cited
US5822747A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-17 2003-07-19 2004-01-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-17 2007-07-19 2008-01-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-17 2011-07-19 2012-01-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag