본문 바로가기

공부/데이터베이스

트랜잭션

반응형

트랜잭션

데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들



트랜잭션의 특성 - ACID


Atomicity (원자성)

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


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


Consistentcy(일관성)

트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. (예를 들면, 정수는 항상 정수형태로 있어야 한다!)


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


Isolation (독립성, 격리성)

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


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


Durability(영속성, 지속성)

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




Commit Rollabck 연산


Commit : 

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


Rollback:

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



트랜잭션의 상태


Active : 트랜잭션이 실행중

Failed : 오류 발생

Aborted : 비정상적으로 종료되어 Rollabck 연산 수행

Partially Commited : 트랜잭션의 마지막 까지 실행했지만, Commit 연산이 실행되기 직전의 상태

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


회복

트랜잭션들의 처리를 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구시키는 작업이다.


유형

트랜잭션 장애 : 

입력 데이터 오류, 불명확한 데이터, 시스템 자원 유구의 과다 등 트랜잭션 내부의 비정상적인 상황으로 인하여 프로그램 실행이 중지되는 현상


시스템 장애 :

데이터베이스에 손상을 입히지는 않으나 하드웨어 오동작, 소프트웨어의 손상, 교착 상태 등에 의해 모든 트랜잭션의 연손적인 수행에 장애를 주는 현상


미디어 장애 :

저장장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상된 상태


반응형