💡DB/Default

[DB,SQLD] 트랜잭션 특징 ( ACID )

뇌 리셋은 기본이지 2024. 3. 5. 22:02
  • Atomicity (원자성)
    • 트랜잭션을 구성하는 연산들이 DB에 ‘모두 반영’되거나 ‘전혀 반영되지 않아야 한다’는 All-or-Nothing을 의미한다.
  • Consistency (일관성)
    • 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
    • 트랜잭션이 COMMIT 되면 DB에 적용된 제약조건( PRIMARY KEY, UNIQUE, NOT NULL 등 ) 위반하지 않는다는 보장을 의미한다.
      • 번호에 UNIQUE 제약이 설정되어 있다고 가정할 때, 사용자가 중복된 번호를 저장하려고 하면 사용자의 번호는 저장할 수 없어야 한다.
    • 트랜잭션의 작업이 애플리케이션에서 의도하고자 한 작동이 정상적으로 일어난다는 보장을 의미한다.
      • 재고가 떨어졌을 때, 더 이상 판매를 할 수 없도록 제한해야 한다.
  • Isolation (독립성,고립성,격리성)
    • 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.
    • 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.
  • Durability (지속성,영속성)
    • 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 즉, 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미하는 것이다.
    • 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다. 트랜잭션은 로그에 모든 것이 저장된 후에만 COMMIT 상태로 간주될 수 있다.

'💡DB > Default' 카테고리의 다른 글

[DB] RDB, RDBMS, SQL, NOSQL 개념정리  (0) 2024.06.24
[DB,SQLD] 무결성 제약 조건  (0) 2024.03.05