My system receives data feeds. Each data feed will end up creating inserts and/or updates to most tables in the (relational) database.
I need to capture the snapshot of what the entire database looked like after each data feed is received. Basically I need a way to version the database each time a data feed is run through the system.
Note, by capturing a snapshot, I dont mean literally taking a snapshot of the database, but rather writing history records or some such mechanism so that I can query the database across "versions" to see what changed between versions (among other use cases)
Do known data model designs exist that can capture a snapshot of a database version like this?