tableBASE Indexes are dynamically generated in memory when a table is opened from the tableBASE library (see Figure 67). Indexes are not stored in the library with the data, but are created using the table definition. As a result, an Index may be reorganized dynamically at any time, in batch or online, without incurring any I/O. When an indexed table is reorganized, only the Index is affected; the Data Table remains in its original (random) organization. This feature of tableBASE allows for experimentation with different table organizations to optimize data access using the table definition
These features extend indexing capabilities beyond what is practical or possible with a DBMS. Online accesses can be processed using various ad-hoc hash Indexes for high-speed random access, while batch jobs refer to a sequential Index for list processing. One job may need to reorganize a table dynamically for efficient summarization and reporting purposes, or to cross reference a table by keying on two or more different fields in an interleaved fashion. All these are routine functions under tableBASE.