CONSTRAINT TYPES
제약 조건은 잘못된 값을 DB 단계에서 막는다
애플리케이션 검증이 빠져도 선언된 제약은 마지막 방어선으로 동작한다. 각 제약은 식별, 관계, 중복, 필수값, 조건, 기본값을 나누어 맡는다.
| 제약 | 막는 문제 | 대표 사용 |
|---|---|---|
PK |
행을 식별할 수 없거나 중복되는 문제 | 사원번호, 주문번호 |
FK |
없는 부모 행을 참조하는 문제 | 주문 고객ID, 직원 부서ID |
UNIQUE |
업무상 하나여야 하는 값의 중복 | 이메일, 사업자번호 |
NN |
필수값이 비어 있는 행 저장 | 이름, 비밀번호, 상태값 |
CHECK |
허용 범위를 벗어난 값 | 나이 >= 0, 상태 목록 |
DEFAULT |
값 생략 시 의도치 않은 빈값 | 가입일, 주문 상태 |
핵심: 제약 조건은 “입력 폼 검증”이 아니라 SQL 직접 실행, 배치, 운영 작업까지 같은 규칙으로 막는 스키마 계약이다.