728x90
반응형
■ MySql 트랜잭션(Transaction)
■ 트랜잭션(Transaction)이란?
DB 데이터베이스의 상태를 변화시키기 위해 수행하는 일종의 작업 단위를 의미하며,
작업 처리 전체를 하나의 단위로 묶어서 처리함
SQL에서는 쿼리 시작 전 상단부에 트랜잭션 사용을 선언한 후 쿼리를 수행하며,
쿼리가 정상적으로 종료되면 COMMIT으로 데이터베이스에 데이터를 저장함
데이터베이스의 상태를 변화시킨다?
즉, 질의어를 통해 데이터베이스 데이터 접근 및 변화시키는 것을 의미
■ 질의어
- SELECT (조회)
- INSERT (삽입)
- UPDATE (수정)
- DELETE (삭제)
■ 트랜잭션(Transaction) 특징
- 원자성(Atomicty)
: 트랜잭션이 데이터베이스에 모두 반영되던가 전혀 반영되지 않아야 함 (일부 실행으로는 트랜잭션의 기능을 가질 수 없음)
- 일관성(Consistency)
: 트랜잭션이 작업 처리를 성공적으로 완료하면 결과는 항상 일관된 데이터베이스 상태로 됨
- 독립성(Isolation)
: 둘 이상의 트랜잭션이 동시에 병행 실행될 때, 어느 하나의 트랜잭션이라도 다른 트랜잭션이나 작업이 연산에 접근할 수 없음
즉, 하나의 트랜잭션이 모두 수행되어야만 참조할 수 있음
- 지속성(=영구성, Durability)
트랜잭션이 성공적으로 완료되면 결과는 어떠한 경우에라도 보장받으며, 영구적으로 반영되어야 함
■ 트랜잭션(Transaction) 상태
- 활동(Active) - 트랜잭션이 실행중인 상태
- 실패(Failed) - 트랜잭션 실행 중 오류 발생으로 처리 중단
- 부분적 완료(Partially Committed) - COMMIT 연산 실행 직전 상태로 트랜잭션의 마지막 연산까지 실행된 상태
- 철회(Aborted) - 비정상적으로 종료되어 Rollback 연산 실행 상태
- 완료(Committed) - 성공적으로 완료되어 COMMIT 연산을 실행한 후의 상태
■ 트랜잭션(Transaction) 사용하는 이유
데이터의 일관성 유지 및 안정적 데이터 복구를 위함
728x90
반응형
'MySql' 카테고리의 다른 글
[MySql] 숫자가 아닌 데이터, 숫자만 들어간 데이터 찾기 REGEXP (0) | 2021.10.20 |
---|---|
[MySql] IN 조건 (1) | 2021.09.23 |
[MySql] OLD_PASSWORD() 와 PASSWORD() 함수 (0) | 2021.05.25 |
[MySql] 프로세스 리스트 확인 SHOW / 프로세스 중지 KILL (0) | 2021.05.24 |
[MySql] 특정 문자열 기준 문자열 자르기 SUBSTRING_INDEX (0) | 2021.01.25 |