갑자기 데이터 베이스 무결성 제약조건에 대해 다루게 되었다. 그 이유는 바로 다음 글이 될 트랜잭션의 ACID라는 성질 때문이다. 어려운 내용은 아니므로 빠르게 정리해보자.
데이터 베이스 내의 데이터가 항상 일관성 있고 정확한 값을 가지도록 보장하는 제약조건을 의미한다. 데이터베이스의 무결성 제약조건은 다음과 같이 분리될 수 있다.
개체 무결성은 데이터베이스의 각 테이블에 있는 레코드들의 무결성을 보장한다. 각 레코드들은 항상 고유한 기본키(primary key)를 갖고, 이 기본키가 없거나 중복되는 경우 개체 무결성이 어긋난다.
참조 무결성은 데이터베이스 내의 다른 테이블을 참조하는 외래키의 무결성을 보장한다. 이를 위해 외래키를 참조하는 테이블의 기본키와 일치해야 하며, 참조하는 테이블의 기본키가 삭제되거나 수정되는 경우에도 데이터의 무결성이 유지되어야 한다.
만약 참조하는 테이블에서 기본키가 있는 레코드가 삭제되거나 수정되는 경우에는 참조 무결성을 어떻게 보장할 수 있는가 ??
세 가지 방식으로 크게 분류할 수 있다.
도메인 무결성은 각 컬럼의 데이터 유형, 길이, 형식 등 제약조건을 보장한다. 이를 위해 각 컬럼에는 데이터 유형에 맞는 데이터들이 입력된다.
범위 무결성은 데이터의 범위에 대한 제약조건을 보장한다. 숫자, 문자 등에 대한 길이 규칙이다.