320x100
320x100

트랜잭션

- 인가받지 않은 사용자로부터 데이터를 보장받기 위해 DBMS가 가져야하는 특성

 : 데이터베이스 시스템에서 하나의 논리적 기능을 적상적으로 수행하기 위한 작업의 기본 단위

 

 

 

트랜잭션의 특성

- 원자성 (Autonomy)

 : 연산 중 하나라도 실패할 경우 전체를 취소

 : commit / roll back / 회복성 보장

 

- 일관성 (Consistency) <병행제어>

 : 트랜잭션 실행완료 후 데이터의 상태가 변하지 않아야함 (ex) 데이터타입 등..)

 : 무결성 제약 조건 / 동시성 제어

 

- 격리성 (Isolation)

 : 트랜잭션 실행 중 연산의 중간결과를 다른 트랜잭션에서 접근 불가

ㆍ고립화 수준

  : Read Uncommitted (연산중인 데이터에 대한 읽기 허용 / 연산 불허)

  : Read Committed (연산 및 커밋이 완료된 데이터에 대해서만 읽기 허용)

  : Repeatable Read (데이터를 읽는 동안 종료시까지 해당 데이터에 대한 갱신 및 삭제 제한)

  : Serializeable Read (특정 데이터 영역을 순차적으로 읽을때 해당 데이터의 전체 영역에 대한 접근 제한)

 

- 영속성 (Durability) <회복기법>

 : 성공이 완료된 트랜잭션의 결과는 영속적으로 적용

 

 

 

 

https://coding-factory.tistory.com/226

트랜잭션의 상태변화

- 활동 (Active)

 : 트랜잭션이 실행중인 상태

 

- 부분 완료 (Partially Committed)

 : 마지막 연산 실행후 commit하기전 상태

 

- 완료 (Committed)

 : Commit후 트랜잭션이 종료되어 DB에 적용된 상태

 

- 실패 (Failed)

 : 트랜잭션 실행 중 오류로 중단된 상태

 

- 철회 (Aborted)

 : 트랜잭션이 비정상적으로 종료되어 RollBack을 수행한 상태

 

 

 

트랜잭션 제어언어 (TCL, Transaction Control Language)

- 명령어

ㆍCOMMIT

  : 트랜잭션 결과를 영구적으로 저장

 

ㆍROLLBACK

  : 트랜잭션 연산을 무효

 

ㆍCHECKPOINT

  : Rollback 사용시기 설정

 

 

 

병행제어 (일관성 주요기법)

- 데이터베이스의 일관성 유지를 위한 상호작용 제어 기법

 

- 목적

 : DB 공유 최대화 / 시스템 활용도 최대화 / DB일관성 유지 / 응답시간 최소화

 

- 병행제어 미 보장시 문제점

ㆍ갱신손실 (Lost Update)

  : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸때 발생하는 오류

 

ㆍ현황 파악 오류 (Dirty Read)

  : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조

 

ㆍ모순성 (Inconsistency)

  : 두 트랜잭션의 동시실행으로 인한 DB 일관성 결여

 

ㆍ연쇄복귀 (Casacading Rollback)

  : 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소할 경우 이미 처리된 부분에 대한 취소 불가

 

 

 

병행제어 기법

- 로킹 (Locking)

 : DB의 일관성과 무결성 유지를 위한 직렬화 기법

ㆍ로킹단위 (한꺼번에 로킹할 수 있는 객체의 크기)

  : DB / File / Record 

ㆍ로킹단위 클수록 공유도 및 오버헤드 감소

 

- 낙관적 검증

 : 트랜잭션 종료시에 검증을 수행한 뒤 DB에 반영

 

- 타임 스탬프 순서 (Time Stamp Ordering)

 : 트랜잭션 수행전 트랜잭션과 갱신 데이터에 대해 타임 스탬프를 부여하여 부여된 시간에 따라 수행

 

- 다중버전 동시성 제어 (MVCC, Multi Version Concurrency Control)

 : 타임스탬프를 비교하여 직렬 가능성이 보장되는 버전을 채택

 

 

 

회복기법 (영속성 주요 기법)

- 손상된 DB를 복구시키는 작업

 

- 로그기반 회복기법

ㆍ지연 갱신 회복 기법

  : 완료되기 전까지 기록 금지

 

ㆍ즉각 갱신 회복 기법

  : 수행 중 갱신 결과를 바로 반영

 

- 체크포인트 회복 기법

 : 장애 발생시 검사점 이후 처리된 트랜잭션에 대해서만 복원

 

- 그림자 페이징 회복 기법

 : 수행시 복제본을 생성하여 이를 이용해 복구 

 

 

 

 

 

 

 

 

Refference

https://coding-factory.tistory.com/226

300x250
728x90