티스토리 뷰
트랜잭션
트랜잭션은 ACID라 하는 원자성(Atomicity)
, 일관성(Consistency)
, 격리성(Isolation)
, 지속성(Durability)
을 보장해야 한다.
원자성 : 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패해야 한다.
일관성 : 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다.
격리성 : 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준(Isolation level) 을 선택할 수 있다.
지속성 : 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구해야 한다.
트랜잭션 격리 수준 (Isolation level)
- READ UNCOMMITED : 커밋되지 않은 읽기
- READ COMMITTED : 커밋된 읽기 (일반적으로 많이 사용)
- REPEATABLE READ : 반복 가능한 읽기
- SERIALIZABLE : 직렬화 가능
'Spring' 카테고리의 다른 글
[Spring] 리플렉션(Reflection) (0) | 2022.05.15 |
---|---|
[Spring] ThreadLocal을 사용해보자! (0) | 2022.05.07 |
[Spring] JDBC(Java Database Connectivity) (0) | 2022.04.17 |
[Spring] ApplicationContext (0) | 2022.03.13 |
[Spring] Singleton, SingletonContainer (0) | 2022.01.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스프링부트
- 구현
- 데이터베이스
- 알고리즘
- 백준
- 릿코드
- 노마드코더
- 파이썬
- 인프런
- webflux
- 김영한
- mysql 8.0
- 리팩토링
- 코틀린
- leetcode
- MySQL
- Spring
- 코테
- 스프링
- 북클럽
- 자료구조
- 정렬
- Real MySQL
- 노마드
- kotlin
- 스프링 부트
- spring boot
- 문자열
- 그리디
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함