일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS
- VCS
- 데이터통신
- reactive
- Lombok
- reactor
- html
- Static
- mongodb
- nodejs
- r
- github
- HTTP
- libuv
- javascript
- ajax
- redis
- network
- mybatis
- 네트워크
- cache
- spring
- Java
- Linux
- git
- socket
- Heap
- NoSQL
- Elk
- effective
- Today
- Total
빨간색코딩
트랜잭션이란 본문
컴퓨터공부하시는 분들 트랜잭션이라는 말은 주구장창 들었을 것이다. 그렇지만 듣기만 해보았지 정확한 개념을 모르는 경우가 있다. 나처럼ㅋㅋ 여러군데 공부해보고 정리해봤다
컴퓨터 과학분야에 트랜잭션은 "쪼개질 수 없는 업무처리의 단위"를 의미한다. ATM으로 계좌이체를 한다고 생각해보자. 내 계좌의 잔액에서 이체한 금액만큼 빼는 일과, 상대 계좌의 잔액에서 해당 금액만큼 더하는 일은 쪼개어져서는 안된다. 즉 하나의 업무로 함께 진행되어야 하는 일이다. "더이상 쪼갤 수 없다는" 표현 때문에 이를 원자성(Atomicity)을 보장해야 한다라고 얘기한다. 쪼갤 수 없기 때문에 일부만 동작해선 안된다.
부분 작업들 여러개가 모여진 이러한 트랜잭션을 처리하기 위해 데이터베이스는 다음과 같은 기술을 제공한다. 요런거 명령어쓴다.
- 롤백(Rollback): 부분 작업이 실패하면 트랜잭션 실행 전으로 되돌린다.
- 커밋(Commit): 모든 부분작업이 정상적으로 완료하면 이 변경사항을 한꺼번에 DB에 반영한다.
ACID(Atomicity, Consistency, Isolation, Durability)는 데이터베이스 트랜젝션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어
- 원자성(Atomicity): 트랜잭션에 속한 작업들이 모두 수행되었는지 아니면 모두 실행이 안되었는지를 보장하는 능력이다. 즉, 중간 단계까지 실행되고 실패하는 일은 없도록 하는 것이다.
- 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
- 고립성(Isolation)은 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.
- 지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.
'database' 카테고리의 다른 글
CentOS 7에 MongoDB 설치 (0) | 2017.08.04 |
---|---|
MongoDB 명령어 (database, collection, document, query, cursor, index) (1) | 2017.08.04 |
MongoDB (RDB와 비교, 특징과 장단점, 메모리성능 이슈, 주요용어) (3) | 2017.07.26 |
NoSQL (개념, 특징과 장점, CAP 이론, 데이터모델 분류) (1) | 2017.07.26 |
MySQL 실행로그 보기 (0) | 2016.12.24 |