티스토리 뷰
반응형
📘 데이터베이스의 트랜잭션(Transaction)과 그 성질
1. 트랜잭션(Transaction)이란?
✅ 정의
트랜잭션(Transaction)이란 데이터베이스에서 하나의 논리적인 작업 단위를 말합니다.
즉, 여러 작업이 묶여서 전부 성공하거나, 전부 실패해야 하는 연산 묶음입니다.
✅ 예시
은행 계좌 이체를 생각해 봅시다:
- A 계좌에서 10만 원 출금
- B 계좌에 10만 원 입금
이 두 개의 작업은 항상 함께 이루어져야 의미가 있습니다.
- 출금만 되고 입금이 안 되면? → 데이터 오류
- 입금만 되고 출금이 안 되면? → 부정확한 결과
그래서 이 두 작업을 하나의 트랜잭션으로 묶습니다.
둘 다 성공하면 커밋(확정), 하나라도 실패하면 롤백(되돌림)합니다.
2. 트랜잭션의 성질: ACID
트랜잭션은 4가지 핵심 성질을 만족해야 합니다.
이 성질들을 영어 앞 글자를 따서 ACID라고 부릅니다.
🔷 A. Atomicity (원자성)
- 트랜잭션 내 작업은 모두 수행되거나, 전혀 수행되지 않아야 한다
- 하나라도 실패하면 전부 취소(rollback)되어야 함
🧾 예시: 출금은 됐지만 입금은 실패? → 전체 취소 (둘 다 안 한 것처럼)
🔷 C. Consistency (일관성)
- 트랜잭션 전후의 데이터는 항상 일관성 있는 상태여야 한다
- 데이터베이스의 규칙(제약조건, 무결성)이 항상 지켜져야 함
🧾 예시: A, B 계좌 합이 항상 100만 원이라면, 이체 후에도 합이 유지되어야 함
🔷 I. Isolation (고립성)
- 동시에 여러 트랜잭션이 실행되더라도 서로 간섭하지 않아야 한다
- 중간 단계가 다른 트랜잭션에 보여지지 않도록 보호해야 함
🧾 예시: A 사용자의 트랜잭션이 아직 입금 처리 중일 때, B 사용자가 그 계좌를 조회하면 이전 상태만 보여야 함
🔷 D. Durability (지속성)
- 트랜잭션이 커밋되면 그 결과는 영구적으로 저장되어야 한다
- 시스템이 갑자기 꺼져도 커밋된 내용은 보존되어야 함
🧾 예시: 입금 성공 메시지 뜬 후 시스템 정전 → 다음에 켜도 입금 내역은 남아있어야 함
3. 요약표
성질 | 의미 | 키워드 | 예시 설명 |
---|---|---|---|
Atomicity | 모두 수행 or 모두 취소 | All-or-Nothing | 출금만 되고 입금은 안 되면 전체 취소 |
Consistency | 규칙 유지, 일관성 보장 | Rule-preserving | 계좌합이 보존됨 |
Isolation | 다른 트랜잭션과 간섭 차단 | 서로 고립되어 실행 | 중간결과 노출 방지 |
Durability | 영구 저장, 시스템 장애에도 보존 | Power failure-resistant | 전기 나가도 데이터 보존 |
4. 트랜잭션은 왜 중요한가?
- 데이터 무결성 보장
- 예금, 예약, 쇼핑몰 결제 등 실제 비즈니스 처리의 핵심
- 동시 사용자 많은 시스템에서도 정확한 결과 보장
5. 트랜잭션 관련 용어 (보너스)
용어 | 설명 |
---|---|
Commit | 트랜잭션을 확정해서 DB에 영구 반영 |
Rollback | 트랜잭션을 취소해서 이전 상태로 되돌림 |
Savepoint | 중간 저장점. 필요 시 여기까지 되돌릴 수 있음 |
Autocommit | 명령마다 자동으로 커밋하는 기능 (기본적으로 OFF 권장) |
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
제 3 정규형이란? (0) | 2025.04.15 |
---|---|
제2정규형(2NF) 완전 정복 (0) | 2025.04.15 |
제1정규형 (1NF) - 데이터베이스 정규화 (0) | 2025.04.15 |
데이터베이스 정규형 (0) | 2025.04.15 |
버블정렬(Bubble sort) (0) | 2025.04.14 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C
- 심리학
- c++
- 윤성우
- 백준
- 일본어
- 일문따
- 통계
- 사회심리학
- 일본어문법무작정따라하기
- K-MOOC
- 조건반응
- Python
- 코딩테스트
- C/C++
- 오블완
- 뇌와행동의기초
- 정보처리기사
- stl
- 데이터분석
- 류근관
- 티스토리챌린지
- 회계
- 통계학
- 보세사
- 여인권
- 열혈프로그래밍
- 강화학습
- 파이썬
- 인지부조화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함