티스토리 뷰

트랜잭션의 의미

  • 트랜잭션의 영어 단어는 transaction [거래, 매매, 처리, 과정] (https://en.dict.naver.com/#/entry/enko/6057b38e242c4b05969fcb2d3a8bfc04) 임
  • 데이터베이스에서의 transaction도 또한 유사한 의미로 하나의 처리의 단위로서 하나의 논리적 기능을 처리하는 단위임
  • 병행처리 또는 회복 recovery 작업시에 ACID의 네가지 원칙을 유지해야함
  • commit 되거나, rollback 되는 것

트랜잭션에서 ACID의 의미

Atomicity (원자성)

  1. 트랜잭션의 연산은 단일 단위로써 DB에 모두 한꺼번에 반영 되던지 안되던지 해야함
  2. 단일 트랜잭션 내 내부 작업 중 하나의 오류라도 있으면 해당 트랜잭션이 전부 취소되어야 함

Consistency (일관성)

  1. 트랜잭션의 수행이 성공적으로 완료 되면 언제나 일관성 있는 DB 형태로 변환함
  2. 시스템의 고정요소 (데이터타입 등)은 트랜잭션의 수행 전후가 같아야함

Isolation (독립성)

  1. 둘 이상의 트랜잭션이 실행 되는 중 하나의 트랜잭션에 다른 하나의 트랜잭션이 관여 할 수 없음, 독립적 수행을 보장
  2. 수헹 완료 전까지 다른 트랜잭션에 의해 참조되거나 할 수도 없음

Durability (영속성)

  1. 성공적으로 수행 된 트랜잭션의 내용은 영구히 반영됨

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
링크
«   2025/07   »
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
글 보관함