
Indexing Scheme

        An index is a sorted list that is used as a reference.  In
Family Scrapbook, all records are stored on disk in the order of record
number. Indexes are used because you will not always want to access the
records in record number order.

        If you wanted to print a list of persons in the order of birth
dates, the program would use the birth date index as a reference to find
the records. The index would tell the program what order to read the
records from your disk so that they would be in birth date order.

        Indexes are only updated by the reindex utility.  This means
that when you add, change, or delete records, you must then reindex the
database so that the indexes are correct.  The reindex utility reads all
of the records from the database and then sorts them in the order that
the index requires.  It then creates the index from this list.  This is
done for every index during the reindex process.

        Many of the reports that Family Scrapbook produces make
extensive use of the indexes, so it is wise to make sure that the
database is properly indexed before printing reports or using the
searchwindows (F6 key).  To remind you when to reindex, the program will
put the letter R in the lower right of the screen.  It only does this
when you add or delete records. Sometimes changing a record can also
require reindexing, such as changing a person's birth date.  In this
situation the R will not appear.  The Reindex the Current Database
selection is found in the Utilities Menu, but can be run from many other
areas of the program by pressing Alt-R.

        The reindex routine attempts to do all sorting in memory.  If
there is not enough memory to do this, it will sort to disk.  Temporary
files are also created during a reindex.  Therefore, the more data that
you have, the more important it is to make sure there is ample free hard
disk space for Family Scrapbook to use.

        Note:  The reindex utility is contained in an external
executable file named REINDEX.EXE. This file can be run directly from
DOS.

