전공자 따라잡기

[비전공자의 컴공지식 채우기] 트랜잭션과 무결성

봄봄로그 2023. 11. 9. 19:29

4. 데이터베이스

4.1 데이터베이스의 기본

4.3 트랜잭션과 무결성

 

4.3.1 트랜잭션

여러 개의 쿼리들을 하나로 묶는 단위. 트랜잭션에 대한 특징 ACID (원자성, 일관성, 독립성, 지속성)                  - 원자성(Automicity) : 트랜잭션이 모두 수행되었거나 되지 않았거나를 보장한다. 커밋 후 롤백할 땐 모두 수행되지 않는 처음을 보장하는 것이다. 

 

* 트랜잭션 전파 : 커넥션 단위로 수행할 때 커넥션 객체를 넘겨서 수행해야 한다. 이렇게 수행하지 않고 트랜잭션 관련 메소드의 호출을 하나의 트랜잭션에 묶이도록 하는 것을 트랜잭션 전파 라고 한다.

=> spring의 @Transactional annotation

 

- 일관성(Consistency) : 허용된 방식으로만 데이터를 변경해야 한다. 

 

- 격리성(Isolation) : 트랜잭션 수행시 서로 끼어들지 못한다. 

* 격리수준에 따라 발생하는 현상 : 팬텀리드, 반복가능하지 않은 조회, 더티리드 

 

- 지속성(Durability) : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다.

 

 

4.3.2 무결성

데이터의 정확성, 일관성, 유효성을 유지하는 것이다.

종류 : 개체 무결성, 참조 무결성, 고유 무결성, NULL 무결성