트랜잭션이란?

  • 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
  • 요리로 치면 조리대에 비유할 수 있다. 재료(데이터)를 조회, 생성, 수정, 삭제하여 최종 결과물을 만들기까지의 모든 과정이 트랜잭션에 포함된다.
  • 트랜잭션은 조리 중에 문제가 발생하면 이전에 했던 변경을 모두 되돌려, 아무 일도 없었던 것처럼 만든다.

트랜잭션의 3가지 특징 (ACID)

  1. 원자성 (All or Nothing)
    • 트랜잭션은 모두 반영되거나 전혀 반영되지 않아야 한다.
    • 작업 단위로 데이터가 처리되지 않으면 데이터 시스템을 이해하기 어렵고, 오류 발생 시 원인 파악이 힘들다.
  2. 일관성 (Keeps Data Correct)
    • 트랜잭션의 작업 결과는 항상 일관성을 유지해야 한다.
    • 트랜잭션 진행 중 데이터베이스가 변경되더라도 처음 참조한 데이터베이스로 작업을 진행하여 일관성 있는 데이터를 제공한다.
  3. 독립성 (Independent)
    • 여러 트랜잭션이 동시에 실행될 때, 다른 트랜잭션의 연산에 간섭하지 않는다.

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

트랜잭션 관리

  • BEGIN (START TRANSACTION)
    • 새로운 트랜잭션을 시작하는 연산
  • COMMIT
    • 트랜잭션이 성공적으로 완료되어 데이터베이스가 일관성 있는 상태가 되었음을 알리는 연산
    • 로그에 저장되어 후에 ROLLBACK 연산을 수행할 수 있게 도와준다.
  • ROLLBACK
    • 트랜잭션이 비정상적으로 종료되어 원자성이 깨진 경우, 트랜잭션을 처음부터 다시 시작하거나 부분적으로만 연산된 결과를 취소하는 연산

접근 권한 설정

  • GRANT
    • 특정 사용자에게 데이터베이스 접근 권한을 부여하는 연산
  • REVOKE
    • 특정 사용자의 데이터베이스 접근 권한을 취소하는 연산

 

추가적으로 참고하면 좋은 내용

'🗂️ Study > 🌿Spring' 카테고리의 다른 글

H2 데이터베이스  (0) 2024.06.27
JWT(Json Web Token)  (0) 2024.05.28
쿠키 & 세션  (0) 2024.05.28
인증(Authentication) & 인가(Authorization)  (0) 2024.05.28
Query Methods  (0) 2024.05.21