기출문제/정보처리기사
2021년 1회 정보처리기사 기출문제 45번
엉클지니
2025. 3. 25. 13:59
45. 다음과 같은 트랜잭션의 특성은?
① 원자성(atomicity) ❷ 일관성(consistency)
③ 격리성(isolation) ④ 영속성(durability)
이 문제는 트랜잭션의 특성에 대해 묻고 있습니다. 트랜잭션이란 데이터베이스에서 하나의 작업 단위로, 여러 개의 작업을 하나의 트랜잭션으로 묶어 처리하는 과정입니다. 데이터베이스의 트랜잭션은 ACID 특성(원자성, 일관성, 격리성, 영속성)을 따라야 합니다.
문제 분석:
질문:
"시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다."는 설명에 해당하는 트랜잭션의 특성은 무엇인가요?
트랜잭션의 특성 (ACID):
- 원자성(Atomicity)
- 정의: 트랜잭션은 전체가 수행되거나 전혀 수행되지 않아야 한다는 특성입니다. 즉, 트랜잭션 내의 작업들이 모두 완료되거나, 하나라도 실패하면 전체가 롤백(취소)되어야 합니다.
- 예시: 은행에서 송금할 때, 송금액이 빠져나가고 수신자에게 입금되는 두 작업이 동시에 완료되거나 전혀 이루어지지 않아야 합니다.
- 일관성(Consistency)
- 정의: 트랜잭션 수행 전후의 데이터베이스 상태는 일관성이 있어야 하며, 트랜잭션이 완료된 후 데이터베이스는 정합성 있는 상태로 변해야 한다는 특성입니다. 즉, 트랜잭션 수행 전에 데이터베이스의 규칙과 제약이 만족되었다면, 트랜잭션 수행 후에도 규칙과 제약을 만족해야 합니다.
- 예시: 은행 계좌에서 돈을 출금하거나 입금할 때, 트랜잭션이 끝난 후에도 계좌 잔액이 올바른 상태여야 합니다.
- 격리성(Isolation)
- 정의: 여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 다른 트랜잭션의 영향을 받지 않아야 한다는 특성입니다. 즉, 트랜잭션 간에 서로 독립적으로 수행되어야 하며, 중간 상태는 다른 트랜잭션에 보여지지 않아야 합니다.
- 예시: 동시에 진행되는 두 트랜잭션이 서로의 중간 결과를 보지 않도록 해야 합니다.
- 영속성(Durability)
- 정의: 트랜잭션이 완료되면, 그 결과는 영구적으로 저장되어야 한다는 특성입니다. 시스템이 다운되더라도, 완료된 트랜잭션의 결과는 손실되지 않고 계속 유지되어야 합니다.
- 예시: 트랜잭션이 성공적으로 완료되면, 데이터는 디스크에 저장되어 시스템이 꺼지더라도 손실되지 않습니다.
문제의 키워드:
**"트랜잭션 수행 전과 후의 상태가 같아야 한다."**는 설명은 일관성(consistency) 특성과 관련이 있습니다. 트랜잭션이 완료된 후 데이터베이스가 일관된 상태여야 한다는 의미이기 때문입니다.
결론:
정답은 **❷ 일관성(consistency)**입니다. 트랜잭션이 수행되기 전후의 데이터베이스 상태가 일관되게 유지되어야 한다는 특성에 해당합니다.
정리:
트랜잭션 특성 정의 예시
원자성 | 트랜잭션 내의 작업이 모두 수행되거나 전혀 수행되지 않음. | 송금이 완료되면, 송금액이 빠져나가고 입금도 완료됨. |
일관성 | 트랜잭션 수행 전후의 상태가 일관되게 유지됨. | 계좌 잔액이 올바르게 업데이트되어야 함. |
격리성 | 트랜잭션 간에 서로 영향을 주지 않음. | 동시에 실행되는 트랜잭션은 서로의 결과를 보지 않음. |
영속성 | 트랜잭션 완료 후 결과는 영구적으로 저장됨. | 트랜잭션 완료 후에는 시스템 재시작에도 데이터가 유지됨. |
정리하자면,
"트랜잭션 수행 전과 트랜잭션 수행 후의 상태가 같아야 한다"는 설명은 일관성(consistency) 특성에 해당하므로, 정답은 ❷ 일관성입니다. 😊