in Oracle when I had worked as a federal contractor. We had a C script get run every 15 minutes that did a table update and recorded the transactions, run by crontab. Any field that got changed had an entry in the transaction table, the other fields were blank or null, which means they didn't get updated. So it only updated the non-null fields. If there was a problem we had a backup table that the whole record got copied to, in case we needed to rollback the data.

We also did this in Access, and had a database on floppy that the clerks handed to whomever would update the table and it worked the same way. The main database was on a networked drive. As long as they didn't update too many records it worked. We later moved the database from the floppy to another network location to avoid floppies with bad sectors and other issues.

On a job interview when I was asked what software we used to handle this, I told them that we wrote it ourselves and it worked fine. The interviewer didn't believe me. We were on a tight budget and they didn't want to spend the thousands to tens of thousands of dollars to buy a software package to do this for us.