트랜잭션이란 데이터베이스의 상태를 변경하기 위한 작업의 단위를 말한다.
데이터의 상태를 변경한다는 것은 SELECT, INSERT, UPDATE, DELETE와 같은 SQL을 이용해서 데이터베이스에 접근하는 뜻이다.
게시판을 예로 들었을 때, 사용자가 게시글을 작성하여 업로드하는 버튼을 누르면 INSERT문을 사용해서 사용자가 작성한 게시글의 데이터를 옮긴다.
그리고나서 게시판을 구성할 데이터를 SELECT문을 사용해서 최신 정보로 유지한다.
그러면 사용자가 다시 게시판에 접속했을 때 자신이 작성한 게시글이 포함된 게시판을 볼 수 있게 된다.
이렇게 INSERT문과 SELECT문을 합쳐서 하나의 작업을 수행하는 단위를 하나의 트랜잭션이라고 한다.
트랜잭션의 특징은 크게 4가지로 구분된다.
원자성은 트랜잭션이 모두 반영되거나, 아니면 전혀 반영되지 않거나를 의미한다.
일관성은 트랜잭션의 작업 처리 결과가 항상 일관되어야 함을 의미한다.
트랜잭션이 진행되는 동안 데이터베이스가 변경되더라도, 업데이트 된 데이터베이스가 아니라 기존의 데이터베이스로 트랜잭션이 진행된다.
따라서, 데이터의 타입이 반환 전과 후가 동일해야 한다.
독립성은 둘 이상의 트랜잭션이 실행되고 있을 경우 어떤 하나의 트랜잭션이 다른 트랜잭션의 연산에 간섭할 수 없음을 의미한다.
지속성은 트랜잭션이 성공적으로 완료되면 결과는 영구적으로 반영되어야 함을 의미한다.
하나의 트랜잭션이 성공적으로 완료되어 데이터베이스가 일관성 있는 상태에 있을 때, 이를 알리기 위해 사용하는 연산이다.
하나의 트랜잭션이 비정상적으로 종료되어 원자성이 깨졌을 때, 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소하기 위해 사용하는 연산이다.

트랜잭션은 위과 같이 5가지 상태에 있을 수 있다.
활성(Active)
트랜잭션이 현재 실행중인 상태
부분 완료(Partially Committed)
트랜잭션의 연산이 마지막까지 실행되고 Commit이 되기 직전인 상태
완료(Committed)
트랜잭션이 성공적으로 종료되어 Commit 연산이 수행된 상태
실패(Failed)
트랜잭션이 실행되다가 오류가 발생하여 중단된 상태
철회(Aborted)
트랜잭션이 비정상적으로 종료되어 Rollback 연산이 수행된 상태