[DB] 트랜잭션(Transaction)

turtleJ·2022년 5월 20일
0

Computer Science

목록 보기
7/7

트랜잭션이란?

트랜잭션이란 '쪼갤 수 없는 업무 처리의 최소 단위'를 말한다.

트랜잭션은 은행 ATM이나 데이터베이스 등의 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위이다.

예를 들어, 은행의 경우 A라는 사람이 B라는 사람에게 돈을 1000원 이체 했다고 치자. 이때 A가 1000원을 이체하고 B의 계좌에 1000원이 입금되기 까지가 트랜잭션이다. 이 거래는 더 이상 쪼갤 수가 없는 하나의 트랜잭션이 된다. 만약 A가 돈을 보냈는데 B가 돈을 받지 못헀다면 그 거래는 성립되지 않는다. 이처럼 A와 B 사이의 계좌이체 거래는 더 이상 쪼개어질 수 없으며 이런 거래의 최소 단위를 트랜잭션이라고 한다.

데이터베이스에서의 트랜잭션

데이터베이스에서 트랜잭션은 서버에 여러 개의 클라이언트가 동시에 접속하는 등의 복잡한 처리 과정에서 발생할 수 있는 데이터 부정합을 방지하기위해 사용한다.

부정합을 방지하기 데이터베이스에서는 논리적 기능을 수행하기 위한 작업단위로 트랜잭션을 구성한다.

TCL(Transaction Control Language)인 COMMIT ROLLBACK 명령어를 이용하여 논리적 최소 작업단위인 트랜잭션을 처리한다.

트랜잭션의 특징

1. 원자성(automicity)

: 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다.(all or nothing)

2. 일관성(consistency)

: 트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안 된다.

3. 고립성(isolation)

: 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다.

4. 지속성(durability)

: 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.

트랜잭션 연산

COMMIT

  • 논리적 최소 작업단위를 테이블에 영구적으로 반영하는 것.
  • commit 후에는 변경사항이 DB에 반영되며 되돌릴 수 없다.

ROLLBACK

  • commit하기 전에는 변경사항들을 취소할 수 있는데 이때 사용하는 연산이 rollback이다.

SAVEPOINT

  • SAVEPOINT를 지정해 주면 ROLLBACK시 모든 변경사항이 사라지는 것이 아니라 SAVEPOINT까지의 트랜잭션만 롤백한다.

다음 명령어를 통해 SAVEPOINT를 지정할 수 있다.

SAVEPOINT SP1;

SAVEPOINT까지 ROLLBACK한다.

ROLLBACK TO SP1;
profile
꾸준함을 무기로 성장하는 개발자가 되겠습니다.

0개의 댓글