트랜젝션 / CRUD 분석

0

정보처리기사

목록 보기
43/100

트랜잭션(Transaction) 및 CRUD 분석 정리


1. 트랜잭션(Transaction) 개념

  • 데이터베이스 상태를 변화시키는 작업의 논리적 단위
  • 하나의 작업 단위가 완전히 수행되거나 전혀 수행되지 않도록 보장해야 함
  • 트랜잭션은 병행 제어(Concurrency Control)회복 작업(Recovery)에서 중요하게 다룸

2. 트랜잭션의 특성 (ACID 특성)

트랜잭션이 올바르게 수행되기 위해 반드시 만족해야 할 네 가지 특성

1) 원자성 (Atomicity)

  • 트랜잭션 내의 작업들이 모두 수행되거나 전혀 수행되지 않는 것을 보장
  • 정상 수행 시 Commit, 비정상 종료 시 Rollback으로 상태를 복구
  • 예: 송금 중 오류 발생 시, 이전 상태로 되돌아가야 함

2) 일관성 (Consistency)

  • 트랜잭션 전후로 데이터베이스 상태가 일관성 있게 유지되어야 함
  • 성공적인 실행 시 항상 일관성 있는 상태로 변환
  • 예: 화장실에 들어갔다가 나올 때 상태가 같아야 한다는 비유

3) 독립성(격리성) (Isolation)

  • 여러 트랜잭션이 동시에 병행 실행될 때, 서로의 연산에 영향을 미치지 않음
  • 예: 화장실에서 한 사람이 사용 중일 때 다른 사람이 들어오지 못하는 것

4) 영속성(지속성) (Durability)

  • 트랜잭션이 성공적으로 완료되면, 그 결과가 시스템 고장 여부와 상관없이 영구적으로 유지
  • 예: 송금이 성공하면, 내 통장에서 돈이 빠지고 친구 통장에 입금된 상태가 보장되어야 함

3. 트랜잭션 분석의 필요성

  • 데이터베이스 설계 시 트랜잭션 발생 빈도작업 내용을 파악하여 효율적인 구조 설계 필요
  • 트랜잭션이 데이터베이스 성능에 미치는 영향을 분석하고 최적화를 위해 활용

4. CRUD 분석 개요

  • CRUD는 데이터 작업의 기본 연산인 Create, Read, Update, Delete의 약어
  • CRUD 분석을 통해 트랜잭션과 데이터베이스의 상호작용을 파악
  • CRUD 매트릭스를 사용하여 테이블과 프로세스 간의 관계를 시각화

CRUD 매트릭스란?

  • 2차원 표 형태로, 행에는 프로세스(Process), 열에는 테이블(Table)을 배치
  • 각 교차점에 해당 프로세스가 해당 테이블에 수행하는 연산(Create, Read, Update, Delete)을 기록

5. CRUD 매트릭스의 활용

1) CRUD 매트릭스 예시

프로세스회원 테이블상품 테이블주문 테이블주문 목록 테이블
회원 등록C---
회원 정보 변경U---
주문 요청RRCC
주문 변경R-UU
  • 예시 설명:
    • 회원 등록 프로세스는 회원 테이블에만 데이터를 생성(Create)
    • 주문 요청 프로세스는 회원 정보를 읽어(Read) 상품 정보를 조회(Read)하고 주문 및 주문 목록 데이터를 생성(Create)
    • 주문 변경 프로세스는 주문 테이블과 주문 목록 테이블에서 데이터를 읽고(Read) 수정(Update)

6. CRUD 매트릭스 분석을 통한 최적화

  1. 과도하게 접근하는 테이블 파악

    • 특정 테이블에 트랜잭션이 집중될 경우 병목현상이 발생할 수 있음
    • 해당 테이블을 여러 디스크에 분산 배치하여 입출력 성능 향상 가능
  2. 불필요한 테이블이나 프로세스 식별

    • CRUD 매트릭스에 연산이 전혀 없는 행이나 열을 통해 불필요한 요소 파악
  3. 데이터베이스 최적화

    • 트랜잭션 발생 빈도와 작업 내용을 분석하여 DB 구조 최적화
    • 용량 산정디스크 구성에 필요한 자료로 활용

7. CRUD 우선순위

  • 여러 연산이 중복될 경우, CRUD 연산의 우선순위에 따라 기록
    • 우선순위: C(Create) > D(Delete) > U(Update) > R(Read)
    • 예: 주문 변경 시, Read와 Update가 동시에 수행되면 우선순위에 따라 Update를 기록

8. 트랜잭션 분석의 목적

  • 데이터베이스 성능 최적화와 용량 산정
  • 트랜잭션 발생 빈도 및 데이터 흐름 파악
  • 프로세스 간 효율적인 데이터 처리를 위한 설계 개선

9. 시험 대비 포인트

  • 트랜잭션의 특성(ACID)을 명확히 이해하고 각 특성의 의미를 숙지
  • CRUD 분석의 목적과 CRUD 매트릭스 작성 방법을 정확히 파악
  • CRUD 연산의 우선순위와 매트릭스를 통해 파악할 수 있는 정보들을 기억
  • 관련 문제로는 트랜잭션 특성 설명, CRUD 매트릭스 해석 등이 출제될 수 있음

0개의 댓글