Transaction

agnusdei·2025년 4월 24일
0

Database

목록 보기
2/30
  • 문제
    트랜잭션(Transaction)에 대해 설명하시오.

  • 답변

0. 질문에 대한 답변
트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 의미하며, 데이터의 무결성과 일관성을 보장하기 위해 ACID 특성을 만족해야 한다.


1. 개념 & 핵심

  • 트랜잭션(Transaction): 데이터베이스에서 작업의 단위로, 모두 성공하거나 모두 실패해야 하는 일련의 연산 집합
  • 핵심: 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)ACID 특성

2. 등장배경 & 목적

  • 등장배경: 데이터베이스에서 다중 사용자 환경이나 시스템 장애 발생 시 데이터 무결성 보장이 필요
  • 목적: 작업 중간 실패 시에도 데이터베이스가 일관된 상태를 유지하도록 함

3. 역할

  • 여러 작업을 하나의 단위로 묶어 일관된 처리 보장
  • 에러 복구 및 롤백을 통해 데이터 보호
  • 동시성 제어를 통해 사용자 간 간섭 최소화

4. 활용 계층 또는 범위

  • 주로 애플리케이션 계층데이터베이스 관리 시스템(DBMS) 계층에서 구현
  • 분산 트랜잭션의 경우 다수의 시스템에 걸쳐 처리되기도 함

5. 구성요소

  • Begin Transaction: 트랜잭션 시작
  • Read/Write 연산: 데이터에 대한 조작
  • Commit: 변경사항 확정
  • Rollback: 오류 발생 시 작업 취소

6. 시간순 작동 순서
1. 트랜잭션 시작 (BEGIN)
2. 데이터 읽기 및 쓰기 (READ, WRITE)
3. 오류 없으면 COMMIT
4. 오류 발생 시 ROLLBACK
5. 트랜잭션 종료


7. 종류

  • Flat Transaction: 기본 트랜잭션 구조
  • Nested Transaction: 트랜잭션 내에 하위 트랜잭션 포함
  • Distributed Transaction: 다중 노드 간 트랜잭션
  • Compensating Transaction: 롤백이 어려운 경우 보상 작업 수행

8. 장단점
장점

  • 데이터 무결성 및 일관성 보장
  • 오류 회복 용이
  • 동시성 제어 가능

단점

  • 과도한 롤백 및 락 발생 시 성능 저하
  • 복잡한 트랜잭션 관리 필요 (특히 분산 환경)

9. 전망 & 개선점

  • NoSQL 환경에서의 BASE(Basically Available, Soft state, Eventually consistent) 모델 등 트랜잭션 대체 모델 등장
  • 마이크로서비스 아키텍처(MSA)에서의 SAGA 패턴, 2PC(Two-Phase Commit) 등으로 진화 중
  • 성능 개선을 위한 비동기 처리 기술과 병행 사용 확대

10. 어린이 버전 요약
트랜잭션은 마치 블록 쌓기 게임처럼, 전부 다 쌓아야 성공이고, 하나라도 무너지면 처음부터 다시 하는 거예요. 덕분에 블록이 언제나 잘 정리돼 있어요!

0개의 댓글