JUINTINATION

트랜잭션 및 CRUD 분석 본문

정보처리기사 정리

트랜잭션 및 CRUD 분석

DEOKJAE KWON 2024. 2. 16. 22:56
반응형

트랜잭션(Transaction)이란?

트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.

  • 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용된다.
  • 트랜잭션은 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위로 사용된다.

트랜잭션의 특성

다음은 데이터의 무결성(Integrity)을 보장하기 위해 DBMS의 트랜잭션이 가져야 할 특성이다.

Atomicity(원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 Commit 되거나 전형 반영되지 않도록 Rollback 되어야 한다.
트랜잭션 내의 모든 명령은 반드시 수행되어야 하며 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소돼야 한다.
Consistency(일관성) 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 변환한다.
시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
Isolation(독립성, 격리성, 순차성) 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
수행중인 트랜잭션은 완전히 완료될 대가지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
Durability(영속성, 지속성) 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

CRUD 분석

CRUD는 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 앞 글자만 모아서 만든 용어로 CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것이다.

  • CRUD 분석으로 테이블에 발생되는 트랜잭션의 주기별 발생 횟수를 파악하고 연관된 테이블들을 분석하면 테이블에 저장되는 데이터의 양을 유추할 수 있다.
  • CRUD 분석을 통해 많은 트랜잭션이 몰리는 테이블을 파악할 수 있으므로 디스크 구성 시 유용한 자료로 활용할 수 있다.
  • CRUD 분석을 통해 외부 프로세스 트랜잭션의 부하가 집중되는 데이터베이스 채널을 파악하고 분산시킴으로써 연결 지연이나 타임아웃 오류를 방지할 수 있다.

CRUD 매트릭스

CRUD 매트릭스는 2차원 형태의 표로 행(Row)에는 프로세스를, 열(Column)에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하는 업무 프로세스오 데이터 간 상관 분석표이다.

  • CRUD 매트릭스를 통해 프로세스의 트랜잭션이 테이블에 수행하는 작업을 검증한다.
  • CRUD 매트릭스의 각 셀에는 Create, Read, Update, Delete의 앞 글자가 들어가며 복수의 변화를 줄 때는 기본적으로 'C > D > U > R' 의 우선순위를 적용하여 기록한다.
    • '주문 변경' 프로세스를 실행하려면 테이블의 데이터를 읽은(Read) 다음 수정(Update) 해야 하므로 R(Read)과 U(Update)가 필요하지만 CRUD 매트릭스에는 우선순위가 높은 'U'만 표시한다.
  • CRUD 매트릭스가 완성되엇다면 C, R, U, D 중 어느 것도 적히지 않은 행이나 C나 R이 없는 열을 확인하여 불필요하거나 누락된 테이블 또는 프로세스를 찾는다.
온라인 쇼핑몰의
CRUD 매트릭스 예시
회원 상품 주문 주문목록 제조사
신규 회원 등록 C        
회원 정보 변경 R, U        
주문 요청 R R C C  
주문 변경     R R, U  
주문 취소     R, D R, D  
상품 등록   C     C, R
상품 정보 변경   R, U     R, U

트랜잭션 분석

CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 데이터베이스 용량을 산정하고 구조를 최적화하기 위해 트랜잭션을 분석한다.

728x90

'정보처리기사 정리' 카테고리의 다른 글

SQL 테스트와 쿼리 최적화  (1) 2024.02.16
DBMS와 ORM  (0) 2024.02.16
정규화(Normalization)와 반정규화(Denormalization)  (0) 2024.02.15
관계대수 및 관계해석  (0) 2024.02.15
관계형 데이터베이스  (0) 2024.02.15
Comments