트랜잭션
- 데이터베이스 시스템에서 하나의 논리적인 기능을 정상적으로 수행하기 위한 작업의 기본 단위
- 특징
-
원자성 - Atomicity
- 분해가 불가능한 작업의 최소 단위
- 연산 전체가 성공 또는 실패
-
일관성 - Consistency
- 트랜잭션이 실행 성공 후 향상 일관된 데이터베이스 상태 보전
- 무결성 제약조건
- 동시성제어
-
격리성 - Isolation
- 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가
-
영속성
- Durability- 성공이 완료된 트랜잭션의 결과를 영속적으로 데이터베이스에 저장
-
- 상태 변화
- 활성 → 부분완료 → 완료 → 실패 → 철회
- TCL
- Transaction Control Language
- 트랜잭션 제어언어
- 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어
- Commit - 확정
- Rollback - 취소
- Check point - 저장 시기 설정 - Save Point
- 병행 제어 기법
]]
- Concurranct Control
- 다수의 사용자 호나경에서 여러 트랜잰셕을 수행할 때 데이터 베이스 일관성 유지를 위해 상호작용을 제어하는 기법
- 병행 제어 미보장시 문제점
- 갱신손실 - Lost Update
- 형황파악오류 - Dirty Read
- 모순성 ]] - Inconsistency
-
연쇄복귀
- Casacade Rollback
-
Locking
- 로킹- 같은 자원을 엑세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션이 순차적 진행을 보장하는 직렬화 기법
- 특징
- 데이터베이스, 파일, 레코드 등을 로킹 단위가 될 수 있음
- 로킹단위가 작아지면 로킹 오버헤드 증가
- 한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고함
-
Validation
- 낙관적 검증- 트랜잭션이 어떤한 검증도 수행하지 않고 일단 트랜잭션을 수행하고 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법
-
타임스탬프 순서
- Timestamp Ordery- 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 하기 전에 타임스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
-
다중 기반 동시성제어
- MVCC - Multiversion Concurrency Contact- 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬 가능성이 보장되는 적절한 버전을 선택하여 접근하도록하는 기법