데이터베이스에 저장된 데이터의 무결성을 보장하고, 데이터베이스 상태를 일관되게 유지하는 조건
데이터에 결함이 없도록 규칙을 정의 (무결성, 유효한 데이터)
데이터베이스가 삽입, 삭제, 수정 연산으로 상태가 변하더라도 무결성 제약조건은 지켜져야 한다
다음 두 가지 조건을 모두 만족시켜야 한다
기본키를 구성하는 모든 속성은 NULL 값을 가질 수 없다는 규칙
name varchar(20) not null
budget numeric(12, 2) not null
외래키는 참조할 수 없는 값을 가질 수 없다는 규칙
foreign key (dept_name) references department
대학 강의 정보를 저장하는 테이블 course는 어떤 학부의 수업인지 저장하기 위해 dept_name이라는 속성이 있다. 이 dept_name은 department 테이블에 속한 값이어야 한다.
dept_name이 'Biology'라는 course 튜플이 있다면, 참조 무결성을 위해 'Biology'의 기본키 수정 및 삭제 액션이 거부된다.
이때 두 가지 방법으로 해결할 수 있다.
null로 설정하거나, default를 지정해준다.
CASCADE
옵션을 추가한다