트랜잭션이란 ?
트랜잭션이란 데이터베이스의 상태를 바꾸는 작업의 논리적 단위이다.
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 |