2015년 5월 2일 토요일

트랜젝션 4가지 속성 ACID!


  • 분명 공부할때 에시드 에시드 에시드 하면서 외웠지만 벙떄림..

  • 원자성(Atomicity)
    • 트랜젝션과 관련된 작업은 하나의 단위이다.
    • 은행에서 이체의 예
      • 1)a의 출금, 2)b의 입금   2가지의 작업
      • 에러의 시점
        • 1)전 : a의 출금이 되지 않는다. b의 입금이 되지 않는다.
        • 1)후, 2)전 : a의 출금이 되었다. b의 입금이 되지 않는다.
        • 2)후 : a의 출금이 되었다. b의 입금이 되었다.
      • 위의 경우 두번째의 경우 중간 단계까지 실행되고 실패하는 일은 없어야한다.
      • 이러한 일을 방지하기 위해 원자성을 보장해야한다. 중간단계에서 실패하는 경우는 없어야한다.
      • 모든 작업은 하나의 단위로 하여 모든 경우 에러, 성공의 결과가 같아야한다.
  • 일관성(Consistency)
    • 트랜잭션 처리 후 모든 데이터베이스의 상태는 이전의 상태와 같아야 한다.
    • 즉. 결과가 데이터베이스의 무결성 제약 등을 위반하거나 모든 상태에 영향을 주어서는 안 된다.
  • 고립성(Isolation)
    • 트랜잭션의 연산은 다른 트랜잭션, 다른 연산작업이 끼어들지 못하게 보장해야한다.
  • 지속성(Durability)
    • 트랜잭션의 연산이 성공적으로 이루어지고 나면 그 결과는 유지되어야 한다.