트랜잭션

OwlSuri·2023년 5월 21일
0

트랜잭션

데이터 동시 접근의 문제

트랜젝션의 개념

  1. 데이터베이스를 조작하기 위한 하나의 논리적 단위를 이루는 일련의 연산의 집합
  • 예: 예금인출
  1. 데이터베이스를 사용하여 처리하는 작업을 하나의 묶음으로 인식하여 묶음 단위로 실행되도록 정의한 개념

트랜젝션의 특징

  1. 다수의 연산으로 구성된 트랜잭션이 사용자에게 단일작업처럼 다뤄지도록 ACID 특징을 준수
  2. ACID 특성

    -> 원자성 : all or nothing

트랜젝션 읽기와 쓰기

  1. Read(X) : 데이터베이스에서 데이터 X를 읽고, 트랜잭션이 실행되는 메모리의 변수 X에 값을 저장하는 연산

  2. Write(X) : 트랜잭션이 실행되는 메모리에 있는 변수 X의 값을 데이터베이스에 저장하는 연산

  3. 계좌 A에서 B로 1,000원을 이체하는 트랜잭션

ACID 특성 유지




트랜잭션의 연산자

  1. 트랜잭션 실행의 연산
  • Commit : 트랜잭션 연산의 의해 갱신된 데이터 항목의 값을 데이터베이스에 반영시키고 지속성을 활보하는 연산
  • Rollback : 트랜잭션이 중단되기 이전까지 수행한 연산에의해 걍신된 모든 데이터 항목의 값을 무효화하여 일관성을 확보하는 연산

트랜잭션의 5기자 상태변화

트랜잭션의 동시성

동시성 고려

  1. DBMS는 다수의 사용자가 데이터베이스를 공용으로 사용하기 위한 목적으로 도입
  2. 트랜잭션 동시 실행의 이점
  • 트랜잭션 처리울과 자원 이용율 향상
  • 트랜잭션의 대시간을 감소
  1. 다중 사용자 환경에서 트랜잭션의 동시실행으로 데이터 갱신시, 일관성 훼손 문제가 발생
  2. 동시성 제어
  • 다수의 트랜잭션이 성공적으로 동시에 실행되어도 일관성을 유지할 수 있도록 지원하는 기법

적용 트랜잭션

직렬스케줄

병렬스케줄

직렬 가능 스케줄

  1. 트랜잭션 간 연산 순서를 교환하여 트랜잭션을 직렬 스케줄과 동등하게 변환이 가능한 스케줄
  2. 사용ㄷ한 Read와 Write 연산 교환시 상황에따라 실행결과와 일관성이 훼손되는 현상(충돌)이 발생

충돌 동등

충돌 직렬성

트랜잭션의 회복

회복의 개념

  1. 원자성을 보강하기 위해 트랜잭션 실패시 실행된 모든 연산을 실행 이전의 상태로 복원하는 기법
  2. 회복 불가능한 스케줄

회복가능한 스케줄

비연쇄작 스케줄

profile
기억이 안되면, 기록을 -

0개의 댓글