CS Study/데이터베이스

트랜잭션

danalee252 2022. 3. 30. 23:36

트랜잭션이란

  • 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • 하나의 트랜잭션은 Commit 되거나 Rollback 된다.

 

트랜잭션의 성질

  • 원자성
    트랜잭션의 연산은 데이터베이스에 모두 반영되든지 전혀 반영되지 않아야 한다.
    트랜잭션 내 모든 명령은 완벽히 수행되어야 하며, 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.
  • 일관성
    트랜잭션이 성공적으로 완료되면 항상 일관성 있는 데이터베이스 상태로 변환된다.
    트랜잭션 수행 전과 후에 시스템 고정요소의 상태는 같아야 한다.
  • 독립성
    하나의 트랜잭션이 실행 중일 경우, 다른 트랜잭션 연산을 수행할 수 없다.
    수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션에서 수행결과를 참조할 수 없다.
  • 지속성
    트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

 

트랜잭션의 연산

  • Commit 연산
    하나의 트랜잭션이 성공적으로 끝났고 데이터베이스가 다시 일관된 상태에 있을 때, 완료되었음을 트랜잭션 관리자에게 알리는 연산
  • Rollback 연산
    하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 일부가 정상적으로 수행되었더라도 해당 트랜잭션의 모든 연산을 취소하는 연산
    해당 트랜잭션을 재시작하거나 폐기한다.

 

트랜잭션의 상태

  • 활동: 트랜잭션이 실행 중인 상태
  • 실패: 트랜잭션 실행에 오류가 발생하여 중단된 상태
  • 철회: 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
  • 부분 완료: 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태
  • 완료: 트랜잭션이 성공적으로 종료되어 Commit 연산을 수행한 상태

'CS Study > 데이터베이스' 카테고리의 다른 글

데이터베이스 정규화  (0) 2022.05.04
데이터베이스란?  (0) 2022.03.02