이번년도에는 꼭 붙어야 하기 때문에..
내가 볼 목적으로 이론 기준으로 정리해 두려고 한다..
이번엔 꼭 붙자!
트랜잭션 : 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위
특성 : 원일영고
원자성(Atomicity) | 트랜잭션의 연산 전체가 성공 또는 실패되어야 함(All or Nothing) | Commit/Rollback 회복성 보장 |
일관성(Consistency) | 시스템이 갖고있는 고정요소는 트랜잭션 수행 전/후가 같아야 한다 | 무결성 제약조건 동시성 제어 |
격리,고립성(Isolation) | 동시에 실행중인 트랜젝션이 서로 영향을 미치지 않아야 한다. | Read Uncommited Read Commited Repeatable Read Serializable |
영속성(Durability) | 성공완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 기록되어야 한다 |
회복기법 |
격리수준(isolation level)
- Read Uncommited : 커밋되기 전에도 내용을 볼 수 있음(현황파악오류[Dirty Read]발생 가능)
- Read Commited : 커밋완료된 후에 내용을 볼 수 있음
- Repeatable Read :동일 트랜잭션 내에서는 한번 select한 값은 다시 select해도 트랜잭션 종료시까지 같은값 출력보장
- Serializable : 순서대로 처리
※ RepeatableRead는 Update는 막아주지만 Insert된 값까지 막아주진 못한다.
따라서 동일 트랜잭션 내에서 새로운 행이 Insert된 경우 Select한 값이 달라질 수 있다
트랜잭션 제어언어(TCL)
커밋,롤백,체크포인트(Rollback을 위한 시점을 지정)
병행제어
: 다수의 사용자환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 방법
- 목적
- 데이터베이스의 공유를 최대화 한다.
- 시스템 활용도를 최대화 한다.
- 데이터베이스의 일관성을 유지한다.
- 사용자에대한 응답시간을 최소화한다.
- 병행제어 미보장시 문제점 : 갱현모연
- 갱신손실(LostUpdate)
먼저 실행 된 트랜잭션의 결과를 나중에 실행 된 트랜잭션이 덮어쓸 때 발생하는 오류
- 현황파악오류(DirtyRead)
트랜잭션의 중간결과를 다른 트랜잭션이 참조하여 발생하는 오류
- 모순성(Inconsistency)
두 트랜잭션이 동시에 실행되어 데이터의 일관성이 결여되는 오류
- 연속성(LostUpdate)
복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소한 경우에
트랜잭션이 처리한 곳의 부분을 처리하지 못한 경우
- 병행제어기법의 종류
- 로킹(Locking)
* 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해
트랜잭션의 순차적 진행을 보장하는 직렬화 기법(정의)
* 트랜잭션은 로킹된 데이터에 대해서만 작업을 수행한다.
* 데이터를 잠궈(Lock)서 다른 트랜잭션에서 접근하지 못하도록 하는 방법.
※ 로킹의 특징
⇒ 데이터베이스, 파일, 레코드 등은 로킹단위가 될 수 있다.
⇒ 로킹단위가 작아지면(↓) 로킹 오버헤드가 증가(↑)
⇒ 로킹단위가 작아지(↓)면 데이터베이스 공유도가 증가(↑)
⇒ 한번에 로킹할 수 있는 객체의 크기를 로킹단위라고 함
- 낙관적 검증(Optimistic Validation)
* 트랜잭션이 어떠한 검증도 없이 일단 트랜잭션을 수행하고,
트랜잭션 종료 시 검증을 수행하여 데이터베이스에 반영하는 기법
- 타임스탬프 순서(Time Stamp Ordering)
* 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에,
타임스탬프를 부여하여 부여된 시간순서대로 작업을 수행하는 기법
- 다중버전 동시성제어(MVCC:Multi Version Concurrency Control)
* 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여
직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법
회복기법 : 회로체크
: 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
- 로그기반 회복기법
* 지연갱신 회복기법(Deferred Update)
트랜잭션이 완료되기 전까지 데이터베이스를 기록하지 않는 기법
* 즉시갱신 회복기법(Immediate Update)
트랜잭션 수행 중 결과를 DB에 바로 반영하는 기법
- 체크포인트 회복기법(Checkpoint Recovery)
: 장애발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애발생 이전의 상태로 복원시키는 방법
- 그림자페이징 회복기법(Shadow Paging Recovery)
: 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 장애 시 이를 이용해 복구하는 기법
'기타의 기타 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기]SQL응용 - 데이터분석함수 (0) | 2023.02.22 |
---|---|
[정보처리기사 실기]SQL응용 - 데이터 정의어 DDL (1) | 2023.02.21 |
댓글