Explain the concept of database transaction isolation levels and the specific problems they prevent, such as dirty reads and phantom reads.