트랜잭션(transaction)은 여러 작업을 하나의 처리 단위로 묶는 방식이다. [[데이터베이스]]에서는 관련 변경이 일부만 적용되는 상황을 피하는 데 사용한다. ([PostgreSQL의 트랜잭션 안내](https://www.postgresql.org/docs/current/tutorial-transactions.html)) - 예컨대 한 계좌의 잔액을 줄이고 다른 계좌의 잔액을 늘리는 작업을 함께 묶는다. 중간에 실패했을 때 한쪽 변경만 남지 않도록 한다. ([계좌 이체 예](https://www.postgresql.org/docs/current/tutorial-transactions.html)) - `BEGIN`으로 시작해 `COMMIT`으로 확정하거나 `ROLLBACK`으로 취소한다. 사용하는 도구가 자동으로 트랜잭션을 시작하는지도 확인한다. ([명시적 처리와 클라이언트 동작](https://www.postgresql.org/docs/current/tutorial-transactions.html)) - 작업 일부를 되돌릴 기준점이 필요하면 [[세이브포인트]]를 둔다. 최종 확정 전의 부분 취소와 전체 취소를 나눠 다룰 수 있다. ([SAVEPOINT 사용](https://www.postgresql.org/docs/current/tutorial-transactions.html)) ## 기타 등등 - PostgreSQL은 명시적인 BEGIN이 없는 개별 SQL 문장도 자체 트랜잭션 안에서 실행한다. [출처](https://www.postgresql.org/docs/current/tutorial-transactions.html) - 확정 전의 변경은 다른 트랜잭션에 보이지 않으며, 확정할 때 그 변경들이 함께 드러난다. [출처](https://www.postgresql.org/docs/current/tutorial-transactions.html) #데이터베이스 #소프트웨어 #운영