반응형

병행제어(concurrency control)를 하지 않을 때 발생할 수 있는 문제점

1) 갱신 분실 (lost update)

- 두 트랜잭션이 동시에 같은 데이터를 갱신할 때, 하나의 트랜잭션이 그 데이터를 갱신하기 전에 다른 트랜잭션이 갱신함으로써 한 트랜잭션의 갱신 연산이 무효화됨.

 

2) 모순성 (inconsistency)

- 하나의 트랜잭션이 여러 데이터 갱신 연산을 수행할 때, 일관성 없는 상태의 데이터베이스에서 데이터를 가져옴으로써 데이터의 불일치가 발생하는 것을 의미한다. , 트랜잭션에서 이루어지는 연산대로 전과 후가 일관성이 있어야 하는데, 중간에 다른 트랜잭션의 연산작업으로 인해 일관성이 없게 됨.

 

3) 연쇄 복귀 (cascading rollback)

- 병행 수행되던 둘 이상의 트랜잭션 중 어느 한 트랜잭션에 오류가 발생하여 rollback하면 다른 트랜잭션들도 함께 rollback되는 현상.

그런데, 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능

⇒ rollback을 하고자 하는 트랜잭션이 처음상태로 돌아가려고 해도 다른 트랜잭션에서 이미 연산 작업을 완료하고 떠났기 때문에 복귀 작업 불가능

 

반응형

'Database' 카테고리의 다른 글

트랜잭션 격리 수준(Isolation level) 개념 정리  (0) 2022.12.27

+ Recent posts