wan-stack
Transaction (트랜잭션) 이란? 본문
"더이상 분할이 불가능한 업무 처리의 단위"를 의미
하나의 작업을 위해 더이상 분할될 수 없는 명령들의 모음,
즉, 한꺼번에 수행되어야 할 일련의 연산모음을 의미
** 데이터베이스와 어플리케이션의 데이터 거래(Transaction)에 있어서
안전성을 확보하기 위한 방법이 '트랜잭션'이다.
따라서 데이터베이스에서 테이블의 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나,
갱신, 삭제하는 도중에 오류가 발생하면, 결과를 재반영 하는 것이 아니라 모든 작업을 원상태로
복구하고, 처리 과정이 모두 성공했을 때만 그 결과를 반영한다.
동시에 성공하던지 동시에 실패해야 한다.
트랜잭션의 개념은
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위,
혹은 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위이다.
MySQL에서 트랜잭션은 데이터베이스 상태를 바꾸는 일종의 작업단위
INSERT, DELETE, UPDATE등의 SQL 명령문을 통해 데이터 상태를 바꿀 때마다
내부적으로 자동적으로 Commit을 실행하여 변경된 내역을 데이터 베이스에 반영한다.
작업단위는 '질의어 한문장이 아니다'
작업 단위란 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미
**게시판을 예로 생각한다면,
1. 게시판에 글을 작성하고, 올리기 버튼을 클릭
2. 글 올리기가 처리되고 자동으로 다시 게시판으로 돌아오게 한다.
3. 게시판에서 자신의 글이 포함된 업데이트된 게시글들을 볼 수 있다.
이러한 상황을 데이터베이스 작업으로 옮기면,
사용자가 올리기 버튼을 클릭했을 때 INSERT문을 사용하여 사용자가 입력한 게시글 데이터를 넣는다.
그 후에, 게시판을 구성할 데이터를 다시 SELECT 하여 최신 정보를 유지한다.
여기서, 작업단위는 INSERT문과 SELECT문 둘다를 합친 것
이러한 작업단위를 하나의 트랜잭션이라고 한다.
트랜잭션 특징(4가지)
1. 원자성
- 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것
- 트랜잭션은 사람이 설계한 논리적인 작업단위로서, 일처리는 작업단위 별로 이루어져야 사람이 다루는데 무리가 없다.
2. 일관성
- 트랜잭션의 작업 처리 결과가 항상 일관성 있어야 한다는 것
- 트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도
업데이트된 데이터베이스로 트랜잭션이 진행되는 것이 아니라,
처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다.
3. 독립성
- 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우,
어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 점
- 하나의 트랜잭션이 완료될때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다.
4. 지속성
- 트랜잭션이 성공적으로 완료됬을 경우,
결과는 영구적으로 반영되어야 한다는 것
참고,
[데이터베이스] Transaction, 트랜잭션이란?
Transaction, 트랜잭션 트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은
wonit.tistory.com
[MYSQL] 📚 트랜잭션(Transaction) 개념 & 사용 💯 완벽 정리
트랜잭션(Transaction) 이란? 트랜잭션(Transaction)의 사전적 의미는 거래이고, 컴퓨터 과학 분야에서의 트랜잭션(Transaction)은 "더이상 분할이 불가능한 업무처리의 단위"를 의미한다. 이것은 하나의
inpa.tistory.com