본문 바로가기
Data Engineering

[SQLD 자격검정 실전문제] Part 1-2. 48번 트랜잭션 작업

by 햣둘 2025. 5. 28.

 

정답 : 2번

순차적으로 수행되는 작업 A, B가 반드시 모두 수행되거나 모두 수행되지 않아야 한다고 할 때

1) A와 B는 하나의 트랜잭션으로 묶여 처리가 되어야 한다. (O)

2) A와 B는 수행 후 각각 커밋(Commit)을 수행해야 한다. (X)

-> A와 B는 하나의 트랜잭션(논리적 작업단위)이므로 커밋은 A, B를 모두 수행한 후 "한 번만" 수행하면 된다. 

-> 트랜잭션 내에서는 모든 작업이 완료된 후에 "단일 커밋"이 이루어져야 하므로, 각 작업에 개별 커밋을 수행하는 설명은 적절하지 않음

3) A와 B에 주어진 조건은 트랜잭션의 원자성(Atomicity)에 해당한다. (O)

4) A가 완료되지 않으면 시스템 장애가 발생했다고 보고 A를 롤백해야 한다. (O)

 

[요약 설명]

이 문제는 데이터베이스 트랜잭션(Transaction)의 개념과 트랜잭션의 특성(ACID) 중 Atomicity에 대한 이해를 평가함.

작업이 모두 성공하거나 모두 실패해야 하는 상황에서 트랜잭션 관리와 커밋(Commit) 및 롤백(Rollback)의 올바른 동작을 묻고 있음.

 

[이론적 내용]

1. 트랜잭션 (Transaction)

- 트랜잭션은 데이터베이스에서 하나의 작업 단위로 처리되는 작업 집합임

- A와 B는 작업이 하나의 트랜잭션으로 묶이면 모든 작업이 성공해야 커밋되고, 하나라도 실패하면 롤백됨

 

2. 트랜색션의 ACID 특성

- 원자성 (Atomicity) : 트랜잭션에 포함된 모든 작업이 전부 성공하거나 전부 실패해야 하는 성질

- 일관성 (Consistency) : 트랜잭션이 완료된 후 데이터베이스가 일관된 상태를 유지해야 함

- 격리성 (Isolation) : 트랜잭션이 독립적으로 실행되어야 함

- 지속성 (Durability) : 트랜잭션이 성공적으로 커밋된 후 변경내용이 영구적으로 저장되어야 함 

 

3. 커밋(Commit)과 롤백(Rollback)

- 커밋 : 트랜잭션이 정상적으로 완료된 경우 데이터 변경사항을 확정함

- 롤백 : 트랜잭션이 실패하거나 오류가 발생했을 경우 이전 상태로 복구함