본문 바로가기
정보처리기사 실기/데이터베이스

SQL - 트랜잭션

by 밍구몬 2018. 9. 12.

트랜잭션

 

  • 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로 작업의 단위
  • 데이터베이스 관리 시스템에서 회복 병행 수행 처리되는 작업의 논리적 단위
  • 하나의 트랜잭션은 정상적으로 종료될 경우 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