Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 1.28 KB

File metadata and controls

32 lines (25 loc) · 1.28 KB

Transaction

정의

작업의 완전성을 보장하는 논리적인 단위이다.

목적

작업의 완전성을 보장

  • Partial update 발생 방지
  • 논리적인 작업 셋을 모두 완벽하게 처리하거나,
  • 처리하지 못할 경우 원래 상태로 복구해서 작업의 일부만 적용되지 않도록 하는 것이 목적

잠금과의 비교

잠금 비교 트랜잭션
동시성 제어 목적 데이터 정합성 보장
여러 커넥션에서 동시에 동일한 자원을 요청할 경우 사용 쿼리의 개수에 관계없는 논리적인 작업 셋
한 시점에는 하나의 커넥션만 변경 가능 자원 100% 적용되거나 아무것도 적용되지 않아야 함

특징, ACID

Atomicity, 원자성

  • 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않도록 보장한다.
  • All-or-Nothing 이라고도 한다.

Consistency, 일관성

  • 트랜잭션이 성공적으로 완료되면 일관적인 DB 상태를 유지하게 된다.

Isolation, 격리성

  • 트랜잭션 수행 시 다른 트랜잭션의 작업이 끼어들지 못한다.
  • 트랜잭션끼리 서로 영향을 주지 않는다.

Durability, 영속성

  • 성공적으로 수행된 트랜잭션은 영원히 반영된다.