상세 컨텐츠

본문 제목

Normalization

데이터베이스

by 후추리 2024. 12. 17. 23:36

본문

* Normalization *

- 테이블 스키마에서 수정하는 과정

- 테이블 R이 good form인지 결정해야 함

- update anomaly, insertion anomaly, deletion anomaly가 있을 수 있음

- 정보의 중복이 있을 수 있음

- 합치기 혹은 분해가 도움이 될 수 있음

- 분해할 때에는 무손실 분해여야 함 ( πR1(r) ⋈ πR2(r) = r )

- 즉, R1과 R2의 교집합이 R1 또는 R2의 후보키이면 무손실 분해

- 함수종속을 따라야 함

- 함수종속 : 특정한 속성이 다른 속성의 값을 고유하게 결정

  t1[α] = t2 [α] ⇒ t1[β ] = t2 [β ] 일 때, α → β

- 이행종속 : A → B, B → C 이면 A → C 성립

- trivial한 함수종속 : β α 이면  α → β

- Dependency 보존 : 결정자와 종속자가 같은 테이블에 존재하면 보존됨

 

 

* Normal Forms *

- Prime Attribute : 후보키에 포함된 속성

- 1NF : 각 튜플은 atomic value만 만족하면 됨

- 2NF : 부분종속이 없으면 됨. 실질적으로 이 함수 종속에 필요없는 부분이 있으면 분해

- 3NF : 이행종속이 없으면 됨

  단 이행종속 되는 대상이 prime attribute이면 3NF 만족. 중복은 존재하지만 Dependency 보존

  1) 함수종속이 trivial하거나, 2) α가 슈퍼키이거나, 3)  β가 후보키에 속하면 충족

- BCNF : 1) 함수종속이 trivial하거나, 2)  α가 슈퍼키라면 충족

  BCNF를 만족하지 못할 경우 분해 진행

  (α U β) 와 ( R - β ) 로 분해 후 각 테이블도 BCNF가 맞는지 따져봐야 함

 

- BCNF의 판단을 위해서는 non-trivial한 함수종속과 고유식별자를 알아야 함

- 언제나 BCNF와 Dependency 보존이 동시에 가능한 것은 아님

 

 

 

* Closure *

 

'데이터베이스' 카테고리의 다른 글

Intermediate SQL  (2) 2024.12.18
ER Modeling(2)  (4) 2024.12.17
ER Modeling(1)  (0) 2024.12.17

관련글 더보기