본문 바로가기
CS note/데이터베이스

트랜잭션과 무결성

by 코드 이야기 2023. 2. 17.
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

댓글