dev/✍️ computer science
[Database] Concurrent Control이란?
wugawuga
2023. 9. 19. 00:19
Concurrency control 이란?
- DBMS 에서 여러 트랜잭션의 동시성을 제어하기 위해 도입된 기능
- 각 트랜잭션의 독립성과 정확성을 보장하기 위해 Concurrency control 을 해야한다
- 대표적인 방법으로 트랜잭션 스케줄링!!
Serial schedule 이란?
- 한 번에 하나의 트랜잭션만 실행된다
- 아래의 그림을 보면 트랜잭션 A 가 끝난 후 B 가 시작되는 것을 볼 수 있다
Non Serial schedule 이란?
- 같은 시간 동안 여러 트랜잭션이 실행된다
- 복잡한 트랜잭션끼리 실행될 경우 다른 결과가 나올 수 있다
Conflict of two operations
세 조건을 만족해야 한다
- 서로 다른 트랜잭션
- 같은 데이터에 접근
- 최소 하나는 write operation
Conflict of two operations 는 순서가 바뀌면 결과도 바뀐다
Conflict equivalent for two schedules
두 조건을 만족해야 한다
- 두 schedule 은 같은 트랜잭션
- 어떤 Conflicting operations 순서가 양쪽 모두 동일
Conflict serializable 이란?
- serial schedule 과 conflict equivalent 인 경우
Non Serial schedule 로 실행하고 싶다면?
- conflict serializable 한 non serial schedule 을 실행