본문 바로가기
CS/Database

[데이터베이스] 정규화(Normalization)

by 테리는당근을좋아해 2020. 6. 22.

정규화(Normalization)

- 데이터의 중복성을 줄이고, 무결성을 향상하는 등의 여러 목정을 달성하기 위해 관계형 데이터베이스를 정규화된 형태로 재설계하는 과정

 

1) 정규화되지 않은 데이터베이스 구조의 문제점

(1) 데이터의 중복

(2) 이상현상

(3) 특정 정보의 표현 불가

(4) NULL 값 보유

(5) 정보의 부정확

 

2) 이상현상(Anormaly)

(1) 삽입 이상

새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야하는 현상

 

(2) 갱신 이상

중복된 레코드 중, 일부 레코드만 변경해 데이터가 불일치하게 되는 모순 현상

 

(3) 삭제 이상

레코드 삭제 시, 필요한 데이터까지 함께 삭제되는 데이터 손실 현상

 

3) 정규화의 목적

(1) 불필요한 데이터를 제거해 데이터의 중복 최소화

(2) 데이터베이스 구조 확장 시 재디자인 최소화

(3) 다양한 관점에서 질의를 지원

(4) 무결성 제약조건의 시행을 간단히 하기위해

(5) 각종 이상현상을 방지

(6) 테이블의 구성을 논리적이고 객관적으로 하기 위해

 

4) 정규화의 대상

온라인 거래 시스템 같은 OLTP(Online Transaction Processing) 데이터베이스는 CRUD Operation이 자주 일어나기 때문에 정규화 대상이 된다.

 

5) 정규화 과정

(1) 제 1 정규화(1NF)

- 기본키를 사용해 각 레코드를 고유하기 식별 가능

- 반복 또는 복수 값을 갖는 컬럼을 제거

- 테이블에 속한 모든 속성의 도메인이 원자 값으로 이루어짐

- 특정 속성 값을 복수 값으로 표현해야할 경우 별도의 엔티티로 분리시켜 1:n의 관계로 설정

 

(2) 제 2정규화(2NF)

- 제 1정규화를 만족

- 기본키에 종속되지 않는 속성의 제거(기본키에 부분 함수적 종속이 되는 속성을 제거)

- 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족

 

! 함수적 종속

- X 값에 따라 Y 값이 결정될 때(X -> Y), 함수적 종속이라고 함

- X는 결정자, Y는 종속자

 

! 완전 함수적 종속과 부분 함수적 종속

- 결정자인 X가 여러 속성의 집합일 때, 종속자 Y가 X의 부분집합에 의해 결정될 수 있다면, 이를 부분 함수적 종속이라 함

- X의 부분집합이 아닌 X 자체에 종속될 때, 완전 함수적 종속이라 함

 

(3) 제 3 정규화(3NF)

- 제 2 정규화를 만족

- 기본키가 아닌 일반 속성에 종속적인 속성의 제거

- 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속되지 않음

 

! 이행적 함수 종속

X에 따라 Y가 결정되고(X -> Y), Y에 따라 Z가 결정될 때(Y->Z), X와 Z의 관계를 이행적 함수 종속 관계라고 함

 

(4) 보이스/코드 정규화(BCNF)

- 제 3 정규화를 만족

- 모든 결정자가 후보키

 

(5) 제 4 정규화(4NF)

- 보이스/코드 정규화를 만족

- 함수 종속이 아닌 다치 종속이 없어야 함

 

! 다치 종속

특정 속성에 의해 다른 속성하나의 값이 결정되는 것이 아닌, 속성의 집합이 결정되는 경우

 

(6) 제 5 정규화(5NF)

- 제 4 정규화를 만족

- 후보키를 통하지 않은 조인 속성이 없어야 함

 

 

반정규화(Denormalization)

- 정규화된 데이터베이스의 성능 향상 및 개발, 운영의 단순화를 위해 역으로 정규화를 수행

- 일반적으로 JOIN을 많이 사용하는 경우, 많은 범위를 자주 처리하는 경우 등 조회에 대한 처리가 중요시 될때, 부분적으로 반정규화 수행

 

1) 특징

- 성능 향상의 목적

- 중복 데이터에 대한 처리 로직이 애플리케이션 단에서 필요

 

2) 반정규화 대상

- 분석 리포트 같은 OLAP(Online Analytical Processing) 데이터베이스는 분서과 리포트를 위해 많은 범위의 데이터 조회가 빈번하게 발생하므로 조회의 속도 향상을 위해 반정규화의 대상이 됨

 

 

 

댓글