1. 트랙잭션(Transaction)

  • 데이터베이스의 상태를 변화시키기 위해 수행하는 작업단위

* 트랜잭션 목적

  • DB 서버에 여러 개의 클라이언트가 동시에 액세스하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 일관성을 망치는 것을 방지하고 할 때 사용

* 트랜잭션 특징

1. Atomicity(원자성)

  • 트랜잭션은 DB에 모두 반영 or 전혀 반영되지 않아야 한다.
  • 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 한다. 어느 하나라도 오류가 발생하면 트랜잭션 전부 취소되어야 한다.

2. Consistency(일관성)

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

3. Isolation(독립성, 격리성)

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

4. Durablility(영속성, 지속성)

  • 트랜잭션의 연산이 성공적이라면 그 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

* 트랜잭션 연산

commit

  • 하나의 트랜잭션이 성공적으로 끝났고 DB가 일관성있는 상태인 것을 알려주기 위해 사용하는 연산

Rollback

  • 하나의 트랜잭션 처리가 비정상적으로 종료되어, 원자성이 깨진 경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다.