As a title, can anyone help me to distinguish what is the difference between Batch, Job and Transaction in Salesforce?
A transaction is a single, atomic action in Salesforce. It can be an API call, a record save, a web service method, a scheduled job, and more. Each time a single debug log could be produced, it is a single transaction. With a few exceptions, a transaction must completely succeed or fail as a single unit.
A job is any action that runs asynchronously. This is typically more than a single transaction (but may be just one). This includes scheduled jobs, batch jobs, and so on. These are always run asynchronously, and may be triggered from a variety of sources.
A batch is a bulk job that typically generates multiple transactions. Each chunk in a job may succeed or fail independently of others. They are often used to process a large amount of data without exceeding single transaction limits.