KT에이블스쿨 5기/정보처리기사

[정보처리기사 실기] 트랜잭션(Transaction)의 4가지 특성과 5가지 논리적상태 +은행거래예시

ryuming 2024. 4. 14. 01:20

[정보처리기사 실기] 트랜잭션(Transaction)의 4가지 특성과 5가지 논리적상태 +은행거래예시

 

안녕하세요 에이블러여러분 ~~~~

정처기 실기가 2주도 남지않았습니다 

tmi이지만

저는 금요일 수업 도중, 남자친구가 응급수술을 하게되어서... 

정말 급하게 외출을 쓰고 보호자로 병원을 다녀왔습니다

광주>목포>광주

정신없는 하루....멘탈이 ㅠㅠㅠㅠ.,,

건강이 최고입니당 ㅠㅠ

그래두.. 정처기 할 수 있는데까진 해보려구합니다~

다들 빠이팅

 

오늘은 데이터베이스에서 엄청 중요한 개념이면서 정처기 단골문제인

트랜잭션의 개념을 설명해드리고,

4가지 특성인 ACID과 5가지 논리적 상태를 은행업무로 예시를 들어서 설명해드리겠습니다

(혹시 틀린 부분이 있다면 댓글로 말해주세용)

 

트랜잭션(Transaction)
트랜잭션(Transaction)은 데이터베이스에서 수행되는 작업의 단위를 나타냅니다. 트랜잭션은 데이터베이스를 일관된 상태로 유지하기 위해 필요한 작업들의 논리적인 그룹입니다. 이를 위해 트랜잭션은 4가지 주요 특성을 가지고 있으며, 다양한 논리적인 상태를 가질 수 있습니다.

 

트랜잭션의 4가지 특성 -  ACID

 

1. 원자성(Atomicity): 트랜잭션은 하나의 원자적인 단위로 간주되어야 합니다. 즉, 트랜잭션에 속한 모든 작업은 모두 성공하거나 모두 실패해야 합니다. 중간 단계에서 실패하면 이전에 수행된 작업들은 롤백되어야 합니다.

예를 들어, 고객이 자신의 계좌에서 다른 계좌로 이체하는 거래가 있을 때, 이체 거래는 모두 성공하거나 모두 실패해야 합니다. 즉, 송금 거래와 입금 거래는 동시에 발생하거나 동시에 실패해야 합니다.

 

2. 일관성(Consistency): 트랜잭션의 실행 결과는 데이터베이스에 정의된 모든 제약 조건을 만족해야 합니다. 즉, 트랜잭션이 완료된 후에도 데이터베이스는 일관된 상태를 유지해야 합니다.

거래가 성공적으로 완료되면, 데이터베이스는 일관된 상태를 유지해야 합니다. 예를 들어, 송금 후에 송금 계좌와 입금 계좌의 잔액이 정확하게 업데이트되어야 합니다.

 

3. 고립성(Isolation): 한 트랜잭션의 실행이 다른 트랜잭션에 영향을 미치지 않아야 합니다. 각 트랜잭션은 독립적으로 실행되는 것처럼 보여야 하며, 다른 트랜잭션의 실행 상태를 간섭하지 않아야 합니다.

한 거래의 실행이 다른 거래에 영향을 미치지 않아야 합니다. 예를 들어, 동시에 두 고객이 같은 계좌로 입금하는 거래를 시도할 때, 하나의 거래가 다른 거래의 결과에 영향을 미치면 안 됩니다.

 

4. 지속성(Durability): 트랜잭션이 성공적으로 완료된 후에는 해당 트랜잭션에 의해 변경된 데이터는 영구적으로 저장되어야 합니다. 시스템의 장애 또는 다운 시에도 트랜잭션이 영구적으로 적용되어야 합니다.

거래가 성공적으로 완료된 후에는 그 결과가 영구적으로 저장되어야 합니다. 예를 들어, 거래가 성공적으로 처리되면, 계좌 잔액의 변화는 영구적으로 데이터베이스에 저장되어야 하며, 시스템 장애가 발생해도 변하지 않아야 합니다.

 

트랜잭션의 5가지 논리적 상태

 

1. 활동(Active): 트랜잭션이 시작되고 아직 완료되지 않은 상태입니다.

고객이 송금 거래를 시작했지만 아직 완료되지 않은 상태입니다.

 

2. 부분 완료(Partially Committed): 트랜잭션이 마지막 명령문을 실행한 후, 커밋되기를 기다리는 상태입니다.

송금 거래가 성공적으로 처리되었지만, 아직 입금 거래가 완료되지 않은 상태입니다. 이 상태에서는 입금 거래를 마무리하기 전에 커밋되지 않은 송금 거래를 롤백할 수 있습니다.

 

3. 완료(Committed): 트랜잭션이 성공적으로 완료되고, 변경 사항이 영구적으로 데이터베이스에 반영된 상태입니다.

송금 거래와 입금 거래가 모두 성공적으로 처리되어 완료된 상태입니다.

 

4. 실패(Failed): 트랜잭션이 실행 중에 오류가 발생하여 중단된 상태입니다. 이 상태에서는 롤백될 수 있습니다.

거래 중에 오류가 발생하여 송금 거래나 입금 거래 중 하나가 실패한 상태입니다.

 

5. 철회(Aborted): 트랜잭션이 실패한 후 롤백되어 이전 상태로 되돌아간 상태입니다.

실패한 거래가 롤백되어 이전 상태로 복구된 상태입니다.

 

 

이러한 트랜잭션의 특성과 상태는 데이터베이스 시스템에서 데이터 일관성과 안전성을 보장하기 위해 중요합니다.

데이터베이스 관리 시스템은 이러한 특성과 상태를 관리하여 트랜잭션을 안전하게 처리합니다.

 


 

저는 이렇게 은행거래로 이해하니까 정말 쉽게 이해가 되었는데요

ㅇㅕ러분들도 이 글이 많은 도움이 되었으면 좋겠습니다~~