[TIL] 231102_Transaction

VonBielefeld·2023년 11월 2일
0

TIL

목록 보기
8/32

Transaction

데이터베이스에서 상태를 변화 시키기 위한 최소 실행 단위를 말한다.
어떤 작업을하기 위해 최소한의 연산을 의미한다

예를 들어보자면,

  • 우리가 컴퓨터에서 문서 새로 만들 때를 생각해보자.
    문서프로그램에서 새문서를 클릭해서 생성을하고 원하느 내용을 작성하고 저장을 한다. 이 때 하나 실라도 빠지게 되면 문서 만들 수가 없다.
  • 내가 친구한테 50,000원을 이체한다고 하자.
    이체를 하게되면 내 통장에서 50,000원이 출금이 되고 친구 계좌에서는 50,000원이 입금이 된다. 출금 / 입금 중에 1개라고 빠지면 정확하게 이체가 안된다.\

이처럼 데이터의 변경 할 때 묶어서 관리하는 방식을 트랙잭션이라고 한다.

데이터베이스에 저장되어있는 데이터의 안정성을 확보하기 위해 사용한다.

Transaction 특징

  1. 원자성(Atomicity)
    트랜잭션이 실행되었을 때 모든 부분이 반영되거나 또는 반영이 안되어야한다는 것이다.
    예시에서 출금만되고 입금이 안되면 이전 입금도 취소가 되어야한다는 의미이다.

  2. 일관성(Consistency)
    트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것이다.
    트랜잭션이 진행되는 동안에 데이터베이스가의 제약 및 규칙이 변경 안된다고 것이다.

  3. 독립성(Isolation)
    여러개의 트랜직션이 동시에 실행이 되고 있을 때 A트랜직션이 B의 트랜직션의 연산에 관여할 수 없다는 것을 의미한다. 사실상 연속으로 실행된 것과 결과과 동일하다.

  4. 지속성(Durability)
    지속성은 트랜잭션의 모든 활동을 로그 파일에 기록하고 관리합니다.
    이 부분 때문에 데이터의 일관성을 복구하거나 장애 시 원복 작업을 수행할 수 있습니다.

Transaction 상태

  1. 활동 (Active)
    트랜잭션이 시작된 후에 아직 완료되지 않은 상태
    이 시점에서 트랜잭션은 데이터베이스의 일부를 읽거나 쓸 수 있습니다.

  2. 부분 완료 (Partially Committed)
    트랜잭션이 마지막 데이터베이스 조작을 수행한 상태이지만, 아직 커밋되기 전의 상태를 말합니다.
    이 시점에서는 롤백을 수행이 가능합니다.

  3. 완료 (Committed)
    트랜잭션이 성공적으로 완료되고 데이터베이스의 상태가 변경된 상태입니다. 트랜잭션은 영구적으로 데이터베이스에 적용되었으며 더 이상 롤백할 수 없습니다.

  4. 실패 (Failed)
    트랜잭션 실행 중에 오류가 발생하거나, 데이터베이스 일관성을 유지할 수 없는 상황을 말합니다.이 시점에서 롤백을 수행하여 이전 상태로 복원해야 합니다.

5.롤백 (Rolled Back)
트랜잭션을 취소하고 이전 상태로 복원한 완료된 상태를 말합니다.
트랜잭션이 완료되지 않았으며 변경 사항이 데이터베이스에 적용되지 않았습니다.

0개의 댓글