트랜잭션
- 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로 작업의 단위
- 데이터베이스 관리 시스템에서 회복 및 병행 수행 시 처리되는 작업의 논리적 단위
- 하나의 트랜잭션은 정상적으로 종료될 경우 COMMIT연산이 수행되고,
비정상적으로 종료될 경우 ROLLBACK 연산이 수행된다.
COMMIT
- 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산.
- 내용을 변경한 트랜잭션이 완료되면 그 트랜잭션에 의해 데이터베이스는 새롭게 일관된 상태로 변경되며, 이 상태는 시스템에 오류가 발생하더라도 취소되지 않는다.
ROLLBACK
- 하나의 트랜잭션 처리가 비정상으로 종료되어 데이터베이스의 일관성이 깨졌을 때 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산.
- ROLLBACK 연산 시 해당 트랜잭션은 받았던 자원과 잠금을 모두 반환하고, 재시작 되든지 폐기된다.
트랜잭션의 특성
- 트랜잭션은 무결성을 보장하기 위하여 DBMS의 트랜잭션이 갖추어야 할 특성으로
원자성, 일관성, 독립성, 영속성이 있다.
원자성(Atomicity)
- 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
- 트랜잭션 내의 모든 명령어는 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 그 트랜잭션은 모두 취소되어야 한다.
일관성(Consistency)
- 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
- 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 수행 완료 후의 상태가 같아야 한다.
- 동시에 실행되는 트랜잭션이 없는 고립 상태에서의 트랜잭션 수행은 데이터베이스의 일관성을 유지하여야 한다.
독립성(Isolation)
- 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 해야 한다.
영속성(Durability)
- 트랜잭션의 실행이 성공적으로 실행 완료된 후에는 시스템에 오류가 발생하더라도 트랜잭션에 의해 변경된 내용은 계속 보존되어야 한다.
- 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.
'정보처리기사 실기 > 데이터베이스' 카테고리의 다른 글
SQL - 튜닝 (0) | 2018.09.12 |
---|---|
SQL - 병행제어 (0) | 2018.09.12 |
SQL - 정규화 (0) | 2018.09.12 |
SQL - 함수적 종속 (0) | 2018.09.12 |
SQL - 이상(Anomaly) (0) | 2018.09.12 |