Categories: 정보관리기술사

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

zerg96

Recent Posts

사이버보안 위기 경보: 해커들이 AI로 무장했다, 당신의 데이터는 안전한가

AI가 해킹 도구로 진화했습니다. 27초 만에 공격 코드 작성, AI 봇의 랜섬웨어 협상, GPU 탈취까지—삼성SDS…

6시간 ago

정보보안기사 필기 핵심 개념, 접근통제·인증 8문제로 정리

필기 시험의 접근통제 영역은 용어 하나만 알아도 풀리는 문제와 개념을 뒤집어 묻는 문제가 섞여 나옵니다.…

10시간 ago

유튜브 AI 영상 범람, 진짜 크리에이터는 어떻게 살아남나

유튜브에 AI 자동 생성 영상이 넘쳐납니다. 진짜 크리에이터들은 어떻게 살아남아야 할까요? AI와 경쟁하는 3가지 생존…

12시간 ago

코스피 사이드카 이틀 만에 또 발동, 올해만 27번째…5분간 멈추는 건 ‘프로그램 매도’뿐입니다

이틀 전에 사이드카가 걸렸을 때만 해도 "한 번 놀란 장"으로 끝날 줄 알았는데요. 15일 아침…

12시간 ago

코스피 낙폭 7%로 확대, 외국인 1.7조 순매도: 10월 15일 오전 10시 시황

오전 시황 글에 이어 장중 후속 정리입니다. 코스피는 개장 직후 5%대였던 낙폭이 오전 10시 전후에…

15시간 ago

코스피 5.59% 급락 출발, 개장 7분 만에 매도 사이드카: 10월 15일 오전 시황

10월 15일 목요일 아침, 코스피가 전날 종가보다 5.59% 낮은 5,673.01로 출발했습니다. 장 시작 7분 만에…

15시간 ago