wms's Programming&Study

[SQLD - PART1] 2. 데이터 모델과 성능 - ① 정규화 본문

데이터베이스/SQL Developer

[SQLD - PART1] 2. 데이터 모델과 성능 - ① 정규화

wms2275 2019. 10. 8. 03:21

1) 정규화

- 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정
- 데이터의 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법

정규화 절차 설명
제 1정규화 - 속성의 원자성을 확보
- 기본키를 설정
제 2정규화 - 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)
제 3정규화 - 기본키를 제외한 칼럼 간에 종속성 제거
- 이행 함수 종속성을 제거
BCNF - 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해
제 4정규화 - 여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중 값 종속성을 제거
제 5정규화 - 조인에 위햐서 종속성이 발생되는 경우 분해

 

2) 함수적 종속성

- 함수적 종속성 : A가 변화할 때 B도 변화한다면 함수적으로 종속한다.

- 부분 함수 종속성 : 기본키가  2개 이상의 칼럼으로 이루어진 경우 발생, 새로운 테이블이 도출

- 이행 함수 종속성 : 기본키를 제외하고 칼럼간에 종속성이 발생

 

[1] 제 1정규화

- 속성을 보고 한 개의 속성으로 유일성을 만족할 수 있는지 확인

   -> 안된다면 2개의 조합으로 유일성을 만족할 수 있는지 확인

- 엔터티의 유일성을 만족하는 식별자를 찾는 과정

 

[2] 제 2정규화

- 기본키가  2개 이상의 칼럼으로 이루어진 경우 대상이며 기본키가 1개의 칼럼으로 이루어진 경우 생략

- 부분 함수 종속성 제거

- 모든 속성이 식별자에 종속해야 하며 그렇지 않은 경우 분해

 

[3] 제 3정규화

- 이행 함수 종속성 제거

- 제 1정규화와 제 2 정규화를 수행한 다음에 수행

 

[4] BCNF

- 복수의 후보키가 있고 후보키들이 복합 속성이어야 하며 서로 중첩되어야 한다.

 

 

< 참고자료 >