여러개의 작업들을 하나의 실행 유닛으로 묶은 것이다.
트랜젝션은 성공과 실패 두 가지의 결과만 존재한다.
만약 하나의 작업이 실패하면 트랜젝션도 실패이고, 모든 작업이 성공해야 트랜젝션이 성공한 것이다.
코딩씨가 A은행에서 돈을 출금해서 B은행으로 송금한다 가정해보자.
만약 A은행에서 출금한 돈이 B은행으로 송금되는 과정에서 시스템이 멈춰버렸다면 출금은 됐지만 송금은 되지 않고 돈은 날아가버린다.
이런 상황을 막기위해서는 트랜젝션을 통해 데이터의 유효성을 보장해야한다.
트랜젝션의 데이터 유효성을 보장하기 위한 4가지 특징
위 예시처럼 계좌이체를 할 때 출금과 송금 둘 중에 하나라도 실패한다면 계좌이체 또한 실패이다.
계좌이체 성공 이 후 데이터 타입이 number
에서 string
으로 바뀌지 않는 것을 말한다. 계좌이체 전 후 모두 number
형이여야 한다는 특징
동시에 실행될 때와 연속으로 실행될 때의 데이터베이스 상태가 동일해야 한다.
게좌이체를 성공적으로 한 뒤에 해당 은행 데이터베이스에 오류가 발생해 종료되어도 계좌이체 내역은 남아야 한다.