데이터의 무결성
무결성이란?
물결성이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다. 쉽게 말해, 저장된 데이터베이스에 잘못된 데이터가 없다는 것을 의미한다.
무결성 제약 조건은 데이터 베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건을 말한다.
무결성의 종류에는 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성 등이 있다.
개체 무결성(Entity Integrity)
개체 무결성은 기본 테이블의 기본 키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정이다.
도메인 무결성(Domain Integrity)
도메인 무결성은 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정이다.
참조 무결성(Referential Integrity)
참조 무결성은 외래키 값은 Null이거나 참조 릴레이션의 기본기 값과 동일해야 한다. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정이다.
외래키와 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야 한다.
사용자 정의 무결성
사용자 정의 무결성(User-Defined Integrity)은 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정이다.
데이터 무결성 강화
데이터 무결성은 데이터 품질에 직접적인 영향을 미친다. 따라서 데이터 특성에 맞는 적절한 무결성을 정의하고 강화해야 한다.
데이터 무결성은 데이터베이스 구축 과정에서 정의한다. 프로그램이 완성되고 데이터가 저장된 상태에서 무결성을 정의할 경우 많은 비용이 발생한다.
데이터 무결성은 애플리케이션, 데이터베이스 트리거, 제약조건을 이용하여 강화할 수 있다.
애플리케이션 : 데이터 생성, 수정, 삭제 시 무결성 조건을 검증하는 코드를 데이터를 조작하는 프로그램 내에 추가한다.
장점 : 사용자 정의 같은 복잡한 무결성 조건의 구현이 가능하다.
단점 : 소스 코드에 분산되어 있어 관리가 힘들고, 개별적인 시행으로 인해 적정성 검토가 어렵다.
데이터베이스 트리거 : 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL을 추가한다.
장점 : 통합 관리가 가능하고, 복잡한 요구 조건의 구현이 가능하다.
단점 : 운영 중 변경이 어렵고 사용상 주의가 필요하다.
제약 조건 : 데이터베이스에 제약 조건을 설정하여 무결성을 유지한다.
장점 : 통합 관리 가능, 간단한 선언으로 구현 가능, 변경 용이, 오류 데이터 발생 방지 등이 있다.
단점 : 복잡한 제약 조건의 구현과 예외적인 처리가 불가능하다.
용어
트리거(Trigger) : 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(Event)가 발생할 때마다 자동적으로 수행되는 절차형 SQL
이벤트(Event) : 이벤트는 시스템에 어떤 일이 발생하는 것을 말하며, 트리거에서 이벤트는 데이터의 입력, 갱신, 삭제와 같이 데이터를 조작하는 작업이 발생했음을 의미
출처
태그:
TIL
카테고리:
TIL
업데이트: April 14, 2021