트랜잭션과 ACID

Adler·2024년 1월 29일

CS

목록 보기
12/13
post-thumbnail

트랜잭션

트랜잭션 정의

데이터베이스 상태를 변환시키기 위해 연산이나 작업이 필요하다. 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되여야 하는 일련의 연산들을 트랜잭션이라고 한다.

트랜잭션 특징

  1. 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리 되는 작업의 논리적 단위다.
  2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정 작업 단위다.
  3. 하나의 트랜잭션은 Commit 되거나 Rollback된다.

ACID

Atomicity(원자성)

  • 트랜젹션 연산은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야한다.
  • 트랜잭션 내 모든 명령은 완벽히 수행되어야 한다. 어느 하나라도 오류 발생 시 트랜잭션 전부가 취소되어야 한다.

Consistency(일관성)

  • 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
  • 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 수행 완료 후 상태가 같아야 한다.

Isolation(독립성)

  • 둘 이상의 트랜잭션이 동시에 병행 실행될 경우, 다른 트랜잭션의 연산이 끼어들 수 없다.
  • 수행 중 트랜잭션은 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

Durablility(영속성,지속성)

  • 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

ACID 트랜잭션 장점

  • 데이터 안정성과 무결성을 보장
  • 작업의 일부분 완료로 데이터가 불규칙적인 상태를 막는다.
  • ACID 트랜잭션이 없는 상황 속 정전 발생
    데이터 중 일부는 저장 되고 나머지는 저장되지 않는다.
    데이터베이스는 일관성 없는 상태가 되어 복구하기 어렵다.

요약 with gpt

데이터베이스에서 트랜잭션은 일련의 연산들을 하나의 논리적인 단위로 취급하는 것입니다. 트랜잭션은 데이터베이스의 상태를 변환시키는 데 필수적이며, 주요 특징은 완료(Commit)되거나 취소(Rollback)될 수 있다는 것입니다. 트랜잭션의 핵심 속성은 ACID 원칙으로 설명됩니다.

  1. 원자성(Atomicity): 트랜잭션 내의 모든 연산은 완전히 수행되거나 전혀 수행되지 않아야 합니다. 즉, 트랜잭션 중 일부만 완료되는 상황은 발생해서는 안 됩니다.

  2. 일관성(Consistency): 트랜잭션이 성공적으로 완료되면, 데이터베이스는 항상 일관된 상태를 유지해야 합니다. 트랜잭션 전후로 데이터베이스의 무결성 제약조건이 유지되어야 합니다.

  3. 독립성(Isolation): 여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 서로의 연산에 영향을 주지 않아야 합니다.

  4. 지속성(Durability): 트랜잭션이 완료된 후에는 결과가 영구적으로 데이터베이스에 반영되어야 합니다. 시스템에 문제가 발생하더라도 결과는 보존되어야 합니다.

ACID 트랜잭션의 장점은 데이터의 안정성과 무결성을 보장한다는 점입니다. 모든 작업은 완전하게 이루어져야 하며, 그렇지 않을 경우 데이터가 불규칙적인 상태에 빠지는 것을 방지합니다. 예를 들어, 정전과 같은 상황에서도 ACID 원칙은 데이터베이스가 일관성 없는 상태로 남지 않도록 보호합니다. 이는 데이터베이스 시스템이 신뢰할 수 있고 안정적인 운영을 가능하게 합니다.

참고
https://www.databricks.com/kr/glossary/acid-transactions
https://coding-factory.tistory.com/226

profile
지식을 정리하기 위한 블로그입니다.

0개의 댓글