트랜잭션(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 | - | - | - |
주문 요청 | R | R | C | C |
주문 변경 | R | - | U | U |
- 예시 설명:
- 회원 등록 프로세스는 회원 테이블에만 데이터를 생성(Create)
- 주문 요청 프로세스는 회원 정보를 읽어(Read) 상품 정보를 조회(Read)하고 주문 및 주문 목록 데이터를 생성(Create)
- 주문 변경 프로세스는 주문 테이블과 주문 목록 테이블에서 데이터를 읽고(Read) 수정(Update)
6. CRUD 매트릭스 분석을 통한 최적화
-
과도하게 접근하는 테이블 파악
- 특정 테이블에 트랜잭션이 집중될 경우 병목현상이 발생할 수 있음
- 해당 테이블을 여러 디스크에 분산 배치하여 입출력 성능 향상 가능
-
불필요한 테이블이나 프로세스 식별
- CRUD 매트릭스에 연산이 전혀 없는 행이나 열을 통해 불필요한 요소 파악
-
데이터베이스 최적화
- 트랜잭션 발생 빈도와 작업 내용을 분석하여 DB 구조 최적화
- 용량 산정 및 디스크 구성에 필요한 자료로 활용
7. CRUD 우선순위
- 여러 연산이 중복될 경우, CRUD 연산의 우선순위에 따라 기록
- 우선순위: C(Create) > D(Delete) > U(Update) > R(Read)
- 예: 주문 변경 시, Read와 Update가 동시에 수행되면 우선순위에 따라 Update를 기록
8. 트랜잭션 분석의 목적
- 데이터베이스 성능 최적화와 용량 산정
- 트랜잭션 발생 빈도 및 데이터 흐름 파악
- 프로세스 간 효율적인 데이터 처리를 위한 설계 개선
9. 시험 대비 포인트
- 트랜잭션의 특성(ACID)을 명확히 이해하고 각 특성의 의미를 숙지
- CRUD 분석의 목적과 CRUD 매트릭스 작성 방법을 정확히 파악
- CRUD 연산의 우선순위와 매트릭스를 통해 파악할 수 있는 정보들을 기억
- 관련 문제로는 트랜잭션 특성 설명, CRUD 매트릭스 해석 등이 출제될 수 있음