트랜잭션

itonse·2023년 12월 3일
0

CS 스터디

목록 보기
11/56

트랜잭션의 개념


1. 트랜잭션이란, **데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위**를 뜻합니다.

2. 하나의 트랜잭션은 Commit되거나 Rollback됩니다.

트랜잭션의 특징 (ACID)

  1. 원자성 (Atomicity): 트랜잭션 내 모든 작업은 완전히 수행되거나 전혀 수행되지 않습니다.
  2. 일관성 (Consistency): 트랜잭션이 완료된 후에도 모든 데이터베이스 규칙과 제약 조건이 충족되어야 합니다.
  3. 독립성 (Isolation): 여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션이 서로 영향을 주지 않아야 합니다.
  4. 지속성 (Durability): 커밋된 트랜잭션의 결과는 영구적으로 보존됩니다.

트랜잭션 연산

Commit

  • 커밋은 트랜잭션에 의해 수행된 모든 변경사항을 데이터베이스에 영구적으로 저장하는 과정입니다.
  • 트랜잭션이 성공적으로 완료되었을 때 수행되며, 이로 인해 트랜잭션 동안 수행된 모든 작업이 확정되고 데이터베이스에 반영됩니다.
  • 커밋 후에는 변경사항을 되돌릴 수 없습니다.

Rollback

  • 롤백은 트랜잭션 동안 발생한 모든 변경사항을 취소하고, 트랜잭션 실행 이전의 상태로 데이터베이스를 되돌리는 과정입니다.
  • 오류가 발생했거나 데이터가 잘못 변경될 가능성이 있는 경우에 주로 수행됩니다.
  • 롤백을 통해 트랜잭션 전의 안정적인 상태로 데이터베이스를 복원할 수 있습니다.

트랜잭션 상태

이미지 출처: https://velog.io/@wlgus2134/정보처리기사공부트랜잭션
  1. 활성(Active): 트랜잭션이 실행 중이며, 관련 작업들이 진행되고 있는 상태입니다.
  2. 부분완료(Partially Committed): 모든 SQL 명령이 실행되고, 트랜잭션을 완료하기 위한 Commit 명령만 남은 상태입니다.
  3. 완료(Committed): 트랜잭션이 성공적으로 마무리되고, 모든 변경 사항이 데이터베이스에 반영된 상태입니다.
  4. 실패(Failed): 트랜잭션 중 문제가 발생하여 정상적으로 진행될 수 없게 된 상태입니다.
  5. 철회(Aborted): 트랜잭션이 취소되어 모든 변경 사항이 되돌려진 상태입니다.

💡트랜잭션 사용시 유의사항

  • 트랜잭션은 필요한 최소의 코드에만 적용하는 것이 좋습니다. (범위는 최소화)

0개의 댓글