DB는 무결성을 보장하는 것이 중요하다.
그리고 그 무결성을 보장하기 위한 특징이 ACID(Atomicity, Consistency, Isolation, Durability)이다.
DB는 ACID가 의미하는 바와 같이 Transaction이 원자적이면서도 독립적인 수행을 하도록해야 한다.
그래서 등장하는 개념이 Locking이다.
Locking은 Transaction이 DB를 다루는 동안 다른 Transaction이 관여하지 못하게 막는다.
하지만 무조건적인 Locking으로
동시에 수행되는 많은 Transaction들을 일렬로 대기시킨다면 DB의 성능은 현저하게 떨어진다.
반대로 응답성을 높이기 위해
Locking 범위를 줄인다면 잘못된 값이 처리 될 여지가 있다.
그래서 최대한 효율적인 Locking 방법이 필요하다.
이와 관련된 Locking 방법이 Isolation Level이다.