[정처기 필기] 트랜잭션, 트랜잭션의 특성, 병행제어, 로킹, 타임스탬프
by 볼빵빵오춘기트랜잭션
- 하나의 논리적 기능을 수행하기 위한 작업 단위이다.
- DB에서 일어나는 연산의 집합이다.
트랜잭션의 특성
원자성(Atomicity)
- 완전하게 수행이 완료되지 않으면 전혀 수행되지 않는다.
- 연산은 Commit, Rollback을 이용하여 적용 또는 취소로 한꺼번에 완료되어야 한다.
- 중간에 하나의 오류가 발생되더라도 취소가 되어야 한다.
일관성(Consistency)
- 시스템 고정 요소는 트랜잭션 수행 전후가 같아야 한다.
격리성(Isolation, =고립성)
트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 한다.
영속성(Durability, =지속성)
트랜잭션의 완료 결과가 데이터베이스에 영구히 기억된다.
CRUD Matrix
- DB에 영향을 주는 create, read, update, delete 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랙잭션을 분석하는 도구이다.
- 업무 프로세스와 데이터 간의 상관관계 분석을 위한 것으로 업무 프로세스와 엔티티 타입을 행과 열로 구분하여 행과 열이 만나는 교차점에 이용에 대한 상태를 표시한다.
즉각 갱신법
- 데이터를 갱신하면 트랜잭션이 완료되기 전에 실제 데이터베이스에 반영하는 방법이다.
- 회복 작업을 위해서 갱신 내용을 별도 Log로 기록해야 한다.
- Redo, Undo 모두 사용 가능하다.
트랜잭션의 연산
- commit 연산 : 트랜잭션이 실행이 성공적으로 종료되었음을 선언한다.
- rollback 연산 : 트랜잭션 실행이 실패하였음을 선언한다.
- recovery 연산 : 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업이다.
트랜잭션의 상태
- 활동(Active) : 트랜잭션이 현재 실행 중인 상태를 말한다.
- 부분 완료(Paritally Committed)
트랜잭션이 마지막 처리를 실행한 뒤 데이터베이스에 그 처리 내용을 적용하기 직전의 상태이다. - 완료(Committed)
부분 완료 상태에서 정상적인 트랜잭션 처리가 이루어져 데이터베이스에 트랜잭션처리를 적용 완료한 상태이다. - 실패(Failed)
트랜잭션 실행 중 오류로 인해 정상적인 처리가 되지 않아 원자성과 일관성에 문제가 발생하여 더 이상 처리가 불가능한 상태이다. - 철회(Aborted)
트랜잭션 처리 실패를 확인하고 처음 상태로 돌아가는 상태이다.
병행제어(Concurrency Control)
- 동시에 수행되는 트랜잭션들을 일관성 있게 처리하기 위해 제어하는 것이다.
- 목적
- 데이터베이스의 공유를 최대화한다.
- 데이터베이스의 일관성을 최대화한다.
- 시스템 활용도를 최대화 한다.
- 사용자에 대한 응답 시간을 최소화한다.
- 병행 수행의 문제점 : 갱신 분실, 비완료 의존성, 모순성, 연쇄 복귀
- 종류 : 로킹, 최적 병행 수행, 타임스탬프, 다중 버전 기법
타임스탬프
- 트랜잭션이 DBMS로부터 유일한 타임스탬프(시간 허가인증 도장)을 부여받는다.
- 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법이다.
로킹(Locking)
- 로킹은 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법이다.
- 로킹 단위가 커지면 로크의 수가 적어 관리가 쉬워지지만 병행서 수준은 낮아진다.
- 로킹 단위가 작으면 로크의 수가 많아 관리가 어려워지지만 병행성 수준은 높아진다.
- 로킹의 대상이 되는 객체(파일, 테이블, 필드, 레코드)의 크기를 로킹 단위라고 한다.
'📚 자격증 > 정처기' 카테고리의 다른 글
[정처기 필기] C, JAVA, 파이썬 (0) | 2023.07.12 |
---|---|
[정처기 필기] 보안, 암호화, 비밀키, 트리거, 공개키 (0) | 2023.07.12 |
[정처기 필기] 관계 대수, 관계 해석, SQL, VIEW, 시스템카탈로 (0) | 2023.07.12 |
[정처기 필기] 데이터베이스 정규화, 반정규화, 이상 현상 (0) | 2023.07.12 |
[정처기 필기] DBMS, 스키마, 데이터베이스 설계, 키의 종류 (0) | 2023.07.12 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기