본문 바로가기

나의 FE피봇이야기/Dev_Knowledge

[DBMS] 정규화

이 글은 아래의 영상을 보고 작성했다.

https://www.youtube.com/watch?v=rVxcheAkMSk

 

 

 

정규화란

- 데이터 중복을 해소하기 위해서 Relation을 분해화는 과정이다



예시)함수적 종속 관계 FD 다이어그램
{학번, 과목번호} -> 성적
학번 -> 지도교수
학번 -> 학과
지도교수 -> 학과





제 1 정규형 : 원자값이 아닌 도메인(속성)을 분해 (중복되는 속성이 원자값을 가질 때까지 분해)

- 원자값이 아닌 도메인을 분해한다 --> 1 정규형을 만족한다

- 즉 중복된 속성을 제거한다. 

- 어떤 Relation R에 속한 모든 모데인이 원자값으로 구성되어 있다면 1NF(제 1 정규현)를 만족한다.

 

 

 

 

제 2 정규형 : 부분함수 종속성 제거

- 기본키를 중심으로 종속이 되지 않는 경우

- (B -> C) B가 C를 결정하는 경우(B : 결정자, C : 종속자)


 

 

 

 



제3 정규형 : 이행(이동할 이, Transfer)함수 종속성 제거

- (E -> F) E가 F를 결정하는 경우(E : 결정자, F : 종속자)




 

 

 



BCNF(Boyce-Codd Normal Form) : 결정자가 후보키가 아닌 함수 종속성 제거

예시)함수적 종속 관계 FD 다이어그램
{학번, 과목} -> 교수
교수 -> 과목


- (D->A) D가 A를 결정하는 경우(D : 결정자, A : 종속자) 에 종속되는 부분

--> 결정자가 후보키가 아닌 함수를 제거한다.

--> 결정자가 후보키가 아니고 종속자가 기본키의 부분집합인 속성을 분해

- A가 부분 기본키인데, BCNF가 발생하면 B만 기본키로 남기때문데 다시 Table과 Attribute의 속성을 대해 재구성 여부 확인에 들어간다.


 

 


제 4 정규형 : 다중 종속성 제거

- 릴레이션 R에서 속성 A ->> B가 존재할 때 모든 속성도 속성 A에 종속될 수 있도록 분해(A기준 분해)

 

 

그리타

제 5 정규형 : 후보키를 통하지 않은 조인 종속성 제거

- 릴레이션 R을 셋으로 분해하여야만 조인을 통해서 원본 조회가 가능

 

 

참조

https://code-lab1.tistory.com/48