다섯 살도 알 수 있게 · 법제도
참조 무결성 제약이 뭐예요?
참조 무결성 제약을, 학생 명부에 있는 이름만 반장 명단에 쓸 수 있다는 학생회 규칙 이야기로 풀어봤어요.
반장 명단에 학생 명부엔 없는 이름이 있어요.원본(학생 명부)에 없는 이름을 참조 명단(반장 명단)에 적어버린 거예요.
명부에 없는 학생이 반장이면, 나중에 그 반장이 누구인지 확인할 수 없어요.명부에 없는 학생이 반장으로 올라 있으면 그 반장 정보를 확인할 곳이 없어요.
참조 무결성은 원본에 있는 이름만 참조 명단에 쓸 수 있다는 규칙이에요.명부에 없는 이름을 적으려 하면 아예 등록이 막혀요.
원본에 있어야 참조 가능없는 이름은 못 적어요
같이 지우기(CASCADE)원본이 사라지면 참조도 지워요
못 지우게 막기(RESTRICT)참조가 있으면 못 지워요
빈 칸 처리(SET NULL)참조 칸만 비워둬요
원본에서 학생이 사라지면, 참조 명단을 어떻게 할지 대표적인 세 가지 중에서 골라요.상황에 맞게 CASCADE·RESTRICT·SET NULL 중 하나를 미리 정해둬요.
제약이 너무 엄격하면 평소 일 처리가 불편해요.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가 사고 치면 누가 책임져요? →