트랜잭션이란
트랜잭션(transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다.
ACID 특성
- 원자성 ( Atomicity )
- 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 (Commit) 하거나 모두 실패(Rollback)해야 한다.
- 일관성 ( Consistency )
- 트랜잭션의 이전과 이후, 데이터베이스 상태는 동일해야한다.
- 트랜잭션 이후의 데이터베이스 제약이나 규칙을 만족해야한다는 뜻
- 격리성 ( Isolation )
- 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어 들지 못하도록 보장하는 것을 의미
- 지속성 ( Durability )
- 트랜잭션이 성공시 결과는 영원히 반영되어야 함을 의미
- 런타임 오류나 시스템 오류가 발생 하더라도, 트랜잭션의 로그로 해당 기록을 영구적으로 기록해줘야 함을 의미
트랜잭션 격리 수준 (Transaction isolation level)
- READ UNCOMMITTED
- READ COMMITTED
- REPETABLE READ
- SERIALIZABLE
Read uncommitted
Read uncoomited 격리수준에서는 트랜잭션의 변경 내용이 commit이나 rollback과 상관없이 다른 트랜잭션에서 보여진다.

단점