반응형
병행제어(concurrency control)를 하지 않을 때 발생할 수 있는 문제점
1) 갱신 분실 (lost update)
- 두 트랜잭션이 동시에 같은 데이터를 갱신할 때, 하나의 트랜잭션이 그 데이터를 갱신하기 전에 다른 트랜잭션이 갱신함으로써 한 트랜잭션의 갱신 연산이 무효화됨.
2) 모순성 (inconsistency)
- 하나의 트랜잭션이 여러 데이터 갱신 연산을 수행할 때, 일관성 없는 상태의 데이터베이스에서 데이터를 가져옴으로써 데이터의 불일치가 발생하는 것을 의미한다. 즉, 트랜잭션에서 이루어지는 연산대로 전과 후가 일관성이 있어야 하는데, 중간에 다른 트랜잭션의 연산작업으로 인해 일관성이 없게 됨.
3) 연쇄 복귀 (cascading rollback)
- 병행 수행되던 둘 이상의 트랜잭션 중 어느 한 트랜잭션에 오류가 발생하여 rollback하면 다른 트랜잭션들도 함께 rollback되는 현상.
그런데, 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능
⇒ rollback을 하고자 하는 트랜잭션이 처음상태로 돌아가려고 해도 다른 트랜잭션에서 이미 연산 작업을 완료하고 떠났기 때문에 복귀 작업 불가능
반응형
'Database' 카테고리의 다른 글
트랜잭션 격리 수준(Isolation level) 개념 정리 (0) | 2022.12.27 |
---|