트랜잭션 이란
1. 데이터 베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
2. 데이터 베이스 시스템에서 복구, 병행 수행 시 처리되는 작업의 논리적 단위
3. 한번에 수행되어야 할 일련의 연산
4. 쪼갤 수 없는 업무 처리의 최소 단위 혹은 거래내역이라고 한다.
특성 (ACID)
1. 원자성 (Atomicity)
▶ 트랜잭션이 데이터베이스에 전체 반영, 전체 미반영 되어야하며 작업이 부분적으로 실행, 중단되지 않는 것을 보장
▶ 트랜잭션은 사람이 설계한 논리적인 작업 단위이므로 일처리가 작업 단위 별로 동작해야 사람이 다루는데 무리 없음
▶ 이러한 점 없이 설계하는경우 데이터 처리 시스템을 이해하기 어렵고, 오류 발생하는경우 원인 찾기 힘듬
2. 일관성 (Consistency)
▶ 하나의 트랜잭션 이전, 이후 데이터베이스의 상태는 이전과 같이 유효해야 함
▶ 트랜잭션이 완료된 결과값이 일관적인 DB 상태를 유지하는 것
▶ 트랜잭션이 진행되는 경우 데이터베이스가 변경되어도 업데이트된 데이터베이스로 트랜잭션이 진행하는 것이 아닌 처음 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행
▶ 이렇게 함으로 각 사용자가 일관성 있는 데이터를 볼수 있음
3. 독립성 (Isolation)
▶ 모든 트랜잭션은 다른 트랜잭션으로부터 독립 되어야 한다.
▶ 실제 동시에 다중 트랜잭션들이 동작 할때 각 트랜잭션은 고립 되어 있어 연속으로 실행된 것과 동일한 결과 표출
4. 연속성 (Durability)
▶ 하나의 트랜잭션이 성공적으로 수행되는경우 해당 트랜잭션에 대한 로그가 남아야하는 성질
▶ 런타임 오류, 시스템 오류 발생되어도 해당 기록은 영구적으로 존재해야함
병행제어
1. 목적 :
- 시스템 활용도 최대화
- 사용자에 대한 응답시간 최소화
- 데이터베이스 일관성 유지
2. 동시 접근시 발생 현상 :
- Dirty Write
- Dirty Read
- Non-Repeatable Read
- Phantom Read
3. 병행제어 실패시 발생 현상 :
- 갱신분실
- 현황파악오류
- 모순성
- 연쇄복귀
4. 병행제어 기법
- 로킹(Locking)
- 타임스탬프(Time Stamp)
- 낙관적 검증
5. 수행중 장애로 인한 손상된 데이터베이스를 손상적으로 복귀시키는 작업
- 장애 유형
1. 트랜잭션 장애 : 트랜잭션의 실행 시 논리적인 오류로 발생 될 에러 상황
2. 시스템 장애 : H/W 시스템 자체에서 발생 될 에러 상황
3. 미디어 장애 : 디스크 자체의 손상으로 발생 될 에러 상황
- 회복기법
1. 로그 기반
- 지연갱신 회복 기법
- 즉시갱신 회복 기법
2. 체크포인트 회복 기법
3. 그림자 페이징 회복 기법
4. 디미어 회복 기법
'백수' 카테고리의 다른 글
java 기초 개념 (0) | 2022.09.27 |
---|---|
플랫폼 독립성 (0) | 2022.09.20 |
인터프리터 (0) | 2022.09.19 |
객체 지향 프로그램밍(OOP : Object-oriented programming) (0) | 2022.09.17 |
피들러(Fiddler) (0) | 2021.01.17 |