데이터 무결성이란 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 데이터의 변경이나 수정시 제한을 두어 안정성을 저해하는 요소를 막아 데이터 상태들을 항상 옳게 유지하는 것을 의미한다.

 

도메인 무결성

컬럼에 대한 무결성을 보장하는 것으로써 해당 컬럼이 널을 허용하거나, 혹은 데이터타입이 적절하거나, 적정한 형식의 데이터가 저장되어있는지를 확인하는것으로써 체크(Check), 디폴트(Default), 룰(Rule) 등의 제약(Constraints)들로 이러한 도메인 무결성을 보장할 수 있다.

 

주민등록번호 컬럼에 틀린 형식의 데이터가 들어가는 경우, '남'|'여'로 입력되는 성별 컬럼에 '남자', 'Male' 등의 데이터가 들어가는 것도 도메인 무결성을 위반하는 것이다.

 

개체 무결성

테이블에 저장되어 있는 컬럼의 값이 동일 개체, 즉 테이블에 저장되어 있는 다른 행의 컬럼값과 비교했을때 중복되지 않아야 하는 경우 이러한 무결성을 지키도록 하는 것이 개체 무결성이다.

사용자 테이블(TB_Member) 과 같이 모든 사용자가 구분된다는 전제 조건이 있는 테이블이라면 동일한 아이디나 주민등록번호가 저장될 경우 개체 무결성을 위한한 것이다.

이러한 개체 무결성을 지원하는 구문은 프라이머리키 제약조건(Primary key constraints)이나 유니크(Unique constraints) 등을 통해 구현할 수 있다.

 

참조 무결성

개체와 개체간에 참조관계가 있을 대 이 두 개체간에 데이터가 일관성을 가질 수 있도록 보증하는 방법을 참조 무결성이라 한다.

일반적으로 외부키(Foreign key)로 제약을 주어 무결성을 보장할 수 있고 트리거를 통해서 데이터의 변경이 있을 때 관련 값들을 재조정할 수 있다.

 

데이터 무결성

범위

구현방법

 도메인 무결성       

 컬럼

 Check, Default

 개체 무결성

 테이블

 Primary Key, Unique 

 참조 무결성

 여러 테이블간     

 Foreign Key, Trigger