나의 개발일지

[Oracle] 트랜잭션과 동시성 제어 본문

Oracle SQL 엔진

[Oracle] 트랜잭션과 동시성 제어

YoonJuHan 2022. 12. 22. 19:48
트랜잭션
  • Data를 처리하는 하나의 논리적 단위

 

트랜잭션의 4가지 특징, ACID

 

Atomicity
(원자성)
- 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장
Consistency
(일관성)
- 트랜잭션이 성공적으로 완료되면 일관적인 Database 상태를 유지
Isolation
(격리성)
- 트랜잭션 수행 시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장
Durability
(지속성)
- 트랜잭션이 성공적으로 수행되면 영원히 반영

 

동시성 제어 (Concurrency Control)
  • 동시에 실행되는 트랜잭션 수를 최대화하면서도 입력, 수정, 삭제, 검색 시 데이터의 무결성이 유지되도록 하는 것 
  • 동시성 제어가 어려운 이유는 동시성과 일관성이 반비례 관계이기 때문
  • 동시성을 높이려고 Lock의 사용을 최소화하면 일관성이 떨어진다.
  • 일관성을 높이려고 Lock의 사용을 최대화하면 동시성이 떨어진다.

Concurrency
(동시성)
- 다중 사용자가 같은 데이터를 동시에 접근
Consistency
(일관성)
- 자신이 발생시킨 변경사항이 다른 트랜잭션의 변경 사항을 포함하여 일관성 있는 상태로 데이터 제공

 

Comments