본문 바로가기
Data/Database

[DB] Transaction과 ACID

by prinha 2020. 12. 16.
728x90
반응형

Transaction (all or nothing)

여러 작업들을 하나로 묶은 단위 또는 연산들로

한 덩어리의 작업들은 모두 실행이되거나, 실행되지 않는다.

트랜잭션을 통하여 데이터의 유효성을 보장한다.


ACID

트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어

 

Atomicity(원자성)

모든 작업이 반영되거나 모두 롤백되는특성

 

Consistency(일관성)

데이터는 미리 정의된 규칙에서만 수정이 가능한 특성을 의미한다. (숫자컬럼에 문자열컬럼 X)

 

Isolation(고립성)

A와 B 두개의 트랜잭션이 실행되고 있을 때, A의 작업들이 B에게 보여지는 정도를 의미한다.

 

Durability(영구성)

한번 반영(커밋)된 트랜잭션의 내용은 영원히 적용되는 특성을 의미한다.


Commit이란 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때,

하나의 트랜잭션이 끝났다라는 것을 알려주기위해 사용하는 연산이다.

이 연산을 사용하면 수행했던 트랜잭션이 로그에 저장되며, 후에 Rollback 연산을 수행했었던 트랜잭션단위로 하는것을 도와준다.

 

Rollback이란 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다.

 

후에 사용자가 트랜잭션 처리된 단위대로 Rollback을 진행할 수도 있다.



출처: https://mommoo.tistory.com/62 [개발자로 홀로 서기]

728x90
반응형