In a nutshell
A transaction groups reads and writes so they all commit together or all roll back — the heart of ACID. To let many run at once, MVCC keeps multiple versions of each row: a writer creates a new version while readers keep seeing the one their snapshot froze, so reads never block writes. The isolation level decides which version a re-read sees.