무결성 제약조건은 데이터베이스에 저장되는 데이터의 정확성과 일관성을 보장하기 위한 규칙이다.
RDBMS (관계형 데이터베이스 관리 시스템) 에서는 여러 무결성 제약 조건을 지원하며, 테이블을 만들 때 설정할 수 있다.
1️⃣ PRIMARY KEY (기본 키)
테이블에서 각 행을 고유하게 식별하는 역할이다.
- 한 테이블에 하나만 존재
- NULL 불가, 중복 불가
CREATE TABLE Students (
student_id INT PRIMARY KEY,
name VARCHAR(50)
);
오류 예시) student_id 가 중복
INSERT INTO Students (student_id, name) VALUES (1, 'Alice');
INSERT INTO Students (student_id, name) VALUES (1, 'Bob');
2️⃣ UNIQUE (고유 제약조건)
열의 값이 중복되지 않도록 제한한다.
- 하나의 테이블에 여러 개 가능
- NULL 허용, 중복 불가
CREATE TABLE Users (
user_id INT,
email VARCHAR(100) UNIQUE
);
오류 예시) 같은 이메일 2번 입력
INSERT INTO Users VALUES ('hello@example.com');
INSERT INTO Users VALUES ('hello@example.com');
3️⃣ NOT NULL
반드시 값이 존재해야 한다.
- NULL 불가
CREATE TABLE Products (
product_id INT,
name VARCHAR(100) NOT NULL
);
오류 예시) name에 NULL 입력
INSERT INTO Products (product_id , name) VALUES (1, NULL);
4️⃣ CHECK (조건 제약조건)
열의 값이 지정한 조건을 만족해야 한다.
CREATE TABLE Accounts (
account_id INT,
balance INT CHECK (balance >= 0)
);
5️⃣ FOREIGN KEY (외래 키)
다른 테이블의 기본 키를 참조하여 테이블 간 관계를 유지한다.
- 참조 대상 테이블에 존재하지 않는 값은 저장 불가
- 부모-자식 관계 구성 가능
CREATE TABLE Orders (
order_id INT,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
);