트렌젝션의-성질(ACID)

Sep 18, 2017


[ACID]

-Atomicity (원자성)*

한번의 트렌젝션은 온전히 실행되거나, 아예 실행되지 않아야 한다.

commit; rollback;

-Consistency (무결성)

트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.

무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.

트랜잭션 실행 이전과 이후 일관성이 유지 되어야 한다

*참조 무결성 위반 에러

(referential, consistency, violation, error)

-Isolation (고립성)*

2개의 트렌젝션이 서로에게 영향을 받지 않게 한다.

ex) 임금 인상, 임금 합계 두 개의 트렌젝션이 동시에 진행될 경우.

1) 임금 합계를 구하는 명령어 실행 중 임금 인상 명령이 개입할 때 동시에 명령이 진행될 때 한 개의 명령에 개입하지 못하게 하는 기법 = LOCK

(update시 복사본을 떠 놓고 update 진행 후 update 완료 후 덮어쓴다.)

2) 반쯤 업데이트 되다가 임금 인상된 데이터로 갈아타는 기법 = SNAPSHOT

-Durability(지속성)

한번 저장된 DB는 날라가지 않게 한다.