Study

트랜잭션(Transaction)

Clearing 2022. 8. 17. 14:09
728x90

트랜잭션(Transaction)이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 하나의 작업의 처리 단위를 뜻한다.

쉽게 말해 SELECT, INSERT, DELETE, UPDATE와 같이 SQL(질의어)를 이용하여 데이터 베이스에 접근하는 것을

의미한다. 작업의 단위는 하나의 SQL문이 아닌 사용자가 정하는 기준에 따라 정해지는 것을 의미한다.

 

트랜잭션의 특징은 다음과 같이 크게 4가지로 구분된다.

원자성(Atomicity)

- 트랜잭션이 데이터 베이스에 모두 반영되던가, 전혀 반영되지 않아야 한다.

 

일관성(Consistency)

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

독립성(Isolation)

- 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의

  연산에 끼어들 수 없다. 즉, 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 해당 트랜잭션의 결과를 참조할 수 없다.

 

지속성(Durability)

- 트랜잭션이 성공적으로 완료되었을 경우, 결과는 영구적으로 반영되어야 한다.

 

트랜잭션에는 Commit과 Rollback 연산이 있으며 Commit이란 하나의 트랜잭션 단위가 성공적으로 처리되고, 데이터베이스가 일관성 있는 상태에 있을 때, 하나의 트랜잭션이 끝났다는 것을 나타내는 연산이다.

Rollback은 하나의 트랜잭션 처리과정 중 문제가 발생하여 트랜잭션의 원자성이 깨진 경우, 트랜잭션을 처음부터

다시 시작하거나, 부분적으로만 연산된 결과를 취소시키는 연산이다.

후에 사용자는 트랜잭션이 처리된 단위대로 Rollback을 진행할 수 있다.

 

데이터베이스에 커넥션 된 객체로 setAutoCommit() 메서드를 사용하여 트랜잭션의 시작을 설정할 수 있고

메서드 안에 인자로 false를 주어 DB 프로그램의 자동 commit 기능을 해제할 수 있다.

이후 설정하고 싶은 트랜잭션 작업 단위를 정하여주고 해당 트랜잭션의 성공, 실패 유무를

commit()과 rollback()으로 나타낼 수 있다.

728x90

'Study' 카테고리의 다른 글

DOM & BOM  (0) 2022.08.10
Flex Layout  (0) 2022.07.27
CSS 방법론  (0) 2022.07.26
프론트엔드에서 Component란  (0) 2022.07.25
웹 접근성과 표준  (0) 2022.07.24