Kimsora✨
Published 2023. 11. 12. 22:43
트랜잭션 CS
320x100
반응형

트랜잭션이라고 말만들어 봤지 정확히 무엇인지 몰라서 정리해볼려고한다

 

트랜잭션이란❓

클라이언트와 서버간 서로 데이터를 주고받는 일련의 과정을 의미하며  Request와 Response을 통해 tracsaction(데이터 교환)이 일어나게 된다 , 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다

ACID(원자성,일관성,고립성,지속성)원칙을 준수하여 데이터를 안전하게 처리한다

 

원자성 (Atomicity) :모든 작업이 완료되거나 실패하는 것으로 간주된다⇒하나의 작업이라도 실패하면 모든 작업이 롤백되어 이전 상태로 되돌려진다

 

일관성 (Consistency)

:실행되기 전과 실행된 후의 데이터 베이스 상태는 일관되어야한다 트랜잭션이 완료된 후에도 데이터베이스는 일관된 규칙을 따라야한다

 

고립성 (Isolation)

:복수의 트랜잭션이 동시에 실행될 때 각 트랜잭션은 다른 트랜잭션에서 실행중인 작업을 간섭하지 않고 독립적으로 실행되는 것처럼 보여야한다

 

지속성 (Durability) :트랜잭션이 완료되면 그결과가 영구적으로 저장되어야 한다 시스템 장애 또는 전원 공급 중단과 같은 문제가 발생하더라고 트랜잭션 결과는 유지 되어야한다

 

 

트랜잭션 연산 및 상태

Commit 연산

:한개의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났고 데이터베이스가 다시 일관된 상태에 있을 때 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는것

Rollback 연산

:하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때 이 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 구현하기위해 이 트랜잭션이 행한 모든 연산을 취소(Undo)하는 연산이다⇒재시작하거나 폐기한다

 

활동(Active)

트랜잭션이 실행 중인 상태

실패(Failed)

트랜잭션 실행에 오류가 발생하여 중단된 상태

철회(Aborted)

트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태

부분 완료(Partially Committed)

트랜잭션의 마지막 연산까지 실행하고 Commit 연산이 실행되기 직전의 상태

완료(Committed)

트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태

부분완료 vs 완료

commit 요청이 들어오면 상태는 부분 완료 상태가 된다. 이후 commit을 문제 없이 수행할 수 있다면 완료 상태로 전이되고, 만약 오류가 발생하면 실패 상태가 된다. 즉 부분완료는 commit 요청이 들어왔을 때를 의미하고, 완료 상태는 commit을 정상적으로 완료한 상태를 의미한다

728x90
반응형

'CS' 카테고리의 다른 글

요구사항정의서  (0) 2022.12.19
SRC(Software requirements specification)  (0) 2022.12.19
profile

Kimsora✨

@sorarar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그

WH