In the dbf world, the index is a separate file on the disk. To use the index, you must attach it. You can attach up to seven indexes to a dbf table. If you change the indexed fields, or add records, without first attaching the index, the index will be out of synch with the data, and when you do attach the index, you won't see the changed records until you rebuild the index. This can't happen in Access, because the index is part of the table.

A later enhancement was the multiple index file. You would attach the index and then you could specify which index 'tag' to order the records.

The original xbase environment provided for 9 workspaces, and each table is opened in its own workspace. You can attach up to 7 indexes to each table. There was one more workspace that was reserved for the 'catalog' which was similar to the Access database window to collect & organize your objects. Practically speaking, however, there are DOS file handle limitations that
prevent you from actually opening everything up at once.

Xbase indexes use a clever algorithm that internally has trees, nodes and all sorts of exotic stuff, the net result is that the index is typically quite small compared to the table. This makes SEEK-ing records pretty fast. Also, xbase assigns a unique record number to each row, so once the record is found (or not found) in the index file, wham! there it is in the table