728x90
트랜잭션
- 데이터베이스에서 이뤄지는 여러 작업들을 논리적으로 구분한 단위
- 여러 쿼리를 하나로 묶는 단위
특징 (ACID)
- 무결성 보장을 위한 트랜잭션이 가져야 할 특성
- Atomicity(원자성)
- 트랜잭션 관련 일의 수행 여부를 보장한다.
- 트랜잭션 수행을 정상적으로 완료시 DB에 모두 반영되도록 커밋한다.
- 트랜잭션에 하나라도 오류가 발생해 문제가 생길 경우 롤백을 통해 세이브포인트까지 전부 취소한다.
- Consistency(일관성)
- 시스템의 고정 요소는 트랜잭션 수행 전/후가 같아야 한다.
- Isolation(독립성, 격리성, 순차성)
- 복수의 트랜잭션 병행 실행시 각각 격리되어 하나만 실행되고 다른건 대기한다(참조 불가 상태).
- 순차적으로 실행시 성능이 좋지 않으므로 격라 수준을 나누어 격리성을 보장한다.
- Durability(영속성, 지속성)
- 트랜잭션 완료 후에는 시스템 고장시에도 영구적 반영(및 회복)이 되어야 한다.
무결성
- DB에 저장된 데이터와 현실 값의 일치 정확성
- 개체 무결성: 기본키는 유일성, not null을 만족시켜야 한다.
- 참조 무결성: 외래키는 not null, 참조할 수 없는 외래키 값 x.
참조한 기본키의 값과 같거나 null이어야 한다.
그 외의 것은 안된다. - 도메인 무결성: 값이 정의된 도메인에 속해야 함.
- 그 외에도 사용자 정의 무결성, null 무결성 (not null), 고유 무결성 (튜플 중복x), 키 무결성 (키 반드시 존재), 관계 무결성 등이 있다.
추가 학습 필요
- 220p, 221p 팬텀 리드, 반복 가능하지 않은 조회
728x90
'CS note > 데이터베이스' 카테고리의 다른 글
Normalization (정규화) (3) | 2023.02.17 |
---|---|
ERD (Entity Relationship Diagram) (0) | 2023.02.17 |
데이터베이스 기본 용어 (0) | 2023.02.17 |
댓글