Transaction

HakJun·2022년 11월 22일
1

Database

목록 보기
16/16
  1. 개념
  • 논리적인 데이터단위의 수행절차를 실행하는 프로그램
  • read-only transaction / read-write transaction
  1. writing에서 문제 발생 가능
  • cpu가 건드릴 수 있는 곳은 main-memory, cpu 가 접근할수 없는 곳은 secondary memory(disk)
  • 디스크에 해당되는 데이터를 버퍼로 가져와서 프로그램 영역으로 로딩해준다.
  • 우연히 버퍼에 x가 존재하면 바로 work area로 읽어온다. 수행시간이 빠름
  • write는 출력버퍼로 프로그램 영역에 있는 데이터를 옮겨주는 것
  • 출력은 on-demand가 아닌 os가 결정을 해서 disk로 나간다. 언제 실제로 disk로 데이터가 전송될지 모른다.
  • EX)문제생길 수 있는 경우, 출력 실행하고 전원을 종료한 경우, 아직 전송되지 않았는데 종료되서 출력이 되지않는 경우가 생길 수 있다.
  1. 동시성 제어가 필요한 이유*
  • Lost update
    - 업데이트값이 누락된 경우
  • Temporary update or Dirty read : Cascading rollback
    - 확정되지 않은 값을 읽고 다른구간에서 롤백해야 할 경우가 생기면, 문제가 발생한다.
  • Incorrect summary
    - 중간에 합계를 계산하는 동안 값의 총합이 잘못되는 경우
  • Unrepeatable read
    - 프로그램을 업데이트 한 경우가 없는데 같은 데이터의 값이 변경되어 있는경우 -> 여러명이 작업을 수행할 경우 발생할 수 있음
  1. abort
  • 프로그램 한 트랜잭션 연산중 fail이 발생하면 undo작업이 실행된다.
  • undo : 원상태로 되돌려놓는 작업(roll back)
  • "all or nothing"

    ㄴ트랜잭션의 상태변화: 트랜잭션이 종료되면 부분적 커밋상태에서
    완전히 커밋되어 종료되고,fail상태가 발견되면 abort작업을 통해 rollback이 된다.
  1. ACID : 트랜잭션의 특성
  • Atomicity
    - all or nothing
  • Consistency perservation
    -트랜잭션의 수행된 결과가 db의 일관성을 유지해야한다.
  • Isolation
    -수행하는 동안에는 다른유저에 의해 방해받지 않아야 한다.->concurrency control의 역할
  • Durability or permanency
    - 한번 커밋,저장,수행이 된 연산은 취소되면 안된다.
profile
백엔드 & 전공 공부

0개의 댓글