[정보처리기사 실기 - 데이터베이스] 트랜잭션(Transaction) :: 소림사의 홍반장!

1. 트랜잭션의 정의

- 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위이다.

- 트랜잭션은 데이터베이스 관리 시스템에서 회복 및 병행 수행 시 처리되는 작업의 논리적 단위이다.

- 하나의 트랜잭션은 정상적으로 종료될 경우 commit 연산이 수행되고, 비정상적으로 종료될 경우 rollback 연산이 수행된다.

 

2. 트랜잭션의 특성

데이터 무결성(Integrity)을 보장하기 위하여 DBMS의 트랜잭션이 갖추어야할 특성

 

(1) 원자성(Atomicity)

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

- 트랜잭션 내의 모든 명령어는 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 그 트랜잭션은 모두 취소되어야 한다.

 

(2) 일관성(Consistency)

- 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

- 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 수행 완료 후의 상태가 같아야 한다.

- 동시에 실행되는 트랜잭션이 없는 고립 상태에서의 트랜잭션 수행은 데이터 베이스의 일관성을 유지하여야 한다.

 

(3) 독립성(Isolation)

- 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 해야 한다.

- 여러 트랜잭션들이 동시에 수행되어도 그 결과는 순차적으로 실행된 결과와 같아야 한다.

- 여러 트랜잭션들이 동시에 실행되더라도 데이터베이스 관리 시스템은 트랜잭션 T1과 T2 각 쌍에 대해 T1이 시작되기 전에 T2가 실행을 끝내든지, 아니면 T1이 끝난 뒤에 T2가 실행되도록 보장해야 한다.


(4) 영속성(Durability)

- 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.

- 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다.

- 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다.

- 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다.


 

3. 트랜잭션의 상태

- 활동(Active) : 트랜잭션이 실행중인 상태

- 실패(Failed) : 트랜잭션 실행중에 오류가 발생하여 중단된 상태

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

- 부분 완료(Partially Committed) : 트랜잭션의 마지막 연산까지 수행하였지만 COMMIT 연산을 실행하기 전의 상태

- 완료(Committed) : 트랜잭션이 성공적으로 완료되어 COMMIT 연산을 수행한 후의 상태

 

 

 

 

[참고] 2011 시나공 정보처리기사 실기 문제집

다른 카테고리의 글 목록

Dev. 관련자격증/정보처리기사 카테고리의 포스트를 톺아봅니다