개발로 자기계발
728x90

설명

트랜잭션의 모든 쿼리들은 성공해야만 한다.

하나의 쿼리가 실패한다면, 트랜잭션의 이전 성공한 쿼리들은 즉시 롤백

트랜잭션의 커밋 이전에 데이터베이스가 다운된다면, 트랜잭션의 이전 성공한 쿼리들은 즉시 롤백

 

내용

원자성을 구현하는 방법에는 여러 가지가 있다. 가장 일반적인 방법은 로깅과 체크포인트를 사용하는 것이다.

구분 설명
Logging 트랜잭션과 관련된 모든 변경 사항을 로그에 기록한다.

트랜잭션이 실패할 경우, 로그를 사용하여 변경 사항을 롤백하고 데이터베이스를 이전 상태로 복원할 수 있다.
Checkpoints 주기적으로 또는 특정 조건에서 데이터베이스의 현재 상태를 안전한 저장 위치에 기록한다.

시스템 장애 발생 시, 최근 체크포인트부터 복구 과정을 시작하여 시간과 자원을 절약할 수 있다.

 

정리

하나의 트랜잭션이 여러 작업을 포함할 때, 그 작업들이 모두 완전히 수행되거나 아예 수행되지 않도록 보장하는 특성을 의미 하며,

"All or Nothing" 원칙에 기반하여, 트랜잭션이 중간에 실패하더라도 데이터베이스의 일관성을 유지한다.

 

트랜잭션 내의 모든 연산이 성공적으로 완료되어야만 최종적으로 데이터베이스에 반영하고, 어떤 이유(예: 시스템 오류, 전력 중단, 데이터 검증 실패 등)로든 트랜잭션이 실패하면 모든 작업이 취소되고 데이터베이스는 트랜잭션 실행 이전 상태로 복구한다.

 

이러한 처리는 데이터베이스의 무결성을 보장하는 데 필수적이다.

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)