1. 트랜잭션
- 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위
-> 데이터베이스에 접근하는 방법은 쿼리이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위
트랜잭션에 대한 특징 = ACID 특징 : 원자성, 일관성, 독립성, 지속성
1) 원자성(atomicity)
* 커밋(commit) : 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어
* 롤백 : 트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일(취소)
-> 커밋, 롤백 덕에 데이터의 무결성 보장 !
* 트랜잭션 전파 : 여러 트랜잭션 관련 메서드의 호출을 하나의 트랜잭션에 묶이도록 하는 것
2) 일관성(consistency)
- 허용된 방식으로만 데이터를 변경해야 하는 것
3) 격리성(isolation)
- 트랜잭션 수행 시 서로 끼어들지 못하는 것
* 격리 수준에 따라 발생하는 현상
- 팬텀 리드(phantom read) : 한 트랜잭션 내에서 동일한 쿼리를 보냈을 때 해당 조회 결과가 다른 경우
- 반복 가능하지 않은 조회(non-repeatable read) : 한 트랜잭션 내의 같은 행에 두 번 이상 조회가 발생했는데, 그 값이 다른 경우
- 더티 리드(dirty read) : 한 트랜잭션이 실행 중일 때 다른 트랜잭션에 의해 수정되었지만 아직 '커밋되지 않은' 행의 데이터를 읽을 수 있을 때 발생
* 격리 수준
- SERIALIZABLE
- REPEATABLE_READ
- READ_COMMITTED
- READ_UNCOMMITTED
4) 지속성(durability)
성공적으로 수행된 트랜잭션은 영원히 반영되어야 하는 것
= DB에 시스템 장애가 발생해도 원래 상태로 복구하는 회복 기능이 있어야 함을 뜻함
-> DB는 이를 위해 체크섬, 저널링, 롤백 등의 기능을 제공
- 체크섬 : 중복 검사의 한 형태, 오류 정정을 통해 송신된 자료의 무결성을 보호하는 단순한 방법
- 저널링 : 파일 시스템 or DB 시스템에 변경 사항을 반영하기 전에 로깅하는 것, 트랜잭션 등 변경 사항에 대한 로그를 남기는 것
2. 무결성
- 데이터의 정확성, 일관성, 유효성을 유지하는 것
- 무결성이 유지되어야, DB에 저장된 데이터 값과 그 값에 해당하는 현실 세계의 실제 값이 일치하는지에 대한 신뢰가 생김
* 무결성의 종류
1) 개체 무결성 : 기본키로 선택된 필드는 빈 값을 허용하지 않음
2) 참조 무결성 : 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야 함
3) 고유 무결성 : 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성 값은 모두 고유한 값을 가짐
4) NULL 무결성 : 특정 속성 값에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성 값은 NULL이 될 수 없다는 제약 조건
'CS > 데이터베이스' 카테고리의 다른 글
| [DB]조인의 종류 (0) | 2023.12.29 |
|---|---|
| [DB]데이터베이스의 종류 (0) | 2023.12.27 |
| [DB]데이터베이스 기본 (0) | 2023.12.24 |