when data is held in disparate files, accessing related data becomes much more difficult. In the simplest of situations, information may be held in two different files that need to be accessed simultaneously, with operations performed and resulting data returned. The application must synchronize the processing of the two files to ensure that the correct information is returned. This situation becomes more complex as the number of files that need to be accessed grows.