무결성은 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다.
무결성 제약조건은 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건을 말한다.
기본 테이블의 기본키를 구성하는 어떤 속성도 Null값이나 중복된 값을 가질 수 없다는 규정
<학생> 테이블에서 학번이 기본키로 정의되면 튜플에 주민번호, 성명, 성별은 Null 값을 허용하지만 학번 속성에는 무조건 null 값을 허용하지 않는다.
주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
<수강> 테이블에서 과목명에는 영어, 저산, 수학 세가지만 입력되록 유효값이 지정된 경우 반드시 해당 값만 입력해야 한다.
외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
<수강> 테이블에서 학번 속성에는 <학생> 테이블에서 학번 속성이 없는 값은 입력할 수 없다.
<학생> 테이블에서 기본키가 학번+성명 이었다면 <수강> 테이블도 반드시 학번+성명으로 구성되어야 한다.
속성 값들이 사용자가 정의한 제약조건에 만족되어야 한다는 규정
데이터 품질에 직접적인 영향을 미치므로 데이터 특성에 맞는 적절한 무결성을 정의하고 강화해야 한다.
프로그램이 완성되고 데이터가 저장된 상태에서 무결성을 정의할 경우 많은 비용이 발생하므로 데이터베이스 구축 과정에서 정의한다.
애플리케이션, 트리거, 제약 조건을 이용하여 강화할 수 있다.
데이터 생성, 수정, 삭제 시 무결성 조건을 검증하는 코드를 데이터를 조작하는 프로그램 내에 추가한다.
복잡한 규칙 등을 검토하는 무결성 검사는 데이터베이스에서 수행하기 어려우므로 애플리케이션 내에서 처리한다.
트리거(Trigger) : 데이터베이스 시스템에서 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 자동적으로 수행되는 절차형 SQL