위키득계정 ↗
기술

데이터 무결성

데이터 무결성기술
영문명
Data integrity
관심 대상
정확성과 일관성의 유지
대표 수단
제약, 검증, 오류 검출, 접근 통제
구분 개념
기밀성, 가용성, 데이터의 사실성
데이터 무결성은 자료가 저장·처리·전달되는 과정에서 의도하지 않은 손상이나 모순 없이 유지되는 성질이다. 데이터베이스의 제약 검사부터 파일 전송의 오류 검출까지 맥락에 따라 다르게 다뤄진다.

잘 저장된 오류도 있을 수 있다

관측자가 기온을 잘못 적은 뒤 그 값이 손상 없이 보관됐다고 하자. 저장 과정의 무결성은 유지됐어도 관측값이 현실과 맞는지는 별도 문제다. 무결성을 말할 때는 어떤 규칙과 처리 범위를 기준으로 하는지 분명히 해야 한다.

입력 오류, 프로그램의 잘못된 갱신, 저장 장치의 손상과 무단 변경은 서로 다른 원인이다. 하나의 검사로 모두 해결할 수 없으므로 단계별로 방어 수단을 둔다.

관계형 데이터의 규칙

기본 키로 중복 행의 식별자를 막고 외래 키로 존재하지 않는 대상을 참조하지 않게 할 수 있다. 허용 범위나 필수 항목에 관한 제약도 이용한다. 함께 성공해야 하는 변경은 트랜잭션으로 묶어 일부만 반영되는 상황을 줄인다.

다만 제약은 실제로 정의된 규칙만 검사한다. 값의 형식이 맞아도 내용이 틀릴 수 있으며 복잡한 업무 규칙에는 추가 검증이 필요하다. 데이터베이스의 검사와 프로그램의 검사를 서로 보완하도록 구성한다.

파일의 변화와 진위를 구분하기

체크섬이나 해시 값은 파일의 변화 여부를 확인하는 데 쓰인다. 그러나 파일과 비교 값이 함께 바뀔 수 있다면 비교만으로 원본임을 보장할 수 없다. 누가 만든 자료인지 확인하려면 신뢰할 수 있는 비교 기준이나 인증 수단도 필요하다.

암호학적 해시와 단순한 오류 검출 부호는 목적과 보장 범위가 다르다. 전송 중 우연한 오류를 찾는 기능이 의도적인 위조까지 막아 준다고 해석해서는 안 된다.

발견한 뒤 복구할 수 있어야 한다

오류를 알아내는 것과 정상 상태로 되돌리는 것은 별개의 작업이다. 변경 이력과 검증된 백업은 원인을 추적하고 복원하는 데 도움이 된다. 백업이 존재하는지만 확인하기보다 실제로 읽고 복원할 수 있는지도 점검해야 한다.

관련 문서

기본 키 / 외래 키 / 해시 함수 / 백업