외래 키는 한 테이블의 레코드를 다른 테이블의 레코드와 연결합니다. 주문 테이블에는 customer_id 필드가 있습니다. 이 필드는 고객 테이블의 기본 키를 가리키는 외래 키입니다. 이 연결을 통해 모든 주문이 실제 고객에게 속하도록 보장합니다. 외래 키가 없으면 주문이 존재하지 않는 고객을 참조할 수 있습니다. 데이터베이스는 이러한 관계를 강제합니다.
외래 키는 단순히 관계를 문서화하는 것 이상의 역할을 합니다. 외래 키는 참조 무결성을 강제합니다. 고객 테이블에 존재하지 않는 customer_id를 가진 주문을 삽입하려고 하면 데이터베이스는 이를 거부합니다. 주문 내역이 있는 고객을 삭제하려고 하면 데이터베이스는 규칙에 따라 삭제를 차단하거나 연쇄 삭제를 실행합니다. 이러한 강제는 고아 레코드와 데이터 불일치를 방지합니다. 외래 키는 쿼리 성능 향상에도 도움이 됩니다. 데이터베이스는 외래 키 관계를 활용하여 조인을 최적화할 수 있습니다. 모든 데이터베이스가 외래 키를 강제하는 것은 아닙니다. 일부 NoSQL 데이터베이스는 참조 무결성 관리를 애플리케이션에 맡깁니다. 이는 개발자에게 더 많은 유연성을 제공하지만, 그만큼 더 큰 책임도 따릅니다. 애플리케이션은 참조의 유효성을 보장해야 하며, 그렇지 않을 경우 데이터 불일치가 발생합니다. 외래 키는 제약 조건입니다. 제약 조건은 불편할 수 있지만, 심각한 문제를 예방하는 데는 필수적입니다.
외국어 키 규칙
- 제한 — 참조가 존재하는 경우 삭제를 차단합니다.
- 캐스케이드 - 참조 레코드를 자동으로 삭제 또는 업데이트합니다.
- 삭제 시 외래 키를 null로 설정 —
- 조치 없음 - 작업을 허용하고 나중에 확인합니다.
외래 키는 연결 고리이자 보증입니다. 연결 고리는 테이블들을 연결하고, 보증은 테이블들의 일관성을 유지시켜 줍니다.
Comments
No comments yet. Be the first to share a thought.
Leave a comment