다섯 살도 알 수 있게 · 법제도

참조 무결성 제약이 뭐예요?

참조 무결성 제약을, 학생 명부에 있는 이름만 반장 명단에 쓸 수 있다는 학생회 규칙 이야기로 풀어봤어요.

학생 명부1반 김하나2반 이두리3반 박세찬반장 명단1반 — 김하나2반 — 이두리4반 — 최노을?반장 명단에 학생 명부엔 없는 이름이 있어요

반장 명단에 학생 명부엔 없는 이름이 있어요.원본(학생 명부)에 없는 이름을 참조 명단(반장 명단)에 적어버린 거예요.

최노을이 누구죠? 출석부에 없는데요전학 간 학생을 못 지웠나 봐요명부에 없는 학생이 반장으로 올라 있으면 그 반장 정보를 확인할 곳이 없어요

명부에 없는 학생이 반장이면, 나중에 그 반장이 누구인지 확인할 수 없어요.명부에 없는 학생이 반장으로 올라 있으면 그 반장 정보를 확인할 곳이 없어요.

학생 명부(원본)1반 김하나2반 이두리3반 박세찬반장 명단(참조)1반 — 김하나 ✓2반 — 이두리 ✓3반 — 박세찬 ✓참조 무결성 = 원본에 있는 이름만 참조 명단에 쓸 수 있다는 규칙명부에 없는 이름을 적으려 하면 아예 등록이 막혀요

참조 무결성은 원본에 있는 이름만 참조 명단에 쓸 수 있다는 규칙이에요.명부에 없는 이름을 적으려 하면 아예 등록이 막혀요.

원본에 있어야 참조 가능없는 이름은 못 적어요
같이 지우기(CASCADE)원본이 사라지면 참조도 지워요
못 지우게 막기(RESTRICT)참조가 있으면 못 지워요
빈 칸 처리(SET NULL)참조 칸만 비워둬요
원본에서 학생이 전학 가면, 참조 명단은?CASCADE — 반장 명단에서도 같이 지움RESTRICT — 반장부터 내려야 전학 처리 가능SET NULL — 반장 칸을 빈칸으로 둠상황에 맞게 CASCADE·RESTRICT·SET NULL 중 하나를 미리 정해둬요

원본에서 학생이 사라지면, 참조 명단을 어떻게 할지 대표적인 세 가지 중에서 골라요.상황에 맞게 CASCADE·RESTRICT·SET NULL 중 하나를 미리 정해둬요.

반장 이름이 명부와 맞는지 늘 확인해요반장부터 내려야 전학 가게 해줘서 번거로워요RESTRICT처럼 엄격한 규칙은 전학 처리 같은 평소 일을 번거롭게 해요

제약이 너무 엄격하면 평소 일 처리가 불편해요.RESTRICT처럼 엄격한 규칙은 전학 처리 같은 평소 일을 번거롭게 해요.

한 줄로

참조 무결성 제약 = 참조하는 자료는 반드시 원본에 실제로 있는 값(또는 빈 값)이어야 한다는 규칙. 원본이 사라질 때 지우거나, 막거나, 비우는 방식을 미리 정해둬요.

참조 무결성 제약은 관계형 데이터베이스에서 외래키(FK) 값은 참조 대상 테이블의 기본키(PK)에 실제로 존재하는 값이거나 NULL이어야 한다는 제약이에요. 원본 행이 삭제·수정될 때는 CASCADE(함께 삭제/수정), RESTRICT(삭제·수정 자체를 금지), SET NULL(참조 값을 NULL로) 같은 옵션을 정해 데이터 일관성을 지켜요(SET DEFAULT, NO ACTION도 있어요).

어른들은 이렇게 불러요

참조 무결성 제약
Referential Integrity Constraint
참조는 원본에 있는 값이어야 한다는 규칙. 관계형 데이터베이스의 기본 일관성 규칙이에요.
외래키(FK)
Foreign Key (FK)
다른 명부를 가리키는 칸. 보통 원본 명부의 기본키를 가리켜요.
기본키(PK)
Primary Key (PK)
명부에서 한 사람을 딱 가리키는 번호. 외래키가 가리키는 대상이에요.
CASCADE
CASCADE
원본이 사라지면 참조도 같이 지우는 것. 자동으로 정리되지만, 의도치 않게 많이 지워질 수도 있어요.
RESTRICT
RESTRICT
참조가 있으면 원본을 못 지우게 막는 것. 데이터는 안전하지만 가끔 일 처리가 불편해요.
SET NULL
SET NULL
참조 칸만 비워두는 것. 원본은 지우되 참조 기록은 남겨요.
정규화
Normalization
명부를 한 번만 적도록 나누는 규칙. 참조 무결성은 정규화로 나눈 명부들을 바르게 이어줘요. → 한 칸에 한 번만 적는 규칙
트랜잭션
Transaction
명부를 바꾸는 작업의 단위. 제약을 어긴 변경은 거부되고 되돌려져요.
다음 이야기
AI가 사고 치면 누가 책임져요? →
다른 용어도 그림책으로 보고 싶다면 요청하기 →