데이터베이스 내에 정확하고 유효한 데이터만 유지시키는 속성
-> CRUD연산을 실행할 때 데이터의 값이 일관되고 정확하게 유지하는 특성
모든 테이블이 PK를 가져야하며 PK로 선택된 컬럼은 고유하고 NULL을 허용하지 않아야 한다는 속성
FK값이 NULL이거나 참조된 테이블의 기본 키 값과 동일해야 한다는 속성
사용자가 정의한 도메인 내에서 관계형 데이터베이스의 모든 열을 정의하도록 규정하는 것
postgreSQL의 자료형에는 Domain Types가 있다.
Domain Type이란 기본 데이터 타입을 기반으로 선택적으로 제약조건을 걸 수 있는 사용자 정의 데이터 타입이다. (CREATE DOMAIN 이라는 명령어로 도메인 데이터 타입 정의 가능)
EX) 특정한 컬럼에 문자나 기호가 들어오지 못하고 오직 0~9까지의 숫자만 입력받고 싶다면
CREATE DOMAIN onlyint AS integer CHECK (VALUE >= 0 AND VALUE =< 9);
이렇게 도메인 타입을 생성하면
INSERT INTO damain_type_example VALUE(1); --성공
INSERT INTO damain_type_example VALUE(8); --성공
INSERT INTO damain_type_example VALUE(11); --실패
INSERT INTO damain_type_example VALUE(-4); --실패
이렇게 입력값을 제한할 수 있다.