<aside>
💡 데이터를 저장할때 데이터베이스에 저장하는 이유?
대표적인 이유로 데이터베이스는 트랜잭션
이라는 개념을 지원하기 때문이다
트랜잭션
은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다
</aside>
-단일한 논리적인 작업 단위(a single logical unit of work)
-논리적인 이유로 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것이 트랜잭션이다
-트랜잭션 내의 여러 SQL들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않는다(원자성, Atomicity)
5,000원(A → B) 계좌이체
계좌이체라는 거래는 위의 2가지 작업을 합쳐서 하나의 작업처럼 동작해야 한다.(=트랜잭션, 작업 단위) 만약 하나는 성공하고 다른 하나는 실패할 경우 금전적으로 큰 문제가 발생한다.
데이터 베이스의 트랜잭션 기능을 사용하면 모든 작업이 성공하면 저장하고, 중간에 하나라도 실패하면 거래 전의 상태로 돌아갈 수 있다.
모든 작업이 성공해서 데이터베이스에 정상 반영하는 것을 commit 이라 하고, 작업 중 하나라도 실패해서 거래 이전으로 되돌리는 것을 rollback 이라 한다.
용어 참고
commit
-지금까지의 작업한 내용을 DB에 영구적으로(permanently) 저장한다