트랜잭션이란?

Kyu·2022년 6월 28일
0

interview

목록 보기
3/3

트랜잭션이란?

질의를 하면, 질의가 모두 실행되거나 모두 실행되지않는 논리 작업단위

절차의 시작이 있고 끝이 있을 것이다

하나를 단위로 한 논리 블록안에 절차들이 온전히 실행되거나 모두 실행되지 않아야한다

이 단위들에 대해서는 원자성이 보장되어야한다
예) 입출금

TPS - Transaction per second

원자성 -
데이터는 결국에 디스크에 저장이 되는데, 덩어리로 연이어서 저장되는데

예를들어 뭔가 셀렉할때 실제로 그 데이터를 살펴볼까? 그게 아닐수 도 있다

왜냐?

트랜잭션 내에서 데이터가 변경이 일어날때 메모리에 복사본을 만들어놓는다

트랜잭션이 뭔가 야기가되면 메모리에서만 바뀌는 것이고, 영속화되는 파일에서는 바뀐게아니다

중요한건 실패를하면 메모리에 있는걸 날린다

완료되면 실제로 파일에 commit을 한다.

파일에 write하는 게 아니라 commit한다는 것은 바로 메모리에 복사본을 만들어두고 파일에 적용시키는 원리이기 때문이다

그런데 이게 원자성이 완벽하게 보장되냐?

디비 자체에서 원자성을 보장하긴 하지만 소프트웨어는 항상 버그가 있을 수 밖에 없다
때문에 DBMS 마다 격리수준을 정할 수 있다

  1. 격리수준 -

profile
TIL 남기는 공간입니다

0개의 댓글