본문 바로가기
Database

DB - Transaction 정리

by devLog by Ronnie's 2021. 5. 1.

DB - Transaction 정리 

 

정의

데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. (라고 위키에서 설명한다.)

 

항상 정의는 뭔가 느낌이 확오지 않는 경우가 많다. 쉽게 말해서 트랜잭션이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻한다고 보면 된다. (한 번에 이루어지는 작업의 단위)

 

특징

트랜잭션의 성격을 설명할때 ACID 원칙을 말한다.

 

Atomicity (원자성) 

- 원자성은 트랜잭션이 데이터베이스에 모두 반영되던지 아니면 아예 반영이 되지 않아야 하는 것을 말한다.

  예를들어, 트랜잭션이 A와 B로 이루어졌다고 했을때 A작업은 이루어지고 B작업은 이루어지지 않는 상황은 있을 수 없는 것이다. 

  트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야하며 A작업이 이루어지고 B작업이 완벽히 수행되거나, 둘 중 하나라도 수행되지 않을시 나머지 작업도 취소되어야 하는것이다.

Consistency (일관성) 

- 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야한다. 

Isolation (격리) 

- 트랜잭션으로 처리되는 중간에 외부에서의 간섭은 없어야만 한다. (다른 트랜잭션 연산에 끼어들 수 없음.)

Durability (영속성) 

- 트랜잭션이 성공적으로 처리되면, 그 결과는 영속적으로 보관되어야 한다.

 

Commit, Rollback 연산

 

Commit

- 하나의 트랜잭션이 끝났다라는 것을 알려주기 위해 사용하는 연산.

- 커밋시에 수행했던 트랜잭션이 로그에 영구 저장되며, 트랜잭션 과정을 종료하게 된다.

Rollback

- 작업 중 문제 발생시, 트랜잭션 처리 과정에서 발생한 변경 사항을 취소하고 트랜잭션 과정 종료

- 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전 상태로 되돌림.

 

--> 쿼리 실행 후 커밋하는 순간 롤백 안됨. 

 

'Database' 카테고리의 다른 글

SQL - JOIN  (0) 2021.05.23
DB - 데이터베이스 관련 용어 정리  (0) 2021.05.18
DB - Oracle SQL SELECT 쿼리 실행 순서  (0) 2021.05.12
DB - MySql 명령어  (0) 2021.04.28
DB - Oracle & MySql 쿼리문 차이 정리  (1) 2021.04.27

댓글