트랜잭션(Transaction) 개념
DB 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
트랜잭션 특성 [2020 1회 기출] [2021 2회 기출]
ACID/원일격영 Atomicity/Consistency/Isolation/Durability
| 원자성
Atomicity | 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질(성공 or 실패) |
---|---|
일관성 | |
Consistency | 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전, 완료 후의 상태가 같아야 하는 성질 |
격리성, 고립성 | |
Isolation | 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질 |
영속성 | |
Durability | 성공이 완료된 트랜잭션의 결과는 영속적으로 DB에 저장되어야 하는 성질 |
트랜잭션 상태
활부완실철 활동(Active)/부분완료(Partially Committed)/완료(Commited)/실패(Failed)/철회(Aborted)
활동(Active) | 초기 상태, 트랜잭션이 실행 중일 때 가지는 상태 |
---|---|
부분완료(Partially Committed) | 마지막 명령문이 실행된 후에 가지는 상태 |
완료(Commited) | 트랜잭션이 성공적으로 완료된 후 가지는 상태 |
실패(Failed) | 정상적 실행이 더 이상 진행될 수 없을 때 가지는 상태 |
철회(Aborted) | 트랜잭션 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태 |
TCL 명령어 [2020 2회 기출]
커롤체 COMMIT/ROLLBACK/CHECKPOINT
COMMIT | 트랜잭션을 메모리에 영구적으로 저장하는 제어어 |
---|---|
ROLLBACK | 트랜잭션 내역 저장 무효화시키는 제어어 |
CHECKPOINT | |
(=SAVEPOINT) | ROLLBACK을 위한 시점 지정하는 제어어 |
병행 제어
개념 | 다수 사용자 환경에서 여러 트랜잭션 수행 시 데이터베이스 일관성 유지위해 상호작용 제어하는 기법 |
---|---|
목적 | 데이터베이스 공유 최대화, 시스템 활용도 최대화, DB 일관성 유지, 사용자에 대한 응답시간 최소화 |
병행 제어 미보장 시 문제점
갱현모연/덮참동부
| 갱신 손실
Lost Update | 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류 |
---|---|
현황 파악오류 | |
Dirty Read | 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류 |
모순성 | |
Inconsistency | 두 트랜잭션이 동시에 실행되어 DB의 일관성 결여되는 오류 |
연쇄복귀 | |
Cascading Rollback | 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리 취소할 경우 트랜잭션이 처리한 곳의 부분 취소하지 못하는 오류 |
병행 제어 기법 [2021 2회 기출]
로 낙타다/순일시타
| 로킹 Locking | 같은 자원 액세스하는 다중 트랜잭션 환경에서 DB의 일관성, 무결성 유지위해 트랜잭션의 순차적 진행 보장하는 직렬화 기법으로, 접근한 데이터에 대한 연산 모두 마칠 때까지 상호 배제
데이터 베이스 고립화 수준
다른 트랜잭션이 현재의 데이터에 대한 무결성을 해치지 않기 위해 잠금을 설정하는 정도
고립화 수준 종류
RRRS
Read Uncommitted | 한 트랜잭션에서 연산 중인 데이터를 다른 트랜잭션이 읽는 것을 허용하는 수준 |
---|---|
Read Committed | 한 트랜잭션에서 연산을 수행할 때 연산이 완료될 때까지 연산 대상 데이터에 대한 읽기 제한하는 수준 |
Repeatable Read | 선행 트랜잭션이 특정 데이터를 읽을 때 트랜잭션 종료 시까지 해당 데이터에 대한 갱신, 삭제 제한하는 수준 |
Serializable Read | 선행 트랜잭션이 특정 데이터 영역을 순차적으로 읽을 때 해당 데이터 영역 전체에 대한 접근 제한하는 수준 |
회복 기법 종류 [2020 4회 기출]
회로체그 회복 기법/로그 기반 회복 기법/체크 포인트 회복 기법/그림자 페이징 회복 기법
| 로그 기반 회복 기법 | - 지연 갱신 회복 기법(Deferred Update): 트랜잭션 완료 전까지 기록X
회복 기법 관련 용어
REDO | DB가 비정상적으로 종료되었을 때 디스크에 저장된 로그 분석해 트랜잭션의 시작과 완료에 대한 기록 있는 트랜잭션들의 작업을 재 작업하는 기법 |
---|---|
UNDO | DB가 비정상적 종료되었을 때 디스크에 저장된 로그 분석하여 트랜잭션의 시작은 있지만, 완료 기록이 없는 트랜잭션들이 작업한 변경 내용들 모두 취소하는 기법 |