8장
1. 트랜잭션(Transaction)
- 데이터베이스의 상태를 변화시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들
- 하나의 트랜잭션은 Commit 되거나 Rollback 되어야 함
- 일반적으로 회복의 단위가 됨
- 회식 시 참조하는 지점인 구조점은 여러 개 지정이 가능
2. Commit
- 트랜잭션의 실행을 성공적으로 완료되었음을 선언하는 SQL문
- 한 작업의 논리적 단위가 성공적으로 끝났고, 데이터베이스가 다시 일관된 상태에 있으며, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산
3. Rollback
- 트랜잭션의 실행이 실패하였음을 알리는 연산자로 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀 시키는 연산
4. 트랜잭션의 특성
- 원자성(Atomicity)
: 트랜잭션의 연산은 데이터베이스에 모두 반영되는지 아니면 전혀 반영되지 않아야 한다
: 일부만 수행된 상태로 종료 되어서는 안 됨
: 일부 실행으로는 트랜잭션의 기능을 가질 수 없음
: 타인에게 송금하는 도중 장애가 발생하였을 경우 부작용을 방지하는 특성
- 일관성 (Consistency)
: 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환
: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후가 같아야 함
- 격리성 , 독립성 (Isolation)
: 실행 중에 있는 연산의 중간 결과에 다른 트랜잭션이 접근할 수 없음
: 각 트랜잭션은 동시에 실행되고 있는 다른 트랜잭션을 인식하지 못함
- 영속성, 지속성 (Durability)
: 일단 실행이 성공적으로 완료되면 결과는 영속적이어야 함
: 일단 완료되면 시스템이 고장 나더라도 트랜잭션의 결과는 잃어버리지 않고 지속되어야 함
5. 트랜잭션의 상태
- 부분 완료 : 트랜잭션의 마지막 연산까지 실행했지만 Commit 연산이 실행되기 직전의 상태
- 디스크 출력 도중의 하드웨어 장애가 생기는 경우 부분 완료 상태에서 실패 상태로 감
- 철회 : 트랜잭션이 실행에 실패하여 RollBack 연산을 수행한 상태
- 완료 : 트랜잭션이 실행을 완료하여 Commit 연산을 수행한 상태
6. 트리거 (Trigger)
- 트랜잭션을 취소하는 이외의 조치를 명세할 필요가 있는 경우 메시지를 보내 어떤 값을 자동으로 갱신하도록 프로시저를 기동시키는 방법
7. 회복 (Recovery)
- 트랜잭션들을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
- 회복 기법의 종류
: Deferred Modification (연기 갱신 기법)
: Immediate Update (즉각 갱신 기법) = 로그 필요
: Shadow Paging (그림자 페이지 대체 기법)
: Check Point (검사점 기법)
8. 병행 제어
- 병행 제어의 목적
: 데이터베이스의 일관성 유지
: 데이터베이스의 공유를 최대화
: 사용자에 대한 응답 시간을 최소화
: 시스템 활용도를 최대화
- 병행 수행의 문제점
: 비완료 의존성 (Uncommitted Dependency) = 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상
- 병행 제어 기법 종류
: 로킹 기법, 타임 스탬프 기법, 낙관적 기법
- 로킹 단위
: 데이터베이스, 파일, 레코드, 필드 등 로킹 단위가 될 수 있음
: 로킹 단위가 작으면 로크 수가 많아져 오버헤드가 커지고 관리하기는 복잡하지만 병행성 수준이 높아짐 (=공유도가 증가함)
- 2단계 로킹 규약
: 새로운 Lock은 수행할 수 있지만 Unlock은 수행할 수 없는 확장단계와 새로운 Unlock은 수행할 수 있지만 Lock은 수행할 수 없는 축소 단계가 있음
: 직렬성을 보장하지만 교착상태를 예방할 수 없음
- 타임 스탬프 기법
: 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리정함
9. 분산 데이터베이스가 제공하는 4가지 투명성
- 위치 투명성 : 액세스 하려는 데이터베이스의 물리적으로 저장되어 있는 실제 위치를 알 필요 없음
- 중복 투명성 : 중복 사실을 모르고도 데이터 처리가 가능
- 병행 투명성 : 다수의 트랜잭션들이 동시에 실현되더라도 결과는 영향을 받지 않음
- 장애 투명성 : 장애에도 불구하고 트랜잭션을 정확하게 처리
10. 분산 데이터베이스의 단점
- 데이터베이스 설계가 어려움
- 오류가 발생할 가능성이 높음
- 소프트웨어 개발 비용이 많이 듬
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 데이터베이스 요약 10 (0) | 2019.07.19 |
---|---|
정보처리기사 데이터베이스 요약 9 (0) | 2019.07.18 |
정보처리기사 데이터베이스 요약 7 (0) | 2019.07.18 |
정보처리기사 데이터베이스 요약 6 (0) | 2019.07.18 |
정보처리기사 데이터베이스 요약 5 (0) | 2019.07.16 |
#IT #먹방 #전자기기 #일상
#개발 #일상