[DB] 트랜잭션

szlee·2023년 11월 27일
0

데이터베이스

목록 보기
4/8

트랜잭션

데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위.
한꺼번에 모두 수행되어야할 일련의 연산들.

작업의 완전성 보장해준다. 모두 완벽하게 처리하거나 그렇지 않을 경우에 원상태로 복구!
사용자 입장에서는 작업의 논리적 단위로 이해할 수 있고, 시스템 입장에서는 데이터를 접근 또는 변경하는 프로그램의 단위가 됨.











트랜잭션 특징

  • 원자성 : all(commit) or nothing(rollback)
  • 일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
  • 격리성 : 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
  • 영속성 : 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.











트랜잭션 Commit, Rollback

Commit

하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때 하나의 트랜잭션이 끝났음을 알려주기 위해 사용하는 연산.

Rollback

하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성 깨뜨렸을 때,
이 트랜잭션의 일부가 정상적으로 처리되었더라도 전체 연산을 취소한다.







트랜잭션 사용 시 주의점

트랜잭션의 범위를 최소화 하는 것이 좋다.
일반적으로 데이터베이스 커넥션은 개수가 제한적이기 때문에 각 단위 프로그램이 커넥션을 소유하는 시간이 길어지면 사용 가능한 여유 커넥션의 개수는 줄어든다.
-> 각 단위 프로그램에서 커넥션을 가져가기 위해 기다려야 하는 상황이 발생할 수도 있다.







https://code-lab1.tistory.com/51

profile
🌱

0개의 댓글