트랜잭션 with ACID

Ada·2023년 1월 2일
0

자유 공부

목록 보기
10/19

Transaction
쪼갤 수 없는 하나의 처리 행위
DB에서 데이터에 대한 하나의 논리적 실행 단계

1. Atomicity(원자성)

원자는 나눌수도, 줄일 수도 없는 특성을 가지고 있다.
이처럼 데이터 베이스 연산들이 나눌 수도, 줄일 수도 없는 하나의 유닛으로써 취급됨을 의미

모든 연산이 완전히 적용되거나 아무것도 적용되지 않음을 보장하는 특성

예시: 은행 송금 과정 중간에 오류 발생 시 큰 문제

2. Consistency (일관성)

트랜잭션이 제약조건, cascades, triggers를 포함한 정의된 모든 조건에 맞게 데이터의 값이 변경됨을 의미

트랜잭션이 성공적으로 수행된 후 데이터 베이스가 일관성 있는 상태를 유지해야 함

트랜잭션의 작업이 애플리케이션에서 의도하고자 한 작동이 정상적으로 일어난다는 보장을 의미

3. Isolation (독립성)

트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미

DB에서 다수의 유저들이 같은 시간에 같은 데이터에 접근 하였을 때 수행중인 트랜잭션이 완료될 때 까지 다른 트랜잭션의 요청을 막음으로써 데이터가 꼬이는 것을 방지해 줄 수 있는 것

4. Durability (지속성)

커밋된 연산이 영구적으로 지속됨을 보장하는 속성
즉, 시스템 문제 등으로 인해 오류가 발생하더라도 수행된 트랜잭션이 영원히 반영되어야 한다.

지속성은 로그를 이용하여 구현되는데, 커밋의 성능을 위해 지속성이 일부분 포기 되는 방식도 존재한다.

profile
백엔드 프로그래머

0개의 댓글