Programming/SQL

[SQL] 무결성 규정

reeme 2021. 1. 29. 13:39


1. 무결성의 의미


무결성
정밀성,정확성,정당성
허가받은 사용자가 수행하는 갱신 작업에서 의미적 오류를 방지함
의미적 제약의 개념

무결성 서브 시스템
- 일관성
   데이터베이스에서 병행 트랜잭션들이 상호 작용으로부터 의미상 모순이 없도록 하는 것
- 신뢰성
  시스템의 오동작으로부터 오류가 발생하지 않도록 하는 것
- DBMS 의 한 구성 요소
- 무결성 규정을 유지 관리함
- 데이터베이스의 무결성을 유지함
- 트랜잭션이 수행하는 갱신 연산이 무결성 규정을 위반하지 않는가를 감시함
  위반 시 거부 , 보고 , 취소 / 복귀를 수행함



2. 제약 조건


무결성 규정 대상
①  도메인
- 형식
- 타입
- 범위

②  기본키 , 외래키
- 개체 무결성 (Entity Integrity)
- 참조 무결성 (Referencial Integrity)

③  종속성 ( 묵시적 제약조건 )
- 함수 종속
- 다치 종속
- 조인 종속

④  관계
- 내부 관계
- 외부 관계

도메인 무결성 대상
도메인 정의
- 도메인 이름
- 데이터 형
삽입이나 갱신 연산에 적용


릴레이션의 무결성 규정
릴레이션을 조작하는 과정에서의 의미적 제약조건을 명세함
연산 수행 전 / 후에 대한 제약 조건을 규정함
- 삽입
- 삭제
- 갱신
분류
①  상태 제약과 과도 제약
②  집합 제약과 튜플 제약
③  즉시 제약과 지연 제약

상태 제약과 과도 제약
상태 제약
- 키 속성의 제약 : 유일성
- NULL 값의 제약 : 이름은 NULL 값일 수 없음
- 관계 제약 : 참조 무결성
  예) 모든 학생은 하나의 학과에만 속함
- 도메인 제약 : 유효한 값
  예) 학생의 학년은 1, 2, 3, 4 중에 하나이어야 함
- 의미 무결성 제약
  예) 직원의 월급은 그의 관리자의 월급보다 높을 수 없음
과도 제약
- 동적 제약
- 데이터베이스의 한 상태에서 다른 상태로 변환되는 과정에서 적용되는 규정
- 데이터베이스 상태의 변환 전과 후의 비교
   변환 전과 후에 모두 적용됨
예) 월급은 감소될 수 없음

집합 제약과 튜플 제약
집합 제약
- 튜플 집합 전체에 대한 제약
) 직원 전체의 평균 급여는 300 을 넘을 수 없음
튜플 제약
- 처리되고 있는 튜플에만 적용됨
) 직원 급여의 최대는 500 을 넘을 수 없음
[!] 한 직원의 급여를 변경할 때 500 이 넘는지만 감시하면 됨

즉시 제약과 지연 제약
즉시 제약
- 삽입 / 삭제 / 갱신 연산이 수행될 때마다 적용되는 제약 규정
지연 제약
- 트랜잭션이 완전히 수행된 후에 적용되는 제약 규정