Referential Integrity Constraint

참조 무결성 제약조건

Posted by Seohyun Park, Aileen on November 16, 2023 · 1 min read
DATABASE

Referential Integrity Constraint ( 참조 무결성 제약조건 )

일단, 데이터 무결성이란, 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말한다.

일관성과 정확성을 잃어버린 데이터베이스는 정보로서의 가치에 심각한 문제를 가진다.

데이터 무결성을 지키기 위해서는, 데이터베이스에 저장된 데이터가 정해진 규칙을 지켜야 한다.

그 규칙 중 하나가, 참조 무결성이다.


참조 무결성 제약조건은 외래키 제약 ( Foreign Key Constraint ) 이라고도 불린다. 릴레이션 간의 참조 관계를 선언하는 제약조건이다.

일반적으로 참조되는 릴레이션을 부모 (parent) 릴레이션, 참조하는 릴레이션을 자식 (child) 릴레이션 이라고 한다.


참조 무결성 제약조건은, 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 같아야 하며, 자식 릴레이션의 값이 변경될 때, 부모 릴레이션의 제약을 받는다는 것이다. 즉, 부모 릴레이션의 도메인과 다른 값으로 삽입, 수정되거나, 반대로 자식 릴레이션에서 참조하고 있는 값을 부모 릴레이션에서 삭제하거나 다른 값으로 변경할 경우, 거부된다.


참조 무결성 제약조건의 옵션

부모 릴레이션에서, 투플을 삭제하는 경우, 자식 릴레이션에서 참조하고 있는 값이 삭제되는데, 이때, 자식 릴레이션에서 참조하고 있는 값이 삭제되는 것을 허용할 것인지, 아니면 삭제를 거부할 것인지 등을 결정할 수 있다.

1. RESTRICT

RESTRICT 옵션은, 부모 릴레이션에서 투플을 삭제하려고 할 때, 자식 릴레이션에서 참조하고 있는 값이 있으면, 삭제를 거부한다.

2. CASCADE

CASCADE 옵션은, 부모 릴레이션에서 투플을 삭제하려고 할 때, 자식 릴레이션에서 참조하고 있는 값이 있으면, 자식 릴레이션에서 참조하고 있는 값도 함께 삭제한다.

3. SET NULL

SET NULL 옵션은, 부모 릴레이션에서 투플을 삭제하려고 할 때, 자식 릴레이션에서 참조하고 있는 값이 있으면, 자식 릴레이션에서 참조하고 있는 값을 NULL 로 변경한다.

4. DEFAULT

DEFAULT 옵션은, 부모 릴레이션에서 투플을 삭제하려고 할 때, 자식 릴레이션에서 참조하고 있는 값이 있으면, 자식 릴레이션에서 참조하고 있는 값을 DEFAULT 값으로 변경한다.