🌿 중급 DB
데이터베이스 제약조건은 왜 필요한가요?
쉽게 이해하기
회원가입할 때 비밀번호는 8자 이상, 이메일은 @ 포함해야 한다는 규칙처럼요. 데이터베이스 제약조건도 '나이는 음수가 될 수 없다', '이메일은 중복될 수 없다' 같은 규칙을 미리 정해두는 거예요.
핵심 정리
잘못된 데이터가 저장되지 않도록 규칙을 정해두는 기능이에요.
자세히 알아보기
데이터베이스 제약조건은 테이블에 저장되는 데이터의 규칙을 정의하는 기능이에요. 애플리케이션 코드에서도 데이터를 검증할 수 있지만, 데이터베이스 레벨에서 한 번 더 검증하면 훨씬 안전해요.
대표적인 제약조건으로는 NOT NULL(빈 값 불가), UNIQUE(중복 불가), CHECK(특정 조건 만족), DEFAULT(기본값 설정) 등이 있어요. 예를 들어 사용자 테이블을 만들 때 이메일 컬럼에 UNIQUE 제약을 걸어두면, 같은 이메일로 두 개의 계정이 만들어지는 걸 데이터베이스가 자동으로 막아줘요.
실무에서 제약조건이 없으면 큰 문제가 생길 수 있어요. 가격이 음수로 저장되거나, 필수 입력 항목이 비어있거나, 삭제된 사용자의 주문 데이터가 남아있는 등의 이상한 데이터가 쌓일 수 있죠. 제약조건은 이런 데이터 오류를 원천적으로 차단해줘요.
또한 Foreign Key 제약조건은 테이블 간의 관계를 보장해줘요. 주문 테이블에서 존재하지 않는 사용자 ID를 참조하려고 하면 데이터베이스가 자동으로 에러를 발생시켜서 데이터 일관성을 지켜줘요. 제약조건은 데이터 품질을 유지하는 가장 확실한 방법이에요.