트랜잭션이란?
다수의 사용자가 사용하지만 모순이 없는 정확한 데이터를 유지하기 위한 데이터베이스의 관리시스템으로 하나의 논리적기능을 정상적으로 수행하기 위한 작업의 기본단위이다.
특성 | 설명 |
원자성(Atomicity) | 분해가 불가능한 작업의 최소단위 하나라도 실패할경우 전체가 취소되어야한다. |
일관성(Consistency) | 트랜잭션이 실행성공 후 항상 일관된 데이터베이스 상태를 보존해야한다. |
격리성(Isolation) | 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가능한 특성 |
영속성(Durability) | 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성 |
**격일로 보는 (장)원영
트랜잭션 회복기법
기법 | 설명 |
로그 기반 회복 기법 | 지연 갱신 회복 기법(Deferred Update) 트랜잭션이 완료되기 전까지 데이터 베이스에 기록하지 않는 기법 즉각 갱신 회복 기법(Immediate Update) 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법 |
체크포인트 회복기법 (Checkpoint Recovery) |
장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애발생 이전의 상태로 복원시키는 회복 기법 |
그림자 페이징 회복 기법 (Shadow Paging Recovery) |
데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터 베이스 장애 시 이를 이용해 복구하는 기법 |
병행제어란?
여러 개의 트랜잭션이 실행될 때 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않고 다른 트랜잭션에 영향을 주지 않도록 트랜잭션을 제어하는 것을 의미로 여러 동작이 병행적으로 일어날 때 문제 생기지 않게 제어하는 것
병행 제어의 문제점
- 갱신 분실(Lost Update)
먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생 - 현황 파악오류(Dirty Read)
트랜잭션의 중간수행결과를 다른 트랜잭션이 참조하여 발생하는 오류 - 모순성(Inconsitency)두 트랜잭션이 동시에 실행되어 데이터베이스의 관성이 결여되는 오류
- 연쇄복귀(Cascading Rollback)
복수의 트랜잭션이 데이터공유시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지못하는 오류
병행제어기법
기법 | 설명 |
로킹 (Locking) |
같은 자원을 액새스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적진행을 보장하는 직렬화 기법 데이터베이스, 파일, 레코드는 로킹의 단위가 될 수 있음 로킹 단위가 작아지면 데이터베이스 공유도 증가 로킹 단위가 작아지면 로킹 오버헤드 증가 한꺼번에 로킹할 수 있는 객체의 크기를 로킹단위라고한다. |
낙관적 검증 (Optimistic Validation) |
트랜잭션이 어떠한 검증도 수행하지않고 일단 트랜잭션을 수행하고, 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법 |
타임스탬프 순서 (Time Stamp Ordering) |
트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기전에 타임스탬프(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법 |
다중버전 동시성 제어 (MVCC ; Multi Version Concurrency Control) |
트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법 |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 데이터베이스 : 설계순서, 모델링 절차, 데이터마트와 데이터웨어하우스, 절차형 SQL 용어, 제약조건, 무결성조건 (0) | 2024.06.28 |
---|---|
[정보처리기사 실기] 이상현상, 정규화/비정규화, 개념&논리&물리 설계 (1) | 2024.06.28 |
[정보처리기사 실기] 요구사항 확인 (0) | 2024.06.28 |
[정보처리기사 실기] 마크업언어(JSON, xml) (0) | 2024.06.28 |
[정보처리기사 실기] DOS 공격이란? (0) | 2024.06.28 |