티스토리 뷰
트랜잭션의 의미
- 트랜잭션의 영어 단어는 transaction [거래, 매매, 처리, 과정] (https://en.dict.naver.com/#/entry/enko/6057b38e242c4b05969fcb2d3a8bfc04) 임
- 데이터베이스에서의 transaction도 또한 유사한 의미로 하나의 처리의 단위로서 하나의 논리적 기능을 처리하는 단위임
- 병행처리 또는 회복 recovery 작업시에 ACID의 네가지 원칙을 유지해야함
- commit 되거나, rollback 되는 것
트랜잭션에서 ACID의 의미
Atomicity (원자성)
- 트랜잭션의 연산은 단일 단위로써 DB에 모두 한꺼번에 반영 되던지 안되던지 해야함
- 단일 트랜잭션 내 내부 작업 중 하나의 오류라도 있으면 해당 트랜잭션이 전부 취소되어야 함
Consistency (일관성)
- 트랜잭션의 수행이 성공적으로 완료 되면 언제나 일관성 있는 DB 형태로 변환함
- 시스템의 고정요소 (데이터타입 등)은 트랜잭션의 수행 전후가 같아야함
Isolation (독립성)
- 둘 이상의 트랜잭션이 실행 되는 중 하나의 트랜잭션에 다른 하나의 트랜잭션이 관여 할 수 없음, 독립적 수행을 보장
- 수헹 완료 전까지 다른 트랜잭션에 의해 참조되거나 할 수도 없음
Durability (영속성)
- 성공적으로 수행 된 트랜잭션의 내용은 영구히 반영됨
Commit과 Rollback
- Commit은 트랜잭션으로 변경 된 데이터를 영구히 저장하는 것을 의미함
- commit 이전에는 메모리 buffer에만 반영이 되므로 데이터는 commit 이전 상태로 언제든 복구가 가능함 (commit 이후 영원히 기존 데이터는 잃어버리게됨)
- 어플리케이션의 정상/비정상 종료시 데이터가 DB와 접속이 단절되면 자동 Rollback
- Rollback은 트랜잭션에 의한 변경 전으로 되돌아감
- 정상/비정상적으로 종료되어 DB와 접속이 해제되면 Rollback되며 또한 DB의 일관성을 해칠 때도 rollback 됨
- 트랜잭션의 일부 오류가 있을 경우 rollback됨
- rollback시 해당 트랜잭션을 재시작하거나 폐기함
'CS > OS, DB' 카테고리의 다른 글
NoSQL이란? NoSQL 종류 (MongoDB, Redis, Cassandra) (0) | 2022.04.02 |
---|---|
Stack, Heap... 메모리에 관해 (0) | 2022.02.14 |
프로세스와 스레드의 차이 (0) | 2022.02.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코딩연습
- 백준10828
- dynamic programming
- operation System
- 백준
- Memory
- heap
- Stack
- 기술면접질문
- 카드구매하기
- computer science
- Process vs Thread
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함