정보처리기사/필기

과목3 - 데이터베이스 : 병행제어

공부하고 기록하고 다시보는 블로그 2025. 1. 31. 17:02
  • 병행제어 : 여러 명의 사용자가 동시 데이터베이스 사용시 문제없이 사용하도록하는 것
    • 트랜잭션 : 작업 단위
      • 병행제어 목적
        • 데이터베리스 일관성 유지
        • 데이터베이스 공유 최대화
        • 시스템 활용도 최대화
        • 사용자에 대한 응답시간 최소화
      • 병행제어 기법
        • 다중 버전 기법
        • 최적 병행 수행 
        • 잠금 기법 - Locking
          • 특정 트랜잭션이 데이터베이스를 접근하는 동안 다른 트랜잭션이 접근하지 못하도록함
            • 무결성과 일관성을 유지하도록하기 위함
            • 성능과 동시성 제어에 중요한 역할
          • 예제 : C는 계좌이체가 끝나는 UNLOCK때까지 그대로 데이터를 보여주고, 실시간으로 보여주지는 않음
          • 잠금 단위
            • 잠금 단위가 클수록 관리가 쉽지만, 병행성 수준은 낮아지고 오버헤드가 감소한다. 그리고 데이터베이스 공유도는 감소
            • 잠금 단위가 작을수록 관리가 어렵고, 병행 수준은 높아지고, 오버헤드는 증가한다. 그리고 데이터베이스 공유도는 증가
              • 용어
                • 오버헤드 자원(메모리, 성능)
                • 병행 수준 - 여러 유저가 동시애 사용하는것
                • 데이터베이스 공유
        • 타임스팸프 기법
          • 트랜잭션의 실행 순서를 관리하는 기법
            • 충돌을 방지하고 직렬성을 유지함
            • 은행에서 원금과 이자낼때... 은행마다 선입금 하는 시간이 순차적이고 사용자마다 시간을 보관하여 회수됨(시간 순대로)
      • 회복
        • 로그 기반회복 - 변경사항을 log남기기
          • 즉시갱신
          • 지연갱신
        • 체크포인트 - savepoint