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

Database system with improved methods for storing free-form data objects of data records

Assignee: Borland Software Corp
•
Filing: 1996-06-21
•
Granted: 1999-11-23
•
Expires: 2016-06-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system of the present invention includes a relational database management system (RDBMS). Methods are described for maintaining integrity between "design documents," which may be creating under different operating systems, and one or more information tables of the system. The system provides each field of a table with a unique ID ("field ID") for tracking the field regardless of restructuring changes which may be made to the table by various clients. Corresponding field IDs are stored with the fields of design documents, thereby permitting the system to maintain a link between a design document and its table. Upon a restructure of a table, the dependent design documents may be appropriately updated by their respective clients. Methods are also described for improved storage of free-form or "memo" data. In a preferred embodiment, memo data are stored in a separate file comprised of variable-length storage blocks. Methods are described for allocating storage space in the blocks and sub-allocating storage space within a block. For increased efficiency, the system maintains a sorted "free list" of free storage blocks.

Inventors

  • 👤 John Grant Bennett
  • 👤 Steven T. Shaughnessy
  • 👤 Christopher Wellington Brumme

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 17:46
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/10; G06F16/17; G06F16/176; G06F16/1767; G06F16/1774; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99956

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 240 words
In a system for storing information in data records, a method for storing free-form data objects apart from the data records while maintaining an association between each data object and a corresponding data record, the method comprising: (a) partitioning a persistent storage media into a plurality of variable-length storage regions, wherein said variable-length storage regions comprise at least one large and at least one small storage block, all said at least one small block having a uniform storage size, all said at least one large storage block having a storage size which is a multiple of said uniform storage size; (b) storing a list of ones of said storage regions which are available for data storage; (c) receiving a request for storing a data object associated with a particular one of the data records; (d) selecting from said list at least one of said large storage regions for attaining space equal to or less than required for storing the data object; (e) if additional storage is still required for storing the data object, selecting from said list at least one of said small storage regions for storing the data object for attaining space sufficient for storing the data object; (f) storing the data object of interest in said selected one or more regions; and (g) storing a handle to the data object in the associated data record, so that the data object can be associated with its particular data record.
Claim 2
Dependent Claim 240 words
In a system for storing information in data records, a method for storing free-form data objects apart from the data records while maintaining an association between each data object and a corresponding data record, the method comprising: (a) partitioning a persistent storage media into a plurality of variable-length storage regions, wherein said variable-length storage regions comprise at least one large and at least one small storage block, all said at least one small block having a uniform storage size, all said at least one large storage block having a storage size which is a multiple of said uniform storage size; (b) storing a list of ones of said storage regions which are available for data storage; (c) receiving a request for storing a data object associated with a particular one of the data records; (d) selecting from said list at least one of said large storage regions for attaining space equal to or less than required for storing the data object; (e) if additional storage is still required for storing the data object, selecting from said list at least one of said small storage regions for storing the data object for attaining space sufficient for storing the data object; (f) storing the data object of interest in said selected one or more regions; and (g) storing a handle to the data object in the associated data record, so that the data object can be associated with its particular data record.
Claim 3
Dependent Claim 36 words
The method of claim 1, further comprising: (g) storing within the associated data record a data portion selected from the data object, said data portion being stored as a data field of the associated data record.
Claim 4
Dependent Claim 26 words
The method of claim 2, wherein said data object includes free-form text, and wherein said data portion includes a character array selected from said free-form text.
Claim 5
Dependent Claim 18 words
The method of claim 3, wherein said character array includes a length which is specified by a user.
Claim 6
Dependent Claim 59 words
The method of claim 2, further comprising: receiving a request from a user for viewing the data record associated with said data object; and presenting to the user information from data fields of the data record together with only said data portion selected from the data object which is stored as a data field of the associated data record.
Claim 7
Dependent Claim 25 words
The method of claim 5, wherein said data portion is presented to the user without accessing the selected region which completely stores the data object.
Claim 8
Dependent Claim 28 words
The method of claim 6, wherein said data object comprises a text passage and wherein said data portion comprises a subset of text taken from said text passage.
Claim 9
Dependent Claim 72 words
The method of claim 2, further comprising: receiving a user request for retrieving the data object; and in response to the user request for retrieving the data object, retrieving said data object by: reading from the associated data record said handle to the data object, with said handle, retrieving said data object from said storage media, and upon retrieving said data object, presenting to the user said data object in its entirety.
Claim 10
Dependent Claim 24 words
The method of claim 8, wherein said system translates said handle into an offset where said data object is located on said storage media.
Claim 11
Dependent Claim 36 words
The method of claim 8, wherein said user request for retrieving the data object in its entirety comprises user input which invokes the data portion of the data object which is initially presented to the user.
Claim 12
Dependent Claim 18 words
The method of claim 1, wherein said list is ordered according to relative size of the storage regions.
Claim 13
Dependent Claim 37 words
The method of claim 1, further comprising after step (e): removing from the list said selected region; and adding a new entry to the list if any remainder of the selected region is available for data storage.
Claim 14
Dependent Claim 37 words
The method of claim 1, wherein said list comprises a plurality of pointer/size entry pairs, the pointer entry storing an address of an available region, the size entry storing a data storage size at the available region.
Claim 15
Dependent Claim 28 words
The method of claim 1, wherein each of said variable-length storage regions includes a header indicating a storage type and an amount of storage available in the region.
Claim 16
Dependent Claim 36 words
The method of claim 1, wherein said at least one small storage block includes an index and data region, whereby a plurality of smaller data objects are stored in said at least one small storage block.
Claim 17
Dependent Claim 43 words
The method of claim 1, wherein said selecting one of said regions in step (d) comprises: selecting a plurality of large storage blocks with space sufficient for storing the data object, said selected large storage blocks being allocated consecutively on a storage media.
Claim 18
Dependent Claim 59 words
The method of claim 16, further comprising: receiving a request for retrieving said data object; and in response to said request, retrieving said data object by: (i) performing a disk seek operation for locating said consecutively-allocated large storage blocks on said storage media, and (ii) reading said consecutively-allocated large storage blocks from said storage media in a single pass.
Claim 19
Dependent Claim 18 words
The method of claim 1, wherein said list is sorted according to relative size of storage regions available.
Claim 20
Dependent Claim 33 words
The method of claim 1, wherein step (e) further comprises: removing said selected region from said list of regions, so that said selected region is no longer represented in the system as available.
Claim 21
Dependent Claim 143 words
In a system for storing information in data records, a method for storing a free-form data object for a particular record, the method comprising: (a) storing said particular record in a database table; (b) storing said free-form data object at a storage location apart from said database table; (c) storing within said database table as a particular data field of said particular record a copy of a portion of said free-form data object, so that a user can view a portion of said free-form data object directly from the database table without having the system actually retrieve said free-form data object from the storage location which is apart from said database table; and (d) storing within said particular record a handle referencing where said free-form data object resides, so that the system can retrieve said free-form data object in its entirety upon demand.
Claim 22
Dependent Claim 143 words
In a system for storing information in data records, a method for storing a free-form data object for a particular record, the method comprising: (a) storing said particular record in a database table; (b) storing said free-form data object at a storage location apart from said database table; (c) storing within said database table as a particular data field of said particular record a copy of a portion of said free-form data object, so that a user can view a portion of said free-form data object directly from the database table without having the system actually retrieve said free-form data object from the storage location which is apart from said database table; and (d) storing within said particular record a handle referencing where said free-form data object resides, so that the system can retrieve said free-form data object in its entirety upon demand.
Claim 23
Dependent Claim 75 words
The method of claim 20, further comprising: receiving a user request for retrieving the data object in its entirety; and in response to the user request for retrieving the data object, retrieving said data object by: reading from the particular record said handle to the free-form data object, with said handle, retrieving said data object from its storage location, and upon retrieving said data object, presenting to the user said data object in its entirety.
Claim 24
Dependent Claim 23 words
The method of claim 21, wherein said handle translates into a particular offset into said storage location where said data object is stored.
Claim 25
Dependent Claim 25 words
The method of claim 22, wherein said handle comprises a 32-bit value which indexes into a particular storage block among a plurality of storage blocks.
Claim 26
Dependent Claim 38 words
The method of claim 22, wherein said handle comprises a value having most significant bits which index into a particular storage block and having least significant bits which index into a particular offset of said particular storage block.
Claim 27
Dependent Claim 251 words
In a system for storing information in data records on a persistent storage device, a method for storing a data object for a particular record, the method comprising: (a) partitioning the persistent storage device for providing a plurality of variable-length storage blocks, wherein said storage blocks comprise at least one large and at least one small storage block, all said at least one small block having a uniform storage size, all said at least one large storage block having a storage size which is a multiple of said uniform storage size; (b) maintaining a list of storage blocks of the persistent storage device which are available for storing objects, said storage blocks being stored apart from data records and having different storage sizes; (c) selecting from said list a particular storage block comprising a large storage block having a size appropriate for attaining space equal to or more than required for storing the data object; (d) storing the data object of interest in said particular storage block and removing said particular storage block from said list; (e) if the data object requires less storage size than is available from said particular storage block, determining a remainder for the particular storage block and adding an entry to the list for indicating that said remainder is available for storing objects; and (f) storing an entry in said particular record for indicating the particular storage block where said data object is stored, so that said data object is available on-demand from said particular record.
Claim 28
Dependent Claim 251 words
In a system for storing information in data records on a persistent storage device, a method for storing a data object for a particular record, the method comprising: (a) partitioning the persistent storage device for providing a plurality of variable-length storage blocks, wherein said storage blocks comprise at least one large and at least one small storage block, all said at least one small block having a uniform storage size, all said at least one large storage block having a storage size which is a multiple of said uniform storage size; (b) maintaining a list of storage blocks of the persistent storage device which are available for storing objects, said storage blocks being stored apart from data records and having different storage sizes; (c) selecting from said list a particular storage block comprising a large storage block having a size appropriate for attaining space equal to or more than required for storing the data object; (d) storing the data object of interest in said particular storage block and removing said particular storage block from said list; (e) if the data object requires less storage size than is available from said particular storage block, determining a remainder for the particular storage block and adding an entry to the list for indicating that said remainder is available for storing objects; and (f) storing an entry in said particular record for indicating the particular storage block where said data object is stored, so that said data object is available on-demand from said particular record.
Claim 29
Dependent Claim 26 words
The method of claim 25, wherein said system is a multi-user system and wherein at least steps (c) and (d) are performed in an exclusive manner.
Claim 30
Dependent Claim 30 words
The method of claim 26, wherein said exclusive manner includes locking a critical section for preventing other users from altering said list while steps (c) and (d) are being performed.
Claim 31
Dependent Claim 24 words
The method of claim 25, further comprising: compacting all storage blocks, so that available storage blocks are grouped together on the persistent storage device.
Claim 32
Dependent Claim 27 words
The method of claim 28, wherein said compacting step includes combining at least two storage blocks which are available for storage into a single, larger storage block.
Claim 33
Dependent Claim 156 words
A database system with improved object storage comprising: a computer having a processor and a storage device; means for storing on said storage device a database table comprising a plurality of database tuples, each database tuple comprising a plurality of database fields, at least one database field of said tuples being associated with a plurality of free-form data objects; and means for storing said plurality of free-form data objects outside of said database table, said means including: means for storing on said storage device as a separate file which stores each of said plurality of free-form data objects, means for storing with each database tuple an identifier for identifying the particular free-form data object which is associated with the database tuple, and means for storing within said database table as a particular data field of each database tuple a copy of some portion of the particular free-form data object which is associated with the database tuple.
Claim 34
Dependent Claim 156 words
A database system with improved object storage comprising: a computer having a processor and a storage device; means for storing on said storage device a database table comprising a plurality of database tuples, each database tuple comprising a plurality of database fields, at least one database field of said tuples being associated with a plurality of free-form data objects; and means for storing said plurality of free-form data objects outside of said database table, said means including: means for storing on said storage device as a separate file which stores each of said plurality of free-form data objects, means for storing with each database tuple an identifier for identifying the particular free-form data object which is associated with the database tuple, and means for storing within said database table as a particular data field of each database tuple a copy of some portion of the particular free-form data object which is associated with the database tuple.
Claim 35
Dependent Claim 14 words
The system of claim 30, wherein said database table comprises a relational database table.
Claim 36
Dependent Claim 16 words
The system of claim 30, wherein said separate file comprises a plurality of variable-length storage blocks.
Claim 37
Dependent Claim 36 words
The system of claim 30, wherein said identifier for identifying the particular free-form data object which is associated with the database tuple comprises a handle which is stored within a database field of the database table.
Claim 38
Dependent Claim 28 words
The system of claim 33, wherein said handle comprises a value which translates into a storage location in said separate file where a particular free-form data object resides.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-11-22 2003-05-24 2003-11-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-11-22 2007-05-24 2007-11-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-11-22 2011-05-24 2011-11-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag