정규화 (Normalization)란?

1.  정규화 (Normalization)

–    개념
: 중복을 없애는 과정으로 좋은 DB 스키마를 생성해 내고 불필요한 Data의 중복을 방지하여 정보검색을 용이하게 할 수 있도록 허용한다.
: 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 Set로 쪼개어 바람직한 스키마로 만들어가는 과정
: 정규화가 되지 않은 상태에서는 Data를 뽑아내지 못한다.

–    목적
: Data 구조의 안전성 최대화
: 중복 data의 최소화
: 수정, 삭제 시 이상 현상 최소화
: Table 불일치 위험 간소화

–    이상(Anomaly)
# 삽입이상(Insertion Anomaly)
: Data 삽입할 때 불필요한 Data가 함께 삽입되는 현상 
# 삭제이상(Deletion Anomaly)
: Relation의 한 Tuple을 삭제함으로써 연쇄 삭제로 인해 정보의 손실을 발생시키는 현상 
# 갱신이상(Updating Anomaly)
: Tuple 중에서 일부 속성을 갱신함으로써 정보의 모순성이 발생하는 현상

=    과정

–   제 1 정규형 (1NF) [반복되는 그룹 속성분리]
: 자식이 만들어 지는 과정: 하나의 속성만 있어야 하고 반복되는 속성을 별도 Table로 분리
: 하나의 항목에는 중복된 값이 입력될 수 없다.

–   제 2 정규형 (2NF) [부분적 종속제거]
: 1 정규형을 만족한다.
: 부모가 있기에 참조만 한다. 

– 제 3 정규형 (3NF) [이행적 종속제거]
: 1 정규형, 2 정규형을 만족한다.
: 개설 전에 미리 관리할 data
: 기본키가 아닌 Column 들은 기본키에 종속되어야 한다.

강좌, 매니져 라는 부모가 있기에 참조만 한다.

– 제 4 정규형
: 1 정규형, 2 정규형, 3정규형, BCNF 정규형을 만족한다.
: Table은 n : n 형식이고 관계는 없다.

Updated by 19.04.12 정규화
Site : @ThinkGround
Instagram : @thinkground_official
Facebook : @ThinkGround
Twitter : @ThinkG_Flature

Leave a Reply