The data file contains the tables in the database, and all the records stored in them. The data includes the data dictionary, maps and any programs written in QA Build or Report Writer.
The data file contains all the data in a continuous stream. When a record is deleted, a hole the size of a deleted record is left in the file. The database manager dynamically re-uses the space when records are inserted.
You do not need to know the structure of any of the database files, as they are only ever accessed by the database manager. However, in case you are interested, all DP4 database files (including the transaction log and rollback files) contain a stream of records up to 64K, with the convention that the first 2 bytes comprise an integer specifying the length of record. In practice, there is no enforced alignment with the blocks in the physical file. A record 2 bytes in length is normally used as an end-of-file marker. The DP4 utility FDUMPM can be used to inspect DP4 files.
The index file defines the access mechanism for data retrieval. This file contains the keys together with pointers to the records in the data file. The index file is organised in the dynamic B-Tree structure described in B-Trees in the Introduction to DP4.