1. 트랜잭션 : 하나의 논리적 기능을 수행하기 위한 작업의 단위. 쉽게 생각해서 쿼리 여러개 묶어서 한 번에 실행하는 걸로 생각하면 편하다.
2. 트랜잭션의 특징
원자성(atomicity) | - 트랜잭션 관련 수행은 모두 실행되거나 모두 실행되지 않아야 한다.(커밋/롤백, 무결성 보장) - 트랜잭션 단위로 여러 로직들을 묶을 때 외부 API를 호출하는 것이 있으면 안된다. - 여러 트랜잭션 관련 메소드의 호출을 하나의 트랜잭션에 묶이도록하는 것이 트랜잭션 전파다.(ex : Spring @Transactional 애너테이션) |
일관성(consistency) | - 허용된 방식으로만 데이터를 변경해야 하는 것 - 트랜잭션 전후로 데이터베이스의 상태가 이전과 같이 유효해야 하는 것 |
격리성(isolation) | - 한 트랜잭션이 수행 될 때 다른 트랜잭션은 끼어들 수 없다. - 마치 격리 되어있는 것처럼 순차적으로 작동되어야한다. |
지속성(durability) | - 성공적으로 완료된 트랜잭션은 장애가 발생하여도 영구히 반영되어야 한다. - 이를 위해 데이터베이스는 체크섬, 저널링, 롤배 등의 기능을 갖춰야 한다. - 체크섬 : 중복검사의 한 형태로, 오류 정정을 통해 송신된 자료의 무결성을 보호하는 방법 - 저널링 : 파일 시스템 또는 데이터베이스 시스템에 변경 사항을 반영 하기전에 로깅하는 것 |
3. 트랜잭션의 격리 수준 및 격리 수준에 따른 현상
4. 무결성 : 데이터의 정확성, 일관성, 유효성을 유지하는 것
5. 무결성 종류
개체 무결성 | 기본키로 선택된 필드는 NULL값을 허용하지 않음 |
참조 무결성 | 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야한다. |
고유 무결성 | 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성 값은 모두 고유한 값을 가져야한다. |
NULL 무결성 | 특정 속성에 대해 NULL값이 허용되지 않는 조건이 주어진 경우 그 속성값은 NULL이 될 수 없다. |
'Computer Science > 데이터베이스' 카테고리의 다른 글
ERD와 정규화 (0) | 2022.10.10 |
---|---|
데이터베이스의 기본 (0) | 2022.10.10 |