[sql] 데이터베이스 무결성 제약 조건
데이터베이스 무결성 제약 조건은 데이터베이스에 저장된 데이터의 정확성과 일관성을 유지하기 위한 규칙들을 말합니다. 이 조건들은 데이터의 유효성을 보장하고, 부적절한 데이터의 삽입, 갱신, 삭제를 방지하여 데이터의 신뢰성을 유지하는 데 중요한 역할을 합니다.
종류
1. 엔터티 무결성 제약 조건
- 각 행은 고유한 식별자(primary key)를 가져야 합니다.
- 외래 키(foreign key) 값은 항상 참조 릴레이션의 primary key 또는 유일한 키(unique key)와 일치해야 합니다.
CREATE TABLE departments (
dept_id INT PRIMARY KEY,
dept_name VARCHAR(50) NOT NULL
);
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50) NOT NULL,
dept_id INT,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);
2. 도메인 무결성 제약 조건
- 각 열의 데이터는 정의된 도메인 내에 있어야 합니다.
- 예를 들어, 나이는 음수가 될 수 없고, 이메일 주소는 특정 형식을 가져야 합니다.
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50) NOT NULL,
age INT CHECK (age >= 18),
email VARCHAR(100) CHECK (email LIKE '%_@__%.__%')
);
3. 참조 무결성 제약 조건
- 외래 키 값은 참조 릴레이션의 primary key 값이나 NULL이어야 합니다.
- 참조 릴레이션의 primary key 값이 변경되면 이를 참조하는 모든 레코드도 업데이트되거나 삭제되어야 합니다.
CREATE TABLE departments (
dept_id INT PRIMARY KEY,
dept_name VARCHAR(50) NOT NULL
);
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50) NOT NULL,
dept_id INT,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON UPDATE CASCADE ON DELETE CASCADE
);
중요성
무결성 제약 조건은 데이터베이스의 데이터 품질을 유지하고 데이터의 무단 변경을 방지하여 안정성을 보장합니다. 잘 정의된 무결성 제약 조건은 잘못된 데이터의 삽입 및 수정을 방지하고 데이터베이스의 무결성을 보존하는 데 도움이 됩니다.
참조: Microsoft SQL Server - 데이터베이스 무결성 제약 조건