트랜잭션이란?
- 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
- 요리로 치면 조리대에 비유할 수 있다. 재료(데이터)를 조회, 생성, 수정, 삭제하여 최종 결과물을 만들기까지의 모든 과정이 트랜잭션에 포함된다.
- 트랜잭션은 조리 중에 문제가 발생하면 이전에 했던 변경을 모두 되돌려, 아무 일도 없었던 것처럼 만든다.
트랜잭션의 3가지 특징 (ACID)
- 원자성 (All or Nothing)
- 트랜잭션은 모두 반영되거나 전혀 반영되지 않아야 한다.
- 작업 단위로 데이터가 처리되지 않으면 데이터 시스템을 이해하기 어렵고, 오류 발생 시 원인 파악이 힘들다.
- 일관성 (Keeps Data Correct)
- 트랜잭션의 작업 결과는 항상 일관성을 유지해야 한다.
- 트랜잭션 진행 중 데이터베이스가 변경되더라도 처음 참조한 데이터베이스로 작업을 진행하여 일관성 있는 데이터를 제공한다.
- 독립성 (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 |