데지덤

  1. 데이터관련 직무와 자격
    1. 데이터베이스 직무

    2. 데이터베이스 자격

  2. 데이터관련 학습방법
    1. 데이터베이스 개론 학습

    2. DBMS 학습

    3. 읽어볼만한 DB책

  3. 최신동향과 유명한 Things
    1. DB최신동향

    2. 데이터로 유명한 Things

  4. 데이터베이스 개념
    1. 데이터베이스 개념

    2. DBMS

    3. 데이터베이스 개발과운영

  5. 데이터베이스 설계(1/2)
    1. 데이터표준

    2. 데이터모델링

    3. 데이터모델 디자인패턴

  6. 데이터베이스 설계(2/2)
    1. 프로세스및상관모델링

    2. 정규화

    3. 반(역)정규화

    4. DB물리설계

  7. 인덱싱과 DB프로그래밍
    1. 인덱스와 해싱

    2. 관계연산

    3. DB언어

    4. SQL

    5. 데이터베이스 미들웨어

  8. 데이터베이스 운영
    1. 트랜잭션

    2. 병렬처리

    3. 데이터베이스 복구

    4. 데이터베이스 성능

    5. 병행제어(동시성제어)

  9. 분석계 및 빅데이터기술
    1. 데이터웨어하우스

    2. 데이터마이닝

    3. 빅데이터기술

  10. 데이터거버넌스
    1. 데이터거버넌스

    2. 데이터베이스 감리/진단

  11. 데이터베이스 종류와 보안
    1. 데이터베이스 종류

    2. 데이터베이스 보안

  12. DBMS
    1. 오라클

    2. SQL Server

    3. DB2

    4. Sybase

    5. Altibase

트랜잭션

개념
한번에 수행되어야 할 데이터베이스의 일련의 Read와 Write연산을 수행하는 단위, 하나의 논리적 기능을 수행하기 위한 작업의 단위로서 데이터베이스의 일관된 상태를 또 다른 일관 상태로 변화시키는 것

1. 데이터베이스에서 행해지는 논리적인 작업단위, 트랜잭션에 대한 개요

  가. 트랜잭션(Transaction)의 정의

    - 한번에 수행되어야 할 데이터베이스의 일련의 Read와 Write연산을 수행하는 단위

    - 하나의 논리적 기능을 수행하기 위한 작업의 단위로서 데이터베이스의 일관된 상태를 또 다른 일관된 상태로 변환시킴.

    - 트랜잭션의 개념도

나. 트랜잭션의 특징(ACID)

특징

기본개념

Atomicity

(원자성)

- 트랜잭션은 한 개 이상의 동작을 논리적으로 한 개의 작업단위(single unit of work)로서 분해가 불가능한 최소의 단위

- 연산 전체가 성공적으로 처리되거나 또는 한 가지라도 실패할 경우 전체가 취소되어 무결성을 보장(All or Nothing)

- Commit/Rollback 연산.  [관리 : 트랜잭션관리자]

Consistency

(일관성)

- 트랜잭션이 실행을 성공적으로 완료하면 언제나 모순 없이 일관성 있는 데이터베이스 상태를 보존함.  [관리:무결성제어기]

Isolation

(고립성)

- 트랜잭션이 실행 중에 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근할 수 없음.  [관리 : 병행제어관리자]

Durability

(영속성)

- 성공이 완료된 트랜잭션의 결과는 영구(속)적으로 데이터베이스에 저장됨.  [관리 : 회복기법, 연관회복관리자]

                                           

 

2. 트랜잭션 상태 및 상태설명

  가. 트랜잭션 상태 개념도

  나. 트랜잭션 상태 설명

구분

설명

활동(Active)

초기 상태, 트랜잭션이 실행을 시작하였거나 실행 중인 상태.

부분완료(Partial Committed)

마지막 명령문이 실행된 후에 가지는 상태임. 즉, Commit 직전 상태

실패(Failed)

정상적인 실행이 더 이상 진행될 수 없을 때의 상태 즉,  정상적 실행이 중단된 상태

