<aside> 💡 실패하는 트랜잭션을 만들면 안됨.
</aside>
트랜잭션은 데이터베이스에서 수행되는 하나의 논리적인 작업 단위를 말합니다. 트랜잭션은 데이터베이스의 일관성과 무결성을 보장하기 위해 사용됩니다. 일련의 데이터베이스 작업들을 논리적으로 묶어서 하나의 트랜잭션으로 처리함으로써, 작업의 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 유지할 수 있습니다.
트랜잭션은 다음과 같은 특징을 가지고 있습니다:
트랜잭션은 데이터베이스 시스템에서 중요한 개념으로, 데이터의 일관성과 무결성을 유지하는 데에 필수적입니다.
트랜잭션으로 묶는다는것은 일의 최소단위로 묶는다는 이야기이다.
만약 내가 읽는중에 누가 쓰거나 삭제한다면 읽을 수 없게되니까
이걸 하난의 트랜잭션으로 묶어서 내가 읽는동안 트랜잭션을 걸어서
그 행위를 못하게 만들어야 한다.
select는 여러 클라이언트가 동시에 접속하여도 괜찮지만
insert를 여러명이 동시에 하면 안되니까 락을 걸어버림
즉 insert같은 db에 변형을 주는 요청은 동시에 들어오면
다른 클라이언트는 wait가 걸린다.