Transaction

2022. 6. 4. 16:52개발공부/DB

Transaction

트랜잭션이란 무엇일까요? DB에 조회든 생성/수정이든 요청을 보내는 한번의 통신을 트랜잭션이라고 생각했습니다. 조금 더 자세한 정의를 찾아보고자 글로 정리해보았습니다.

techopedia에는 이렇게 정의해두었습니다. 트랜잭션은, 데이터베이스란 문맥 상에선 독립적으로 데이터를 조회하고 업데이트 하기 위해 실행되는 논리 단위라고 합니다. 그리고 전문가들은 데이터베이스 트랜잭션을 데이터베이스 디자인 환경 내에서 얻을 수 있는 "작업 단위"라고 얘기합니다.

그리고 트랜잭션은 COMMIT으로 시작돼 ROLLBACK SQL로 끝이나며 완성됩니다. ACID는 트랜잭의 특징들을 정의합니다.

  • Atomicity(원자성) : 트랜잭션은 완결성을 충족시켜야 합니다. 커밋이 완료돼 DB에 저장이 되든, 롤백 돼 완전히 취소가 되든 둘 중 하나여야 합니다. 예를 들어 이마트 인벤토리가 줄면 수입은 증가해야되고 반드시 함께 일어나야하는 과정입니다.
  • Consistency(일관성) : 트랜잭션은 일관성(무결성; integrity)을 유지해야 합니다. 예를 들어 Phone이란 컬럼이 int 타입으로 되어있다면 varchar 타입으로 커밋이 되지 않도록 트랜잭션을 롤백합니다.
  • Isolation(고립성) : 트랜잭션 데이터는 커밋이나 롤백이 완료되기 전에 다른 트랜잭션이 사용할 수 없도록 격리성을 유지해야 합니다.
  • Durability(영구성) : 성공한 커밋은 영구적으로 유지되어야 한다는 특징입니다.

참고자료