TIL 21.1.4

Park Choong Ho·2021년 1월 6일
0

21/1/4 TIL

Transaction ACID

A: Atomicity

  • 원자성(Atomicity)은 트랜잭션에 있어 관련 작업들을 부분적으로만 실행하고 중단되지 않음을 의미한다고 생각합니다. 예를 들어, 은행에서 계좌에 돈을 송금한다고 했을 때 내가 상대방 계좌에 돈을 송금하는 작업은 성공하고, 상대방이 돈을 받는 작업은 실패한다고 가정해 봅시다. 이러한 트랜잭션을 원자성을 보장하지 못한 트랜잭션입니다. 트랜잭션은 앞선 두 작업이 모두 성공함을 보장해야하고 둘 중 하나라도 실패한다면 나머지 작업도 일어나지 않음을 보장해야 합니다.

C: Consistency

  • 일관성(Consistency)은 만약 어떤 트랜잭션이 data의 구조를 깨는, 예를 들어 숫자 column에 문자를 집어 넣는 트랜잭션이 있다면 이를 허용하지 않음을 의미한다고 생각합니다. 데이터 베이스의 상태를 계속 유효하게 유지하는 transaction이 일관성을 유지한다고 할 수 있습니다.

I: Isolation

  • 고립성(Isolation)은 특정 transaction 수행시 다른 transaction이 끼지 못하게끔 보장하는 것을 의미합니다. 예를 들어, 송금 중에는 그 두 계좌의 잔액을 확인할 수 없음을 의미한다고 생각합니다.

D: Durability

  • 지속성(Durability)는 transaction이 수행되었다면 이것이 데이터베이스에 영원히 반영되어야함을 뜻합니다. 지속성은 이해가 조금 되지 않는데 이해한 바를 적어보면 "성공한 트랜잭션은 데이터베이스에 반영되고 로그에 기록되어야 하며 만약 어떤 트랜잭션을 취소하고 싶다면 이 트랜잭션이 성공하기전 상태로 데이터 베이스를 롤백해야한다"로 이해했습니다.
profile
백엔드 개발자 디디라고합니다.

0개의 댓글