데이터 상태를 변경, 변환시키는 최소 단위로 간주되는 작업 단위
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미
- 데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위
- 한꺼번에 수행되어야 할 일련의 연산
예를 들어 A가 10만원을 B에게 이체 하려고 했는데
알수 없는 오류로 돈은 빠져 나갔지만 B는 받지 못함
이런 경우를 막기 위해 A에게서도 돈이 나가고 B도 받아서
모두 처리가 되면 완전한 거래로 승인하고, 오류가 났을때 되돌려서
처음부터 없던 일로 만드는 것!
안정성을 확보하기 위해 사용하는 것이 트랜잭션
데이터베이스에선 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌리고 최종적으로 성공했을때만 데이터베이스에 반영한다.
부분 작업들 여러개가 모여진 이러한 트랜잭션을 처리하기 위해 데이터베이스는 다음의 두가지 명령어를 활용하는데,
커밋(Commit): 모든 부분작업이 정상적으로 완료하면 이 변경사항을 한꺼번에 DB에 반영 (저장)
롤백(Rollback): 부분 작업이 실패하면 트랜잭션 실행 전으로 되돌리는데,하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스 일관성을 깨뜨렸을 때 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소하는 연산 (취소)
ACID(Atomicity, Consistency, Isolation, Durability)는 데이터베이스 트랜젝션이 안전하게 수행된다는 것을 보장하기 위한 트랜잭션의 특징