SMALL

트랜잭션이란?


트랜잭션은 데이터베이스의 상태를 변화시키는 작업 단위를 의미한다.


ATM 출금을 예시를 들어본다.


1. 예금 출금을 누른다.

2. 카드를 넣는다.

3., 비밀번호를 누른다.

4. 출금할 금액을 입력한다.

5. 출금 완료


위와 같은 과정을 트랜잭션이라고 한다.


트랜잭션 특징


트랜잭션 특징에는 ACID 라는 4가지 특징이 있다.


  • 원자성(Atomicity)
원자성은 트랜잭션이 데이터베이스에 모두 반영되거나, 아니면 전혀 반영되지 않아야 한다.

위의 ATM 출금 과정에서 비밀번호를 실패하면 트랜잭션을 실패를 하고, 출금 완료까지하면 트랜잭션을 성공 하는 것이 원자성이다.

  • 일관성(Consistency)
일관성은 트랜잭션의 작업 처리 결과가 항상 일관성 있어야 한다.

위의 ATM 출금을 완료하면 A의 계좌의 남은 잔액과 출금한 금액의 합이 ATM 출금하기전의 잔액과 같아야 하는 것이 일관성이다.

  • 고립성(Isolation)
고립성은 하나의 트랜잭션이 실행 중 일때 변경한 데이터는 트랜잭션이 완료 될 때까지 다른 트랜잭션이 참조할수 없어야 한다.

위의 ATM에서 A의 계좌로 출금 중 일때는 A의 계좌에 대해 관여 할 수 없는 것이 고립성이다.

  • 지속성(Durability)
지속성은 트랜잭션이 완료되면, 영구적으로 데이터가 보존 되어야 한다.

위의 ATM에서 출금 완료를 하면 영구적으로 잔액이 저장되어야 하는 것이 지속성이다.

Commit, Rollback 연산


  • Commit
커밋은 하나의 트랜잭션이 완료되었음을 알려주는 것이다.
ATM 출금이 완료되면 커밋이 되었다라고 말을 한다.

  • Rollback
롤백은 하나의 트랜잭션 처리가 비정상적으로 종료되면 다시 처음 상태로 되돌리는 것이다.
ATM 출금 과정 중 어느 과정에서 에러가 나면 다시 처음 화면으로 돌아 가는 것이다.


LIST

'전공 > 데이터베이스' 카테고리의 다른 글

UNDO와 REDO  (0) 2018.06.14
UNION과 UNION ALL  (0) 2018.06.11
DB정규화  (0) 2018.05.17
조인  (0) 2018.05.02
SQL 인젝션  (0) 2017.11.24

+ Recent posts