본문 바로가기
정보처리기사/데이터베이스 구축

트랜잭션, 병행 제어

by jhwannabe 2023. 7. 19.

트랜잭션

트랜잭션의 정의(Transaction)

  • 하나의 논리적 기능을 수행하기 위한 작업 단위
  • 데이터베이스에서 일어나는 연산의 집합

트랜잭션의 특성

  • 원자성(Atomicity)
    • 완전하게 수행이 완료되지 않으면 전혀 수행되지 않아야 함
    • 연산은 Commit, Rollback을 이용하여 적용 또는 취소로 한꺼번에 완료되어야 함
    • 중간에 하나의 오류가 발생되더라도 취소가 되어야 함
  • 일관성(Consistency)
    • 시스템의 고정 요소는 트랜잭션 수행 전후가 같아야 함
  • 격리성(Isolation, 고립성)
    • 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
  • 영속성(Durability, 지속성)
    • 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

CRUD Matrix

  • 데이터베이스에 영향을 주는 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 도구
  • 업무 프로세스와 데이터 간의 상관관계 분석을 위한 것으로 업무 프로세스와 엔티티 타입을 행과 열로 구분하여 행과 열이 만나는 교차점에 이용에 대한 상태를 표시함

즉각 갱신법

  • 데이터를 갱신하면 트랜잭션이 완료되기 전에 실제 데이터베이스에 반영하는 방법
  • 회복 작업을 위해서 갱신 내용을 별도 Log로 기록해야 함
  • Redo, Undo 모두 사용 가능

트랜잭션의 연산

  • Commit 연산 : 트랜잭션 실행이 성공적으로 종료되었음을 선언함
  • Rollback 연산 : 트랜잭션 실행이 실패하였음을 선언함
  • Recovery 연산 : 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업

트랜잭션의 상태

  • 활동(Active) : 트랜잭션이 현재 실행 중인 상태
  • 부분 완료(Partially Committed) : 트랜잭션이 마지막 처리를 실행한 뒤 데이터베이스에 그 처리 내용을 적용하기 직전의 상태
  • 완료(Committed) : 부분 완료 상태에서 정상적인 트랜잭션 처리가 이루어져 데이터베이스에 트랜잭션 처리를 적용 완료한 상태
  • 실패(Failed) : 트랜잭션 실행 중 오류로 인해 정상적인 처리가 되지 않아 원자성과 일관성에 문제가 발생하여 더 이상 처리가 불가능한 상태
  • 철회(Aborted) : 트랜잭션 처리 실패를 확인하고 처음 상태로 돌아가는 상태

 

병행 제어

병행 제어(Concurrency Control)

  • 동시에 수행되는 트랜잭션들을 일관성 있게 처리하기 위해 제어하는 것
  • 목적
    • 데이터베이스의 공유 최대화
    • 데이터베이스의 일관성 최대화
    • 시스템 활용도 최대화
    • 사용자에 대한 응답 시간 최소화
  • 병행 수행의 문제점 : 갱신 분실, 비완료 의존성, 모순성, 연쇄 복귀가 있음
  • 종류 : 로킹, 최적 병행 수행, 타임스탬프, 다중 버전 기법

타임스탬프

  • 트랜잭션이 DBMS로부터 유일한 타임스탬프(시간 허가 인증 도장)를 부여받음
  • 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법

로킹(Locking)의 특징

  • 로킹(Locking)은 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법
  • 로킹 단위가 커지면 로크의 수가 적어 관리가 쉬워지지만 병행성 수준은 낮아짐
  • 로킹 단위가 작으면 로크의 수가 많아 관리가 어려워지지만 병행성 수준은 높아짐
  • 로킹의 대상이 되는 객체(파일, 테이블, 필드, 레코드)의 크기를 로킹 단위라 함
  • 2단계 로킹(2-Phase Locking)
    • 직렬성은 보장하지만 교착상태 예방은 불가능함
    • 확장 단계와 축소 단계의 두 단계(Phase)가 있음
    • 각 트랜잭션의 로크 요청과 해제 요청을 2단계로 실시함
728x90
반응형

'정보처리기사 > 데이터베이스 구축' 카테고리의 다른 글

보안, 분산 데이터베이스  (0) 2023.07.19
데이터베이스 조작(DML)  (0) 2023.07.19
SQL, DDL, DCL, View  (0) 2023.07.19
관계 대수와 연산자  (0) 2023.07.18
반정규화  (0) 2023.07.18