제약 조건
제약 조건 (Constraints)
제약 조건(Constraint)은 테이블에 저장된 데이터의 무결성과 일관성을 보장하는 규칙이에요. Snowflake는 ANSI SQL 표준에 정의된 제약 조건과 함께, Oracle 같은 다른 데이터베이스와의 호환성을 위한 일부 확장도 지원해요. 다만 표준 테이블에서는 제약 조건을 '정의'하지만 기본적으로 '강제'하지 않는다는 점을 꼭 기억해야 해요.
본문
제약 조건은 테이블에 저장된 데이터의 무결성(integrity)과 일관성(consistency) 규칙을 정의해요. Snowflake는 ANSI SQL 표준에 정의된 제약 조건과, Oracle 같은 다른 데이터베이스와의 호환성을 위한 확장 기능까지 지원해요.
중요
- 표준 테이블(standard tables)에서는 제약 조건을 정의하고 유지할 수는 있지만, 강제(enforce)하지는 않아요. 단, NOT NULL과 CHECK 제약 조건은 예외로 항상 강제돼요.
제약 조건을 위반하면 예상치 못한 다운스트림(downstream) 영향이 생길 수 있어요. 의존할 만한 제약 조건을 만들 거라면, 다운스트림 프로세스가 데이터 무결성을 유지할 수 있는지 꼭 확인해 주세요. 자세한 내용은 제약 조건 속성(Constraint properties)을 참고해요.
표준 테이블의 제약 조건은 주로 데이터 모델링 목적과 다른 데이터베이스와의 호환성, 그리고 제약 조건을 활용하는 클라이언트 도구를 지원하기 위해 제공돼요. 예를 들어 Tableau는 제약 조건을 이용해 조인 제거(join culling, join elimination)를 수행할 수 있는데, 이렇게 하면 생성되는 쿼리와 큐브 새로고침의 성능이 좋아질 수 있어요.
- 하이브리드 테이블(hybrid tables)에서는 제약 조건을 지원할 뿐만 아니라 강제하기도 해요. 모든 하이브리드 테이블에는 기본 키(primary key) 제약 조건이 필수로 정의·강제되며, 다른 제약 조건도 사용될 때 함께 강제돼요.
다음 주제:
- 제약 조건 개요(Overview of constraints)
- 제약 조건 만들기(Creating constraints)
- 제약 조건 수정하기(Modifying constraints)
- 제약 조건 삭제하기(Dropping constraints)
더 알아보기 (Learn more)
- 제약 조건 개요 — 제약 조건의 종류와 기본 개념
- 제약 조건 만들기 — CREATE TABLE에서 제약 조건 정의
- 제약 조건 수정하기 — 기존 제약 조건 변경
- 제약 조건 삭제하기 — 제약 조건 제거 방법