모각코/뉴진주택

[뉴진주택] 6회차

카르노도 2024. 2. 7. 14:49

Transaction

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

 

 

ex) 은행계좌 송금 작업

Transaction 수행과정

  • A계좌에서 B계좌로 10,000원이 이체되는 과정
    1. 데이터베이스에서 A의 은행계좌잔고 값을 메인 메모리로 읽어옴
    2. 읽어온 A의 잔고 값에서 10,000 을 감소
    3. 데이터베이스에서 B의 은행계좌잔고 값을 메인 메모리로 읽어옴
    4. 읽어온 B의 잔고 값을 10,000 증가
    5. A의 계좌 값을 데이터베이스에 기록
    6. B의 계좌 값을 데이터베이스에 기록

 

Transacion 속성

트랜잭션은 작업의 안전성과 데이터의 무결성을 유지시키기 위해 4가지 성질을 가지고 있다.

  • 원자성
  • 일관성
  • 고립성
  • 지속성

원자성

트랜잭션의 수행결과는 데이터베이스에 전부 반영되거나, 전부 반영되지 않아야 한다.

 

일관성

트랜잭션 수행 후 데이터의 모델은 모든 제약조건을 만족해야 한다.

 

고립성

트랜잭션 수행 시 다른 트랜잭션이 영향을 미치지 않아야 한다.

 

영속성

트랜잭션의 성공결과는 장애 발생 후에도 변함없이 보관되어야 한다.