데이터베이스 트랜잭션(Transaction)

2019. 5. 29. 22:30정보처리 산업기사/데이터베이스

반응형

데이터베이스 트랜잭션(Transaction)

  • 트랜잭션은 '거래'라는 뜻여러 단계의 처리를 하나의 처리처럼 다루는 기능이다.
  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 말한다.
  • 응용 프로그램이나 사용자가 데이터베이스의 내용을 접근하거나 변경하기 위해 실행되는 동작 혹은 그런 동작들의 모임이다.
  • 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위이다.

 

 

데이터베이스에서 요구되는 트랜잭션의 특성들

원자성(Atomicity)

  • 트랜잭션의 연산은 데이터베이스에 모두 방영되거나 반영되지 말아야 한다.
  • 트랜잭션 내의 모든 명령은 반드시 완벽하게 수행되어야 할 것.
  • 모두가 완벽하게 수행되지 않고 어느 하나라도 에러가 발생하면 트랜잭션 전부가 취소되어야 한다.

 

일관성(Consistency)

  • 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
  • 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 완료 후의 상태가 같아야 한다.

 

독립성과 격리성(Isolation)

  • 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
  • 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

 

지속성과 영속성(Drability)

  • 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영이 되어야 한다.

 

 

트랜잭션의 실행 과정

1. 활동 - 트랜잭션이 실행 중이 상태이다.

2. 실패 - 트랜잭션이 실행 중에 오류가 발생하여 중단된 상태

3. 철회 - 트랜잭션이 비정상적으로 종료되어서 Rollback 연상을 수행하여 되돌린다.

4. 부분적 완료 - Commit 연산이 실행되기 직전의 상태로 아직 작성한 것들을 저장하지 않은 상태

5. 완료 - 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태이다.

반응형