트랜잭션(Transaction)

one·2022년 9월 21일
0

[TIL]What I Want To Know...

목록 보기
17/22
post-thumbnail

트랜잭션이란?

데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며, 여러 개의 쿼리들을 하나로 묶는 단위.
-> 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 말함.

4가지 특징 (ACID)

원자성(Atomicity) ("all or nothing")

  • 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 것.
  • 예를 들어 커밋을 했는데 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장하는 것.
    • 커밋 시작 -> 트랜잭션 -> 커밋 종료를 거쳐 DB에 데이터가 저장이 되는데 에러나 이슈가 생겨 트랜잭션 전의 상태로 되돌리는 것을 롤백이라고 함.
    • 커밋, 롤백을 통해 무결성을 보장할 수 있음.

일관성(Consistency)

  • '허용된 방식'으로만 데이터를 변경해야 하는 것을 의미.
  • 이에 따른 작업 처리 결과가 일관성이 있어야함.

격리성 or 독립성(Isolation)

  • 트랜잭션 수행 시 서로 끼어들지 못하는 것.

지속성(Durability)

  • 성공적으로 수행된 트랜잭션은 영원히 반영되어야 하는 것.
  • 이는 DB에 장애가 생겨도 워낼 상태로 복구하는 회복기능이 있어야함을 뜻함(체크섬, 저널링, 롤백 등의 기능).
profile
늘 호기심을 갖고, 새로운 것에 도전할 것.

0개의 댓글