- 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 |