데이터베이스의 상태를 변화 시키는 작업을 수행시 데이터의 정확성, 일관성, 유효성을 유지하는것.
데이터베이스에 저장된 데이터의 무결성을 보장하고 데이터베이스의 상태를 일관되게 유지하는 것이 주요목적.
무결성 규정의 대상으론느 도메인, 키, 종속성, 관계성등이 존재.
무결성의 종류(제약조건의 종류)
개체무결성(Entitiy integrity)
각 릴레이션의 기본키를 구성하는 속성은 널(NULL)값이나 중복된 값을 가질 수 없다.

릴레이션 기본키라고 할 수 있는 '학번'
참조 무결성(Referential integrity)
- 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야한다.
- 외래키(foreign key)제약이라고도 한다.
- 외래키 속성은 참조할 수 없는 값을 지닐 수 없다.
(외래키 속성 값이 상위 테이블의 인스턴스에 반드시 존재하거나 NULL이여야함)

- 참조 무결성은 종종 기본키 또는 키가 아닌 후보키와 외래 키의 조합으로 강제 적용된다.
- 예시는 참조무결성이 강제적용되지않은 관계데이터베이스의 예로,
앨범관계변수(앨범테이블)의 외부키(artist_id)의 값에 존재하지 않는 아티스트를 참조하고있는 상태다.(참조무결성 위반)

<고객>릴레이션상의 외래키 : 구입물품번호
<물품>릴레이션상의 기본키 : 물품번호
고유 무결성(Unique integrity)
- 릴레이션의 특성 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야된다.
- 특정 속성에 대한 고유값을 가지도록 조건을 걸경우 그 속성값은 모두 고유한 값을 가진다.
- 예시로, 기본키로 선정된 속성의 모든값들은 달라야한다고 볼 수 있다.
NULL 무결성(Null integrity)
- 릴레이션의 특정 속성값이 NULL이 될 수 없도록 만드는것.
- 주민등록번호같은 중요한 속성값은 NULL데이터가 오지않도록 정의하는것.
도메인 무결성(Domain integrity)
- 특정 속성의 값이 그 속성에 정의된 도메인에 속한 값이여야 한다.

릴레이션상 학번도메인의 범위를 정의하면 학번 속성에는 해담 범위이외의값은 입력할 수 없다.
키 무결성(Key integrity)
- 하나의 테이블에는 적어도 하나의 키가 존재해야 한다.
장단점
-
장점 : 스키마를 정의시 일관성 조건을 오직 한번만 명시, 데이터베이스 갱신시 DBMS가 자동적으로 일관성 조건을 검사하므로 응용프로그램들은 일관성 조건을 검사할 필요가 사라진다.
-
단점 : 프로그래밍 작업이 훨씬 복잡해지고, 무결정 제약조건을 반복해서 구현해야하고, 무결성 제약조건들 간 서로 충돌이 발생할 수 있다.
참고자료
https://ppiyo5.tistory.com/13
참조무결성 위키백과
https://cocoon1787.tistory.com/778
https://velog.io/@chappi/DB정리는-할껀데-핵심만-할껍니다.-키와-무결성