Database Lock
Lock이란?
Lock이란 트랜잭션 사이의 순차성을 보장하기 위한 방법이다.
여기서 트랜잭션이란 독립적으로 처리할 수 있는 최소한의 단위를 의미한다.
Lock은 DBMS마다 구현하는 방식이나 방법이 다르기 때문에 DBMS별로 Lock의 개념을 이해하고 있어야 한다.
DB 락이란?
DB 락은 여러 개의 트랜잭션들이 하나의 데이터로 동시에 접근하려고 할 때 이를 제어해주는 것이다.
DB 락의 종류
Lock의 종류로는 공유락(Shared Lock), 배타락(Exclusive Lock)이 있으며 이는 각각 Read Lock, Write Lock이라고도 불린다.
- 공유락(LS, Shared Lock)
- 트랜잭션이 읽기 할 때 사용하는 락, 데이터를 읽을 수 있지만 쓸 수 없다.
- 배타락(LX, Exclusive Lock)
- 트랜잭션이 읽고 쓰기를 할 때 사용하는 락, 데이터를 읽고 쓸 수 있다.
배타 제어
낙관적 잠금
여러 사람들은 거의 동시에 자원을 변경하지 않을 것이라고 낙관적인 관점에서 독점 제어.
비관적 잠금
여러 사람들이 동일한 자원을 자주 변경한다는 가정의 비관적 관점에서 독점 제어.