솜은 코튼

[DB] 트랜잭션 본문

DB

[DB] 트랜잭션

솜.코 2023. 6. 2. 15:22

 

트랜잭션

.

 

 

트랜잭션은 하나의 논리적 기능을 수행하기 위한 작업의 단위로서

데이터베이스의 일관된 상태를 또 다른 일관된 상태로 변환시킨다.

 

 

트랜잭션이 가져야 될 특성은 아래와 같다.

 

원자성

 

자기의 연산을 전부 또는 전무 실행만이 있지 일부 실행으로 기능을 갖는 것은 아니다.

 

일관성

 

실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

 

격리성

 

트랜잭션이 실행 중에 있는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다.

 

영속성

 

실행을 성공적으로 완료하면 그 결과는 영속적이다.

 

 

트랜잭션 실행의 시작에서부터 성공적으로 마칠 때까지

한 단위로 해서 일관성을 검사하는 것이 원자성이다.

 

원자성을 위한 연산은 'Commit(완료)''Rollback(복귀)' 연산이 있다.

 

Commit 연산을 수행하면 트랜잭션 실행이 성공적으로 종료되었음을 선언하는 것이고,

Rollback 연산을 수행하면 트랜잭션의 실행이 실패했음을 선언하는 것으로 원상 복귀시켜야 한다.

 

 

트랜잭션 상태

.

 

데이터베이스를 접근하여 갱신 연산을 수행하는 트랜잭션은 다섯 가지 상태 중의 하나에 속한다.

 

 

활동  트랜잭션이 실행을 시작하였거나 실행 중인 상태
부분 완료  트랜잭션이 마지막 명령문을 실행한 직후의 상태
실패  정상적 실행을 더 이상 계속할 수 없어서 중단한 상태
철회  트랜잭션이 실행에 실패하여 Rollback 연산을 수행한 상태
완료  트랜잭션이 실행을 성공하여 Commit 연산을 수행한 상태

 

Rollback 연산을 실행하고 철회 상태의 트랜잭션으로 종료된다.

이때 취할 수 있는 조치는 다음과 같다.

 

1. 트랜잭션의 재시작

 

하드웨어나 시스템 소프트웨어 오류로 인해 철회된 트랜잭션은

다시 새로운 트랜잭션으로 취급되어 재시작

 

2. 트랜잭션의 폐기

 

트랜잭션의 내부적 오류로 재작성을 해야 하든지

원하는 데이터가 데이터베이스에 없는 경우에 취하는 조치이다.

 

 

 

 

 

 

 

 

* 해당 글은 '데이터베이스 시스템' 책을 참고하여 작성하였습니다. 출처: 데이터베이스 시스템 (이석호)

* 참고 사이트: https://velog.io/@bsjp400/