정규화 & 반정규화

2022. 4. 17. 04:00정보처리기사 - 필기/제2과목 - 소프트웨어 개발

정규화(Normalization)

- 관계형 데이터베이스에서 정확성을 더욱 유지하기 위해 스키마를 쪼개는 과정

* 스키마 : 데이터베이스내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조를 말합니다.

 

목적

- 데이터 구조의 안정성 및 무결성을 유지

- 데이터 중복을 배제하여 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화

- 데이터 모형의 단순화

 

이상(Anomaly)의 개념 및 종류

- 정규화를 거치지 않은 데이터베이스 내의 데이터들이 사용자의 의도와는 별개로 삭제, 삽입, 갱신되는 현상

 

정규화 과정

비정규 릴레이션 - 1NF - 2NF - 3NF - BCNF - 4NF - 5NF

1. 비정규 릴레이션 - 1NF : 도메인이 원자값

2. 1NF - 2NF : 1NF를 만족하고 부분적 함수 종속 제거

3. 2NF - 3NF : 2NF를 만족하고 이행적 함수 종속 제거

4. 3NF - BCNF : 3NF를 만족하고 결정자이면서 후보키가 아닌 것 제거

5. BCNF - 4NF : BCNF를 만족하며 다치 종속

6. 4NF - 5NF : 4NF를 만족하며 조인 종속성 이용

 

반정규화(Denormalization)

- 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터를 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위

- 과도한 반정규화는 데이터의 일관성과 정합성을 저하 시킬 수 있음

* 정합성 : 데이터의 일치, 즉 데이터의 무결성을 의미함

 

1. 테이블 통합

- 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행

- 1:1 관계, 1:N 관계, 슈퍼타입/서브타입

 

2. 테이블 분할

- 수평 분할, 수직 분할

 

3. 중복 테이블 추가

- 정규화로 인해 수행 속도가 느려지는 경우  

- 많은 범위의 데이터를 자주 처리해야 하는 경우

- 특정 범위 데이터만 자주 처리해야 하는 경우

1) 집계 테이블의 추가

2) 진행 테이블의 추가

3) 특정 부분만을 포함하는 테이블의 추가

 

4. 중복 속성 추가

- 조인이 자주 발생하는 속성인 경우

- 여러 개의 속성으로 구성된 경우

'정보처리기사 - 필기 > 제2과목 - 소프트웨어 개발' 카테고리의 다른 글

디지털 저작권 관리(DRM)  (0) 2022.04.18
ISO/IEC 9126  (0) 2022.04.17
트리  (0) 2022.04.17
EAI  (0) 2022.04.16
인터페이스 구현 검증도구  (0) 2022.04.16