1. 트랜잭션
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산
2. 트랜잭션의 특징
- 원자성 : 트랜잭션의 연산은 데이터베이스에 모두 반영 완료(Commit)되거나 복구(Rollback)되어야 함
- 일관성 : 성공적으로 실행 완료하면 언제나 일관성있는 데이터베이스 상태로 변환함
- 독립성 : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
- 영속성 : 성공이 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
3. CRUD분석
- 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
- 트랜잭션이 몰리는 테이블 파악 가능
4. 병행제어 기법
- 동시에 여러 사용자가 데이터베이스에 접근할 때 발생할 수 있는 갱신 분실 문제나 비일관성 문제 등을 해결하기 위해 사용
5. 종류
- 잠금 기법(Locking Technique): 트랜잭션이 데이터를 갱신할 때 해당 데이터에 잠금(lock)을 걸어 다른 트랜잭션이 데이터를 갱신하지 못하도록 하는 방식입니다. 단순하고 구현이 쉽지만 데드락(deadlock)이 발생할 가능성이 있습니다.
- 타임스탬프 기법(Timestamp Technique): 각 트랜잭션이 실행된 시간을 기록하고, 데이터를 갱신할 때마다 해당 트랜잭션의 시간 정보를 참조하여 일관성을 유지하는 방식입니다. 복잡하지만 잠금 기법보다 데드락 문제가 적습니다.
- 동시성 제어 기법(Concurrency Control Technique): 여러 트랜잭션이 동시에 실행될 때 데이터의 일관성을 유지하기 위한 복잡한 기법으로, 대표적으로 2단계 잠금 프로토콜과 교착 상태 방지 기법이 있습니다. 효과적이지만 구현이 복잡하고 성능 저하가 발생할 수 있습니다.
6. 최적 병행수행
1) 정의 : 여러 개의 트랜잭션이 동시에 실행될 때, 전체 실행 시간을 최소화하는 기법, 트랜잭션 간의 충돌을 최소화를 위해 스케줄링 기법 사용
2) 스케줄링 기법 종류
- 선점형 스케줄링 : 실행 중인 트랜잭션을 중단시키고 다른 트랜잭션이 실행되도록 하는 방식
- 비선점형 스케줄링 : 실행 중인 트랜잭션을 중단시키지 않고 다른 트랜잭션이 실행되도록 하는 방식, 각 트랜잭션의 우선순위를 결정하고, 우선순위가 높은 트랜잭션부터 실행하도록 스케줄을 구성
'정보처리기사' 카테고리의 다른 글
정보처리기사 : 객체지향 프로그래밍의 접근제한자 (0) | 2023.04.06 |
---|---|
정보처리기사 : 관계형 데이터베이스의 이상 현상과 정규화 (0) | 2023.04.06 |
정보처리기사 : 관계형 데이터베이스 (0) | 2023.04.04 |
정보처리기사 : 식별자 (0) | 2023.04.04 |
정보처리기사 : 데이터 모델의 구성 요소 (0) | 2023.04.04 |
댓글