데이터베이스 참조 무결성

From CS Wiki

Referential Integrity

참조 무결성은 데이터베이스에서 외래 키(foreign key)가 다른 테이블의 주 키(primary key)와 일관되게 연결되어 있어야 함을 보장하는 규칙이다. 이는 데이터 간의 관계가 올바르게 형성되고, 데이터의 무결성을 유지하는 데 필수적인 요소이다.

  • 참조 무결성은 데이터베이스의 데이터 간의 관계를 명확히 하여 데이터의 일관성을 유지하는 데 중요한 역할을 한다. 이를 통해 잘못된 데이터 입력이나 무결성 오류를 방지하고, 데이터의 신뢰성을 높일 수 있다.

의미 및 규칙[edit | edit source]

외래 키는 한 테이블의 속성이 다른 테이블의 주 키를 참조하는 경우에 설정된다. 이를 통해 두 테이블 간의 관계를 정의하며, 외래 키는 반드시 참조하는 주 키가 존재해야 한다.

  • 외래 키로 설정된 값은 반드시 참조하는 테이블의 주 키에 존재해야 한다. 즉, 외래 키가 NULL이 아닌 경우, 해당 값은 반드시 참조 테이블에 있어야 한다.

규칙을 준수하기 위한 제약조건은 아래 참고

참조 무결성 제약조건[edit | edit source]

Referential Integrity Constraint

예를 들어, 고객 테이블과 주문 테이블이 있다고 가정하자. 고객 테이블의 고객 ID가 주 키라면, 주문 테이블의 고객 ID는 외래 키로 설정될 수 있다. 이 경우, 주문 테이블의 고객 ID는 반드시 고객 테이블에 존재하는 고객 ID여야 하며, 고객이 삭제될 경우 해당 고객의 주문을 어떻게 처리할지를 정의해야 한다.

참조 무결성이 유지되기 위한 제약조건은 아래와 같이 4가지로 구분된다.

기능 구분
Restrict
  • 부모 테이블의 참조 대상 키가 삭제 또는 변경되는 것을 불허
  • 자식 테이블의 참조값을 변경하는 경우, 부모 테이블에 있는 참조 대상 키가 있는 경우만 허용
Cascade 부모 테이블의 참조 대상 키가 삭제되면 자식 테이블의 참조 튜플 삭제
Nullify 부모 테이블의 참조 대상 키가 삭제되면 자식 테이블의 참조값을 Null로 변경
Default 부모 테이블의 참조 대상 키가 삭제되면 미리 정의한 Default 값으로 변경

같이 보기[edit | edit source]