How do you handle database transaction isolation levels to prevent dirty reads or phantom reads in a high-concurrency environment?