SQL - 데이터 무결성과 제약조건, 트랜잭션, 동시성제어

Jiwontwopunch·2022년 2월 11일
0

TIL

목록 보기
42/92
post-thumbnail

데이터 무결성과 제약조건

무결성 : 데이터의 결점 없음

데이터 무결성 종류

  • 개체 무결성 : 기본 키로 선택된 열은 고유해야 하며 null 값을 가질 수 없다.
  • 참조 무결성 : 기본 키와 외래 키의 관계. 외래 키가 있는 테이블의 경우에는 기본 키와 외래 키간의 관계가 항상 유지된다.
  • 도메인 무결성 : 데이터 형태, 범위, 기본값, 유일성에 관한 제한으로 주어진 속성 값은 그 속성이 정의된 도메인에 속한 값이어야 한다.
  • 비즈니스 무결성 : 사용자의 업무 규칙에 따른 비즈니스적인 제약 조건이다.

제약 조건

  • 기본 키 제약 조건 : UNIQUE + NOT NULL을 만족
  • 외래 키 제약 조건 : 열 값이 부모 테이블의 참조 열의 값을 반드시 참조해야 한다. 참조되는 열은 UNIQUE하거나 기본 키
  • 유일 키 : 중복된 값을 허용하지 않는다. 유일한 값으로 존재해야 한다 (NULL 값 허용 가능)
  • NOT NULL : null 값을 허용하지 않는다. 값을 반드시 입력해야 한다.
  • CHECK : 범위나 조건 등 지정된 값만 허용한다.

무결성과 제약 조건은 데이터를 정상으로 유지하기 위한 장치이므로 DML명령어를 사용하기 전에 반드시 확인

트랜잭션

데이터베이스의 DML, 즉 삽입, 갱신, 삭제와 관련된 논리적인 작업을 말한다. 트랜잭션은 DML 실행과 동시성 제어를 위한 중요한 개념이다.

트랜잭션의 특징 ACID

  • 원자성 Atomicity : 트랜잭션의 처리가 완전히 끝나지 않았을 경우에는 전혀 이루어지지 않은 것과 같아야 한다.
  • 일관성 Consistency : 트랜잭션의 실행이 성공적으로 완료되면 데이터베이스는 모순 없이 일관성이 보존된 상태여야 한다.
  • 고립성 Isolation : 어떤 트랜잭션도 다른 트랜잭션의 부분적 실행 결과를 볼 수 없다.
  • 지속성 Durabiliy : 트랜잭션이 성공하면 트랜잭션의 결과를 영구적으로 보장해야 한다.

트랜잭션의 수행 단계

실행 → 부분완료 → 완료(commit)
실행 → 부분완료 → 실패 → 철회(rollback)

동시성 제어

동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 지원한다.

동시성 제어 기법

락킹, 타임스탬프, 적합성검증

출처: 모두의 SQL (저자 : 김도연)

0개의 댓글