[CS][DB] Transaction

손경이·2024년 4월 22일
0

CS Study

목록 보기
13/25

Transaction(트랜잭션)


데이터베이스에서 여러 작업을 하나의 단위로 묶어서 처리할 수 있도록 하는 것


> Transaction

  • 데이터베이스에서 여러 작업을 하나의 단위로 묶어서 처리할 수 있도록 하는 것
  • 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것
  • tansaction의 SQL문들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않음

> Transaction의 4가지 특징(ACID)

  • 데이터베이스의 무결성과 일관성을 위해서 트랜잭션이 만족해야하는 특징
  • Atomicity(원자성)
    • All or Nothing 으로 모두 성공하거나 모두 실패해야 함
    • 작업 단위를 일부분만 실행하지 않음
  • Consistency(일관성)
    • 트랜잭션이 성공적으로 완료되면 일관적인 DB 상태 유지
    • DB에 정의된 rule을 트랜잭션이 위반했다면 rollback 해야 함
  • Isolation(격리성)
    • 여러 트랜잭션들이 동시에 실행될 때, 혼자 실행되는 것처럼 동작하게 만듦
    • 동시에 트랜잭션이 수행될 때 다른 트랜잭션의 작업이 끼어들지 못하도록 보장
    • 트랜잭션끼리는 서로 간섭할 수 없음
  • Durability(지속성)
    • 성공적으로 수행된 트랜잭션은 DB에 영구적으로 저장됨(비휘발성 메모리에 저장됨)
    • DB system에 문제(power fail or DB crash)가 생겨도 commit된 트랜잭션은 DB에 남아있음
    • DB system에 문제가 생겨도 트랜잭션이 다시 rollback 되거나 commit된 트랜잭션 내용이 사라지지 않음

참고

0개의 댓글