[정보관리기술사] 정규화
[1] 이상현상 제거를 위한 무손실 분해과정, 정규화
가. 정규화(Normalization)의 정의
이상현상을 일으키는 속성 간의 종속 관계를 제거하기 위해 함수적 종속을 이용하여 릴레이션을 여러 작은 릴레이션으로 무손실 분해하는 과정
이상현상, 속성, 종속 관계, 제거, 함수적 종속, 릴레이션, 작은 릴레이션, 무손실 분해, 과정
나. 정규화의 필요성
- 데이터의 이상현상을 제거 : 삽입이상, 갱신이상, 삭제이상
- 데이터 중복 저장 예방을 통한 저장공간 사용의 최적화
- 데이터 불일치성 최소화를 통한 데이터 무결성 확보
데이터, 이상현상 제거, 삽입 이상, 갱신 이상, 삭제 이상
데이터 중복 저장, 예방, 저장 공간 사용, 최적화,
데이터 불일치성, 최소화, 데이터 무결성, 확보
[2] 정규화의 개념도 및 원칙
가. 정규화의 개념도
나. 정규화의 원칙
- 분리의 원칙 : 하나 이상의 릴레이션을 두 개 이상의 릴레이션으로 분리
- 무손실 분해(Losless Decompostion) : 분해한 릴레이션을 조인하여 저장 정보의 손실 없이 원래의 릴레이션 정보를 생성할 수 있어야 함
- 종속성 유지 : 릴레이션 분해 후에도 종속성 유지(완전함수 종속성)
분리의 원칙,릴레이션,두 개 이상의 릴레이션,분리
무손실 분해,조인,정보 손실,릴레이션 재생성,
종속성 유지,릴레이션 분해,완전 함수 종속성
[3] 정규화의 절차
비정규 릴레이션, 원자값이 아닌 속성 분해 (반복속성제거)
1차 정규형, 기본키에 대한 부분함수 종속성 제거
2차 정규형, 이행함수 종속성 제거
3차 정규형, 결정자가 후보키 아닌 종속 제거
BCNF 정규형, 함수종속이 아닌 다중값 종속성 제거
4차 정규형, 후보키를 통하지 않은 조인종속성 제거
5차 정규형
[4] 정규화의 장단점 및 고려사항
가. 정규화의 장단점
장점 | 단점 |
- 이상현상의 제거 - 데이터 일관성/무결성 보장 - DB 저장공간의 최소화 - 유연성/유지보수성 증가 |
- 빈번한 Join으로 응답속도 저하 - 과다하고 복잡한 검색 조건문으로 애플리케이션 구현 복잡도 증가 - DB 스키마 이해 용이성 저하 |
이상현상 제거
데이터 일관성,데이터 무결성,보장
DB 저장공간,최소화
유연성,유지보수성,증가
빈번한 Join,응답속도 저하
과다한 검색 조건문,복잡한 검색 조건문,애플리케이션 구현,복잡도 증가
DB 스키마,이해 용이성 저하
나. 정규화 시 고려사항
- 무결성과 성능을 고려하여 적절한 수준의 정규화를 해야 하나 일반적으로 3NF나 BCNF까지는 수행해야 함
- Join으로 인한 성능 저하를 막기 위해 반정규화를 수행하기도 하나, 반드시 정규화 수행 후 실시하고 철저한 문서화 관리가 필요
무결성,성능,적절한 수준의 정규화,3NF,BCNF
Join,성능 저하,반정규화,정규화 수행,문서화 관리
[-] 부가 정보
가. 정규화를 하지 않았을 때의 문제점 : 이상현상(Anomaly) 발생
이상현상 | 주요내용 |
삽입이상 | 릴레이션 R에서 특정 데이터 삽입 시 원하지 않는 불필요한 정보까지 삽입해야 하는 현상 |
갱신이상 | 릴레이션 R에서 특정속성 갱신시 중복 저장되어 있는 속성 중에서 일부만 갱신되어 발생하는 데이터 불일치 현상 |
삭제이상 | 릴레이션 R에서 특정 속성을 삭제하는 경우 원하지 않는 정보까지 삭제되는 현상 |
릴레이션 R
삽입,특정 데이터 삽입,불필요한 정보
속성 갱신,중복 저장,일부 갱신,데이터 불일치
속성 삭제,원하지 않는 정보,삭제
나. 함수적 종속성의 종류
함수적 종속성 : 릴레이션 R에서 속성 X가 속성 Y를 결정, X -> Y
종류 | 설명 |
완전함수 종속성 | X, Y -> Z 일 때, X-> Z이고 Y -> Z인 경우 |
부분함수 종속성 | X, Y -> Z일 때, X -> Z이거나 Y -> Z인 경우 |
이행함수 종속성 | X-> y이고 Y-> Z이면, X ->Z인 경우 |
다중값 종속성 | 릴레이션에 둘 이상의 독립적 다중값 속성이 존재할 경우 X, Y, Z 속성을 가진 릴레이션 R에서 (X, Z)에 대응하는 Y값을 집합이 X에만 종속되고 Z 값에 독립이면 Y는 X에 다중값 종속 X -> Y |
조인 종속성 | 둘로 나누면 원래의 관계를 회복할 수 없으나, 셋 또는 그 이상으로 분리 시에는 원 래의 관계를 복원할 수 있는 특수한 경우 |
다. 1차 정규화 예시
- 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것
라. 2차 정규화 예시
- 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
- 완전 함수 종속이라는 것은 기본키의 부분집합이 결정자가 되어선 안된다는 것을 의미
마. 3차 정규화 예시
- 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것
- 이행적 종속이란 A -> B, B -> C가 성립할 때 A -> C가 성립되는 것을 의미
정규화 예시 출처 :