일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 팬아웃
- Unreal Engint4
- 메타 데이터
- C++
- 백준
- UnrealEngine
- DBMS
- 아키텍처 패턴
- UML 다이어그램
- 기능 모델링
- 정보 은닉
- 정보처리기사
- 정보처리기사 실기
- baekjoon
- 정처기
- UML
- 브로커 패턴
- 언리얼엔진5
- 언리얼엔진 함수
- 데이터 입출력
- 요구사항 분석
- 알고리즘 문제
- UnrealEngine5
- 데이터베이스
- 동적 모델링
- 마스터 슬레이브 패턴
- 요구사항 확인
- 파이프 필터 패턴
- 클라이언트 서버 패턴
- 단계적 분해
Archives
- Today
- Total
게임 개발자를 향해
트랜잭션 분석 본문
1. 트랜잭션(Transaction)
- 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.
- 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용된다.
- 트랜잭션은 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변화 과정의 작업 단위로 사용된다.
2. 트랜잭션의 특성
특성 | 의미 |
Atomicity (원자성) |
트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함 |
Consistency (일관성) |
트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함 |
Isolation (독립성, 격리성, 순차성) |
둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음 |
Durability (영속성, 지속성) |
성공적으로 완료된 트랜잭션의 결과는 시스템이나 고장나더라도 영구적으로 반영되어야 함 |
3. CRUD 분석
- CRUD 분석은 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것이다.
- CRUD 분석을 통해 많은 트랜잭션이 몰리는 테이블을 파악할 수 있으므로 디스크 구성 시 유용한 자료로 활용할 수 있다.
<CRUD 매트릭스>
- 2차원 형태의 표로서, 행(Row)에는 프로세스를, 열(Column)에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하여 프로세스와 데이터 간의 관계를 분석하는 분석표이다.
- CRUD 매트릭스를 통해 트랜잭션이 테이블에 수행되는 작업을 검증한다.
- CRUD 매트릭스의 각 셀에는 Create, Read, Update, Delete의 앞 글자로 복수의 변화를 줄 때는 C > D > U > R 의 우선순위를 적용하여 한 가지만 적지만, 활용 목적에 따라 모두 기록할 수 있다.
- CRUD 매트릭스가 완성되었다면 C, R, U, D 중 어느것도 적히지 않은 행이나 열, C나 R이 없는 열을 확인하여 불필요하거나 누락된 테이블 또는 프로세스를 찾는다.
<여기서 Tip!>
처리되는 일 하나하나를 트랜잭션이라하며 DB에 저장하는 것이다.
이 트랜잭션을 CRUD 매트릭스에 저장하여 분석하는 것이다.
위에 우선순위가 C>D>U>R 라고 되어있다.예를들면 주문변경 프로세스를 실행하려면 테이블에 데이터를 읽은(Read)다음 수정(Update)해야하한다.그러면 R, U라고 표현해야는데 CRUD의 메트릭스에는 우선순위가 높은 U만 표시한다는 것이다.그런데 활용 목적에 따라 모두 기록할 수 있다.아래 표는 모두 기록한 것이다.
<온라인 쇼핑몰의 CRUD 예시>
프로세스\ 테이블 | 회원 | 상품 | 주문 | 주문목록 | 제조사 |
신규 회원 등록 | C | ||||
회원정보 변경 | R, U | ||||
주문 요청 | R | R | C | C | |
주문 변경 | R | R, U | |||
주문 취소 | R, D | R, D | |||
상품 등록 | C | C, R | |||
상품정보 변경 | R, U | R, U |
4. 트랜잭션 분석
- 트랜잭션 분석은 CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 한다.
- 트랜잭션 분석은 업무 개발 담당자가 수행한다.
- 트랜잭션 분석을 통해 프로세스가 과도하게 접근하는 테이블을 확인할 수 있으며, 이러한 집중 접근 테이블을 여러 디스크에 분산 배치함으로써 디스크 입출력 향상을 통한 성능 향상을 가져올 수 있다.
<트랜잭션 분석서>
- 단위 프로세스와 CRUD 매트릭스를 이용하여 작성한다.
- 구성 요소: 단위 프로세스, CRUD 연산, 테이블명, 컬럼명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 등
<주문요청 프로세스에 대한 트랜잭션 분석서 예시>
프로세스 | CRUD | 테이블명 | 컬럼명 | 참조횟수 | 트랜잭션수 | 주기 |
주문 요청 | R | 회원 | 회원정보, 회원명, 주소 | 1 | 150 | 일 |
R | 상품 | 상품번호, 상품명, 재고량 | 1 | 150 | ||
C | 주문 | 주문번호, 일자, 회원번호 | 3 | 450 | ||
C | 주문목록 | 주문번호, 상품번호, 수량, 가격 | 5 | 750 |
<여기서 Tip!>
트랜잭션 분석서는 CRUD 매트릭스로 분석한 데이터를 이용하여 분석서를 만드는 것이다.
위 표와 같이 과도하게 접근하는 테이블을 볼 수 있다.
많이 사용되는 테이블을 여러 디스크에 분산시켜서 성능 향상을 하는 것이 목적이다.

읽어주셔서 감사합니다!
정처기 화이팅!
'정보처리기사 > 2. 데이터 입출력 구현' 카테고리의 다른 글
뷰 / 클러스터 (View / Cluster) (0) | 2022.09.13 |
---|---|
인덱스(Index) (0) | 2022.09.13 |
시스템 카탈로그 (0) | 2022.09.08 |
반정규화(Denormalization) (0) | 2022.09.08 |
정규화(Nomalization) (0) | 2022.09.06 |