공부기록
코타쿠
« 2024/11 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
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 |
관리 메뉴
공부기록
트랜잭션 본문
CS/DB
트랜잭션
코타쿠
2021. 4. 30. 20:34
- 트랜잭션의 정의
- 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 또는 한꺼번에 모두 수행되어야할 일련의 연산을 의미
- ACID (Atomiticy, Consistency, Isolation, Durability) 성질을 가지는 데이터 베이스 연산의 나열 (Sequence)이다.
- Atomicity (원자성)
- 트랜잭션의 연산은 데이터베이스에 반영되도록 모두 완료 (Commit)되든지, 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다.
- 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되거나, 오류 발생시 모두 취소되어야 한다.
- Consistency (일관성)
- 트랜젝션이 commit되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
- 무결성 제약이 트랜잭션 전과 후가 같아야 하는 것을 의미
- Isolation (독립성)
- 둘 이상의 트랜잭션이 동시에 수행되는 경우 어느 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없다.
- 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
- Durability (지속성)
- 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야함.
- 모든 트랜잭션은 로그로 남고 시스템 장애 전 상태로 되돌릴 수 있다.
- 트랜잭션은 암시적으로 시작하며 "commit work" 또는 "rollback work"로 종료한다.
- commit은 성공적인 트랜잭션 종료를 의미한다.
- rollback은 비정상적인 트랜잭션 종료를 의미한다.