트랜잭션 제어의 필요성 - 정상적인 상태, 비정상적인 상태

CODEDRAGON Development/Database

반응형


 

트랜잭션 제어의 필요성

·       트랜잭션에 4개의 SQL문장이 정의되어 있습니다.

·       트랜잭션의 묶음인 4개의 모든 문장이 정상적으로 수행 되어야만 데이터베이스 내에 원하는 결과가 반영됩니다.

·       그러나 2번째 작업단위의 SQL문장까지만 정상적으로 수행되고 3 작업의 SQL문장이 수행되는 도중에 프로그램이 중단되거나 하드웨어 이상이나 고장이 발생했다면 이제까지 작업한 2번까지의 모든 작업이 취소가 되면서 트랜잭션 작업 데이터 베이스 상태로 돌아가게 됩니다.

·       오라클에서는 이러한 트랜잭션을 제어 하기 위한 명령어를 제공하고 있습니다.

 

 

 

 

 

트랜잭션 수행중 오류가 경우

부모님 계좌에서 자식 계좌로 용돈을 1,000,000 이체하는 하나의 트랜잭션에 들어가는 4개의 SQL문이 있습니다.

전체 4 작업 논리적 단위로 어떤 부분의 작업이 완료되었다 하더라도, 다른 부분의 작업이 완료되지 않을 경우 전체 취소됩니다. 이때, 작업이 완료되는 것을 커밋(commit)이라고 하고, 작업이 취소되는 것을 롤백(rollback)이라고 합니다.


정상적인 상태

   

비정상적인 상태