Transaction and ACID

  • 하나의 작업단위가 지켜야 할 규칙(ACID)이다.

  • 넓은 의미로는 그냥 하나의 작업단위를 말한다.

ACID 란?

  • Atomicity(원자성) - 모두 성공하거나 모두 실패해야함.

    • 하나의 작업 단위를 여러 작은 작업 단위들로 나눈다면, 하나의 작은 작업 단위 하나라도 실패하면 전체 실패임.

  • Consistency(일관성) - DB에 정의된 규칙(제약조건 등)이 지켜져야함

    • 예로들어서 어떤 작업을 하였더니 개체 무결성 조건이 깨진다던가 하면 안됨.

  • Isolation(격리성) - 여러 트랜잭션이 동시에 실행 될 때 서로 간섭하면 안된다.

    • 동시성 문제 일으키면 안된다고 ㅇㅇ

  • Durablity(지속성)

    • 한번 커밋되면 어떤 일이 있어도 데이터는 보전 되어야함.

    • 뭐 서버가 날아갔다던가... 하는 물리적 문제는 제외, 소프트웨어적/논리적 보장임.

격리 레벨

격리성에는 격리 레벨이라는 것이 있음. 가장 낮은건 그냥 커밋하지 않아도 접근이 가능한 즉, 동시성에 대한 안전을 전혀 보장 할 수 없고 가장 높은건 걍 순차 처리라 처리 효율이 극악임. 대부분 DB는 커밋 후 읽기라는 레벨을 사용한다고 들음. 자세한건 나중에 공부 후 추가하자.

Last updated