1. 다중 사용자 DBMS 의 동시적 트랜잭션 실행을 조정하는 기술
2. 단일 사용자 일때는 불필요
3. 병행제어는 갱신분실 때분에 필요하다
* 갱신분실
- 트랜젝션이 데이터베이스를 갱신 할 때 사용자가 원하지 않는 결과를 초래하는 것
- 트랜젝션 수행중 다른 트랜젝션이 끼어들어 순차적 수행을 방해하기 때문
- 2개이상의 트랜젝션이 같은 데이터를 공유하여 갱신할때 발생하는 문제
4. 갱신분실 해결 방법
- 차단 방식
1) 차단 (Lock) 방식
- 한 트랜잭션이 데이터 베이스 갱신을 위해 수행중에 다른 트랜젝션이 접근 못하게 함
- 차단 단위 : 데이터베이스> 테이블, 페이지, 레코드, 필드
- 데이터 베이스 성격에 따라 차단 단위가 달라짐
- 차단 수준이 높을 경우 활용도 낮아짐 , 수준이 낮을수록 활용도는 높아지나 그밖에 문제가 발생할 수 있음
2) 차단 유형
- 독점 차단 : 해당 차단이 해제되기 전까지 접근할 수 없다.
- 공유 차단 : 작업중에도 검색은 가능하나 데이터 변경은 불가
3) 2단계 차단
- 확장단계 트랜잭션은 실행에 필요한 모든 차단을 설치, 이단계에서 어떤 차단도 해제해서는 안됨
- 수축단계 : 트랜젝션이 차단을 해제, 새로이 차단을 해제 해서는 안됨, 새로이 차단하게 되면 교착상태 유발
- 시작부터 확장단계로 하여 완전히 차단한 차단단계로 해서 처리가 끝난 후 수축단계로 완전 해제 하여 종료
4) 교착 상태
- 서로 다른 트랜잭션이 차단을 하고 있는 상태에서 교차하여 획득하려 할 때 발생
- 둘중하나가 자신이 차단한 것을 풀지 않는한 진행 불가
- 효율적인 사용이 불가
- 이를 막기위해 시스템 자체에서 처음부터 예방 할 방안을 마련 하던가 하나가 취소가 되도록 우선권 부여
또는 회피 등의 방법이 있다
-타임스탬프(timestamp)
- 교착상태의 미발생과 자원의 효율적인 사용이 가능한 반면 오류 처리한 트랜잭션을 다시 수행해야 함
- 다시 수행하는 트랜잭션이 기억장치 일부를 차지하여 처리속도가 느려지고 저장 단위가 커짐
댓글 없음:
댓글 쓰기