트랜잭션이란, 데이터베이스의 상태를 변경하기 위해 수행되는 하나 이상의 작업을 의미합니다.
이러한 작업들은 원자성, 일관성, 독립성, 지속성(ACID) 특성을 준수하는 것이 중요합니다.
또한, 트랜잭션들은 COMMIT(저장) or ROLLBACK(철회) 될 수 있어야 합니다.
ACID 란, 데이터베이스 트랜잭션이 가져야 하는 네 가지 핵심 속성을 의미합니다.
트랜잭션 내에서 수행되는 작업은 모두 데이터베이스에 반영되거나 반영되지 않아야합니다.
즉, 하나의 작업이 실패하면 모두 실패(ROLLBACK)하거나 성공하면 모두 성공(COMMIT)되어야 합니다.
트랜잭션 실행 전과 후에도 데이터베이스는 일관된 상태여야 합니다.
데이터베이스는 트랜잭션이 일어나기 전과 후에 정의된 규칙과 제약조건을 만족해야 합니다.
예를 들어 모든 계좌는 잔고가 있어야 한다면 이를 위반하면 트랜잭션은 중단되어야 합니다.
여러 트랜잭션이 동시에 수행될 때, 각각의 트랜잭션은 다른 트랜잭션에 영향을 받지 않아야 합니다.
하나의 트랜잭션이 수행될 때 다른 트랜잭션은 그 작업에 대한 정보를 볼 수 없습니다.
성공적으로 완료된 트랜잭션은 영구적으로 반영되어야 합니다.
시스템 문제 or 장애가 발생하더라도 트랜잭션 결과는 손실되어서는 안됩니다.
Commit이란, 트랜잭션의 모든 변경 사항을 영구적으로 저장하는 것을 의미합니다.
즉, 트랜잭션이 성공적으로 완료되었을 때 데이터베이스에 모든 변경 사항을 적용하고 이후에는 롤백 없이 변경 사항이 유지됩니다.
Rollback이란, 트랜잭션이 중간에 실패하거나 오류가 발생했을 때 사용됩니다.
롤백을 실행하면 해당 트랜잭션에서 수행한 모든 작업이 취소되고 데이터베이스는 이전의 일관된 상태로 돌아갑니다.