본문 바로가기
백수

트랜잭션

728x90
반응형

트랜잭션 이란

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. 디미어 회복 기법

 

728x90
반응형

'백수' 카테고리의 다른 글

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