The calls made by your program to access the database are processed by the database manager. The database manager fulfils these functions:
The database manager supports data independence since it provides an interface between the application program and the database. The application is insulated from the details of physical storage. Data independence ensures that provided the logic of the application program is not affected, you can change the database structure without changing your application
Relationships between tables can be set up so that entries in one table (a child table) depend upon the presence of a matching entry in another table (a parent table). Referential integrity protects these relationships. For example, you can have the records in a child table deleted automatically when the matching record in a parent table is deleted. Alternatively, you can prevent the deletion of a parent record when there are matching child records on the database
The mechanism by which the database manager ensures that data can be recovered is transaction logging and roll-back logging . Each time information is posted to the database, the transaction log and the roll-back log are also updated. If a temporary failure occurs, the database manager uses the roll-back log to roll back the database to the state it was in before the temporary failure. If a data error occurs, then a backup of the database can be restored from disk, and the transaction log is used to roll-forward the database to the state it was in before the failure
DP4 controls access to your database. You can allocate an access level to each table on the database and each field in a table. The database manager permits users to see records that match their read access level, and to change records that match their write access level
In multi-user systems, contention control is handled by the database manager to prevent two users updating the same record at the same time. DP4 supports both change verify and record locking