트랜잭션: Difference between revisions
From IT Wiki
No edit summary |
|||
Line 1: | Line 1: | ||
[[분류:정보처리기사]][[분류:데이터베이스]] | [[분류:정보처리기사]] | ||
[[분류:데이터베이스]] | |||
;Transaction | ;Transaction | ||
= 정의 = | =정의= | ||
* 데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 | |||
* 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위 | *데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 | ||
* 한꺼번에 수행되어야 할 일련의 연산 | *데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위 | ||
*한꺼번에 수행되어야 할 일련의 연산 | |||
[[파일:트랜잭션 상태전이도.png]] | [[파일:트랜잭션 상태전이도.png]] | ||
= [[트랜잭션 특성]] = | =[[트랜잭션 특성]]= | ||
;줄여서 ACID라고 한다. | ;줄여서 ACID라고 한다. | ||
= [[트랜잭션 병행제어]] = | *원자성(Atomicity) | ||
* '''병행제어의 목적''' | *일관성(Consistency) | ||
** 데이터베이스 일관성 유지 | *독립성(Isolation) | ||
* '''트랜잭션 동시접근 시 발생 가능한 현상''' | *영속성(Durability) | ||
** Dirty Write | |||
** Dirty Read | =[[트랜잭션 병행제어]]= | ||
** Non-Repeatable Read | |||
** Phantom Read | *'''병행제어의 목적''' | ||
* '''트랜잭션 고립화 수준(SQL92)''' | **시스템 활용도 최대화 | ||
** 레벨0~레벨3 | **사용자에 대한 응답시간 최소화 | ||
* '''병행제어 실패 시 발생 가능한 현상''' | **데이터베이스 일관성 유지 | ||
** 갱신분실 | *'''트랜잭션 동시접근 시 발생 가능한 현상''' | ||
** 현황파악오류 | **Dirty Write | ||
** 모순성 | **Dirty Read | ||
** 연쇄복귀 | **Non-Repeatable Read | ||
* '''병행제어 기법 ''' | **Phantom Read | ||
** 로킹(Locking) | *'''트랜잭션 고립화 수준(SQL92)''' | ||
** 타임스탬프(Time Stamp) | **레벨0~레벨3 | ||
** 낙관적 검증 | *'''병행제어 실패 시 발생 가능한 현상''' | ||
* 상세 내용은 [[트랜잭션 병행제어]] 문서 참조 | **갱신분실 | ||
**현황파악오류 | |||
**모순성 | |||
**연쇄복귀 | |||
*'''병행제어 기법 ''' | |||
**로킹(Locking) | |||
**타임스탬프(Time Stamp) | |||
**낙관적 검증 | |||
*상세 내용은 [[트랜잭션 병행제어]] 문서 참조 | |||
=[[데이터베이스 회복|회복(Recovery)]]= | |||
;트랜잭션들을 수행하는 도중 장애로 인해 손상 된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업 | ;트랜잭션들을 수행하는 도중 장애로 인해 손상 된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업 | ||
* '''장애 유형''' | *'''장애 유형''' | ||
** 트랜잭션 장애: 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황 | **트랜잭션 장애: 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황 | ||
** 시스템 장애: H/W 시스템 자체에서 발생할 수 있는 에러 상황 | **시스템 장애: H/W 시스템 자체에서 발생할 수 있는 에러 상황 | ||
** 미디어 장애: 디스크 자체의 손상으로 발생할 수 있는 에러 상황 | **미디어 장애: 디스크 자체의 손상으로 발생할 수 있는 에러 상황 | ||
* '''회복 기법''' | *'''회복 기법''' | ||
** 로그 기반 | **로그 기반 | ||
*** '''지연갱신 회복 기법''' | ***'''지연갱신 회복 기법''' | ||
*** '''즉시갱신 회복 기법''' | ***'''즉시갱신 회복 기법''' | ||
** 체크포인트(Checkpoint) 회복 기법 | **체크포인트(Checkpoint) 회복 기법 | ||
** 그림자 페이징(Shadow Paging) 회복 기법 | **그림자 페이징(Shadow Paging) 회복 기법 | ||
** 미디어(Media) 회복 기법 | **미디어(Media) 회복 기법 |
Latest revision as of 16:41, 29 March 2022
- Transaction
정의[edit | edit source]
- 데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위
- 한꺼번에 수행되어야 할 일련의 연산
트랜잭션 특성[edit | edit source]
- 줄여서 ACID라고 한다.
- 원자성(Atomicity)
- 일관성(Consistency)
- 독립성(Isolation)
- 영속성(Durability)
트랜잭션 병행제어[edit | edit source]
- 병행제어의 목적
- 시스템 활용도 최대화
- 사용자에 대한 응답시간 최소화
- 데이터베이스 일관성 유지
- 트랜잭션 동시접근 시 발생 가능한 현상
- Dirty Write
- Dirty Read
- Non-Repeatable Read
- Phantom Read
- 트랜잭션 고립화 수준(SQL92)
- 레벨0~레벨3
- 병행제어 실패 시 발생 가능한 현상
- 갱신분실
- 현황파악오류
- 모순성
- 연쇄복귀
- 병행제어 기법
- 로킹(Locking)
- 타임스탬프(Time Stamp)
- 낙관적 검증
- 상세 내용은 트랜잭션 병행제어 문서 참조
회복(Recovery)[edit | edit source]
- 트랜잭션들을 수행하는 도중 장애로 인해 손상 된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
- 장애 유형
- 트랜잭션 장애: 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황
- 시스템 장애: H/W 시스템 자체에서 발생할 수 있는 에러 상황
- 미디어 장애: 디스크 자체의 손상으로 발생할 수 있는 에러 상황
- 회복 기법
- 로그 기반
- 지연갱신 회복 기법
- 즉시갱신 회복 기법
- 체크포인트(Checkpoint) 회복 기법
- 그림자 페이징(Shadow Paging) 회복 기법
- 미디어(Media) 회복 기법
- 로그 기반