[데이터 모델링] 정규화의 의미, 중복의 제거
정규화(Normalization)란 함수적 종속성을 적용하여 릴레이션을 연관성 있는 속성들로 구성되도록 분류해서 이상(anomaly) 현상이 발생하지 않도록 하는 과정을 말한다. 즉, 이상 현상을 야기하는 속성 간의 종속 관계를 제거하기 위해 릴레이션을 작은 여러 릴레이션으로 무손실 분해하는 과정이다. 무손실 분해의 의미는 분해로 인해 정보의 손실이 발생하지 않아야 한다는 것이고 분해된 릴레이션을 조인하면 분해 전의 릴레이션으로 복원 가능해야 한다는 것이다.
또는, 관계형 데이터베이스의 설계에서 중복을 최소화하기 위한 데이터를 구조화하는 프로세스라고도 한다.
이상(anomaly) 현상이란 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 삭제 및 수정 연산을 수행할 때 발생할 수 있는 부작용 또는 비합리적 현상이다.
이상 현상의 종류는 아래 표와 같다.
이상 현상 | 설명 |
삽입 이상 | 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 |
갱신 이상 | 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 |
삭제 이상 | 튜플을 삭제하면 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 |
함수적 종속성(Functional Dependency) 이란 어떤 릴레이션R이 X와 Y를 각각 속성의 부분집합이라고 가정할 때 X의 값이 Y의 값을 유일하게 결정한다면 “Y는 X에 함수적으로 종속된다”라고 말하고 X→Y로 표기한다. 이 경우 X를 결정자, Y를 종속자라고 한다.
함수적 종속에는 완전 함수적 종속(Full Functional Dependency), 부분 함수적 종속(Partial Functional Dependency) 및 이행 함수적 종속(Transitive Functional Dependency)이 있다. 이러한 함수적 종속성을 판단하여 정규화를 수행한다.
정규화 과정을 통해 분해된 릴레이션의 정규화된 정도를 정규형(Normal Form)이라 한다. 각 정규형 마다 제약 조건이 존재하며 정규형의 차수가 높아질수록 요구되는 제약조건이 많아지고 엄격해진다. 따라서, 릴레이션의 특성을 고려하여 적합한 정규형을 선택한다. 일반적으로 제3 정규형까지 정규화를 진행한다.
제2 정규형에서 부분 함수적 종속을 제거하고 완전 함수적 종속이 되어야 한다는 것인데 부분 함수적 종속이 존재하는 경우 데이터의 중복이 발생한다는 것을 의미한다.
위의 담보물건 엔터티에서 물건번호 속성이 부분 함수적 종속을 발생시키고 이에 따른 중복이 발생함을 나타낸다.
그래서, 모든 속성이 기본키 전부에 종속되도록 완전 함수적 종속이 되도록 해야 한다.
제3 정규형에서 이행 함수적 종속을 제거하고 속성 간의 종속성을 배제해야 하는데 이행 함수적 종속이 존재하는 경우 데이터의 중복이 발생한다는 것을 의미한다.
위의 주문상세내역 엔터티에서 판매업체번호 속성이 이행 함수적 종속을 발생시키고 이에 따른 중복이 발생함을 나타낸다.
정규화 작업은 관계형 데이터베이스의 개념이지만 그 원칙은 데이터 모델링에 적용된다. 정규화 단계별 규칙을 적용하여 중복을 제거하고 식별자에 완전히 종속적인 속성으로 릴레이션의 위치를 적절히 하여 완료된 데이터 모델은 정규화된 데이터베이스 설계가 된다.
※ 릴레이션: 엔터티와 동일 의미. Relational Database의 용어
※ 튜플 : row와 동일 의미. Relational Database의 용어
<끝>
'데이터 모델링' 카테고리의 다른 글
[데이터 모델링] 데이터 모델 상세화 (0) | 2024.05.18 |
---|---|
[데이터 모델링] 데이터 모델 현행화 (0) | 2024.05.18 |
집계 테이블에 대한 고찰(3/3) (1) | 2024.04.18 |
집계 테이블에 대한 고찰(2/3) (0) | 2024.04.18 |
집계 테이블에 대한 고찰(1/3) (0) | 2024.04.18 |