데이터베이스 참조 무결성
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 값으로 변경 |