개발조아

병행제어 본문

CS/데이터베이스

병행제어

개발조아 2021. 10. 20. 22:57
728x90
  • 여러 트랜잭션이 동시에 실행될 때 데이터베이스의 일관성 유지하도록 트랜잭션을 제어하는 것
  • 목적
    • 데이터베이스의 공유도 최대화
    • 시스템 활용도 최대화
    • 응답시간 최소화
    • 단위 시간당 트랜잭션 수 최대화
    • 데이터베이스의 일관성 유지
  • 병행제어가 안될 때 문제
    • 갱신 분실
      • 같은 데이터를 공유하여 갱신할 때 한 트랜잭션이 결과가 무시되는 현상
    • 모순성
      • 같은 데이터를 공유하여 갱신할 때 데이터가 서로 불일치 하는 현상
    • 연쇄 복귀
      • 트랜잭션 중 한 트랜잭션이 Rollback될 때 다른 트랜잭션도 Rollback 되는 현상
  • 로킹(Looking)
    • 데이터의 엑세스를 상호 배타적으로 하는 것
    • 로킹단위에 접근할 때 Lock을 요청해서 Lock가 허락되야 접근해서 데이터 조작 가능
  • 로킹단위
    • 병행제어에서 한꺼번에 로킹할수 있는 데이터 단위
    • 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될수 있음
    • 로킹 단위가 클 수록 로크 수가 작아 관리하기 편하지만 병행제어 수준이 낮아짐
      • 그만큼 동시에 처리할 수 있는 트랜잭션이 적음
      • 오버헤드가 적지만 공유도 저하
    • 로킹 단위가 작을 수록 로크수가 많아 관리하기 어렵지만 병행제어 수준이 ㄴ높아짐
      • 그만큼 동시에 처리할 수 있는 트랜잭션이 많음
      • 오버헤드가 많지만 공유도 증가

'CS > 데이터베이스' 카테고리의 다른 글

키(Key)의 개념 및 종류  (0) 2021.10.20
트랜잭션  (0) 2021.10.20
정규화  (0) 2021.10.20
인덱스(Index)  (0) 2021.10.20
데이터베이스  (0) 2021.10.20
Comments