Being in the middle of a transaction implies that this backup will not be consistent, but actually, this is not the case. Most modern applications that deal with important business data are built for robustness. A modern database, be it MySQL, Oracle, or SQL Server, has transaction logs. Transaction logs are kept separately from the data itself, and you can always play the logs to get to a specific consistent point in time. A database can start after a crash and use transaction logs to get to the most recent consistent state. NTFS in Windows and EXT3 in Linux have implemented journaling, which is not unlike transaction logs in databases.