트랜잭션은 데이터베이스의 논리적인 연산 단위입니다. 논리적인 단위라는 것은 실제 해당 작업을 위해 몇단계가 걸리는지와 관련 없이 하나의 작업을 이야기 합니다. 논리적인 작업 단위를 구성하는 세부적인 연산들의 집합을 말합니다. 때문에 하나의 트랜잭션에는 하나 이상의 sql문장이 포함됩니다. 때문에 트랜잭션은 실제 데이터베이스를 조작하는데 몇 단계가 걸리든지 상관 없이, 해당 트랜잭션이 완전히 적용되거나, 아니면 모두 적용되지 않는 ALL 혹은 NOTING의 개념입니다. 이러한 트랜잭션의 특성을 원자성 이라고 합니다.
트랜잭션의 특성으로는 원자성, 일관성, 고립성, 지속성이 있는데요. 특히 원자성이 중요한 특성입니다. 모두 적용하거나 하나도 적용하지 않는다는 트랜잭션의 원자성은 커밋과 롤백으로 구현됩니다. 트랜잭션 도중 어떤 오류나 예외상황을 만나면, 자동 롤백을 시킴으로써 데이터의 무결성을 보장합니다.
원자성을 퉁족하기 위해 다양한 레벨의 락기능을 제공하고 있는데, 트랜잭션이 수행하는 동안 사용중인 데이터에 다른 트랜잭션에서 접근하지 못하도록 제한하는 기법을 말합니다. 한마디로 동시에 실행할 수 있는 트랜잭션의 단위의 크기를 조절하는 개념이라고 볼 수 있습니다. 락은 그 제한 수준에 따라 다른 트랜잭션이 어떠한 명령어도 수행하지 못하게 하거나, 혹은 현재 트랜잭션이 진행중인 테이블을 사용하지 못하고록 하거나, 혹은 현재 진행중인 레코드만 사용하지 못하도록 제한할 수 있습니다.