일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- helm
- CVAT
- log
- MAC address
- java
- OS
- docker
- Packet
- jvm
- airflow
- grafana
- Python
- JavaScript
- Kafka
- kubernetes
- tcp
- kubeadm
- AWS
- Vision
- ip
- PostgreSQL
- EC2
- CSV
- kubectl
- Operating System
- Network
- aws s3
- Trino
- Spring
- zookeeper
Archives
- Today
- Total
JUST WRITE
Transaction 본문
이 글은 Guru99 사이트 'DBMS Transaction Management'를 해석, 정리한 글입니다.
Transaction
데이터베이스 Transaction은 하나 이상의 데이터베이스 작업을 수행하는 논리적 처리 단위입니다.
Transaction 시작과 끝 사이에 진행하는 데이터베이스 작업은 모두 하나의 Transaction에 속한다.
Transaction 중에는 데이터베이스 데이터가 일치하지 않을 수 있다.
Commit 한 후가 돼야 데이터가 일치한다.
특징
- Transaction 동안 데이터베이스 내 데이터 변경이 있을 수도 있고 없을 수 도 있다.
- 데이터베이스 데이터 변경이 없는 Transaction은 read-only Transaction이라고 한다.
- Transaction 성공적으로 끝나면 Consistent 상태로 된다.
- Transaction 전에 Inconsistent 상태라면 Transaction이 끝나도 Inconsistent 상태이다.
상태
상태 | 설명 |
Active State | Process가 시작되면 Transaction이 Active State가 된다. 이 상태동안 Read, Write가 가능하다. |
Partially Committed | Transaction 종료 후 Partially Commit이 된다. |
Committed State | Transaction 성공적으로 끝이 나면 Commit이 된다. Transaction 동안 변경된 사항도 데이터베이스에 반영된다. |
Failed State | Check 중 실패가 발견되거나 Transaction 진행 중에 종료되면 Failed State가 된다. |
Terminated State | Transaction이 다시 시작할 수 없을 때 Terminated State가 된다. |
ACID
ACID는 Transaction 동안 데이터베이스의 무결성을 유지하기 위한 특성이다.
ACID 아래와 같다.
- Atomicity(원자성)
- Transaction 중 데이터베이스 작업은 모두 성공되야 하며, 하나라도 실패하면 모두 취소되야 한다.
- Consistency(일관성)
- Transaction이 성공하면 Consistent 상태가 된다.
- Isolation(독립성)
- Transaction 중 다른 Transaction 내 작업이 끼어들 수 없다.
- 동시에 실행된 Transaction은 중간에 결과에 영향을 끼칠 수 없다.
- Durability(지속성)
- Transaction이 성공하면 데이터베이스 변경사항은 시스템이 고장 나더라도 영구적으로 반영되야 한다.
728x90
반응형
'Database' 카테고리의 다른 글
MariaDB 설치 (0) | 2023.01.09 |
---|---|
Stored Procedure (0) | 2022.01.02 |
Normalization vs Denormalization (0) | 2021.11.16 |
DBMS vs RDBMS (0) | 2021.11.02 |
Index (0) | 2021.11.01 |
Comments