DBMS에서 데이터를 다루는 논리적인 작업의 단위
트랜잭션 정의 이유
1. 장애가 일어날 때 데이터를 복구하는 작업의 단위가 됨
2. 여러 작업이 동시에 같은 데이터를 다룰 때 작업을 서로 분리하는 단위가 됨
ACID
1. 원자성(Atomiticy): 트랜잭션에 포함된 작업은 전부 수행되거나, 전부 수행되지 않아야 한다.
2. 일관성(Consistency): 트랜잭션 수행 전, 수행 후 데이터베이스는 항상 일관된 상태를 유지해야 한다.
일관성은 CREATE문과 ALTER문의 무결성 제약조건을 통해 명시된다.
3. 고립성(Isolation): 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하는 일이 없어야 한다.
4. 지속성(Durability): 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구적으로 저장해야 한다.
락: 데이터 수정 중이라는 것을 알리는 잠금 장치
1. 공유락(Shared Lock): 트랜잭션이 읽기를 할 때 사용
2. 배타락(Eclusive Lock): 읽고 쓰기를 할 때 사용
트랜잭션이 락을 허용받지 못하면 대기 상태가 된다.
데드락