데이터 무결성은 데이터의 정확성과 일관성을 유지하고 보증하는 것을 의미한다. 데이터베이스에 저장되는 데이터는 항상 유요하고 정확한 값으로 일관되게 유지되어야 한다.
데이터베이스는 일반적으로 무결성 제한이나 규칙으로 데이터 무결성을 강제한다. 무결성 제약은 관계형 데이터 모델의 기본 기능으로 볼 수 있다.
기본키(Primary Key)와 관련된 무결성 제약이다. 모든 테이블은 기본키로 선택된 칼럼을 가져야 한다. 기본키로 지정된 칼럼은 고유한 값을 가져야 하며 빈 값을 허용하지 않는다.
외래키(Foreign Key)와 관련된 무결성 제약이다. 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야 한다. 외래키 값은 특정 테이블의 기본키 값을 참조하며 빈 값을 허용한다.
테이블 A의 외래키가 테이블 B의 기본키를 참조하고 있을 때, B에 존재하지 않는 값을 참조하는 경우를 미연에 방지하려면 참조 무결성이 규정되어야 한다. 또한, A가 참조하고 있는 B의 기본키 값을 삭제하면 무결성을 파괴하므로 RDBMS는 삭제를 저지하거나 연쇄삭제를 허용한 경우에만 삭제되도록 해야 한다.
외래키는 참조 무결성을 지키기 위해 RESTRICTED, CASCADE, SET NULL 개념을 적용할 수 있다.
RESTRICTED: 레코드를 변경/삭제하려고 할 때 해당 레코드를 참조하는 개체가 있을 경우, 변경/삭제 연산을 취소한다.CASCADE: 레코드를 변경/삭제하려고 할 때 해당 레코드를 참조하는 개체가 있을 경우, 참조하고 있는 개체도 함께 변경/삭제한다.SET NULL: 레코드를 변경/삭제하려고 할 때 해당 레코드를 참조하는 개체가 있을 경우, 참조하고 있는 개체의 값은 NULL로 설정된다.
정해진 도메인 범위 내에서 칼럼의 값이 선언되도록 해야 한다. 주민등록번호 칼럼에 알파벳이 입력되거나 NOT NULL 옵션의 칼럼에 NULL 값이 입력되지 않도록 도메인 무결성이 규정되어야 한다.