본문 바로가기
TIL

TIL내일배움캠프 11주차 JPA심화 트랜잭션

by 율량동박씨 2024. 6. 28.

오늘의 키워드

  • 트랜잭션
  • 원자성
  • 일관성
  • 독립성
  • 트랜잭션 관리 및 보안
  • BEGIN, COMMIT, ROLLBACK
  • 접근권한 설정 (GRANT, REVOKE)

오늘의 내용

트랜잭션은 데이터베이스 상태를 변화시키기 위해 수행하는 작업의 단위로, 데이터 조회, 생성, 수정, 삭제와 같은 일련의 작업을 포함한다. 트랜잭션의 주요 특성과 관리 방법을 이해하는 것은 데이터베이스의 안정성과 일관성을 유지하는 데 매우 중요한다

트랜잭션의 성질

  1. 원자성 (Atomicity)
    • 트랜잭션은 모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 한다. 부분적으로 실행된 상태는 존재하지 않는다. 이 특성은 트랜잭션 중 오류가 발생하면 모든 변경 사항을 되돌리는 ROLLBACK 명령을 통해 보장된다​
  2. 일관성 (Consistency)
    • 트랜잭션은 데이터베이스를 일관성 있는 상태로 유지해야 한다. 즉, 트랜잭션 실행 전후의 데이터베이스 상태는 항상 일관성을 유지해야 한다​
  3. 독립성 (Isolation)
    • 동시에 실행되는 여러 트랜잭션은 서로 간섭하지 않아야 한다. 트랜잭션 간에 중간 상태가 공유되지 않도록 격리 수준(Isolation Level)을 설정할 수 있다
  4. 내구성 (Durability)
    • 성공적으로 완료된 트랜잭션의 결과는 시스템 오류가 발생하더라도 영구적으로 유지되어야 한다. 이 특성은 COMMIT 명령을 통해 보장된다​ 

트랜잭션 관리 및 보안 (DCL)

  • BEGIN: 새로운 트랜잭션을 시작하는 명령이다
  • COMMIT: 트랜잭션을 성공적으로 완료하고 변경 사항을 영구적으로 저장한다
  • ROLLBACK: 트랜잭션을 중단하고 변경 사항을 취소한다
  • 접근권한 설정 (GRANT, REVOKE): 데이터베이스 접근 권한을 부여하거나 철회하는 명령이다

트랜잭션의 상태

트랜잭션은 다음과 같은 상태를 가진다

  • 활성 상태 (Active): 트랜잭션이 시작되어 데이터베이스 작업을 수행 중인 상태이다
  • 부분 완료 상태 (Partially Committed): 모든 작업이 완료되었지만 아직 최종 커밋이 이루어지지 않은 상태이다
  • 완료 상태 (Committed): 트랜잭션이 성공적으로 완료되어 모든 변경 사항이 영구적으로 저장된 상태이다
  • 실패 상태 (Failed): 트랜잭션 중 오류가 발생하여 롤백된 상태이다
  • 종료 상태 (Terminated): 트랜잭션이 완료되었거나 실패하여 시스템에서 제거된 상태​이다

오늘의 회고

오늘은 데이터베이스 트랜잭션의 개념과 주요 특성, 관리 방법에 대해 학습했다. 트랜잭션의 중요성은 데이터베이스의 일관성과 안정성을 유지하는 데 있다 특히, 트랜잭션이 실패했을 때 데이터를 복구하는 ROLLBACK과 성공했을 때 변경 사항을 영구적으로 저장하는 COMMIT의 사용법을 이해하는 것이 중요하다는 것을 느꼈다 앞으로 실제 데이터베이스 작업에서 트랜잭션을 적절히 활용하는 연습을 해야겠다