* 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 |