철회(Aborted)

트랜잭션이 실행에 실패하여 취소되고 트랜잭션 시작 전 상태로 환원된 상태. 즉, Rollback연산을 수행한 상태

완료(Committed)

트랜잭션이 성공적으로 완료된 후 Commit연산을 수행한 상태.

 

3. Transaction의 3가지 연산

  가. 철회된 트랜잭션의 연산

연산

설명

트랜잭션 재실행

(Restart)

- 철회된 트랜잭션을 다시 새로운 트랜잭션으로 취급하여 재 시작하는 방법

- 철회된 트랜잭션의 내부적인 논리 오류가 아니라, HW, SW 오류인 경우.

트랜잭션 폐기

(Kill)

- 철회된 트랜잭션을 폐기하는 방법

- 트랜잭션의 철회 원인이 트랜잭션의 내부적인 논리 오류가 원인

 

  나. 트랜잭션의 정상종료연산

연산

설명

Commit 연산

- Data 변경 내용을 데이터베이스에 저장, 새로운 트랜잭션은 Commit문 다음 시작 가능

프로그램 정상 종료

- 새로운 트랜잭션은 시작 불가. 변경 내용 저장을 Commit 연산과 동일한 처리

 

  다. 트랜잭션의 비정상 종료연산

연산

설명

Commit 연산

- Data 변경 내용을 데이터베이스에 저장, 새로운 트랜잭션은 Commit문 다음 시작 가능

Rollback 연산

- 해당 트랜잭션을 중지, 폐기하고, 데이터베이스 내용을 Rollback.

- 새로운 Transaction은 Rollback문 다음 시작 가능

 

라. 트랜잭션 처리 방법(ANSI/ISO SQL 표준안 )

종류

트랜잭션 처리방법

Commit 문

- 데이터베이스의 변경 내용을 하드디스크에 영구적으로 저장한다

- Commit문 처리방법

Rollback 문

- 해당 트랜잭션을 중지 또는 폐기(abort)하고, 데이터베이스에 저장된 내용을 철회(rollback) 시킨다

- Rollback문 처리 방법

성공적인

프로그램 종료

- 마치 commit문이 실행된 것과 동일한 효과를 나타낸다

- commit문과는 달리 프로그램이 종료되기 때문에 새로운 트랜잭션이 시작되지 않는다

- 성공적인 프로그램 종료 방법

비정상적인 프로그램 종료

- 마치 rollback 문이 실행된 것과 동일한 효과를 나타낸다

- Rollback 문과는 달리 프로그램이 종료되기 때문에 새로운 트랜잭션이 시작되지 않는다

- 비정상적인 프로그램 종료 방법

 

4. Transaction 처리시 고려사항 및 활용

  가. Transaction 처리시 고려사항 및 활용

     1) 트랜잭션의 동시성 구현: 트랜잭션의 동시 실행은 트랜잭션의 처리율과 시스템 이용률을 높이고, 대기시간을 줄임으로써, 동시성을 높일 수 있음.

     2) 트랜잭션 수행시간을 최대한 짧게 수행함

긴 트랜잭션의 경우에는 Locking 수행시간이 길게 됨으로써, 충돌현상 및 Deadlock 발생소지 ->트랜잭션 수행 시간을 짧게 구성 필요.

  나. Transaction 활용

    1) 용량산정 근거자료로서 이용

테이블의 모든 생성 트랜잭션 수를 파악한 다음 그 테이블에서 연관된 테이블들의 생성 트랜잭션을 분석해 나가면 각 테이블에 저장되는 데이터 량을 유추.

    2) 디스크 구성에 이용

각 테이블에 발생하는 트랜잭션의 수가 많을 경우 디스크 I/O의 집중화 현상을 방지하기 위해 데이터베이스의 데이터파일을 여러 디스크에 나누어 설계하고 그에 따라 테이블 스페이스도 여러 디스크에 나누어 설계하는 전략을 세울 수 있음.

 

 

 

 

 

 

 

 

 

 

댓글