Is there a database (either SQL or NoSQL) which allows you to keep a history or log of all past transactions so that you can easily rollback to any given point in time (similar to how git manages a source repository)? Taking a checkpoint after every transaction probably will do the same job, but keeping a history looks more efficient.
SQL Server with database in
FULL recovery model permits you to do a
There is no need in "Taking a checkpoint after every transaction" because of
write ahead logging.
To know more about it you can read the followin article: SQL Server point in time restore
RESTORE ... WITH STOPAToption allows you to restore your database to a point in time. This gives you the ability to restore a database prior to an event that occurred that was detrimental to your database. In order for this option to work, the database needs to be either in the
Bulk-Loggedrecovery model and you need to be doing transaction log backups.
And here is the official documentation: Restore a SQL Server Database to a Point in Time (Full Recovery Model)
All major relational databases support this. The concept is known as "point in time recovery".
In Postgres this is done using WAL archiving.
In Oracle this is done by running in archivelog mode.
Additionally Oracle supports so called "flashback" operations that can be applied on different levels, e.g. flashback database
For SQL Server, see sepupic's answer