Web

트랜잭션

필립 2024. 5. 22. 23:41

트랜잭션이란 ? 

트랜잭션이란 데이터베이스의 상태를 바꾸는 작업의 논리적 단위이다. 

MySQL에서 입력하는 쿼리문은 입력과 동시에 처리되어 데이터베이스에 반영되는데 

여기서 작업단위는 한 가지 쿼리를 뜻하는 게 아닌 한 동작에 필요한 여러 개의 쿼리문을 의미한다. 

 

트랜잭션의 특징(ACID)

트랜잭션의 특징은 크게 네 가지로 구분된다.

원자성 (Atomicity) 트랜잭션에 속한 각각의 쿼리(CRUD)를 하나의 단위로 취급하는 작업단위는 전부 반영되거나 어느 하나라도 오류가 발생한다면 트랜잭션 전체가 취소되어야 한다. 
일관성 (Consistency) 작업 처리 결과는 일관성을 가져야한다. 테이블에 변경 사항을 적용할 때 미리 정의된, 예측할 수 있는 방식만을 사용하고 트랜잭션 수행 전이나 후에 데이터 모델이 갖고 있던 모든 제약조건을 만족해야한다. 트랜잭션 일관성이 확보되면 데이터 손상이나 오류 때문에 테이블 무결성에 손상이 가는 결과가 생기지 않는다. 
고립성 (Isolation) 둘 이상의 트랜잭션이 병행 실행되고 있을 때 다른 트랜잭션의 작업은 끼어들지 못하도록 보장한다. 다른 트랜잭션의 연산은 서로 관여할 수 없으며 수행 중인 트랜잭션이 완전히 완료될 때까지 수행 결과를 참조할 수 없다.
지속성, 영속성  (Durability) 성공적으로 수행된 트랜잭션은 시스템이 고장나더라도 영구히 반영되어야한다. 

 

 

'Web' 카테고리의 다른 글

Bcrypt  (0) 2024.05.24
JWT (Json Web Token)  (0) 2024.05.23
쿠키  (0) 2024.05.21
관계형 데이터베이스  (0) 2024.05.20
Joi 라이브러리  (0) 2024.05.17