SQL 제약 조건은 저장되는 데이터가 지켜야 할 규칙을 데이터베이스에 선언하는 기능이다.
원리
NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK 등이 있다. 애플리케이션의 사전 검사와 함께 데이터 무결성을 지키는 경계가 된다.
SQL |
|---|
SQL SELECT · SQL JOIN · SQL GROUP BY · SQL HAVING · SQL 공통 테이블 식 |
예시
주문 행의 고객 번호에 외래 키를 두면 존재하지 않는 고객을 참조하는 저장을 막을 수 있다.
데이터베이스 내부 |
|---|
WAL · 체크포인트 · MVCC · 트랜잭션 격리 수준 · 읽기 커밋 |
데이터베이스 교착 상태 · 비관적 잠금 · 파티셔닝 · 시점 복구 · 데이터베이스 백업 |
주의할 점
NULL과 고유성의 관계, CHECK의 NULL 결과 처리, 제약 검사 시점은 정확히 확인해야 한다. 행을 넘어선 복잡한 업무 규칙을 CHECK 하나로 모두 표현할 수 있는 것은 아니다.