무결성

데이터가 정해진 규칙을 만족하는 상태입니다.


무결성 종류

1. 개체 무결성 (Entity Integrity)

PK는 NULL이거나 중복될 수 없음

CREATE TABLE users (
    id INT PRIMARY KEY  -- NULL 불가, 중복 불가
);

INSERT INTO users VALUES (NULL);  -- X 에러
INSERT INTO users VALUES (1);
INSERT INTO users VALUES (1);     -- X 에러 (중복)

2. 참조 무결성 (Referential Integrity)

FK는 참조하는 테이블에 존재해야 함

CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT REFERENCES users(id)  -- FK
);

INSERT INTO orders VALUES (1, 999);  -- X 에러 (user 999 없음)

3. 도메인 무결성 (Domain Integrity)

컬럼 값이 정해진 범위/타입을 만족

CREATE TABLE users (
    age INT CHECK (age >= 0 AND age <= 150),
    email VARCHAR(100) NOT NULL
);

INSERT INTO users VALUES (-5, 'test@test.com');  -- X 에러
INSERT INTO users VALUES (25, NULL);              -- X 에러

4. 고유 무결성 (Unique Integrity)

특정 컬럼 값이 중복되지 않음

CREATE TABLE users (
    id INT PRIMARY KEY,
    email VARCHAR(100) UNIQUE
);

INSERT INTO users VALUES (1, 'a@a.com');
INSERT INTO users VALUES (2, 'a@a.com');  -- X 에러 (중복)

정리

무결성규칙제약조건
개체 무결성PK는 NULL/중복 불가PRIMARY KEY
참조 무결성FK는 존재하는 값만FOREIGN KEY
도메인 무결성값이 범위/타입 만족CHECK, NOT NULL
고유 무결성중복 불가UNIQUE

무결성 vs 정합성

무결성정합성
초점규칙 준수데이터 간 일치
예시age >= 0주문 총액 = 상품 합계
보장DB 제약조건트랜잭션, 애플리케이션 로직

CSLOG에서 보기