DB/SQL - Oracle

[SQL] 데이터 무결성의 종류 - 도메인, 개체, 참조 무결성

생각많은 프로그래머 2024. 2. 1. 02:34
데이터 무결성이란, 저장된 데이터의 신뢰성을 의미한다.
 
데이터베이스에 저장된 데이터값과 그것이 표현하는 현실 세계의 실제값이 일치하는지, 
그 정확성을 의미하는데 무결성의 종류는 도메인무결성, 개체무결성, 참조무결성이 있다.

 

1) 도메인무결성    - 속성, 제약조건과 관련
특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정

 

예)
학점 varchar2(1) check (학점 in ('A','B','C','D','F')),
insert 할 때 'E'는 들어갈 수 없음 - check에 위배 
insert 할 때 'AA'는 들어갈 수 없음 - varchar2(1)에 위배 (한 글자만 들어갈 수 있음)

 

2) 개체무결성    - 기본키와 관련
릴레이션의 기본키를 구성하는 어떤 속성도 null 일 수 없다는 규정
예 ) 
<고객> 릴레이션은 기본키로 고객번호 속성을 갖고,
<물품> 릴레이션은 기본키로 물품번호 속성을 갖는다.
 
이 경우, 고객번호 속성과 물품번호 속성은 null일 수 없다.

 

3) 참조무결성    - 외래키와 관련
외래키(foreign key)값은 null이거나 참조 릴레이션의 기본키(primary key)값과
동일해야 한다는 규정
예) 
<고객> 릴레이션은 기본키로 고객번호 속성을 갖고,
<물품> 릴레이션은 기본키로 물품번호 속성을 갖는다.
<고객> 릴레이션의 구입물품번호 속성은 <물품> 릴레이션의 기본키인
​물품번호를 참조하고 있기 때문에 외래키가 된다. 
이 경우, <고객> 릴레이션의 외래키인 구입물품번호 속성값은 null이거나 
<물품> 릴레이션의 기본키인 물품번호 속성값과 동일해야 한다.
(물품번호 속성값 중 하나여야 한다. 아래 표에서는 1~3중 하나여야 한다.)