데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위로, 일련의 연산들을 하나의 묶음으로 처리한다.
상태를 변화시킨다 ➡️ SQL 질의어를 통해 DB에 접근하는 것
| 질의어 |
|---|
| SELECT, INSERT, DELETE, UPDATE |
작업 단위 ➡️ SQL 명령문들을 사람의 기준에 따라 정하는 것
상황) 사용자 A가 사용자 B에게 만원 송금
- A, B의 계좌 잔고가 변경되므로 출금 및 입금 UPDATE 작업 발생
이를 통틀어 하나의 작업 단위인 트랜잭션이라고 한다.
- 작업 단위(트랜잭션)에 속하는 쿼리(출금 UPDATE & 입금 UPDATE) 중
하나라도 실패하면 모든 쿼리문을 취소하고 이전 상태로 되돌려야함
트랜잭션 내의 연산들은 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 된다.트랜잭션의 작업 처리 결과는 항상 일관된 상태로 유지되어야 한다.트랜잭션들이 서로 영향을 미치지 않아야 한다.트랜잭션의 중간 상태를 볼 수 없으며, 각각 트랜잭션은 독립적으로 실행되어야 한다.트랜잭션이 성공적으로 완료된 후에는 결과가 영구적으로 반영되어야 한다.트랜잭션 완료 후에 시스템이 실패하더라도 데이터베이스의 상태는 트랜잭션 수행 전과 동일하게 유지되어야 한다.commit 수행 시 하나의 트랜잭션 과정이 종료되고, 이전 데이터가 완전히 반영되어 UPDATE 된다.commit을 완료한 시점으로 돌아감참고:
gyoogle/tech-interview-for-developer/Computer Science/Database/Transaction.md
[MYSQL] 트랜잭션(Transaction) 개념 & 사용 완벽 정리