[sql] 트랜잭션 잠금
데이터베이스에서 트랜잭션과 잠금은 중요한 개념입니다.
-
트랜잭션: 트랜잭션은 데이터베이스에서 한 쪽으로부터 다른 쪽으로의 데이터 전송을 위한 단순한 절차가 아니며, 이러한 데이터 전송을 제어하고 보장하기 위한 일련의 작업들로 구성됩니다.
-
잠금: 잠금은 여러 트랜잭션이 데이터를 동시에 수정하지 못하도록 하기 위해 사용됩니다.
트랜잭션에서의 잠금
트랜잭션이 실행되는 동안 데이터베이스에서는 잠금이 발생합니다. 이것은 다른 트랜잭션이 해당 데이터를 읽거나 쓸 수 없도록 하는 것을 의미합니다.
잠금의 유형
- 공유 잠금(Shared Lock): 한 트랜잭션이 데이터를 읽을 때 다른 트랜잭션이 해당 데이터를 읽을 수 있지만 쓰기는 불가능합니다.
- 배타적 잠금(Exclusive Lock): 한 트랜잭션이 데이터를 읽거나 쓰고 있을 때 다른 트랜잭션이 해당 데이터에 접근하지 못하도록 합니다.
잠금 레벨
- 테이블 레벨 잠금(Table-level Locking): 전체 테이블에 대한 잠금
- 행 레벨 잠금(Row-level Locking): 특정 행에 대한 잠금
트랜잭션과 잠금은 데이터베이스 시스템의 핵심적인 개념으로, 데이터 정합성을 유지하고 동시성을 관리하는 데 중요한 역할을 합니다.
참고문헌:
- https://en.wikipedia.org/wiki/Database_transaction
- https://en.wikipedia.org/wiki/Lock_(computer_science)