[제138회 정보관리기술사 1교시 9번] 정보모델링의 참조 무결성 — 외래키와 ON DELETE 옵션 완전 해설

📋 정보관리기술사 기출문제 해설

제138회  ·  1교시  ·  9번

배점: 10점  |  유형: 단답형

📌 원문 문제

정보모델링의 참조 무결성

출제 의도 분석

참조 무결성은 DB 설계의 기본 중의 기본입니다. 외래키 제약과 ON DELETE/UPDATE 옵션을 실제 시나리오와 연결하여 설명하면 실용적인 답안이 됩니다. ERD 개념과 연결해서 부모-자식 테이블 관계를 그림으로 설명하면 효과적입니다.

1. 무결성 제약의 종류

종류 설명
개체 무결성 기본키는 NULL이나 중복값 불가
참조 무결성 외래키는 참조 테이블의 기본키에 존재하는 값만 허용
도메인 무결성 속성값은 정의된 도메인 범위 내에 있어야 함
사용자 정의 무결성 비즈니스 규칙에 따른 제약 (CHECK 등)

2. 참조 무결성 개념

참조 무결성(Referential Integrity)이란 자식 테이블의 외래키(FK) 값은 반드시 부모 테이블의 기본키(PK)에 존재하거나 NULL이어야 한다는 규칙입니다. 이를 통해 고아 레코드(Orphan Record) — 참조 대상 없는 레코드 — 의 발생을 방지합니다.

3. ON DELETE / ON UPDATE 옵션

옵션 동작 사용 시나리오
CASCADE 부모 삭제/변경 시 자식도 연쇄 처리 주문 삭제 시 주문상세 자동 삭제
SET NULL 부모 삭제 시 자식 FK를 NULL로 설정 담당자 퇴직 시 담당자 필드를 NULL
SET DEFAULT 부모 삭제 시 자식 FK를 기본값으로 카테고리 삭제 시 ‘미분류’로 변경
NO ACTION/RESTRICT 자식이 참조 중이면 부모 삭제/변경 거부 참조되는 상품 삭제 시도 시 오류 발생

4. ERD에서의 참조 무결성

-- 고객(부모) 테이블
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는 편리하지만 연쇄 삭제로 인한 의도치 않은 데이터 손실을 유발할 수 있어 신중하게 사용해야 합니다.

Leave a Comment