Transaction(트랜잭션)
데이터베이스에서 여러 작업을 하나의 단위로 묶어서 처리할 수 있도록 하는 것
> Transaction
- 데이터베이스에서 여러 작업을 하나의 단위로 묶어서 처리할 수 있도록 하는 것
- 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것
- tansaction의 SQL문들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않음
> Transaction의 4가지 특징(ACID)
- 데이터베이스의 무결성과 일관성을 위해서 트랜잭션이 만족해야하는 특징
- Atomicity(원자성)
- All or Nothing 으로 모두 성공하거나 모두 실패해야 함
- 작업 단위를 일부분만 실행하지 않음
- Consistency(일관성)
- 트랜잭션이 성공적으로 완료되면 일관적인 DB 상태 유지
- DB에 정의된 rule을 트랜잭션이 위반했다면 rollback 해야 함
- Isolation(격리성)
- 여러 트랜잭션들이 동시에 실행될 때, 혼자 실행되는 것처럼 동작하게 만듦
- 동시에 트랜잭션이 수행될 때 다른 트랜잭션의 작업이 끼어들지 못하도록 보장
- 트랜잭션끼리는 서로 간섭할 수 없음
- Durability(지속성)
- 성공적으로 수행된 트랜잭션은 DB에 영구적으로 저장됨(비휘발성 메모리에 저장됨)
- DB system에 문제(power fail or DB crash)가 생겨도 commit된 트랜잭션은 DB에 남아있음
- DB system에 문제가 생겨도 트랜잭션이 다시 rollback 되거나 commit된 트랜잭션 내용이 사라지지 않음
참고