데이터베이스 무결성(Database Integrity)은 데이터베이스에 저장된 데이터가 정확하고 일관되며 신뢰할 수 있도록 보장하는 개념으로 이에 따라 다양한 제약 조건이 있는데
각각의 무결성 유형들은 데이터의 특정 측면을 보호하는 역할을 한다 이번 글에서는 대표적인 무결성 제약 조건인 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성, NULL 무결성, 고유 무결성에 대해 설명해보겠다
1. 개체 무결성 (Entity Integrity)
개체 무결성은 테이블의 각 행(레코드)이 고유하게 식별될 수 있도록 보장하는 무결성으로 기본 키(Primary Key)를 통해 구현된다 기본 키는 테이블 내에서 각 행을 고유하게 식별할 수 있는 값으로 NULL 값을 가질 수 없고 중복될 수 없다는 특징을 가졌다
- 기본 키는 NULL이 될 수 없음: 각 행이 고유하게 식별되도록 보장
- 기본 키는 중복이 일어날 수 없음: 동일한 값이 반복되지 않도록 보장
2. 도메인 무결성 (Domain Integrity)
도메인 무결성은 특정 열에 저장되는 데이터가 미리 정의된 도메인(값의 범위)에 속해야 함을 보장하는 무결성이다 이는 데이터 형식, 값의 범위, 허용되는 값의 패턴 등을 통해 구현된다
- 주어진 속성이 정의된 도메인에 속해야 함: ex) 나이 열에는 0에서 120 사이의 정수 값만 허용되도록 설정
3. 참조 무결성 (Referential Integrity)
참조 무결성은 테이블 간의 관계를 유지하는 무결성으로 외래 키(Foreign Key)를 통해 구현된다 여기서 외래 키는 다른 테이블의 기본 키를 참조해야 하며 외래 키는 참조할 수 없는 값을 가질 수 없다는 특징을 지녔다
- 외래 키는 참조할 수 없는 값을 가질 수 없음: 외래 키는 항상 참조하는 기본 키와 일치해야 함
4. 사용자 정의 무결성 (User-Defined Integrity)
사용자 정의 무결성은 사용자가 정의한 특정 비즈니스 규칙에 따라 데이터의 무결성을 보장한다 이는 데이터베이스 내의 트리거, 저장 프로시저, 애플리케이션 로직 등을 통해 구현된다
- 속성값들이 사용자가 정의한 제약 조건에 만족해야 함: 이해하기 어려울 수 있으니 예를 들어 설명하면 ex) 주문 수량은 재고 수량보다 클 수 없음
5. NULL 무결성 (NULL Integrity)
NULL 무결성은 특정 열이 NULL 값을 가질 수 있는지 여부를 결정하는 무결성이다 데이터베이스에서 일부 열은 반드시 값을 가져야 하며 NULL 값을 허용하지 않는 제약 조건을 가질 수 있다
- 특정 열이 NULL 값을 가질 수 없음: ex) 고객 이름 열은 반드시 값을 가져야 함.
6. 고유 무결성 (Unique Integrity)
고유 무결성은 특정 열 또는 열 집합이 중복된 값을 가질 수 없도록 보장하는데 이는 고유 키(Unique Key)를 통해 구현된다 고유 키는 NULL 값을 가질 수 있다
- 특정 열 또는 열 집합이 중복된 값을 가질 수 없음: ex) 이메일 주소는 고유해야 함
- 고유 키는 NULL 값을 가질 수 있음: 특정 열이 중복되지 않도록 보장