회복과 병행 제어
- DBMS는 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 하는데, 그 중심에는 트랜잭션이 있음트랜잭션을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능
트랜잭션(transaction)
- 하나의 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것데이터베이스에서 논리적인 작업의 단위 (데이터베이스에 장애가 발생했을 때 데이터를 복구하는 작업의 단위)트랜잭션의 모든 명령문이 완벽하게 처리되거나 하나도 처리되지 않아야 데이터베이스가 모순이 없는 일관된 상태를 유지할 수 있음
- 데이터베이스의 무결성과 일관성을 보장하려면 필요한 연산들을 하나의 트랜잭션으로 제대로 정의하고 관리해야 함
- 일반적으로 데이터베이스를 변경하는 INSERT문, DELETE문, UPDATE문의 실행을 트랜잭션으로 관리
트랜잭션의 4가지 특성
- ACID - 원자성, 일관성, 격리성, 지속성
원자성(atomicity)
- 트랜잭션을 구성하는 연산들이 모두 정상적으로 실행되거나 하나도 실행되지 않아야 함(all or nothing)원자성을 보장하면 트랜잭션을 구성하는 연산 중 일부만 처리한 결과를 데이터베이스에 반영하는 일이 없게 됨
일관성(consistency)
- 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관된 상태를 유지해야 함
격리성(isolation) / 고립성
- 수행 중인 트랜잭션이 완료될 때까지 트랜잭션이 생성한 중간 연산 결과에 다른 트랜잭션들이 접근할 수 없음을 의미함
지속성(durability) / 영속성
- 트랜잭션이 성공적으로 완료된 후 반영한 수행 결과는 어떠한 경우에도 손실되지 않고 영구적이어야 함을 의미함시스템에 장애가 발생하더라도 트랜잭션 작업 결과는 없어지지 않고 데이터베이스에 그대로 남아 있어야 한다는 의미
트랜잭션의 특성을 지원하는 DBMS의 기능

- 트랜잭션의 연산commit 연산 - 트랜잭션이 성공적으로 수행되었음을 선언 (작업 완료)rollback 연산 - 트랜잭션을 수행하는 데 실패했음을 선언 (작업 취소)
트랜잭션의 상태