Any process may open a file. The operation of opening a file maps some sectors of that file to consecutive pages of the processes virtual address space. Obviously, the open service must specify which sectors to map to what pages, but that is not relevant to this study problem. The important point is that two different processes may open the same file, and as a result, they may share some pages of their virtual address spaces.
Memory address maps are large enough that not all pages of all maps may be held in main memory at one time. When the page replacement policy decides to replace the page in some frame, all map entries referencing that frame must be updated to reflect the fact that the page in that frame has been moved to disk.
Think about the data structures needed to support clock page replacement on this system. When a page frame is replaced, how does the system find all map entries that reference that frame. When a page is brought in from disk, must all map entries referencing that page be updated? When a page is written back to disk, must all map entries referencing that page be updated at that time, even if those map entries are currently on disk?
Think about the protection model applicable to the this system. What access rights would typically be associated with pages. What protection model applies? Is there any relationship between the protection that determines whether a process should be allowed to open a file and the protection model applying to pages currently mapped into the virtual address space of a process.
The obvious implementation for this system is to attach a semaphore to each database record, with the rule that a user must lock all records involved prior to a read-modify-write update. In this case, all code involved in performing the updates would belong to the user processes.
Think about the problem of avoiding or detecting deadlocks in this model. What deadlock detection model is applicable, if any? When a deadlock is detected, what action would be appropriate? If the set of records involved in an update does not depend on the contents of any of those records, does this simplify the problem?