본문 바로가기

자격증/정보처리기사

[정보처리기사 실기] 트랜잭션과 병행제어

트랜잭션이란?

 

다수의 사용자가 사용하지만 모순이 없는 정확한 데이터를 유지하기 위한 데이터베이스의 관리시스템으로 하나의 논리적기능을 정상적으로 수행하기 위한 작업의 기본단위이다. 

 

특성 설명
원자성(Atomicity) 분해가 불가능한 작업의 최소단위
하나라도 실패할경우 전체가 취소되어야한다.
일관성(Consistency) 트랜잭션이 실행성공 후 항상 일관된 데이터베이스 상태를 보존해야한다.
격리성(Isolation) 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가능한 특성
영속성(Durability) 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성

 

**격일로 보는 (장)원영

 

 

트랜잭션 회복기법

 

기법 설명
로그 기반 회복 기법 지연 갱신 회복 기법(Deferred Update)
트랜잭션이 완료되기 전까지 데이터 베이스에 기록하지 않는 기법

즉각 갱신 회복 기법(Immediate Update)
트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
체크포인트 회복기법
(Checkpoint Recovery)
장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애발생 이전의 상태로 복원시키는 회복 기법
그림자 페이징 회복 기법
(Shadow Paging Recovery)
데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터 베이스 장애 시 이를 이용해 복구하는 기법

 

 

병행제어란?

 

여러 개의 트랜잭션이 실행될 때 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않고 다른 트랜잭션에 영향을 주지 않도록 트랜잭션을 제어하는 것을 의미로 여러 동작이 병행적으로 일어날 때 문제 생기지 않게 제어하는 것

 

 병행 제어의 문제점
  • 갱신 분실(Lost Update)
    먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생
  • 현황 파악오류(Dirty Read)
    트랜잭션의 중간수행결과를 다른 트랜잭션이 참조하여 발생하는 오류
  • 모순성(Inconsitency)두 트랜잭션이 동시에 실행되어 데이터베이스의 관성이 결여되는 오류
  • 연쇄복귀(Cascading Rollback)
    복수의 트랜잭션이 데이터공유시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지못하는 오류

 

병행제어기법

 

기법 설명
로킹
(Locking)
같은 자원을 액새스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적진행을 보장하는 직렬화 기법
데이터베이스, 파일, 레코드는 로킹의 단위가 될 수 있음
로킹 단위가 작아지면 데이터베이스 공유도 증가
로킹 단위가 작아지면 로킹 오버헤드 증가
한꺼번에 로킹할 수 있는 객체의 크기를 로킹단위라고한다.
낙관적 검증
(Optimistic Validation)
트랜잭션이 어떠한 검증도 수행하지않고 일단 트랜잭션을 수행하고, 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법
타임스탬프 순서
(Time Stamp Ordering)
트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기전에 타임스탬프(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
다중버전 동시성 제어
(MVCC ; Multi Version Concurrency Control) 
트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법