Apparatus for storing and processing a plurality of data items each
comprising supplied data values organized in one or more fields each of
which stores typed data. Character strings and natural language text are
converted to numerical token values in an array of fixed length integers
and other forms of typed data (real numbers, dates, times, boolean
values, etc.) are also converted to integer form and stored in the array.
Stored metadata specifies the data type of all data in the integer array
to enable each integer to be rapidly accessed and interpreted. When fixed
length data types are present, the metadata specifies location, size and
type of each fixed length element. When variable length data is stored in
the integer array, size and location data stored in the integer array is
accessed to rapidly and directly access the variable size data. The
presence of implicit or explicit size information for each data
structure, including variable size structures, speeds processing by
eliminating the need to scan the data for delimiters, and by reducing the
processing needed to perform memory allocation, data movement, lookup
operations and data addressing functions. Data stored in the integer
array is subdivided into items, and items are subdivided into fields.
Items may be organized into more complex data structures, such as
relational tables, hierarchical object structures, linked lists and
trees, and the like, using special fields called links which identify
other referenced items.