공부/기타

트랜잭션(transaction)이란?

셩잇님 2023. 6. 11. 22:14
반응형

 

 

1. 트랜잭션이란?

데이터베이스와 컴퓨터 시스템의 맥락에서 트랜잭션은 분할할 수 없는 단일 작업으로 수행되는 논리적 작업 단위를 의미합니다. 이는 전체적으로 함께 실행되어야 하는 하나 이상의 데이터베이스 작업(예: 읽기, 쓰기 또는 수정)의 시퀀스를 나타냅니다. 트랜잭션의 개념은 데이터베이스 작업이 안정적이고 일관성 있게 무결성 있게 수행되도록 보장합니다. 트랜잭션의 작업 중 하나라도 실패하면 전체 트랜잭션이 롤백되고 데이터는 이전 상태로 복원됩니다.


2. 트랜잭션의 속성

트랜잭션은 다음과 같은 ACID 속성을 충족하도록 설계되었습니다:


원자성: 원자성은 트랜잭션이 분할할 수 없는 단일 작업 단위로 취급되도록 보장합니다. 즉, 트랜잭션 내의 모든 작업이 성공적으로 완료되거나 완료되지 않을 수 있습니다. 트랜잭션의 일부가 실패하면 트랜잭션의 모든 변경 사항이 롤백되고 데이터베이스는 변경되지 않은 상태로 유지됩니다.

일관성: 일관성은 트랜잭션이 데이터베이스를 하나의 일관된 상태에서 다른 상태로 가져오는 것을 보장합니다. 데이터베이스는 사전 정의된 일련의 규칙 또는 제약 조건을 충족해야 하며, 트랜잭션은 실행되는 동안 데이터의 무결성을 유지해야 합니다. 트랜잭션이 제약 조건을 위반하면 변경 사항이 롤백되고 데이터베이스는 변경되지 않은 상태로 유지됩니다.

격리: 격리는 동시 진행 중인 트랜잭션이 서로 간섭하지 않도록 보장합니다. 여러 트랜잭션이 동시에 실행되는 경우에도 각 트랜잭션은 격리된 상태로 실행되는 것처럼 표시되어야 합니다. 격리는 더티 읽기(커밋되지 않은 데이터 읽기), 반복 불가능한 읽기(동일한 트랜잭션에서 다른 값 읽기), 팬텀 읽기(다른 트랜잭션에서 삽입된 새 행을 보는 것)와 같은 문제를 방지할 수 있습니다.

내구성: 내구성은 트랜잭션이 커밋되고 변경 사항이 영구적으로 적용되면 시스템 장애 또는 재시작 시에도 그대로 유지되도록 보장합니다. 커밋된 데이터는 디스크나 비휘발성 스토리지에 쓰는 등 내구성 있는 방식으로 저장하여 장애 발생 시 복구 및 복원할 수 있도록 해야 합니다.

 

3. 결론
트랜잭션은 데이터베이스 시스템에서 데이터 무결성과 일관성을 보장하는 신뢰할 수 있는 메커니즘을 제공합니다. 트랜잭션을 사용하면 동시 액세스 및 시스템 장애가 발생하는 경우에도 복잡한 작업을 단일 논리 단위로 수행할 수 있습니다. 트랜잭션은 ACID 속성을 준수함으로써 데이터베이스가 일관된 상태를 유지하도록 보장하고 정확하고 일관된 데이터에 의존하는 애플리케이션에 신뢰할 수 있는 기반을 제공합니다.

 

 

 

반응형