코딩일기/자격증

[정보처리기사] 트랜잭션의 정의와 4가지 특징(ACID) | 2020년 정보처리기사 실기 기출문제

jhy_2023 2024. 8. 12. 09:03
728x90
반응형

📌트랜잭션(Transaction) 정의

트랜잭션은 데이터베이스 관리 시스템(DBMS)에서 하나의 논리적 작업 단위를 구성하는 연산들의 집합을 의미합니다. 트랜잭션은 데이터베이스의 일관성을 유지하기 위해 수행되어야 할 일련의 작업들을 묶은 것으로, 모든 작업이 완벽하게 수행되거나, 그렇지 않으면 전혀 수행되지 않은 것처럼 만드는 것이 중요합니다.

반응형

1️⃣ Atomicity (원자성)

  • 트랜잭션의 작업들은 모두 성공하거나 모두 실패해야 한다는 것을 의미합니다.
  • 트랜잭션 중 일부 작업만 수행되는 경우는 허용되지 않으며, 만약 트랜잭션이 중단되면 이미 수행된 작업도 모두 취소(롤백)되어야 합니다.
  • 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 한다는 특성

2️⃣ Consistency (일관성)

  • 트랜잭션이 성공적으로 완료된 후 데이터베이스는 일관된 상태를 유지해야 합니다.
  • 트랜잭션 수행 전과 수행 후의 데이터베이스 상태가 일정한 규칙과 제약 조건을 충족해야 하며, 무결성 제약 조건도 항상 유지되어야 합니다.
  • 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함

3️⃣ Isolation (독립성, 격리성)

  • 트랜잭션이 실행되는 동안 다른 트랜잭션의 작업이 서로 간섭하지 않아야 한다는 것을 의미합니다.
  • 트랜잭션이 완료되기 전에는 중간 상태의 데이터를 다른 트랜잭션이 볼 수 없으며, 동시에 여러 트랜잭션이 실행되더라도 결과는 순차적으로 실행된 것과 동일해야 합니다.
  • 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음

4️⃣ Durability (영속성)

  • 트랜잭션이 성공적으로 완료된 후에는, 그 결과가 영구적으로 데이터베이스에 저장되어야 한다는 것을 의미합니다.
  • 시스템 오류나 장애가 발생하더라도 커밋된 트랜잭션의 결과는 손실되지 않고 유지되어야 합니다.
  • 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
728x90

2020년 정보처리기사 실기 기출문제

문제

다음은 트랜젝션의 주요 특성 4가지이다. 빈 칸에 알맞은 용어를 쓰시오.

  • (     1     ) : 트랜젝션의 가장 기본적인 특성으로 트랜젝션 내의 연산은 반드시 모두 수행되어야 하며 그렇지 못한 경우 모두 수행되지 않아야함
  • (     2     ) : 트랜젝션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안 됨
  • (     3     ) : 하나의 트랜젝션이 수행 중에는 다른 트랜젝션이 접근할 수 없고 각각의 트랜젝션은 독립적이어야 함
  • (     4     ) : 지속성이라고도 하며, 트랜젝션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함

정답

원자성, 일관성, 독립성, 지속성

해설

  1. 원자성 (Atomicity)
    • 트랜잭션이 완전히 완료되거나 전혀 실행되지 않음을 보장합니다. 즉, 중간에 실패하면 모든 작업이 취소됩니다.
  2. 일관성 (Consistency)
    • 트랜잭션이 끝난 후 데이터가 일관된 상태를 유지해야 합니다. 즉, 데이터베이스의 규칙과 제약이 항상 지켜져야 합니다.
  3. 독립성 (Isolation)
    • 여러 트랜잭션이 동시에 진행될 때, 각 트랜잭션은 서로 간섭하지 않고 독립적으로 실행됩니다.
  4. 지속성 (Durability)
    • 트랜잭션이 완료되면 결과가 영구적으로 저장되어, 시스템 장애가 있어도 유지됩니다.

2021년 2회 정보처리기사 실기 기출문제

문제

트랜잭션의 특징 중 하나인 원자성(Atomicity)에 대해 설명하시오.

정답

모든 작업이 완전히 실행되거나, 전혀 실행되지 않은 상태로 유지되어야 한다.
연산의 결과는 모두 반영되거나 모두 반영되지 않아야 한다

해설

트랜잭션의 원자성(Atomicity)은 트랜잭션 내의 모든 작업이 "완전히 실행되거나 전혀 실행되지 않도록" 보장하는 특성입니다. 즉, 트랜잭션이 시작되면 모든 작업이 성공적으로 처리되거나, 오류가 발생하면 모든 작업이 취소되어 트랜잭션 시작 전 상태로 되돌아갑니다.
[참고]
COMMIT
은 모든 작업을 확정하고 변경 사항을 저장하는 명령어이며, ROLLBACK은 오류가 발생했을 때 모든 작업을 취소하여 이전 상태로 복구하는 명령어입니다. 이 두 명령어는 원자성을 보장하여 데이터베이스의 일관성을 유지합니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형