트랜잭션
Updated:
Transaction
- 의미 : 한번에 수행되어야할 데이터베이스의 READ와 Write 연산을 수행하는 단위.
“트랜잭션이 시작되면…”</br> –읽기 –> 수정—> 삭제 –> … 종료
트랜잭션 상태 및 상태설명
|구분|설명| |:–:|:–:| |활동|초기상태 , 트랜잭션이 실행을 시작하였거나 실행중인 상태| |부분완료|마지막 명령문이 실행된 후에 가지는 상태 , Commit 직전상태| |실패|정상적인 실행이 더이상 진행될 수 없을때 실행중단 상태| |철회|트랜잭션 실행에 실패하여 취소되고 시작 전 상태로 rollback연산을 수행한 상태| |완료|트랜잭션이 성공적으로 완료후 Commit연산을 수행한 상태|
트랜잭션 특성
트랜잭션을 보장하기위해서는 ACID특성을 충족해야함.
- Atomicity : 트랜잯션의 수행은 성공하든지 실패해야 한다.
- Consistency : 트랜잭션은 데이터의 일관성을 보장해야 한다.
- Isolation : 각 트랜잭션은 동시에 수행되지 않고 , 각각 고립되어 실행되어야 한다.
- Durability : 트랜잭션이 성공쩍으로 완료 (Commit)된 뒤 그 데이터는 유실되면 안된다.
트랜잭션의 연산
철회된 트랜잭션의 연산
|연산|설명| |—|—| |트랜잭션 재실행|철회된 트랜잭션을 다시 새로운 트랜잯션으로 취급하여 재시작 철회된 트랜잭션의 내부적인 논리 오류가 아니라 HW , SW 오류인경우| |트랜잭션 폐기|철회된 트랜잭션을 폐기하는 방법 , 트랜잭션 철회원인이 트랜잯션의 내부적 논리 오류인 경우|
트랜잭션의 정상 종료 연산
|연산|설명| |—|—| |Commit|Data변경 내용을 DB에 저장 , 새로운 트랜잭션은 commit문 다음 시작 가능| |프로그램 정상종료|새로운 트랜잭션은 시작 불가 , 변경 저장을 COmmit연산과 동일한 처리|
트랜잭션의 비정상 종료 연산
|연산|설명| |—|—| |Commit|Data변경 내용을 DB에 저장 , 새로운 트랜잭션은 commit문 다음 시작 가능| |RollBack|해당 트랜잭션을 중지 , 폐기하고 ,DB내용을 Rollback하며 새로운 트랜잭션은 Rollback문 다음 시작 가능.|
트랜잭션 처리시 고려사항 및 활용
- 트랜잭션의 동시성을 구현해 처리율과 시스템 이용률 높이고 , 대기시간 줄임.
- 트랜잭션 수행기간을 최대한 짧게 수행.
- 용량산정 근거자료로서 이용
- 디스크 구성에 이용
Leave a comment