정보모델링의 참조 무결성
참조 무결성은 DB 설계의 기본 중의 기본입니다. 외래키 제약과 ON DELETE/UPDATE 옵션을 실제 시나리오와 연결하여 설명하면 실용적인 답안이 됩니다. ERD 개념과 연결해서 부모-자식 테이블 관계를 그림으로 설명하면 효과적입니다.
| 종류 | 설명 |
|---|---|
| 개체 무결성 | 기본키는 NULL이나 중복값 불가 |
| 참조 무결성 | 외래키는 참조 테이블의 기본키에 존재하는 값만 허용 |
| 도메인 무결성 | 속성값은 정의된 도메인 범위 내에 있어야 함 |
| 사용자 정의 무결성 | 비즈니스 규칙에 따른 제약 (CHECK 등) |
참조 무결성(Referential Integrity)이란 자식 테이블의 외래키(FK) 값은 반드시 부모 테이블의 기본키(PK)에 존재하거나 NULL이어야 한다는 규칙입니다. 이를 통해 고아 레코드(Orphan Record) — 참조 대상 없는 레코드 — 의 발생을 방지합니다.
| 옵션 | 동작 | 사용 시나리오 |
|---|---|---|
| CASCADE | 부모 삭제/변경 시 자식도 연쇄 처리 | 주문 삭제 시 주문상세 자동 삭제 |
| SET NULL | 부모 삭제 시 자식 FK를 NULL로 설정 | 담당자 퇴직 시 담당자 필드를 NULL |
| SET DEFAULT | 부모 삭제 시 자식 FK를 기본값으로 | 카테고리 삭제 시 ‘미분류’로 변경 |
| NO ACTION/RESTRICT | 자식이 참조 중이면 부모 삭제/변경 거부 | 참조되는 상품 삭제 시도 시 오류 발생 |
-- 고객(부모) 테이블
CREATE TABLE Customer (
cust_id INT PRIMARY KEY,
name VARCHAR(50)
);
-- 주문(자식) 테이블 — 참조 무결성 설정
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
cust_id INT,
FOREIGN KEY (cust_id) REFERENCES Customer(cust_id)
ON DELETE CASCADE
ON UPDATE CASCADE
); 참조 무결성은 데이터 일관성의 핵심 보장 수단입니다. 옵션 선택 시 비즈니스 로직을 고려해야 하며, CASCADE는 편리하지만 연쇄 삭제로 인한 의도치 않은 데이터 손실을 유발할 수 있어 신중하게 사용해야 합니다.
코스피 8% 폭락, 서킷브레이커 발동, SK텔레콤 Claude AI 차단까지. 한국의 AI 레버리지 버블이 단 하루…
SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…
SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…
달러/원 환율이 급등하는 이유와 실생활 영향을 정리했습니다. 지금 당장 활용할 수 있는 환전·투자 대응 전략까지…
미래에셋·미래에셋벤처투자·미래에셋생명이 동반 급등한 이유는 스페이스X 상장 기대감입니다. 세 회사가 스페이스X와 어떻게 연결되어 있는지 상세히 분석했습니다.
스페이스X 상장이 계속 미뤄지는 진짜 이유를 파헤쳤습니다. 화성 계획, 스타링크 분리, 국방 계약... 머스크가 절대…