기술면접

트랜잭션(transaction)

검은고양이개발자 2023. 2. 11. 10:52
반응형

 

 

트랜잭션이란


 

트랜잭션이란 데이터베이스의 상태를 변화시키게 해서 수행하는 작업의 '단위'를 뜻합니다.

 

SELECT,INSERT,DELETE와 같이 SQL 을 통해 데이터베이스의 접근을 하여 상태를 변화시킬 수 있는데

 

SELECT 와 같이 명령어 하나가 트랜잭션이 아닌

 

개발자가 원하는 명령들의 총 과정 , 그 작업 단위가 하나의 트랜잭션이라 불리웁니다.

 

따라서 개발자의 역량에 따라 트랜잭션의 설계를 얼마나 적절하게 하는지가 결정될 수 있습니다.

 

 

 

 

 

 

 

트랜잭션 특징


 

이러한 트랜잭션의 특징에는

원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)

이렇게 4가지 존재합니다

 

트랜잭션은 단순한 하나의 행위,명령이 아닌 작업의 묶음, 단위라고 했는데 

원자성(Atomicity) 은 이러한 작업의 단위가 일부분 반영되는 것이 아닌 전체 모두가 반영 되거나,

혹은 전부 반영되지 않는 특징을 말합니다.

 

일관성(Consistency) 은 트랜잭션이 진행되는 동안 데이터베이스의 변화가 생겨도 그 변화의 영향을 받지 않고

처음 참조한 데이터베이스를 기반으로 트랜잭션이 그대로 진행됨을 뜻합니다.

 

독립성(Isolation) 은 트랜잭션이 여러개 실행될 때 각각의 트랜잭션은 고유의 영역을 가지고 있음을 뜻합니다.

각각의 트랜잭션은 그 작업의 단위가 마무리될 때까지, 다른 트랜잭션에 영향을 끼치지 않음을 뜻합니다.

 

지속성(Durability) 은 트랜잭션이 완료됐을 때, 결과가 지속적으로 변함없이 반영됨을 뜻하는 특징입니다.

 

 

 

 

 

 

 

 

 

 

Commit & Rollback


트랜잭션의 수행 결과를 나타내는 연산에는 Commit과 Rollback 연산이 있습니다.

 

트랜잭션의 특징 중 원자성을 다시 보면 작업이 모두 반영되거나,

혹은 전부 반영되지 않은 다고 했는데 모두 반영되어 성공적으로 트랜잭션이 완료될 경우

Commit 이란 연산을 통해 하나의 트랜잭션이 완료됐음을 알려주고 수행했던 트랜잭션이 로그에 저장이 됩니다.

 

반면에, 트랜잭션 처리가 비정상적으로 종료되면 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적 결과를 다시 취소시키는 Rollback  연산을 합니다.

 

반응형