[정보처리기사] 데이터베이스 - 트랜잭션

Posted by 앱해피
2015. 9. 28. 16:51 정보처리기사

[트랜잭션의 정의]

 

* 데이터베이스 상태를 변화시키기 위하여 논리적인 기능을 수행하는 하나의 작업 단위.

 

* 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위이다.

 

* 하나의 트랜잭션은 commit 되거나 rollback된다.

 

* 트랜잭션은 일반적으로 회복의 단위가 된다.

 

[트랜잭션의 특징]

 

1. Atomity(원자성)

 

* 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.

 

* 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 에러가 발생하면 트랜잭션 전부가 취소되어야 함.

 

2. Consistency(일관성)

 

* 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함.

 

3. Isolation(고립성, 격리성)

 

* 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음

 

* 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랙잭션에서 수행 결과를 참조할 수 없음

 

4. Durability(영속성, 지속성)

 

* 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 함

 

[Commit, Rollback 연산]

 

* Commit 연산 : 하나의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났고, 데이터베이스가 다시 일관된 상태에 있을 때 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산

 

* Rollback 연산 : 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때, 이 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소(Undo)시키는 것으로, 해당 트랜잭션을 재시작하거나 폐기함.

 

[트랜잭션의 상태]

 

* Active(활동) : 트랜잭션이 실행중에 있는 상태

 

* Failed(장애) : 트랜잭션 실행에 오류가 발생되어 중단된 상태

 

* Aborted(철회) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태

 

* Partially Committed(부분 완료) : 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태

 

* Committed(완료) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태