데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들
cf) 여기서 작업 단위는 질의어 한 문장이 아니라, 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것이다. ex) select (부모님 P 계좌 잔액 검색, 자식 C 계좌 잔액 검색) -> update (부모님 P 계좌에서 100,000원 인출) -> update (자식 C 계좌에 100,000원 입금) -> select (부모님 P 계좌 잔액 검색, 자식 C 계좌 잔액 검색)
(TCL : Transaction Control Language)
- 트랜잭션 처리가
정상적으로 종료
되어 트랜잭션이 수행한 변경 내용을 데이터베이스에반영
하는 명령어
- 하나의 트랜잭션 처리가
비정상으로 종료
되어 데이터베이스의 일관성이 깨졌을 때 트랜잭션이 행한 모든 변경 작업을취소
하고 이전 상태로되돌리는
연산
- 트랜잭션 내에
ROLLBACK 할 위치
인 저장점을 지정하는 명령어
- 트랜잭션의 연산은 데이터베이스에
모두
반영되도록Commit
되든지 아니면전혀
반영되지 않도록Rollback
되어야 한다. - 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
- 시스템이 가지고 있는 고정 요소는
트랜잭션 수행 전
과트랜잭션 수행 완료 후
의 상태가같아야 한다
.
- 둘 이상의 트랜잭션이
동시에 병행
실행되는 경우 어느 하나의 트랜잭션 실행 중에다른 트랜잭션의 연산이 끼어들 수 없다
. - 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도
영구적으로 반영
되어야 한다.
- 운영체제 장애 등의 서버 장애가 발생하여 그로부터 데이터베이스를 재가동한 때에
장애 직전까지의 커밋 결과를 손실하지 않고 마치는 것
이 가능하다.
참고자료 : 정보처리기사 필기 자료, http://wiki.hash.kr/index.php/트랜잭션, https://d2.naver.com/helloworld/407507