MySql

[MySql] 트랜잭션(Transaction)

chsr 2021. 6. 9. 13:12
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
반응형